ActorsA authentication serverC clientD client's domainS serverC' client's name in S's domainMessage FragmentsChx challenge sent by xKx x's private keyKN nonce keyERR an error messageK{Q} = Q encrypted with key K # C sends its challenge to S1) C->S KC{Acchal, ChC, S}, C, D # S passes C's challenge to A, along with its own challenge2) S->A KS{Aschal, ChS, C, D, KC{Acchal, ChC, S}}, S # A sends an encrypted challenge back to C relayed by S # KN is a new key to be used in encrypting the conversation3) A->S->C KC{KS{Astick, ChS, C', KN}, Actick, ChC, KN}, PADor3) A->S->C Aerr, ERR # C now trusts S to be S # C sends the encrypted challenge back to S5) C->S KS{Astick, ChS, C', KN} # S now trusts C to be C'6) S->C "OK".TSK'x x's auxiliary keyCnS challenge for an aux key sent by S.TEFrom a non-plan 9 machineC->S CS->C CnSC->S K'C{CnS}S->A KS{Asnchal, ChS, C, CnS, K'C{CnS}}, SA->S KS{Astick, ChS, C', KN}}S->C okThe same protocol is used for file and compute server attaches.The last message is a ticket that a compute server acceptsto set the user name to C'.Changing passwordsA user can change her password by contacting the password serviceon the authentication server. The protocol isA -> C challengeC -> A client KC{challenge, oldpassword, newpassword}A -> C "password changed" or error messageold password and new password are 10 char wide fixed-width fields.challenge is an 64 bit random number
Actors
A authentication server
C client
D client's domain
S server
C' client's name in S's domain
Message Fragments
Chx challenge sent by x
Kx x's private key
KN nonce key
ERR an error message
K{Q} = Q encrypted with key K
# C sends its challenge to S
1) C->S KC{Acchal, ChC, S}, C, D
# S passes C's challenge to A, along with its own challenge
2) S->A KS{Aschal, ChS, C, D, KC{Acchal, ChC, S}}, S
# A sends an encrypted challenge back to C relayed by S
# KN is a new key to be used in encrypting the conversation
3) A->S->C KC{KS{Astick, ChS, C', KN}, Actick, ChC, KN}, PAD
or
3) A->S->C Aerr, ERR
# C now trusts S to be S
# C sends the encrypted challenge back to S
5) C->S KS{Astick, ChS, C', KN}
# S now trusts C to be C'
6) S->C "OK"
.TS
K'x x's auxiliary key
CnS challenge for an aux key sent by S
.TE
From a non-plan 9 machine
C->S C
S->C CnS
C->S K'C{CnS}
S->A KS{Asnchal, ChS, C, CnS, K'C{CnS}}, S
A->S KS{Astick, ChS, C', KN}}
S->C ok
The same protocol is used for file and compute server attaches.
The last message is a ticket that a compute server accepts
to set the user name to C'.
Changing passwords
A user can change her password by contacting the password service
on the authentication server. The protocol is
A -> C challenge
C -> A client KC{challenge, oldpassword, newpassword}
A -> C "password changed" or error message
old password and new password are 10 char wide fixed-width fields.
challenge is an 64 bit random number