
2017年9月より、ウェブサイトのセキュリティを保護する新たな手段が利用可能になりました。証明機関承認(CAA)ドメインネームシステム(DNS)レコードを作成し、ドメインに対してSSL証明書を発行できるプロバイダを特定できます。設定が完了すると、システムはCAA DNSレコードで指定された証明書プロバイダがサイトの証明書の発行元と一致していることを検証できるようになります。CAA DNSレコードタイプは、悪意のある者がドメインに対して不正な証明書を発行する能力を制限することを目的としています。
CAAレコードを追加する前に、ドメインの証明機関(CA)を設定する必要があります。これは、HTTPS接続を確立するためのプロセスの一部です。設定済みかどうかわからない場合は、設定済みであれば、サイトにアクセスした際にURLの横に鍵マークが表示されます。例えばChromeでは、HTTPS接続が確立されると鍵マークが緑色に変わります。(詳しくは、「サイトをHTTPSに移行してセキュリティを強化するための5つのベストプラクティス」をご覧ください。証明書を追加するには、ホスティングプロバイダーにご確認ください。多くのホスティングプロバイダーでは、Let's Encryptの無料証明書を追加できます。)
次に、CAA DNSレコードを作成できる必要があります。BINDやWindows Server 2016など、ほとんどのDNSソフトウェアは既にCAAレコードをサポートしています。Digital Ocean、Gandi、Linodeなどの一部のプロバイダーは、CAAレコードタイプをサポートしています。
Google Domains では CAA レコードを追加できます。手順は次のとおりです。
1. 証明書プロバイダーを特定する
まず、認証局が使用している公式ドメイン名を取得します。例えば、私はLet's Encryptを使用しているので、ドメインはletsencrypt.orgです。(CAAの詳細については、Let's Encryptのhttps://letsencrypt.org//docs/caa/をご覧ください。)
2. チェックするドメインを選択する
最も一般的でシンプルな設定は、メインドメイン(例:example.com)を検証するCAAです。ただし、securesite.example.comなどのサブドメイン用のCAAレコードを作成することもできます。
SSLMateは、CAAエントリの作成を支援するツール「CAA Record Helper」(https://sslmate.com/caa/ を参照)を提供しています。このツールは、既存のCAAレコードを識別して変更したり、新しいCAAレコードの作成に必要な値を自動生成したりできます。例えば、TechRepublic.comを保護したい場合、ドメイン名フィールドにその情報を入力し、「ポリシーの自動生成」を選択します。ツールは証明書プロバイダーを検出し、サンプルのポリシー値を生成します。

3. レコードを追加する
次に、ドメインネームマネージャにログインしてCAAレコードを追加します。Google Domainsをご利用の場合は、https://domains.google.comでアカウントにログインし、ドメインを選択して「DNSレコードの編集」オプションを選択します。先ほど作成したポリシーから取得した情報を、該当するフィールドに入力します。私の場合は、ドメインフィールドに「wolberworks.com」と入力し、ドロップダウンメニューからレコードタイプとしてCAAを選択し、「letsencrypt.org」という問題に該当するレコードを選択して「追加」を選択し、レコードを保存しました。その後、ドメインネームシステム全体でレコードが更新されるのを待ちました。

4. 作業を確認する
新しいCAAレコードが有効かどうかを確認するには、別のツール(https://ssllabs.com/ssltest/)でテストを実行できます。「ホスト名」欄に、CAAレコードを作成したドメイン名を入力してください。テスト結果を非公開にしたい場合は、「結果をボードに表示しない」にチェックを入れてください。その後、ドメインを送信して一連のテストを実行してください。
結果には、ドメインに関するさまざまな情報が表示されます。「このドメインのDNS証明機関承認(CAA)ポリシーが見つかりました」というフレーズを探してください。結果のさらに下の方にあるDNS CAAの詳細欄に、証明書プロバイダーが記載されているはずです。

慎重な保護
ほとんどのセキュリティ対策と同様に、問題が発生する可能性は依然としてあります。証明書プロバイダまたはドメイン名登録機関のセキュリティ上の欠陥が問題を引き起こす可能性があります。また、高度な技術を持つ攻撃者が、ユーザーを欺くために偽のDNSデータを送信する可能性も依然としてあります。
CAAレコードは、組織のオンラインプレゼンスにさらなる保護層を適用する手段と考えてください。サイトの証明書を取得する時間をかけたのであれば、CAAレコードも作成しましょう。
サイトにCAAレコードを作成しましたか?設定はうまくいきましたか?まだ作成していない場合は、その理由を教えてください。コメント欄、またはTwitter(@awolber)で教えてください。