Lecture 13. WWW Security


13.1 Protecting confidential documents at servers (access restriction)

13.2 Communications Security

Communications Security is to protect the communications links between the user and the site. An aggressive cracker can sniff passwords, credit card numbers, and other confidential information directly from the Internet. A protection against this attack is encryption.
 

Secure Socket Layer (SSL)

SSL (Secure Socket Layer) is the scheme proposed by Netscape Communications Corporation. It is a low level encryption scheme used to encrypt transactions in
higher-level protocols such as HTTP, NNTP and FTP. The SSL protocol includes provisions for server authentication (verifying the server's identity to the client),
encryption of data in transit, and optional client authentication (verifying the client's identity to the server).

When a client makes a request for secure communications to a secure server, the server opens an encrypted port. The SSL Handshake Protocol on the server arranges authentication and encryption details with the client using public-key encryption. Using public-key encryption, the client and server exchange information about which cipher methods each understands. They agree on a one-time key to be used for the current transmission. The server might also send a certificate to prove its own identity.

In the Netscape browser, a key in the lower-left corner of the window shows whether a session is encrypted or not. A broken key indicates a non-secure session. A key with one tooth shows that the session is running on a 40-bit key. A key with two teeth shows that a 128-bit key is in use.
 

Secure HTTP (S-HTTP)

A competing standard to SSL is Secure HTTP (S-HTTP) from Enterprise Integration Technologies. Like SSL, S-HTTP allows for both encryption and digital authentication. Unlike SSL, though, S-HTTP is an application-level protocol-it makes extensions to HTTP.

The S-HTTP proposal suggests a new document suffix, .shttp, and the following new protocol:

Secure * Secure-HTTP/1.1.
Using GET, a client requests a secure document, tells the server what kind of encryption it can handle, and tells the server where to find its public key. If the user who matches that key is authorized to GET the document, the server responds by encrypting the document and sending it back-the client then uses its secret key to decrypt the message and display it to the user.

One of the encryption methods available with S-HTTP is PGP.

One good use of PGP, apart from S-HTTP, is in dealing with information after a user has sent it to the server.


13.3 Site Security