← Back to scanner

How the score works

A 0–100 readiness score built from five checks of a server's TLS configuration. It is a heuristic indicator informed by NIST, IETF and NSA guidance – not a compliance assessment. The weights and points are this tool's own judgement; no standard defines a numeric PQC score.

1. Each check earns points

PASS100% of the check's weight
WARN40% – usable today, but needs a migration plan
FAIL0% – exposed to a quantum attack
UNKNOWNNot scored – the check couldn't be completed (see section 4)

2. Checks and weights

CheckWeightWhy it mattersStandards basisRating
Key exchange40Protects today's traffic against 'harvest now, decrypt later'. The most urgent PQC risk.FIPS 203 (ML-KEM) via the IETF hybrid TLS groups (Internet-Draft).PASS Server accepts a hybrid ML-KEM group (e.g. X25519MLKEM768).
WARN Only the pre-standard X25519Kyber768Draft00 group (legacy).
FAIL Classical key exchange only, or TLS older than 1.3.
TLS version10Hybrid PQC groups only exist in TLS 1.3.Hybrid PQC groups are only defined for TLS 1.3.PASS TLS 1.3
WARN TLS 1.2
FAIL TLS 1.1 or older
Certificate key25Proves the server's identity. RSA/ECDSA can be broken by Shor's algorithm.NIST IR 8547 (draft): classical public-key deprecated after 2030, disallowed after 2035. Target: FIPS 204 / 205.PASS Post-quantum key type (ML-DSA or SLH-DSA).
WARN RSA, DSA, ECDSA, Ed25519 or Ed448 (all classical).
FAIL -
Signature10How the certificate was signed. Same quantum weakness as the certificate key.Same as certificate key (NIST IR 8547 draft).PASS Post-quantum signature (ML-DSA or SLH-DSA).
WARN Any classical signature.
FAIL -
Cipher suite15Bulk encryption. Symmetric crypto is only weakened by Grover's algorithm (halves key strength).NSA CNSA 2.0 requires AES-256. NIST accepts AES-128, so this rating is the stricter reading.PASS 256-bit key (AES-256, ChaCha20).
WARN 128-bit key (AES-128).
FAIL Less than 128-bit effective key (e.g. 3DES, RC4).

3. The formula

score = Σ (weight × points) ÷ Σ weights of scored checks × 100

Example: PQC key exchange, TLS 1.3, ECDSA certificate and signature, AES-256 gives 40×1 + 10×1 + 25×0.4 + 10×0.4 + 15×1 = 79.

Why the ceiling today is 79, not 100: public CAs don't yet issue post-quantum certificates, so the certificate key and signature can currently reach WARN at best. A score of 79 means "everything that can be post-quantum today, is".

Colours: green ≥ 75, amber 40–74, red < 40.

4. Incomplete results

If a check can't be completed (typically the key-exchange probe, when a firewall or rate limit stops the server answering), it is marked UNKNOWN and no score is given. The card shows Incomplete with the score of the remaining checks for reference, and the JSON export has score: null, partial_score and complete: false. Probes that time out or error are retried automatically; a verdict of FAIL needs an explicit rejection from the server, so silence or a bare connection close is reported as UNKNOWN rather than FAIL. Re-scan, or test from another network.

5. How key exchange is tested

The scanner sends a minimal TLS 1.3 ClientHello offering a single hybrid group (X25519MLKEM768, SecP256r1MLKEM768, SecP384r1MLKEM1024 and the pre-standard X25519Kyber768Draft00, which only earns a WARN) with no key share. A server that supports the group must reply with a HelloRetryRequest naming it; others send an alert. No real key exchange happens and no data is sent. A classical control probe confirms the server speaks TLS 1.3 at all.

6. What the score does not cover

Only the endpoint you scan. A CDN or proxy answers on behalf of the origin, so the hop behind it may differ. It also doesn't show that every client negotiates PQC – only that the server supports it. Certificate trust is deliberately not assessed: the chain, hostname match and revocation are not checked, so this is not a certificate health check (the expiry date is shown for information only). Other protocols (SSH, VPN, email) and data at rest are out of scope.

7. Standards and references

StandardStatusHow it is used
NIST FIPS 203 – ML-KEMFinal (Aug 2024)Algorithm behind the hybrid key-exchange groups the scanner looks for.source
NIST FIPS 204 – ML-DSAFinal (Aug 2024)Target for post-quantum certificate keys and signatures.source
NIST FIPS 205 – SLH-DSAFinal (Aug 2024)Alternative post-quantum signature scheme for migration planning.source
IETF draft-ietf-tls-ecdhe-mlkemInternet-Draft (rev. 05, May 2026) – not yet an RFCDefines X25519MLKEM768, SecP256r1MLKEM768 and SecP384r1MLKEM1024 for TLS 1.3. These are the groups probed.source
X25519Kyber768Draft00Pre-standard, being retiredEarly Kyber-based hybrid. Not ML-KEM; the IETF draft obsoletes its registry code points. Scored as legacy (WARN).–
NIST IR 8547Initial public draft (Nov 2024); dates proposedProposes deprecating RSA, ECDSA and ECDH after 2030 and disallowing them after 2035. Basis for the WARN on classical certificates.source
NSA CNSA 2.0Published guidanceCalls for AES-256 and ML-KEM-1024 / ML-DSA-87 in national security systems. Basis for treating AES-128 as WARN; NIST itself is more lenient.–

Statuses last reviewed October 2026; drafts change – verify at the source before citing. Not standardised: the weights, the 40% credit for WARN, and the score bands.

8. Service limits

Ports: 443, 8443. Up to 10 targets per request. Results are cached for 60s and requests are rate limited. Only scan hosts you are authorised to test; see the acceptable-use policy shipped with this service.