There's a large list of ciphersuites inside SSL / TLS. It seems like that these ciphersuites can be categorized in terms of their underlying mechanism with following categories:
- RSA Key Exchange (e.g.
TLS-RSA-WITH-AES-128-CBC-SHA256
) - RSA with Ephermal Diffie Hellman (DHE-RSA) Key Exchange (e.g.
TLS-DHE-RSA-WITH-AES-128-CCM
) - RSA with Elliptic Curve Ephermal Diffie Hellman (ECDHE-RSA) Key Exchange (e.g.
TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA
) - RSA with Elliptic Curve Diffie Hellman (ECDH-RSA) Key Exchange (e.g.
TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256
) - ECDSA with Elliptic Curve Ephermal Diffie Hellman (ECDHE-ECDSA) Key Exchange (e.g.
TLS-ECDHE-ECDSA-WITH-NULL-SHA
) - Pre Shared Key (PSK) Key Exchange (e.g.
TLS-PSK-WITH-RC4-128-SHA
) - Pre Shared Key with Diffie Hellman (DHE-PSK) Key Exchange (
TLS-DHE-PSK-WITH-AES-256-CBC-SHA384
) - Pre Shared Key with Elliptic Curve Ephermal Diffie Hellman (ECDHE-PSK) Key Exchange (e.g.
TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384
) - Pre Shared Key with RSA (RSA-PSK) Key Exchange (e.g.
TLS-RSA-PSK-WITH-AES-128-CBC-SHA256
)
I'm looking for an answer that gives a short summary of the category, what kind of public / private keys are used for key exchange and signatures and where to "find" these keys (e.g. inside server's certificate), what kind of cipher is used for confidentiality and eventually how data is authenticated. It would be nice if the answer could use the example ciphersuite given for that category.