[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
3.5.2 Authentication
The key exchange algorithms of the TLS protocol offer authentication, which is a prerequisite for a secure connection. The available authentication methods in GnuTLS follow.
- Certificate authentication: Authenticated key exchange using public key infrastructure and certificates (X.509 or OpenPGP).
- SRP authentication: Authenticated key exchange using a password.
- PSK authentication: Authenticated key exchange using a pre-shared key.
- Anonymous authentication: Key exchange without peer authentication.
Key exchange | Description |
---|---|
RSA | The RSA algorithm is used to encrypt a key and send it to the peer. The certificate must allow the key to be used for encryption. |
RSA_EXPORT | The RSA algorithm is used to encrypt a key and send it to the peer. In the EXPORT algorithm, the server signs temporary RSA parameters of 512 bits — which are considered weak — and sends them to the client. |
DHE_RSA | The RSA algorithm is used to sign ephemeral Diffie-Hellman parameters which are sent to the peer. The key in the certificate must allow the key to be used for signing. Note that key exchange algorithms which use ephemeral Diffie-Hellman parameters, offer perfect forward secrecy. That means that even if the private key used for signing is compromised, it cannot be used to reveal past session data. |
ECDHE_RSA | The RSA algorithm is used to sign ephemeral elliptic curve Diffie-Hellman parameters which are sent to the peer. The key in the certificate must allow the key to be used for signing. It also offers perfect forward secrecy. That means that even if the private key used for signing is compromised, it cannot be used to reveal past session data. |
DHE_DSS | The DSA algorithm is used to sign ephemeral Diffie-Hellman parameters which are sent to the peer. The certificate must contain DSA parameters to use this key exchange algorithm. DSA is the algorithm of the Digital Signature Standard (DSS). |
ECDHE_ECDSA | The Elliptic curve DSA algorithm is used to sign ephemeral elliptic curve Diffie-Hellman parameters which are sent to the peer. The certificate must contain ECDSA parameters to use this key exchange algorithm. |
Table 3.4: Supported key exchange algorithms.
Each authentication method is associated with a key exchange method, shown in Table 3.4, and a credentials type. The contents of the credentials is method-dependent, e.g. certificates for certificate authentication and should be initialized and associated with a session (see gnutls_credentials_set). A mapping of the key exchange methods with the credential types is shown in Table 3.5.
Authentication method | Key exchange | Client credentials | Server credentials |
---|---|---|---|
Certificate | KX_RSA ,
KX_DHE_RSA ,
KX_DHE_DSS ,
KX_ECDHE_RSA ,
KX_ECDHE_ECDSA ,
KX_RSA_EXPORT | CRD_CERTIFICATE | CRD_CERTIFICATE |
Password and certificate | KX_SRP_RSA , KX_SRP_DSS | CRD_SRP | CRD_CERTIFICATE , CRD_SRP |
Password | KX_SRP | CRD_SRP | CRD_SRP |
Anonymous | KX_ANON_DH ,
KX_ANON_ECDH | CRD_ANON | CRD_ANON |
Pre-shared key | KX_PSK ,
KX_DHE_PSK , KX_ECDHE_PSK | CRD_PSK | CRD_PSK |
Table 3.5: Key exchange algorithms and the corresponding credential types.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on January 4, 2012 using texi2html 5.0.