コンテンツへスキップ
🛠️ToolsShed

DNS Security Reference

レコードタイプ、攻撃、DoH対DoT比較を含むDNSSECとDNSセキュリティベストプラクティスの包括的なリファレンスです。

DnsSecurityReference.dnssecTitle

DnsSecurityReference.dnssecDesc

DNSKEY

Contains the public key used to verify signatures in the zone.

RRSIG

Resource Record Signature — cryptographic signature over a DNS record set.

DS

Delegation Signer — links a child zone's DNSKEY to the parent zone.

NSEC

Next Secure — proves non-existence of a DNS record (authenticated denial).

NSEC3

Hashed version of NSEC — prevents zone walking by hashing owner names.

CDS

Child DS — child zone signals key changes to parent for automated rollover.

このツールについて

DNS(ドメインネームシステム)はインターネットのアドレス帳で、人間が読める形のドメイン名をIPアドレスに変換します—ただし従来のDNSは暗号化されていないため、スプーフィング、キャッシュポイズニング、中間者攻撃の脆弱性があり、悪意あるウェブサイトへのリダイレクションが可能です。DNSSEC(DNS Security Extensions)はDNS応答に暗号化認証を追加することでこれを解決し、レコードが改ざんされていないことを保証しますが、HTTPS経由DNS(DoH)とTLS経由DNS(DoT)はクエリを暗号化して盗聴と追跡を防ぎます。これらの技術を理解することは、システム管理者、開発者、セキュリティプロフェッショナル、およびDNSトラフィックを監視または攻撃から保護することに関心のある誰もが必須です。

このDNSセキュリティリファレンスツールは、DNSSECレコードタイプ(DNSKEY、RRSIG、DS、NSEC/NSEC3)、一般的なDNS攻撃(スプーフィング、DDoS増幅、ハイジャック、NXDOMAIN攻撃)、およびDNS暗号化プロトコル間の詳細な比較(特にDoH(ポート443、ウェブトラフィックと区別不可)とDoT(ポート853、企業ネットワークでの監視が容易)のプライバシーと実装上の違い)に関する包括的なドキュメンテーションを提供します。ドメインのDNSSECを構成するか、組織向けのDoHとDoTを選択するか、DNSセキュリティのベストプラクティスを学んでいるかに関わらず、このツールは分散知識を1つの検索可能なリファレンスに統合します。

このツールは、DNSSEC(DNSプロバイダーのサポートとレジストラのDS記録設定が必要)を有効にしているドメイン管理者、インフラストラクチャ用の暗号化DNS認識を設計しているネットワークエンジニア、DNSポリシーを監査しているセキュリティプラクティショナー、およびDNSSEC対応アプリケーションまたは安全なDNSクライアントを構築している開発者に理想的です。長期データ保護の場合、このようなブラウザベースのリファレンスは、dnsviz.netやdigコマンドラインユーティリティなどのツールを使った実践的なテストと組み合わせて最も有用です。

よくある質問

コード実装

import subprocess

# Query DNSSEC records using dig
def check_dnssec(domain: str) -> None:
    print(f"Checking DNSSEC for: {domain}")

    # Check DNSKEY record
    result = subprocess.run(
        ["dig", "+dnssec", "DNSKEY", domain],
        capture_output=True, text=True
    )
    if "DNSKEY" in result.stdout:
        print(f"  ✓ DNSKEY record found")
    else:
        print(f"  ✗ No DNSKEY record")

    # Check DS record at parent
    result = subprocess.run(
        ["dig", "+dnssec", "DS", domain],
        capture_output=True, text=True
    )
    if "DS" in result.stdout:
        print(f"  ✓ DS record found (DNSSEC enabled)")
    else:
        print(f"  ✗ No DS record (DNSSEC not fully configured)")

    # Check RRSIG
    result = subprocess.run(
        ["dig", "+dnssec", "A", domain],
        capture_output=True, text=True
    )
    if "RRSIG" in result.stdout:
        print(f"  ✓ RRSIG present (records are signed)")
    else:
        print(f"  ✗ No RRSIG (records not signed)")

check_dnssec("cloudflare.com")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.