Domain Armor
Home

Methodology

Current scoring method: version 2.

What is read

Only public information: DNS records from public resolvers (DNS over HTTPS), Certificate Transparency logs, and ordinary GET requests for the homepage over HTTPS and HTTP. Nothing is logged in to, submitted, scanned for ports or modified. This is not penetration testing and not application assurance: it says nothing about the application's code, servers, accounts or data.

Optionally, only when someone clicks "Check agent access" on a result, up to 3 more GET requests are made, one at a time: /robots.txt, /llms.txt, /.well-known/security.txt. See "Agent access & discovery signals" below.

Checks and weights

Category weights (sum 100):

CheckIDWeight
Email security · 30
SPF — who may send mail for the domainspf10
DMARC — anti-spoofing policydmarc15
DKIM — digital signature on emaildkim5
MX — inbound mail routingmx0 (informational)
Encryption & certificate · 25
HTTPS availablehttps10
HTTP → HTTPS redirectredirect7
SSL/TLS certificate validitycert8
Browser protections · 30
HSTS — enforce encryption in the browserhsts8
CSP — protection from script injectioncsp8
Clickjacking protectionclickjacking5
X-Content-Type-Optionsxcto4
Referrer-Policyreferrer3
Permissions-Policypermissions2
Software version disclosureleakage0 (informational)
DNS infrastructure · 15
DNSSEC — signed DNS recordsdnssec7
CAA — who may issue certificatescaa5
DNS server redundancyns3

Check states

How the score is calculated

Score = points earned on assessed checks ÷ total weight of assessed checks × 100, rounded. Coverage = assessed weight ÷ eligible weight (eligible = all weights minus not-applicable checks). If nothing can be assessed, there is no score or grade. A confirmed critical finding backed by public evidence caps the score at 69; unverified checks never trigger the cap. Scores from different method versions, or with different sets of assessed checks, are not compared directly.

Grades: A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, F ≥ 0.

DKIM

DKIM keys live under selector names that can't be listed from public DNS. Common selectors are tried (google, selector1, selector2, default, k1, s1, s2, dkim, mail, smtp). If none are found, DKIM stays unverified — that is not evidence that DKIM is missing.

HSTS

Strict-Transport-Security helps browsers use HTTPS on future visits after they have received the policy. It does not protect the very first visit unless the domain is on a browser preload list.

Agent access & discovery signals (optional, unscored)

A separate section on the results page, run only on request. It never changes the score or grade and has no readiness percentage. It requests at most 3 public files (/robots.txt, /llms.txt, /.well-known/security.txt) sequentially over HTTPS with a self-identifying user agent (no crawler impersonation), at most 3 redirects (each hop re-checked against private and reserved addresses), a 5-second limit and size limits of 512 KiB (robots.txt), 256 KiB (llms.txt) and 32 KiB (security.txt). Results are cached for 24 hours. File content is treated as data, never as instructions. Rate-limit and CDN hints reuse the homepage response headers already fetched.

What a grade is not

A grade is a snapshot of public configuration at the scan time. A good grade is not a certification, an audit result or a security guarantee, and compliance tags are indicative only.

For developers and AI assistants