The Full Wiki

Cipher suite: Wikis

Advertisements

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

From Wikipedia, the free encyclopedia

A cipher suite, sometimes referred to as CipherSuite, is a named combination of authentication, encryption, and message authentication code (MAC) algorithms used to negotiate the security settings for a network connection using the Transport Layer Security (TLS) or Secure Sockets Layer (SSL) network protocol.

The structure and use of the cipher suite concept is defined in the documents that define the protocol (RFC 5246 standard for TLS version 1.2). A reference for named cipher suites is provided in RFC 2434, the TLS Cipher Suite Registry.

Contents

Use

When a TLS connection is established, a handshaking, known as the TLS Handshake Protocol, occurs. Within this handshake, a client hello (ClientHello) and a server hello (ServerHello) message is passed.(RFC 5246, p. 37) First, the client sends a cipher suite list, a list of the cipher suites that it supports, in order of preference. Then the server replies with the cipher suite that it has selected from the client cipher suite list.(RFC 5246, p. 40)

Detailed description

Each named cipher suite defines a key exchange algorithm, a bulk encryption algorithm, a message authentication code (MAC) algorithm, and a pseudorandom function (PRF).(RFC 5246, p. 40)

  • The Key exchange algorithm is used to determine if and how the client and server will authenticate during the handshake.(RFC 5246, p. 47).
  • The bulk encryption algorithm is used to encrypt the message stream. The also includes the key size and the lengths of explicit and implicit initialization vectors (cryptographic nonces).(RFC 5246, p. 17)
  • The message authentication code (MAC) algorithm is used to create the message digest, a cryptographic hash of each block of the message stream.(RFC 5246, p. 17)
  • The Pseudorandom function (PRF) is used to create the master secret, A 48-byte secret shared between the two peers in the connection. The master secret is used as a source of entropy when creating session keys, such as the one used to create the MAC.(RFC 5246, p. 16-17, 26)

[1][2]

Advertisements

Examples of algorithms used

key exchange
RSA, Diffie-Hellman, ECDH, SRP, PSK
authentication
RSA, DSA, ECDSA
bulk ciphers
RC4, Triple DES, AES, IDEA, DES, or Camellia. In older versions of SSL, RC2 was also used.
Message Authentication Code (MAC)
for TLS, a Hash-based Message Authentication Code using MD5 or one of the SHA hash functions is used. For SSL, SHA, MD5, MD4, and MD2 are used.

Programming references

Programatically, a cipher suite is referred to as:

CipherSuite cipher_suites
a list of the cryptographic options supported by the client (RFC 5246, p. 41)
CipherSuite cipher_suite
the cipher suite selected by the server and revealed in the ServerHello message (RFC 5246, p. 42-43, 64)

References

RFC 5246 standard for TLS version 1.2
RFC 2434 TLS Cipher Suite Registry

A cipher suite, sometimes referred to as CipherSuite, is a named combination of authentication, encryption, and message authentication code (MAC) algorithms used to negotiate the security settings for a network connection using the Transport Layer Security (TLS) or Secure Sockets Layer (SSL) network protocol.

The structure and use of the cipher suite concept is defined in the documents that define the protocol (RFC 5246 standard for TLS version 1.2). A reference for named cipher suites is provided in RFC 2434, the TLS Cipher Suite Registry.

Contents

Use

When a TLS connection is established, a handshaking, known as the TLS Handshake Protocol, occurs. Within this handshake, a client hello (ClientHello) and a server hello (ServerHello) message is passed. (RFC 5246, p. 37) First, the client sends a cipher suite list, a list of the cipher suites that it supports, in order of preference. Then the server replies with the cipher suite that it has selected from the client cipher suite list. (RFC 5246, p. 40)

Detailed description

Each named cipher suite defines a key exchange algorithm, a bulk encryption algorithm, a message authentication code (MAC) algorithm, and a pseudorandom function (PRF). (RFC 5246, p. 40)

  • The key exchange algorithm is used to determine if and how the client and server will authenticate during the handshake. (RFC 5246, p. 47).
  • The bulk encryption algorithm is used to encrypt the message stream. It also includes the key size and the lengths of explicit and implicit initialization vectors (cryptographic nonces). (RFC 5246, p. 17)
  • The message authentication code (MAC) algorithm is used to create the message digest, a cryptographic hash of each block of the message stream. (RFC 5246, p. 17)
  • The pseudorandom function (PRF) is used to create the master secret, a 48-byte secret shared between the two peers in the connection. The master secret is used as a source of entropy when creating session keys, such as the one used to create the MAC. (RFC 5246, p. 16-17, 26)

[1][2]

Examples of algorithms used

key exchange
RSA, Diffie-Hellman, ECDH, SRP, PSK
authentication
RSA, DSA, ECDSA
bulk ciphers
RC4, Triple DES, AES, IDEA, DES, or Camellia. In older versions of SSL, RC2 was also used.
message authentication
for TLS, a Hash-based Message Authentication Code using MD5 or one of the SHA hash functions is used. For SSL, SHA, MD5, MD4, and MD2 are used.

Programming references

Programatically, a cipher suite is referred to as:

CipherSuite cipher_suites
a list of the cryptographic options supported by the client (RFC 5246, p. 41)
CipherSuite cipher_suite
the cipher suite selected by the server and revealed in the ServerHello message (RFC 5246, p. 42-43, 64)

References

RFC 5246 standard for TLS version 1.2
RFC 2434 TLS Cipher Suite Registry

Advertisements






Got something to say? Make a comment.
Your name
Your email address
Message