Network security module 1
Network security module 1
Web Security
Web Security
• Web security considerations
• Secure Sockets Layer
• Transport Layer Security
• HTTPS
• Secure Shell
Secure socket layer (SSL) provides security services between TCP and
applications that use TCP. The Internet standard version is called transport
layer service (TLS).
Connection
1. Session identifier
2. Peer certificate
3. Compression method
4. Cipher spec
5. Master secret
6. Is resumable
12
Monday, November 25, 2019
Block Cipher Stream Cipher
Algorithm Key Size Algorithm Key Size
AES 128,256 RC4-40 40
IDEA 128 RC4-128 128
RC2-40 40
DES-40 40
DES 56
3DES 168
Fortezza 80
•Type (1 byte): Indicates one of 10 messages. Table lists the defined message
types.
•Content ( 0 bytes): The parameters associated with this message; these are
listed in Table.
PHASES
Phase 1. Establish Security Capabilities
Phase 2. Server Authentication and Key Exchange
Phase 3. Client Authentication and Key Exchange
Phase 4. Finish
RSA key exchange, in which the server is using RSA but has a signature-only RSA
key: Accordingly, the client cannot simply send a secret key encrypted with the
server's public key. Instead, the server must create a temporary RSA public/private
key pair and use the server_key_exchange message to send the public key. The
message content includes the two parameters of the temporary RSA public key
(exponent and modulus) plus a signature of those parameters.
Fortezza
RSA: The client generates a 48-byte pre-master secret and encrypts with the public key
from the server's certificate or temporary RSA key from a server_key_exchange message.
Its use to compute a master secret is explained later.
Ephemeral or Anonymous Diffie-Hellman: The client's public Diffie-Hellman parameters
are sent.
Fixed Diffie-Hellman: The client's public Diffie-Hellman parameters were sent in a
certificate message, so the content of this message is null.
Fortezza: The client's Fortezza parameters are sent.
Alert Protocol
unexpected_message bad_record_mac
decompression_failure handshake_failure
illegal_parameter close_notify
no_certificate bad_certificate
unsupported_certificate certificate_revoked
certificate_expired certificate_unknown
HMAC_hash(MAC_write_secret, seq_num ||
TLSCompressed.type || TLSCompressed.version
|| TLSCompressed.length ||
TLSCompressed.fragment)
Pseudorandom Function
P_hash(secret, seed) = HMAC_hash(secret, A(1) || seed)
|| HMAC_hash(secret, A(2) || seed)
|| HMAC_hash(secret, A(3) || seed) || ...
where A() is defined as
A(0) = seed
A(i) = HMAC_hash (secret, A(i - 1))