各DNSSECアルゴリズムの使用状況 -OCTO-033の紹介-
dom_gov_team ICANN技術政策文書 インターネットガバナンス インターネットの技術 ドメイン名前回に引き続き、ICANNが公開している技術政策文書シリーズの中からOCTO-033 DNSSEC Algorythm Use in 2022を紹介します。
OCTO-033はICANNのOCTOから公開されている文書で、2022年時点でのインターネット上のDNSSEC環境で、どのような署名アルゴリズムや鍵長の鍵が使われているかを調査しています。
DNSSECと使用される鍵(KSK・ZSK)の種類や役割については前回の記事で解説していますので、そちらもあわせてご参照ください。
調査手法
調査にあたっては、実際にDNSSEC署名を行っているゾーンのDNSKEY RRを確認することで使用している署名アルゴリズムや鍵長、その他の特徴を確認しています。しかし、DNSの仕組み上、すべてのゾーンを網羅することはできないため、次の五つの情報源から取得したドメイン名について調査を行っています。
- すべてのgTLDゾーンで、DS RRが登録され委任されているドメイン名
※似たようなデータソースとしてICANNのCentralized Zone Data Service (CZDS)を使うことができます。 - ccTLDゾーンのうち公開されている4つのゾーン(.se, .nu, .ch, .li)で、DS RRが登録され委任されているドメイン名
- 約750のWikipediaサイトに掲載されているドメイン名
※Wikipediaを用いたドメイン名の収集についてはOCTO-023にて紹介されています。 - Trancoトップサイトリストデータベース
- Common Crawlから上位5000万のドメイン名
これらから約1870万のDNSKEY RRを収集しています。ただし、これらはあくまでDNS上に存在するDNSKEY RRの一部に過ぎず、例えばDNSSEC and DANE Deployment Statisticsなど他の研究では異なる手法を使ってDNSKEY RRを収集しています。
結果
署名アルゴリズム
DNSKEY RRで使用されている主要な署名アルゴリズムとその割合は以下のようになりました。[1]
暗号アルゴリズム |
割合 |
RSA-SHA256 |
65.2% |
ECDSA-P256-SHA256 |
30.5% |
RSA-SHA1 |
2.0% |
RSA-SHA512 |
1.1% |
RSASHA1-NSEC3-SHA1 |
0.8% |
ECDSA-P384-SHA384 |
0.4% |
EdDSAやGOSTなど他の署名アルゴリズムは0.1%以下となりました。
鍵長
その中でも、RSA暗号を使用した署名アルゴリズムのDNSKEY RRについては、使用している鍵の鍵長についても調査が行われました。
鍵長 (bits) |
割合 |
512 |
0.1% |
1024 |
45.1% |
1280 |
0.1% |
2048 |
51.4% |
4096 |
0.7% |
上記の他にも1536 bitsや3072 bitsの鍵なども0.1%以下の割合で観測されました。
DNSKEY RRのフラグを見るとおよそ半数のDNSKEY RRがKSKとして使用され、残りの半数がZSKとして使用されています。KSKとZSKでは、RSA暗号を使用した署名アルゴリズムで使う鍵の鍵長の傾向に大きな差がありました。
|
1024 bits |
2048 bits |
4096 bits |
KSK |
0.2% |
98.6% |
1.0% |
ZSK |
82.7% |
11.9% |
0.4% |
KSKではより長い2048 bitsの鍵が使われていることが多いのに対し、ZSKではより短い1024 bitsの鍵が使われていることが多いことが分かります。[2]
その他の観測
今回の調査中に、署名検証の阻害や入力ミスなどによりスプーフィングされる危険性のあるケースが発見されました。
例えば、鍵長768 bits以下のRSA鍵が脆弱であることは過去10年以上にわたり明白であるとされてきたのに対し、0.1%ほどものケースでそのような鍵長の鍵が使用されていることです。
また、公開鍵が利用できないようなエラーが発生しているケースもありました。例えば、約2.6%のRSA鍵はASCII文字を含むと思われる600 bitsの指数(exponent)を含んでおり、このような鍵を使った署名検証はやっかいです。他にも、僅かですが無意味なアルゴリズムフラグが設定されている鍵もありました。
あるいは、危険性はないもののミスによる設定だと推測できるものとしては、RSAの指数として広く使われている65537の代わりに65337が用いられているケースもありました。
まとめ
今回の調査では単純に観測結果を並べたのみに留まっており、詳細な分析はされませんでした。また、使用されたデータセットも必ずしもDNS全体の偏りのないサンプルとは限りません。しかし、このような観測を継続することで、トレンドを分析することが可能になります。例えば、今後RSA-SHA256とECDSA-P256-SHA256のバランスは変わっていくかもしれませんし、他の楕円暗号アルゴリズムに人気が出るかもしれません。RSAの使用を継続する運用者の中でも、鍵長を長く変更する運用者は増えるでしょう。
このような将来のトレンドの変化や速度は容易に推定できるものではありませんが、継続的な観測により定量的な運用の指標や評価の基準となることが期待されます。
[1] 署名アルゴリズムについて、2013年に発行されたアメリカ連邦政府機関向け文書であるNIST SP800-81-2では、Table 9-1にて2015年まではRSA-SHA1/RSA-SHA256及びECDSA-P256-SHA256/ECDSA-P384-SHA384の使用を、それ以降はECDSA-P256-SHA256/ECDSA-P384-SHA384の使用を推奨しており、DNSSECにおけるRSAの使用は2015年まで認められるとしています。また、2021年に発行されたccTLDむけ文書であるOCTO-029では、3.3.3においてECDSA-P256-SHA256を主に推奨しており、RSA-SHA256も使用できるとしています。
[2] RSAを用いた署名アルゴリズムでの鍵長について、NIST SP800-81-2では、Table 9-1にてKSKは2048bits、ZSKは1024bitsが推奨されています。また、OCTO-029では、3.3.3においてKSK/ZSKともにRSA-SHA256の場合2048から4096bitsとすることを推奨しています。