A process is provided that allows an exportable SSL
client to negotiate an encrypted session using strong
encryption with a
server if the
server is allowed to use strong
encryption. With this process, the SSL
client is normally limited to export strength
encryption. But, when it is communicating with an approved
server, it is able to expand the available set of encryption algorithms to include stronger algorithms / key lengths. The process involves performing an SSL
handshake twice. The process begins when a
client, i.e. a user, wants to establish a session with a server. The client first initiates a
network connection to the server. The first
handshake between an export client and an approved server results in an SSL session that uses export strength encryption. This establishes a connection using an exportable
cipher suite. The client examines the server's
certificate obtained as part of the first
handshake. If the server is not approved, the SSL session transfers application data that are protected by the export
cipher. If the server is approved, then the client initiates a second handshake, this time allowing stronger
cipher suites. The result of the second handshake is an SSL session that uses strong encryption. The SSL session may then be used to transfer application data that are protected by the strong
cipher suite. At this point, the process is complete.