Description
Deployment of STS can take different forms depending on communication requirements and the level of prior communication between parties. The data described in STS Setup may be shared prior to the beginning of a session to lessen the impact of the session's establishment. In the following explanations, exponentiation (Diffie–Hellman) operations provide the basis for key agreement, though this is not a requirement. The protocol may be modified, for example, to useSTS Setup
The following data must be generated before initiating the protocol. :; An asymmetric signature keypair for each party : Required for authentication. The public portion of this keypair may be shared prior to session establishment. :; Key establishment parameters : The specification of a cyclic group ''p'' and a generator ''g'' for that group. These parameters may be public. note that for additional security each party may supply its own parameters. Sharing this data prior to the beginning of the session lessens the complexity of the protocol.Basic STS
Supposing all setup data has been shared, the STS protocol proceeds as follows. If a step cannot be completed, the protocol immediately stops. All exponentials are in the group specified by ''p''. #Alice generates a random number ''x'' and computes and sends the exponential ''g''''x'' to Bob. #Bob generates a random number ''y'' and computes the exponential ''g''''y''. #Bob computes the shared secret key ''K'' = (''g''''x'')''y''. #Bob concatenates the exponentials (''g''''y'', ''g''''x'') (order is important), signs them using his asymmetric (private) key ''B'', and then encrypts the signature with ''K''. He sends the ciphertext along with his own exponential ''g''''y'' to Alice. #Alice computes the shared secret key ''K'' = (''g''''y'')''x''. #Alice decrypts and verifies Bob's signature using his asymmetric public key. #Alice concatenates the exponentials (''g''''x'', ''g''''y'') (order is important), signs them using her asymmetric (private) key ''A'', and then encrypts the signature with ''K''. She sends the ciphertext to Bob. #Bob decrypts and verifies Alice's signature using her asymmetric public key. Alice and Bob are now mutually authenticated and have a shared secret. This secret, ''K'', can then be used to encrypt further communication. The basic form of the protocol is formalized in the following three steps: (1) Alice → Bob : ''g''''x'' (2) Alice ← Bob : ''g''''y'', E''K''(S''B''(''g''''y'', ''g''''x'')) (3) Alice → Bob : E''K''(S''A''(''g''''x'', ''g''''y''))Full STS
Setup data can also be incorporated into the protocol itself.Variations
The variations mentioned here are from the original STS paper. See the following references for other, more significant variations. * *RFC 2412, "The OAKLEY Key Determination Protocol". *ISO/IEC 117703, "Mechanisms Using Asymmetric Techniques", (1999).Authentication-only STS
A simplified form of STS is available that provides mutual authentication but does not produce a shared secret. It uses random number challenges instead of the above Diffie–Hellman technique. #Alice generates a random number ''x'' sends it to Bob. #Bob generates a random number ''y''. #Bob concatenates the random numbers (''y'', ''x'') (order is important) and signs them using his asymmetric key ''B''. He sends the signature along with his own random number to Alice. #Alice verifies Bob's signature. #Alice concatenates the random numbers (''x'', ''y'') (order is important) and signs them using her asymmetric key ''A''. She sends the signature to Bob. #Bob verifies Alice's signature. Formally: (1) Alice → Bob : ''x'' (2) Alice ← Bob : ''y'', S''B''(''y'', ''x'') (3) Alice → Bob : S''A''(''x'', ''y'') This protocol can be extended to include certificates as in Full STS.STS-MAC
In cases where encryption is a not viable choice in session establishment, ''K'' can instead be used to create a MAC. (1) Alice → Bob : ''g''''x'' (2) Alice ← Bob : ''g''''y'', S''B''(''g''''y'', ''g''''x''), MAC''K''(S''B''(''g''''y'', ''g''''x'')) (3) Alice → Bob : S''A''(''g''''x'', ''g''''y''), MAC''K''(S''A''(''g''''x'', ''g''''y'')) note that this variation may be preferable to original STS ("STS-ENC") in any case because :''.. the use of encryption to provide key confirmation in STS-ENC is questionable — traditionally the sole goal of encryption is to provide confidentiality and if an encryption scheme is used to demonstrate possession of a key then it is shown by decryption, not by encryption.'' The paper goes on to counsel, however, that using ''K'' for both a MAC and as the session key violates the principle that keys should not be used for more than one purpose, and presents various workarounds.Cryptanalysis
STS-MAC is vulnerable to someReferences
* * * * * {{Cryptography navbox , public-key Key-agreement protocols