Toranomon Tech Hub#2「Amazon Route 53, 待ちに待った TLSAレコードのサポート開始」というタイトルで登壇しました
こんにちは。中村です。
虎ノ門近辺のエンジニアが集まり交流する場を提供するコミュニティToranomon Tech Hubの第2回「Update Award 2024 ~個人的にアツかったアップデートを語るLT大会~」で登壇してきました!
そこで登壇内容の一部をご紹介します。
登壇資料
概要
- Amazon Route 53でTLSAレコードがサポートされました
- TLSAレコードは、DNSSECを活用し、SMTPと組み合わせて利用するプロトコル:DANEで利用されるコンポーネントです
- DANEを利用するとDNSを利用してTLSサーバで利用する鍵を指定することができます
内容
はじめに
SMTP使ってますか?
今回は、メール送受信時のセキュリティ対策に関連するアップデート情報を共有します。
まずは、SMTPについて復習してみましょう。
メールの送受信で利用しているプロトコルですが、この仕様は性善説をもとに仕組み化されました。
このため、SMTP単体だと、盗聴や改ざんといった不正な操作に対して脆弱です。
例えば、ポストにハガキを投函した状況を想像します。
配送の過程で、内容を読まれたり、鉛筆で書いていた文章を書き換えられたりする。そんなイメージでしょうか?
もちろん対策はされています。
SPF/DKIM/DMARCといった仕組みを聞いたことがあるのではないでしょうか?
詳細な説明はこの場では割愛します。
アップデート情報
今回のLTでは、セキュリティ対策のひとつとしてDANE(デーン)という仕組みを紹介します。
DANEを利用するためには、TLSAレコードに公開鍵情報を設定する必要があり、
2024/10/30、Amazon Route 53で待ちに待ったTLSAレコードのサポートが開始されました!
DNSを利用してTLSサーバで利用する鍵を指定できることが、このDANEというプロトコルのポイントです。
TLSAレコードから公開鍵情報を取得し、TLS通信をする際にサーバの公開鍵情報を検証します。そして、検証成功したことを持ってTLS通信を開始します。
設定内容にもよりますが、公開鍵に自己署名証明書も利用することができます。
さて、このDANEという仕組みでは何が嬉しいのか?
ここで考案された背景とともに考えてみます。
証明書を利用したTLS通信では、PKIX検証にて証明書のチェーンを検証することが主流です。
DANEの仕組みでは、このパブリックCAを利用したドメイン認証の脆弱性に対する改善策を提示しています。
ここでいうパブリックCAを利用した際の脆弱性とは、任意のCAが任意のドメインの証明書を作成できる点です。
例えば、パブリックCAの過失により悪意ある攻撃者に証明書を発行する状況を考えます。CAは任意のドメインに対して署名できるので、簡単に任意の証明書が作成できてしまいます。
一方で、DNSSECを利用するとDNSKEYで署名できるドメインは配下のドメインに限られるため、影響範囲を限定できます。
また、DANEを利用すると、TLSで利用する公開鍵を指定することができるため、偽のサーバーにリクエストするリスクを低減することができます。
なんなら、自己署名証明書を利用することでパブリックCAで証明書を発行するコストを削減することも考えられます。
やってみた
ここで、DANEを利用するために、TLSAレコードを設定してみましょう。
使用法と公開鍵情報を設定するだけです。
簡単ですね!
例示したレコードでは、SMTPで利用するため25ポートを指定しています。
察しの良い方はお気付きかもしれませんが、443ポートでも設定できます。
DANE仕組みをwebサイトでも利用する訳ですね!
(こことてもワクワクしませんか?)
例えば、組織内利用で自己署名証明書をサーバ証明書として利用していた場合、ルート証明書をクライアントブラウザにインストールしていたと思います。
DANEを利用したら、パス検証はしないため、TLSAレコードの設定で十分になりそうです。
夢がありますね。
課題
最後に課題を共有して終わります。
DANE利用にはクライアント側の対応も必要ということです。
現在、対応するメールサーバも増えつつありますが、多くはないという現状です。
また、ブラウザに至っては正式に対応しているとものは少ないorないのではないでしょうか。
TLSAレコードのサポート開始をきっかけに、
今後DANEに対応したクライアントが増えていくことを期待しています!
後記
以前、DANEという技術に出会ったときはほとんど資料がありませんでした。
RFCを読んだ方が早くて分かりやすいのではないか?といった状態だったと記憶しています。
今は、TLSAレコードのサポートも然り、合わせてDANEについて説明しているプロバイダーのドキュメントが増えてきて情報量が増えてきたと感じました。
この調子で対応するサービスが増えてきたら嬉しいなと思います。