Opened 10 years ago
Last modified 7 days ago
#26 assigned defect
Update clok card to support contemporary time zones
| Reported by: | Eric Swenson | Owned by: | Eric Swenson |
|---|---|---|---|
| Priority: | major | Milestone: | MR12.9 |
| Component: | Hardcore | Version: | MR12.5 |
| Keywords: | Cc: |
Description
Bring the configuration deck 'clok' card time zone list up to contemporary usage. -- Charles
Change History (4)
comment:1 by , 10 years ago
comment:3 by , 10 days ago
| Milestone: | → MR12.9 |
|---|---|
| Status: | new → assigned |
| Version: | → MR12.5 |
comment:4 by , 9 days ago
What exists already (from the 1984 PNT version 2 work)
- The PNT can store long passwords.
pnt_entry.incl.pl1declarespasswordandnetwork_passwordaschar (32), with flagsshort_pwandshort_network_pwmeaning "this is an 8-character password scrambled the old way". - The header comment describes the intended design: "Since the 32 character scrambling algorithm will not give the same results, the short_XX flags indicate that the old scrambler should be used. The short flags are automatically turned off by calls to update the password with the long-scrambled form."
- The PNT already compares long passwords.
pnt_db_util_(bound_pnt_interface_) compares the first 8 characters whenshort_pwis on, and all 32 otherwise.
What is missing:
- A 32-character scrambler.
scramble_(bound_user_ctl_) takes and returnschar (8). No long form was ever written. A new routine is needed (for examplescramble_$long). It should be a one-way hash of up to 32 characters into 32 characters (or the stored form's 256 bits). Ideally it would be a modern construction; something DES-based likeencipher_would at least match the existing style. The choice affects security and is permanent once passwords are stored. - Every place that reads, scrambles or compares a password must handle
32 characters. Each of these calls
scramble_orread_password_with 8-character variables (found by grep; each needs review):
| Area | Programs |
|---|---|
| Login (answering service) | bound_user_ctl_: lg_ctl_.pl1, dialup_.pl1; bound_ls_user_ctl_: uc_login_.pl1; bound_login_server_: ls_validate_user_.pl1
|
| FTP and network logins | bound_ftp_ctl_: ftp_dialup_.pl1 |
|
| Password administration | bound_admin_rtnes_: new_user.pl1; bound_admin_tools_: set_special_password.pl1; bound_pnt_interface_: pnt_db_util_.pl1, convert_v2_pnt_.pl1
|
| Operator/admin modes | bound_system_control_: sc_admin_mode_.pl1, sc_requests_.pl1
|
| Card input, remote I/O, I/O daemon | bound_card_input_: read_cards_.pl1, cards_overseer_.pl1; bound_remote_io_: remote_driver_.pl1; bound_iodd_: iodd_.pl1
|
| Reading passwords | bound_cipher_: read_password_.pl1 (input length)
|
| Others, which use their own passwords, not the PNT | encode, intermultics_copy, user_ftp_requests_, cftp_, exp_getpw_, COBOL MCS, APL
|
Also: the login dialogue's password masking, the
-change_password
handling (old/new password prompts, the length check), and the messages
that say a password may have at most 8 characters.
- Migration. Existing 8-character passwords keep
short_pwon and are checked with the old scrambler. When a user changes a password, it is stored in the long form andshort_pwis turned off. That is what the 1984 design intended, so no conversion pass is needed.
Suggested plan
- Choose the long scrambling algorithm and write
scramble_$long(with a test program). - Change the PNT update path (
pnt_manager_/pnt_db_util_andnew_user/password changes) to store long passwords and clearshort_pw. - Change each login path in the table to read up to 32 characters, and
compare with the scrambler matching the entry's
short_pwflag. - Update the documentation (
login,new_proc,change_password,new_user, AG/AK manuals) for the new limit.
All of these are standard-system and answering-service changes, so this
needs a set of MCRs and careful testing on a test system, including the
login server and FTP logins.
Version 0, edited 9 days ago by (next)
Note:
See TracTickets
for help on using tickets.

Ticket moved here from https://sourceforge.net/p/dps8m/tickets/93/