The user creates a bind token containing:
- the user's email address
- the time (to prove freshness)
- a digital signature (hash value encrypted with the user's private key) signing the above information
and sends the entire bind token to the server.
="TofC17">Confidentiality
Implementation of confidential communications obviously requires both user agent and server to be modified to be aware of the encryption (unless the underlying communications infrastructure takes care of this - this will have to wait of IP-SEC or IPv6). Therefore, there is no need to support backwards compatibility with insecure user agents or servers.
Confidentiality also requires the sharing of a secret (the symmetric encryption key that will be used to encrypt packets passed between user and server). For this reason, it is probably advisable to insist that both user and server authentication are performed prior to initiation of encrypted communications.
If the user authenticates itself using strong authentication then the server will, at the end of the authentication process, possess a validated copy of the user's public key. The server can then invent a random symmetric encryption key, encrypt this asymmetrically with the user's public key and send this to the user knowing that only they will be able to decrypt it (similarly, if the server authenticates itself with strong authentication then the user can do the same thing). In this way, secure communications can be established.
If simple authentication or one-time passwords are used then different mechanisms are needed. The server can use the user's authentication server to fulfill a similar role to the Kerberos key-server described in the Young/Kirstein/Ibbetson paper.
The following description outlines possible approaches to key generation to demonstrate the principles. These are not meant to be rigorous specifications of protocols.
1 The server sends a message to the user's authentication server requesting a key. The message will say what form of authentication was used and will include the public key of the server and the certificates needed for the authentication server to verify this key.
2.1 If the user was authenticated using a password then the authentication server invents a random number that will be used as a symmetric encryption key. The authentication server:
- encrypts this key asymmetrically with the public key of the server; and
- encrypts this key symmetrically with a hash of the user's password.
This information is all signed and passed back to the server. The server passes the second part of this to the user, and each can decrypt the symmetric key.
2.2 If the user was authenticated with hardware-based one-time passwords then the server invents a random number to use as a challenge, and calculates the corresponding response. The authentication server encrypts the response asymmetrically with the public key of the server, and then sends a digitally signed message containing the challenge and the encrypted response to the server. The server passes the challenge to the user, who then calculates the response while the server decrypts the same response. Both user and server can then use the response as a symmetric key to encrypt the subsequent communication.
2.3 If the user was authenticated with software-based one-time passwords then there is nothing that can be done. All the information stored on the authentication server was transmitted in clear text during the authentication process, and therefore there is nothing that can be used to allow the authentication server to transfer information confidentially to the user. Note that, as currently specified, the server does not hold the S/Key password that is used by the user to calculate the response to the challenge. If this is stored on the server then this will be a suitable mechanism as it is never sent over any network. The overall process then becomes the same as for simple passwords, described above.
If the server is authenticated to the user then the user can also take similar steps to initiate the key generation process.
With FTP, there is also the added option of encrypting the data rather then the communications connection. PGP can be used to encrypt the files stores on an ftp server, and these will only be readable to authorised people who download them. An intelligent user agent could spot when an encrypted file was being downloaded and act accordingly. This would, of course, not require any modification to the ftp server.
="TofC18">
Telnet and FTP
These protocols are simple, well defined and stable; and users tend not to demand specific user agents (though graphical FTP user agents are becoming more widespread). Therefore there is no need for the implementation of secure versions to build in flexibility with respect to changes in either the protocol or dependent applications. A single customised user agent and server for each protocol and each platform can be developed and provided to the user community, with the modified user agent and server taking advantage of the authentication servers where appropriate.
Development is further eased by the fact that public domain source code implementations of telnet and graphical FTP user agents and servers are available and can be modified. Note, however, that the situation with shareware is not so clear. While some shareware authors may be willing to provide hooks in their product to enable security to be added on by external modules, American authors are prevented from doing this by the US export regulation. Therefore, it is best to enhance a publicly available implementation, and nominate that as "approved for secure use within the UK academic community".
The bind process for telnet and ftp with all four sorts of authentication is exactly the same as is described in Section 4 "JISC services" and there is no need to repeat it here. However, security enhanced telnet and ftp user agents and servers are much more likely to find themselves communicating with non-enhanced versions, and so it is worth spending time here to consider the way in which user agent and server interact
Modified user agent talking to modified server
As with non-modified versions of the program, the user agent is assumed to initiate the interaction, and the server is assumed to lead the user through the authentication process (again, we are only considering user authentication; server authentication can be added by the same mechanisms)
The server leads with a prompt saying something like
Login:
where the user is intended to type in their account name. If the user wishes a conventional interaction then they could do this. However, if the user knows that the server has been security enhanced, then he/she could type something here to indicate they wish to use this enhancement. For example: (bold type indicates typed in by user)
For simple authentication:
Login: auth=simple
Enter your email address: A.J.Young@iti.salford.ac.uk
Enter your telnet password: (not echoed)
Authenticated "Andrew Young, I.T.Institute, Salford University"
For hardware-based one-time passwords:
Login: auth=onetime
Enter your email address: A.J.Young@iti.salford.ac.uk
Challenge is 0471947235
Enter response: 973645273
Authenticated "Andrew Young, I.T.Institute, Salford University"
For software-based one-time passwords:
Login: auth=skey
Enter your email address: A.J.Young@iti.salford.ac.uk
Enter your s/key password: (not echoed, or can be retrieved from PSE)
Authenticated "Andrew Young, I.T.Institute, Salford University"
For strong authentication:
Login: auth=strong
(user agent locates user's PSE)
Authenticated "Andrew Young, I.T.Institute, Salford University"
An enhanced user agent called from the command line could also be written to include command line switches:
telnet -strong host.institution.ac.uk
which will automate the first part of the dialogue between user agent and server.
Unmodified user agent talking to modified server
The simple authentication example described should still work (though the password will necessarily be sent to the server in clear text). The hardware-based one-time password will also still work. However, S/Key and strong authentication both require some extra intelligence in the user agent, and so these will not work if an unmodified user agent is used.
Modified user agent talking to unmodified server
If an unmodified server is contacted and the user attempts to access enhanced security services then the server will assume the "auth=strong" request is a user name and will respond with "Password:". The user agent can spot this and can inform the user that enhanced security is not available, followed by degrading to use of normal authentication.
Unmodified user agent talking to unmodified server
If an unmodified server is contacted and the user attempts to access enhanced security services then the server will assume the "auth=onetime" request is a user name and will respond with "Password:". Here, this will be passed directly to the user and it is up to the user to infer from this that enhanced security is not available.
="TofC19">
Other considerations
Resilience
In the event that there is a hardware failure or network failure that causes an authentication server to be unavailable, it will be impossible for users whose authentication data is stored on that server to be authenticated, and therefore they could be denied access to essential services that could prevent them doing their work:
- JISC services would be unable to authenticate the user and unable to determine if the user was authorised to access the service - this is likely to be a critical failure from the user's perspective of their ability to do their job. In this event, there must be some planned fallback to traditional methods of authentication possibly based on institutional passwords. This would be explicitly enabled after suitable authorisation (such as a telephone call to or from the network manager of the affected site to confirm that there is a problem) and could be automatically disabled if the authentication server became available again. The existence and details of this sort of fallback scheme would be part of the service provision agreement between the user's organisation and the server's operator.
- Users would be unable to send confidential email - this is likely to be a critical failure from the user's perspective. However, if the PGP proxy keeps a cache of validated public keys that have been recently retrieved then the user can choose whether to use the cached key instead of freshly re-retrieving it (the user's PSE is the ideal place to keep this cache). The user is taking the added risk that the key could have been changed or withdrawn since it was last retrieved (possibly because the private key was compromised), but this risk may be acceptable depending on the nature of the email (the sender can also telephone the recipient to find out if their key has been withdrawn, they are then taking the risk that they are talking to the correct person). Therefore, the main effect of a failure is that users would be unable to send confidential email to a user they had not previously corresponded with, and this may not be considered as serious a problem.
- Users would be unable to verify authenticated email - this is likely to be a non-critical failure, as the message contents would still be readable and the message could be authenticated later when services had resumed. Additionally, if a cache of recently validated public keys were kept by the PGP proxy then user could provisionally check the authenticity of the message (subject to the proviso that the key could have been changed or withdrawn since it was last validated).
- Telnet and FTP from external sites would be unable to authenticate the user - this is likely to be a critical failure. However, telnet and ftp servers that are unable to use the authentication servers could gracefully degrade and use the conventional local password file as a fallback, providing some continuity of service (requiring users to remember the fallback password - as it is hoped they would be used infrequently then it is likely they could be hard to remember).
For added resilience, to make sure these problems are less likely to occur, organisations may choose to have two authentication servers, preferably with as little common communications infrastructure as possible. The second would be identical to the first except it's DNS name would be auth-server2.institution.ac.uk, and applications making use of the authentication servers should know that this should be tried if connection to the primary server fails.
If replication of the authentication server is implemented then particular care must be taken with replication of data that changes over time. In particular, the following data can be changed by the authentication server:
- Information relating to S/Key will be over-written every time a successful S/Key login is made. If the change is not made simultaneously to all replicas then there is the possibility that the user may be able to make two logins with the same S/Key challenge, which would violate the pre-payment schemes that S/Key is designed to implement (though would not necessarily be a security disaster)
- Users can change their simple passwords by telnetting to the authentication server, and this must be propagated to all replicas (it is probably acceptable for there to be a noticeable propagation delay while this happens - for the password.demon.co.uk system mentioned earlier, this can be of the order of hours)
It is doubtful that there is a need for massive redundancy such as uninterruptable power supplies or off-site location of the reserve authentication server, as long as some level of fallback access can be achieved for all services. Also, the problem of maintaining offsite replicas of data that is very sensitive regarding confidentiality and integrity is great, and may outweigh the perceived advantage gained.
="TofC21">
Conclusions
This report has shown how security services can be implemented for deployment around the JANET community using the model proposed by Bell/Wiseman. The solutions are proprietary but consider the issue of interoperation with members of other user communities.
The proposed solutions require the following initial software development:
- Authentication server - converts http requests for data into queries to a local database and digitally signs the results. Also allows telnet access for password modification.
- CA tools - to generate X.509 certificates and signed PGP keys for users (some tools to assist bulk generation and transfer to the authentication server will also be useful)
- PGP proxy - to interface between the mail user agent and the PGP program
- Integration of PGP into mail user agents
- JISC services - integration of enhanced security into servers and user agents
- Telnet and FTP - integration of enhanced security into servers and user agents
with the following infrastructure:
- Authentication server (probably a high spec PC) within each participating institution
- Certification authority (responsible person) within each participating institution
- Authentication server operated centrally, possibly by UKERNA
- Certification authority operated centrally, possibly by UKERNA
the following on-going development:
- Consolidation of new versions of mail user agents and of PGP
and the following required study:
- Analysis of the current smart-card market
For the purposes of a preliminary pilot deployment phase, the implementation could be simplified as follows while still being useful and allowing the full range of capabilities to be demonstrated:
- Authentication server - allow only one form of local database for storage of the authentication server information for the participating organisations (in a full deployment you would need more flexibility to fit in with the working practices of all organisations, but for piloting a more rigid approach is acceptable).
- CA tools - handle only PGP keys initially.
- PGP proxy - cannot really be simplified.
- Integration into mail user agents - allow only use of Pegasus Mail for Windows (a pointer to a Pegasus/PGP integration is included at the end of the document). If a unix option is required to demonstrate interoperability then allow only MH (there is also a pointer to a MH/PEM integration at the end of the document).
- JISC services - select one service for initial security integration.
- Telnet and FTP - implement a server for unix and a user agent for PCs initially.
- PSE - floppy disc based only
Even this simplified pilot project is a substantial implementation project involving complex technology. As a first estimate, at least a man year should be allocated to the pilot implementation (more if the implementors are unfamiliar with security technology).
The author of this document believes that a project to implement and deploy these services is reasonable and viable and has no hesitation in recommending that it should continue to the next phase.