T4
Scoring Strategy
As with ITEF and NIST standards, TrustFour follows the convention in other normative documents for the verbs “shall”, “shall not”, “should”, “should not” and “may” which are a subset of the IETF Request for Comments (RFC) 2119 key words (RFC 2119).
Server & Domain Rating
Rating | score | Red Amber Green (RAG) Status |
A + | 99 – 100 | Green |
A | 95 – 98 | Green |
A- | 90 – 94 | Green |
B | 80 – 89 | Amber |
C | 70 – 79 | Amber |
D | 60 – 69 | Amber |
E | 50 – 59 | Amber |
F | 0 – 49 | Red |
If critical vulnerabilities are detected, the score is downgraded to F.
Interpretation of the verbs is as below
verb | Implies | score |
shall | must do |
compliance → 1 non compliance → 0 |
shall not | must not do |
compliance → 1 non compliance → 0 |
should | recommended |
compliance → 1 non compliance → 0 |
should not | not recommended |
compliance → 1 non compliance → 0 |
may | optional |
compliance → no scoring non compliance → 0 If implemented and non-compliant, scored as a 0. If not implemented, not included in the overall score. |
There are two categories: Server Certificate and TLS Handshake. The Server Certificate is common for all TLS Versions while TLS Handshake parameters will differ from one TLS Version to another.
Server Certificate Compliance
Server Certificate Param | Mandatory | Verb | |
1 | Public Cert Auth Info | yes | Should |
2 | Public Cert Auth Key Identifier | yes | Should |
3 | Public Cert Expiry Date | yes | Should |
4 | Public Cert Extended Key Usage | yes | Should |
5 | Public Cert Issuer DN | yes | Should |
6 | Public Cert Issuer Signature Algorithm | yes | Shall |
7 | Public Cert Key Length | yes | Shall |
8 | Public Cert Key Usage | yes | Should |
9 | Public Cert SAN Entries | yes | Should |
10 | Public Cert Signature Algorithm | yes | Should |
11 | Public Cert Sub Key Identifier | yes | Should |
12 | Public Cert Subject DN | yes | Should |
13 | Public Cert Subject DN CN | yes | Shall |
14 | Public Cert Type | yes | Shall |
15 | Public Cert Version (X509 Version) | yes | Shall |
16 | ECDSA Public Key Curve | yes ( only for ECDSA cert type ) | Should |
TLS 1.3 Handshake Compliance
TLS Handshake Param | Mandatory | Verb | |
1 | Supported Cipher Suites | yes | Shall |
2 | Server Name Indication Extension Support | yes | Shall |
3 | Signature Algorithms Extension Support | yes | Shall |
4 | Certificate Status Request Extension Support | yes | Shall |
5 | Supported Groups Extension Support | yes | Shall |
6 | Key Share Extension Support | yes | Shall |
7 | Supported Versions Extension Support | yes | Shall |
8 | Signed Certificate Timestamps Extension Support | yes | Should |
9 | Early Data Indication Extension Support | yes | Should Not |
10 | Cookie Extension Support | no | May (Scored if implemented) |
TLS 1.2
TLS Handshake Param | Mandatory | Verb | |
1 | Renegotiation Indication Extension Support | yes | Shall |
2 | Supported Cipher Suites | yes | Shall |
3 | Server Name Indication Extension Support | yes | Shall |
4 | Extended Master Secret Extension Support | yes | Shall |
5 | Signature Algorithms Extension Support | yes | Shall |
6 | Certificate Status Request Extension Support | yes | Shall |
7 | Fallback Signaling Cipher Suite Value Support | yes | Shall |
8 | Supported Groups Extension Support | yes | Shall |
9 | Supported Point Formats Extension Support | yes | Shall |
10 | Encrypt-then-MAC Extension Support | yes | Shall |
11 | Signed Certificate Timestamps Extension Support | yes | Should |
TLS 1.1 & TLS 1.0
TLS Handshake Param | Mandatory | Verb | |
1 | Renegotiation Indication Extension Support | yes | Shall |
2 | Server Name Indication Extension Support | yes | Shall |
3 | Extended Master Secret Extension Support | yes | Shall |
4 | Certificate Status Request Extension Support | yes | Shall |
5 | Fallback Signaling Cipher Suite Value Support | yes | Shall |
6 | Supported Groups Extension Support | yes | Shall |
7 | Supported Point Formats Extension Support | yes | Shall |
8 | Encrypt-then-MAC Extension Support | yes | Shall |
9 | Signed Certificate Timestamps Extension Support | yes | Should |
10 | Supported Cipher Suites | yes | Shall |
T4
Calculation of Key Strength
Key exchange aspect | Score |
Weak key (Debian OpenSSL flaw) | 0% |
Anonymous key exchange (no authentication) | 0% |
Key or DH parameter strength < 512 bits | 20% |
Exportable key exchange (limited to 512 bits) | 40% |
Key or DH parameter strength < 1024 bits (e.g., 512) | 40% |
Key or DH parameter strength < 2048 bits (e.g., 1024) | 80% |
Key or DH parameter strength < 4096 bits (e.g., 2048) | 90% |
Key or DH parameter strength >= 4096 bits (e.g., 4096) | 100% |
Calculation of Cipher Strength
Cipher strength | Score |
0 bits (no encryption) | 0% |
< 128 bits (e.g., 40, 56) | 20% |
< 256 bits (e.g., 128, 168) | 80% |
>= 256 bits (e.g., 256) | 100% |
Scoring Notes
- If Server supports TLS 1.1 – reduce 1 point in TLS Handshake score of the server
- If Server supports TLS 1.0 – reduce 1 point in TLS Handshake score of the server
- If cipher suite of type TLS_AKE_WITH* is encountered (e.g. TLS_AKE_WITH_AES_128_GCM_SHA256) analyze as if TLS_AES_128_GCM_SHA256. Some implementations define these cipher suites with a non-standard naming convention.
T4
Scoring Example
This example is a domain that has only one server supporting TLS 1.3 and TLS 1.2. The score is calculated for each TLS version and then averaged for an overall score.
TLS 1.3
Category | Score | Total Score | Score % |
TLS Handshake | 7 | 9 | 77.78 % |
Certificate | 13 | 15 | 86.67 % |
Cipher Strength | 90% | ||
Key Strength | 90% |
TLS 1.3 Score : Avg of all 4 scores = (77.78 + 86.67+ 90 + 90)/4 = 86.11 %
TLS 1.2
Category |
Score |
Total Score |
Score % |
TLS Handshake |
9 |
11 |
81.81 % |
Certificate |
13 |
15 |
86.67 % |
Cipher Strength |
90 % |
||
Key Strength |
90 % |
TLS 1.2 Score : Avg of all 4 scores = (81.81+ 86.67 + 90 + 90)/4 = 87.12 %
For the overall domain score, we combine scores of all versions of TLS found. In this case only TLS 1.3 and TLS 1.2 were found.
Overall Domain Score
Category | Score |
TLS Handshake | 16/21 (76.19 %) |
Certificate | 26/30 ( 86.67 %) |
Cipher Strength | 90% |
Key Strength | 90% |
Overall score = Average of the 4 sub-scores = ( 76.19 + 86.67 + 90 + 90 )/4 = 85.71 %, Rating B