標準の DNS には、応答が本当にそのドメインの権威サーバーから来たものかを検証する仕組みがありません。攻撃者は偽の回答を返せますが、リゾルバー側ではそれを検出できません。
DNSSEC ↗ は、DNS レコードに暗号署名を付けることでこの問題を解決します。ドメイン所有者は秘密鍵で DNS レコードに署名し、1.1.1.1 のようなリゾルバーは対応する公開鍵でその署名を検証します。これにより、応答が真正であり、転送中に改ざんされていないことが証明されます。
DNSSEC は、検証に必要な公開鍵を配布するために、次の 2 種類の DNS レコードを使います。
- DNSKEY レコードには、ドメインの公開署名鍵が含まれます。
- DS (Delegation Signer) レコードは、子ゾーンの鍵を親ゾーンに結び付け、信頼チェーンを作ります。
リゾルバーは、これらの鍵を使って RRSIG レコード ↗ に格納された署名を検証します。
1.1.1.1 は、次の DNSSEC 署名アルゴリズムに対応しています。
- RSA/SHA-1
- RSA/SHA-256
- RSA/SHA-512
- RSASHA1-NSEC3-SHA1
- ECDSA Curve P-256 with SHA-256 (ECDSAP256SHA256)
- ECDSA Curve P-384 with SHA-384 (ECDSAP384SHA384)
- ED25519