Cryptology Academy · レッスン

OCSP StaplingとCertificate Transparency

パフォーマンス向上のためにOCSP Staplingを設定し、監査可能性を高めるCertificate Transparencyログについて理解します。

レッスン 3/413 ステップ

「OCSP StaplingとCertificate Transparency」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

CRLの問題

証明書失効リスト(CRL)は、失効したすべての証明書をCAが一覧にして公開するファイルです。CRLにはいくつかの問題があります。時間の経過とともにサイズが大きくなること、クライアントが全体をダウンロードする必要があること、公開がスケジュールに基づくため最新性に限界があること、そしてブラウザがCRLの取得に失敗した際に歴史的にソフトフェイル(証明書を受け入れる)してきたことです。そのため、実際には失効の信頼性が低くなります。

リアルタイム状態確認のためのOCSP

Online Certificate Status Protocol(OCSP、RFC 6960)を使用すると、クライアントはCAのOCSPレスポンダーにリアルタイムで問い合わせ、特定の証明書の失効状態を確認できます。OCSPレスポンスには、証明書が「good」、「revoked」、「unknown」のいずれであるかが示され、CAによって署名されます。証明書失効リスト全体をダウンロードするよりも効率的です。

OCSPのプライバシー問題

標準のOCSPには、重大なプライバシー上の欠陥があります。クライアントは確認対象の証明書シリアル番号をCAのOCSPレスポンダーに送信する必要があるため、CA(またはネットワークの監視者)に、ユーザーがどのWebサイトをいつ訪問しているかが知られてしまいます。これは監視の仕組みとなり、認証局レベルでユーザーのプライバシーを侵害します。

OCSPステープリングの仕組み

OCSPステープリング(RFC 6066)は、サーバーがCAからOCSPレスポンスを事前取得してキャッシュすることで、プライバシー問題を解決します。TLSハンドシェイク中に、サーバーはこのキャッシュ済みレスポンスをハンドシェイクに「ステープル」して、クライアントに直接届けます。クライアントはCAに直接接続することなく、最新の失効状態を取得できます。

OCSPステープリングの設定

NginxでOCSPステープリングを設定するには、serverブロックに「ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8;」を記述します。ssl_certificate_by_lua_blockまたはssl_trusted_certificateディレクティブによって、検証用のチェーンを指定します。Apacheでは、VirtualHostに「SSLUseStapling on」が必要です。どちらのサーバーもレスポンスをキャッシュし、有効期限が切れる前に更新します。

OCSP Must-Staple拡張機能

OCSP Must-Staple X.509拡張機能(RFC 7633)は、この証明書を使用するサーバーが常にOCSPレスポンスをステープルすることをブラウザに通知します。ブラウザがサーバーに接続した際にステープルされたレスポンスを受信しなければ、接続を拒否します。これにより、失効した証明書を持つ攻撃者がOCSPレスポンスを妨害し、ソフトフェイルを強制することを防ぎます。

Certificate Transparencyの概念

Certificate Transparency(CT)は、すべての公開信頼CAに対し、発行したすべての証明書を、公開監査可能な追記専用ログに証明書の配布前に記録することを求める仕組みです。これらのログにより、ドメイン所有者、研究者、監視サービスは、任意のドメインに対して誤発行または不正に取得された証明書を検出できます。

CTのSigned Certificate Timestamp

CAが証明書をCTログに提出すると、ログはSigned Certificate Timestamp(SCT)を返します。SCTは、証明書がログに記録されたことを暗号学的に署名して保証するものです。SCTは証明書自体に埋め込むことも、TLS拡張を介して配信することも、OCSPレスポンスにステープルすることもできます。Chromeでは、信頼のために少なくとも2つのSCTが必要です。

ChromeのCT要件

Google Chromeは、2018年4月以降、公開信頼されるすべてのTLS証明書にCertificate Transparencyを要求しています。有効なSCTがない証明書は、Chromeによって証明書エラーとして拒否されます。この要件によって、主要なCAは事実上すべてCTへの記録を行うことになります。Chromeに証明書を拒否されるCAは、公開CAとして運営できないためです。

CTによる誤発行証明書の検出

CTログを利用すると、誰でも自分のドメイン向けに発行された証明書を監視できます。crt.shやFacebookのCT Monitorなどのサービスを使えば、サブジェクトまたはSANフィールドに自分のドメインが含まれる証明書を、すべてのCTログから検索できます。侵害されたCAやBGPハイジャックなどによる不正な証明書発行も、数時間以内に検出可能になります。

CTログのエコシステム

CTログは、Google(Argon、Xenon)、Cloudflare(Nimbus)、DigiCert、Sectigoなど、複数の独立した組織によって運用されています。複数のログ運用者が存在することで、単一の組織が記録された証明書を隠蔽することを防ぎます。ブラウザは承認リストにあるログからのSCTを要求し、どのログを信頼するかについて品質管理を行っています。

OCSPステープリングの確認

標準のOCSPと比較して、OCSPステープリングはどのような問題を解決しますか?

レッスンのまとめ:OCSPとCT

CRLはサイズが大きく更新も遅れがちです。OCSPはリアルタイムの失効確認を提供しますが、閲覧データをCAに漏らします。OCSPステープリングは、事前取得した失効状態をTLSハンドシェイク中に提供し、プライバシーを保護します。OCSP Must-Stapleは、ソフトフェイルの回避を防ぎます。Certificate Transparencyは発行されたすべての証明書をログに記録し、SCTによる誤発行証明書の検出を可能にします。Chromeは2018年以降、CTを要求しています。

無料で開始

AI チューターと学ぶ Cryptology Academy — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
67
レッスン
261

よくある質問

「OCSP StaplingとCertificate Transparency」レッスンは無料ですか?

はい。「OCSP StaplingとCertificate Transparency」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「OCSP StaplingとCertificate Transparency」で何を学びますか?

パフォーマンス向上のためにOCSP Staplingを設定し、監査可能性を高めるCertificate Transparencyログについて理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「OCSP StaplingとCertificate Transparency」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. OpenSSLコマンドライン入門
  2. 証明書チェーンの作成と管理
  3. OCSP StaplingとCertificate Transparency
  4. Let's EncryptとACMEプロトコルの自動化
← Cryptology Academyに戻る