Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


December 2000

SSL Demystified

RSS
Subscribe to Windows Web Solutions | See More Security Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

The SSL encryption method in IIS

Before a company publishes a new Web site containing content that it wants to protect from prying eyes, an administrator or business unit manager examines what types of data the IIS servers are about to publish. "Maybe the data should be encrypted," a security-minded person suggests. "No problem," the Web server administrator replies. "Purchase those yearly certificates to give us the encryption we need and we'll be just fine."

But just how does encryption really work? What level of encryption do you need? These questions are frequently asked but rarely answered. This month, I discuss the primary method of encryption in IIS—the Secure Sockets Layer (SSL) protocol.

The History of SSL
Netscape developed the original version of SSL in 1994. Netscape's goal was to create an encrypted data path between a client and a server regardless of platform or OS. Netscape also designed SSL to take advantage of new encryption schemes as they become available, such as the recent adoption of the Advanced Encryption Standard (AES), which replaced the Data Encryption Standard (DES).

A few months after it released SSL 1.0, Netscape released an update to the specification as SSL 2.0. In November 1995, Netscape made the specification for SSL 3.0 public. Since 1995, version 3.0 has grown in popularity and become a standard. SSL 3.0 is the version most Web servers, such as IIS 5.0 and IIS 4.0, support today.

You can implement SSL in either 40-bit and 128-bit encryption, (40-bit and 128-bit refer to the size of the session key). A session key is a pair of secret words that a server and client share; these keys are used in the encryption process of every SSL session. Mathematically speaking, the longer the session key, the harder it is to break the encryption of the SSL session and read the transmitted data. SSL is widely used in its 40-bit strength internationally and in its 128-bit strength domestically, although the laws that restrict distribution of encryption technologies always change a few years behind the industry.

SSL Components
SSL takes advantage of the strengths of both public-key and symmetric-key encryption technologies. Public-key technologies securely authenticate clients and servers; they also securely trade secret symmetric keys used in the encryption sessions. Symmetric-key encryption, which is much faster than public-key technologies, encrypts the application data.

SSL works at the Transport and Session layers of the Open System Interconnection (OSI) model to support the Application layer, where both the Web server and browser interoperate. The SSL protocol has two layers—the SSL Record protocol and the SSL Handshake protocol, which Figure 1 shows. The SSL Record protocol permits the encapsulation of higher-level protocols, such as the SSL Handshake protocol and other Application-layer protocols (e.g., HTTP). The SSL Handshake protocol facilitates authentication of servers and clients, negotiation of the SSL session's characteristics, and data transfer.

The SSL Record Protocol
An old railroad company used the slogan "Everything Rides Our Rail." You could say the same thing for the SSL Record protocol. The SSL Record protocol doesn't deal with records, per se; rather, it's the encapsulation method for the SSL Handshake protocol and the SSL Alert protocol. The SSL Record protocol builds the data path between sender and receiver. This data path starts out unencrypted, but before the server sends any secrets or application data, SSL uses public-key encryption to encrypt the data path. All other SSL messages and application data will ride on this protocol. Thus, the SSL Record protocol is the foundation for all data transfer.

The SSL Handshake Protocol
The SSL Handshake protocol runs on top of the SSL Record protocol. During a typical SSL session, the server and client exchange several Handshake protocol messages during the transaction. Depending on the chosen encryption type, a server using the SSL protocol uses public-key encryption technologies to authenticate itself to the client. Table 1 provides a list of all the messages that make up the SSL Handshake protocol. (Some of these messages are sent by the client, some by the server.)

The SSL Alert Protocol
The SSL Alert protocol also runs over the SSL Record protocol. The SSL Alert protocol signals problems with the SSL session ranging from simple warnings (e.g., unknown certificate, revoked certificate, expired certificate) to fatal error messages that immediately terminate the SSL connection. For example, you might receive the You are about to leave a secure Internet connection warning because an SSL client received a closure_notify alert from an SSL server.

How the SSL Protocol Works
The SSL protocol takes messages to be transmitted, breaks up the data into smaller, more manageable fragments, applies a media access control (MAC), and transmits the message. Compression is optional. A typical SSL session begins with a little negotiation. Using the SSL Handshake protocol, an SSL client contacts the server with a ClientHello message, as Figure 2 shows. The SSL client attempts to negotiate session parameters with the SSL server, such as which algorithm to encrypt with, which version of the SSL protocol to use, whether authentication is necessary (i.e., required by either the server or the client), and which type of public-key encryption to use to swap shared secrets.

The client initiates an SSL session by telling the SSL server the latest version of SSL it can support (e.g., SSL 3.0) and which public-key algorithms it supports (e.g., RSA, Diffie-Hellman, Fortezza), in order of preference. If the SSL session is an existing session, the ClientHello message contains a session ID that the client can use to resume a previous SSL session. The ClientHello message also contains a random series of characters used later in the MAC process.

