トランスポート層セキュリティ (TLS) セキュアウェブサイト証明書は、あなたが訪れるウェブサイトの所有権と情報の完全性を検証します。この記事では、その仕組みについて説明します。
証明書を使用するウェブサイトとは?
アドレスが https で始まるウェブサイトは、TLS サーバー証明書を使用します。TLS サーバー証明書を使用するウェブサイトは、次の 2 つを保証します:
- ウェブサイトの管理者がドメイン名を所有または管理していること。これにより、ユーザーは偽装された、または悪意のあるコピーサイトではなく、正規のサイトに接続できます。
- ブラウザーとウェブサイト間の TLS を介した暗号化データ交換が、盗聴や権限のない第三者による改ざんから保護されていること。
信頼の連鎖
Firefox のようなブラウザーは、信頼の連鎖 と呼ばれる階層を通じて証明書を検証します。これは通常、少なくとも 3 つの証明書で構成されます:
- ルート (トラストアンカー) 証明書
- 1 つ以上の中間証明書
- TLS サーバー (エンドエンティティ) 証明書
ルート証明書は、他の証明書を発行するためにブラウザーから信頼されている 認証局 (CA) に属します。通常、ルート証明書は 1 つ以上の中間証明書を発行し、それらの中間証明書は、証明書で指定されたウェブサイトドメインの管理を証明できる組織に TLS サーバー証明書を発行するために使用されます。
証明書は公開鍵暗号に依存しており、非対称鍵ペアには数学的に関連する 2 つの鍵があります:
- 秘密鍵: この鍵は所有者によって秘密にされ、データ (証明書を含む) への署名や、公開鍵で暗号化された情報の復号などの暗号化操作に使用されます。
- 公開鍵: この鍵は公開され、秘密鍵によって作成された署名の検証や、秘密鍵のみが復号できる情報の暗号化に使用されます。
公開鍵証明書には、次の情報が含まれています:
- 証明書を発行した認証局 (CA) の詳細
- 証明書を受け取った組織に属する公開鍵
- 秘密鍵を保持する組織に関する識別情報 (下記の 証明書の内容 を参照。TLS サーバー証明書の場合、これは主にウェブサイトのドメイン名です)
それでは、Firefox がウェブサイトが安全であるかどうかをどのように判断するかを説明します。
Firefox はどのように証明書の完全性を検証するのか?
Firefox は、信頼の連鎖を使用して次のように TLS サーバー証明書を検証します:
- Firefox は、訪問したウェブサイトの証明書をダウンロードします。
- Firefox は、信頼された認証局 (CA) の内部データベースと照合して証明書をチェックします。
- ルート CA 証明書の公開鍵を使用して、ルート証明書と中間証明書が、ウェブサイトから提供された TLS サーバー証明書に至るまで、連鎖に沿って適切に署名されていることを確認します。
- Firefox は、証明書内の情報をチェックして、接続しているウェブサイトが証明書に記載されているウェブサイトと一致することを確認します。
- Firefox は、接続の HTTP トラフィックを暗号化するための対称鍵を生成します。
- Firefox は、サーバー証明書に含まれるサーバーの公開鍵で対称鍵を暗号化します。
- ウェブサーバー上にある秘密鍵が、必要な接続データを復号し、TLS ハンドシェイク として知られる処理を完了します。
これにより、Firefox とウェブサイトの間で安全な通信が行われるようになります。
証明書を表示する
証明書を表示するには、以下の手順に従ってください:
- アドレスバーの錠前アイコン
をクリックします。
- 開いた サイト情報パネル で をクリックします。
-
- 次のパネルで をクリックします。
-
- 開いた ページ情報ウィンドウ で をクリックします。
-
Firefox は about:certificate ページを開き、表示しているウェブサイトの証明書に関する情報を表示します:
3 つのタブには、左から右に、TLS サーバー証明書、中間証明書、ルート証明書が表示されます。
証明書の内容
TLS サーバー証明書には、次の情報が含まれています:
- サブジェクト: ウェブサイト名や証明書を所有する組織に関するその他の情報など、任意の属性が含まれます。
- 発行者: 証明書を発行した CA エンティティを識別します。
- 有効期間: 証明書が有効である期間を示します。
- サブジェクトの別名拡張: 証明書が有効なウェブサイトのアドレスをリストします。
- 公開鍵情報: 証明書の公開鍵の属性をリストします。
- シリアル番号: 証明書を一意に識別します。
- 署名アルゴリズム: 署名の作成に使用されるアルゴリズム。
- フィンガープリント: DER バイナリ形式の証明書ファイルのハッシュ。
- キー使用法 と 拡張キー使用法: TLS ウェブサーバー認証の実行など、証明書の使用方法を指定します。
- サブジェクトキー識別子: 証明書を識別する方法として、TLS 証明書の公開鍵から生成される識別子。
- 機関キー識別子: 証明書への署名に使用された秘密鍵に対応する公開鍵を識別する方法として、CA の公開鍵から生成される識別子。
- CRL エンドポイント: 発行元 CA の 証明書失効リスト (CRL) の場所。
- 機関情報: 認証局と中間証明書ファイルの検証方法が含まれています。
- 証明書ポリシー: それがどの種類の TLS 証明書であるかへのポインターが含まれています (例: 証明書発行時に検証された情報)。
- 埋め込み SCT: 署名付き証明書タイムスタンプ (SCT) をリストします。
疑わしい証明書
アドレスが https で始まるウェブサイトにアクセスし、TLS 証明書に問題が検出されると、ブラウザーはエラーページを表示します。潜在的なセキュリティリスク警告のエラーコードについて の記事では、一般的な証明書エラーについて説明しています。
問題のある証明書を表示するには、以下の手順に従ってください:
- 警告ページで をクリックします。
-
- View Certificate をクリックします。
-
これで、問題のある証明書が表示されます。