['Set preference of client cipher suite order.']
['Prefer cipher suites with authenticated encryption (AE) attribute.']
['Always prefer cipher suites with PFS property over the non-PFS ones. Note that performance considerations ', 'implies preferring {kex_ecdh_ephemeral} over {kex_dh_ephemeral} and {attack_dheat} implies using {kex_dh_param}s ', 'with a size greater or equal than 2048 bits but less or equal than 4096 bits.']
["Remove any intermediate or backward compatible cipher suite to make possible preferring client's cipher ", 'suite order without any security consideration.']
['If your application or requirements specifically call for the use of a ', '{concept_message_authentication_code} that does not provide {concept_authenticated_encryption} prefer ', '{concept_block_cipher_mode} (eg: {block_cipher_mode_ccm}, {block_cipher_mode_gcm} or ', '{concept_message_authentication_code} (eg: {mac_poly1305}) that proved authenticated encryption over the ', 'ones which does not provide it.']
['If your application or requirements specifically call for the use of a ', '{concept_message_authentication_code} that does not provide {concept_authenticated_encryption} prefer ', '{concept_block_cipher_mode} (eg: {block_cipher_mode_ccm}, {block_cipher_mode_gcm} or ', '{concept_message_authentication_code} (eg: {mac_poly1305}) that proved authenticated encryption over the ', 'ones which does not provide it.']
['Prefer cipher suites with greater key size of AES (eg: perfer AES-256 over AES-128).']
['Prefer {concept_stream_cipher} {encryption_algorithm_chacha20} in case of mobile devices.']
['Remove the cipher suite from the list of cipher suites supported by your server.']
['Always prefer cipher suites with PFS property over the non-PFS ones. Note that performance ', 'considerations implies preferring {kex_ecdh_ephemeral} over {kex_dh_ephemeral}.']
['Always prefer cipher suites with FS property over the non-FS ones.']
['If your application or requirements specifically call for the use of a ', '{concept_message_authentication_code} that does not provide {concept_authenticated_encryption} prefer ', '{concept_block_cipher_mode} (eg: {block_cipher_mode_ccm}, {block_cipher_mode_gcm} or ', '{concept_message_authentication_code} (eg: {mac_poly1305}) that proved authenticated encryption over the ', 'ones which does not provide it. In case of a {concept_message_authentication_code_hash_based} prefer ', '{concept_message_authentication_code} based on {cryptographic_hash_function_sha2} over the ones based on ', '{cryptographic_hash_function_sha1}.']
['If your application or requirements specifically call for the use of a ', '{concept_message_authentication_code} that does not provide {concept_authenticated_encryption} prefer ', '{concept_block_cipher_mode} (eg: {block_cipher_mode_ccm}, {block_cipher_mode_gcm} or ', '{concept_message_authentication_code} (eg: {mac_poly1305}) that proved authenticated encryption over the ', 'ones which does not provide it. In case of a {concept_message_authentication_code_hash_based} prefer ', '{concept_message_authentication_code} based on {cryptographic_hash_function_sha2} over the ones based on ', '{cryptographic_hash_function_sha1}.']
| Grade | Order | Cipher suite name | Findings |
|---|---|---|---|
|
A
|
1 | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | |
|
A
|
2 | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | |
|
A
|
3 | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | |
|
A
|
4 | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | |
|
A
|
5 | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
| Grade | Order | Cipher suite name | Findings |
|---|---|---|---|
|
A
|
1 | TLS_AES_256_GCM_SHA384 | |
|
A
|
2 | TLS_CHACHA20_POLY1305_SHA256 | |
|
A
|
3 | TLS_AES_128_GCM_SHA256 | |
|
A
|
4 | TLS_AES_128_CCM_SHA256 |
['Add at least one elliptic curve to the list of elliptic curves supported by your server designed by ', 'independent researchers and prefer them as server configuration makes it possible.']
['Add at least one quantum-safe elliptic curve to the list of elliptic curves supported by your server and prefer ', 'them as server configuration makes it possible.']
['Use a {kex_dh_param_well_known}, or generate a custom {kex_dh_param} with a size greater or equal than 2048 bits but ', 'less or equal than 4096 bits. In the case of custom parameters, validate that the prime is a {concept_safe_prime} ', 'to avoid a {concept_attack_small_subgroup}.']
['Use a {kex_dh_param_well_known}, or generate a custom {kex_dh_param} with a size greater or equal than 2048 bits but ', 'less or equal than 4096 bits. In the case of custom parameters, validate that the prime is a {concept_safe_prime} ', 'to avoid a {concept_attack_small_subgroup}.']
| Grade | Name | Code | Key Size | Trusted Design | Post Quantum Safe | Findings |
|---|---|---|---|---|---|---|
|
A
|
secp384r1 | 0x0018 | 384 | No | No |
['Ensure that one of the values of the subject alternative names extension of the certificate provided by ', 'your server matches to the domain name. Consider the fact that old client (eg: browsers released before ', '2003) may not support{public_key_x509_extension_subject_alternative_names_criticism} the subject ', 'alternative names extension.']
['Consider using a {concept_certificate_authority} that supports {public_key_x509_revocation_ocsp} ', 'to enable {public_key_x509_revocation_ocsp_stapling}.']
['Take into consideration the advantages of a {public_key_x509_validation_domain} (eg: completely ', 'automated certificate {public_key_x509_renewal} process, possibly short validation period', '{public_key_x509_revocation_criticism}) over minor user experience improvement of an extended validation ', 'in certain client applications and the risk of a potential service outage caused by the manual ', 'certificate renewal{public_key_x509_validation_extended_criticism}.']
['Restore the certificate, provided by your server, to the latest one, if it is available and its validity ', 'period has not ended yet, or initiate {public_key_x509_renewal} process if its validity period has ended ', 'yet. If there no available certificate create a completely new one and get is signed with a certificate ', 'authority.']
['Always provide certificate by your server to use signature algorithms with hash functions that are ', 'strong just like SHA-2 signature algorithms.']
['Add the {cryptography_protocol_tls1_3} to the list of TLS versions accepted by your server.']
| Grade | Enabled Protocol | Findings |
|---|---|---|
|
A+
|
TLS 1.3 | |
|
A+
|
TLS 1.2 |