The server responds with a ServerHello message, which contains either the latest version of SSL the server can support or the client's latest version, whichever is earlier. The message contains a random series of characters that are different from those included with the ClientHello message. The ServerHello message also contains a session ID that can resume a previous SSL session. If the client asked the SSL server to present a client certificate, the server presents it. The server offers a certificate that is usually X.509-compatible. Depending on the encryption algorithm, the server might request the client's X.509 certificate in return and pass a server key. The Client then responds with either a No certificate alert or its own certificate, a client key, and an optional Certificate verify message to ask for the client's certificate in return for validation.

When the ClientHello and ServerHello sessions are complete and the client and server have settled on the SSL version, encryption methods, and compression, the ChangeCipherSpec message passes between server and client. The ChangeCipherSpec message is a protocol type, not a Handshake message. A ChangeCipherSpec message contains the chosen encryption algorithm and a Message Authentication C algorithm, such as MD5 or the Secure Hash Algorithm (SHA), used to verify message integrity. This message represents the starting point for the encryption process. After the ChangeCipherSpec message, the Finished message passes between the server and client, and the flow of application data can commence.

The ChangeCipherSpec message signals that a change (e.g., in encryption states) to the state of the SSL session is about to occur. Within SSL, two states for the ChangeCipherSpec message exist—read pending and read current. Any change to the state of an SSL session must first be written into read pending, then copied into read current. This graceful notification process between client and server lets a change in the SSL session occur without having to renegotiate the connection.

SSL also has the ability to resume a previously negotiated session if the TCP communications between client and server are interrupted. During the initial exchange between the SSL client and server, the server gives the client a session ID, which helps the server keep track of that SSL session. The client can ask that the server resume the SSL session without having to renegotiate parameters. In a resumed SSL session, the ClientHello message contains the session ID of the previous SSL session, as Figure 3, page 13, shows. If the SSL server has a match in its cache, the server responds with the same session ID. The client and server go straight to exchanging ChangeCipherSpec messages and Finished messages, and application data follows. If the SSL server doesn't have a match, the server answers with a new session ID. The new ID won't match the client's offering, and the client and server negotiate new session parameters.

The Future Direction of SSL
SSL 3.0 has evolved into the Internet Engineering Task Force (IETF) Transport Layer Security (TLS) 1.0 protocol, sometimes referred to as SSL 3.1. For information about TLS, see IETF Request for Comments (RFC) 2246. SSL discussions contain many references to TLS, and it's likely that you'll see TLS in the next version of IIS.

The Best Protocol
SSL is a combination of the best of symmetric-key encryption and public-key technologies. The protocol is adaptable, and you can use it with new encryption algorithms as they come on the market. When combined with a Web server, this technology lets users conduct private and secure sessions (assuming that both the client and server themselves are reasonably secure). For SSL-related resources, see Related Reading.

Nearly every popular Web server today supports SSL or its successor, TLS, in one version or another. IIS has supported SSL for some time as its built-in encryption mechanism. I would look for the next major release of IIS to support both SSL and TLS.

End of Article



Reader Comments
well i am from COLOMBIA, I study in UNIVERSIDAD DELL VALLE and i am doing my project work about ssl and networks security. I would like to know if you can to comunicate with me or send me some information about these topics. My idea is to offer this service here in my country and to make som innovation in this area because i developed an algoritm of cryptology to 128 bits and i have ontoher ideas but i need some extra help.
thank very much, andd excuse my english because i dont speak it very well.

jean pierre cadavid velez March 14, 2004


In section "How the SSL Protocol Works": shouldn't "media access control (MAC)" be written as "message authentication code" ?

Media access control is related to Ethernet networking.

Anonymous User June 08, 2005 (Article Rating: )


You said "If the client asked the SSL server to present a client certificate, the server presents it." Shouldn't the server be presenting a server ccertificate?

Anonymous User June 15, 2005 (Article Rating: )


You must log on before posting a comment.

If you don't have a username & password, please register now.




Top Viewed ArticlesView all articles
Home Tech? Work Tech? Increasingly, It's Just Tech

Paul discusses how the consumer market is influencing business technology in ways that are unprecedented. ...

No Jobs, No Excitement at Apple's Last Macworld Keynote

Apple CEO Steve Jobs made the right move in skipping out on his company's last appearance at Macworld: In a Tuesday keynote address at the conference, Apple had no interesting new products to sell, opting instead to spend mind-numbing amounts of time on ...

Xbox 360 Sales Hit 28 Million

Microsoft on Tuesday announced that sales of its Xbox 360 video game console hit 28 million units by the end of 2008, a year that the company described as the console's "biggest ever." Microsoft also made the dubious claim that it has "expanded the ...


Security Whitepapers The Impact of Messaging and Web Threats

Why SaaS is the Right Solution for Log Management

Protecting (You and) Your Data with Exchange Server 2007

Related Events Security Summit

How IE7 & The New Extended Validation SSL Certificates Impact Your Site

Top 10 Email Security Challenges and Solutions

Check out our list of Free Email Newsletters!

Security eBooks Spam Fighting and Email Security for the 21st Century

Understanding and Leveraging Code Signing Technologies

A Guide to Windows Certification and Public Keys

Related Security Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home Windows Excavator Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2009 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing