Content
証明書
デジタル証明書とは何ですか?
デジタル証明書は、公開キー証明書またはアイデンティティ証明書とも呼ばれ、ユーザー、デバイス、サーバー、または Web サイトの信頼性を検証するために使用されるパスワード資格情報です。
これらはデジタル通信と安全なデータ交換に使用されます。 デジタル証明書は、ユーザーが接続する前に組織のウェブサイトの信頼性を確認します。
また、検証されたデバイスのみが組織のネットワークに接続できるようになります。
デジタル証明書は、デジタル通信の保護と認証に使用される暗号化のフレームワークである公開鍵インフラストラクチャを使用します。
これらには、安全な接続を確立するために一致する必要がある公開キーとプライベートキーを含むキーのペアがあります。
デジタル証明書は拡張性があり、多くのユーザー デバイスをグローバルに保護するために実装でき、集中システムから管理できます。
公的に信頼された認証局は、デジタル証明書のみを発行できます。
公開キー証明書の主なタイプは次の 3 つです。
- TLS/SSL (Transport Layer Security/Secure Sockets Layer) 証明書: サーバーによってホストされ、コンピューターとサーバーの間でデータを転送するために使用されます。
- クライアント証明書: 安全なデータベースや電子メールにアクセスするためのデバイスまたはユーザー間の接続を検証するために使用されます。
- コード署名証明書: ソフトウェア コードをダウンロードする前に、そのコードの信頼性を検証するために DevOps によって使用されます。
オンライン証明書検証の破壊とは何ですか?
オンライン証明書検証の破壊とは、攻撃者が証明書検証プロセスを操作して、不正な証明書を認証することを指します。以下は人気のある試みです。
中間者攻撃: 攻撃者は、ユーザーと認証局 (CA) 間の通信を傍受して改ざんし、ユーザーに不正な証明書を提示します。
フィッシング: 攻撃者は、ユーザーを騙して、不正な証明書を提示する偽の Web サイトにアクセスさせ、証明書に対するユーザーの信頼を利用して機密情報を盗みます。
DNS スプーフィング: 攻撃者はドメイン ネーム システム (DNS) レコードを変更し、不正な証明書を提示する偽の Web サイトにユーザーをリダイレクトします。
不正な CA: 攻撃者は偽の CA を作成し、ユーザーやシステムが有効であると認識する不正な証明書を発行します。
組織は、証明書の固定などの堅牢な証明書検証手法を使用し、信頼できる CA のリストを最新の状態に保つ必要があります。ユーザーは、フィッシングやその他の種類の攻撃のリスクについて自らを学ぶ必要があります。
ソフトウェアとブラウザを最新の状態に保つことで、証明書の破壊を引き起こす脆弱性からソフトウェアとブラウザを保護できます。
コードサイニングとは何ですか?
コード署名は、ソフトウェア プログラムの信頼性と完全性を保証するデジタル証明書です。
開発者、プログラマー、ソフトウェア エンジニアは、システムの侵害を避けるために、ソフトウェア コードをダウンロードする前にコード署名を使用します。
コード署名により、ソフトウェア コードがオリジナルの作成者からのものであり、マシンに安全にインストールして実行できることが検証されます。
コード署名では、公開キー暗号化を利用して、公開キーと秘密キーのペアを作成します。公開キーは、ソフトウェア開発者の身元を確認するために、信頼できる認証局 (CA) に送信されます。
CA は、開発者の ID と開発者の公開鍵を含む CA の秘密鍵によって署名されたコード署名証明書を共有します。
次に、開発者は作成したコードをハッシュし、秘密キーで暗号化します。暗号化されたコードとコード署名証明書が最終的なソフトウェア スタックに追加されます。
コード署名プロセスでは、ユーザーがソフトウェアをダウンロードするときに、Web ブラウザにプリインストールされている CA の公開キーを使用して、コード署名証明書の信頼性を検証します。
次に、証明書から開発者の公開キーを抽出し、暗号化されたハッシュを復号します。
コード署名には弱点があるため、組織はハードウェア セキュリティ モジュール(HSM)など、信頼性の高い物理デバイスに暗号鍵を保存する必要があります。
改ざん耐性があり、非常に安全な暗号操作、認証、鍵管理を使用します。
デジタル署名とは何ですか?
デジタル署名は、デジタル通信においてユーザーを識別し、ユーザーの同意を検証し、データを保護するために使用される仮想指紋です。例には、トークン、生体認証データ、パスワード、デジタル化された手書きの署名などが含まれます。
これらは電子メール、クレジット カード取引、または法的文書で使用されます。デジタル署名は、プライバシー、認証、完全性、および否認防止を保証します。
高度電子署名(AES)と適格電子署名(QES)には、非対称暗号技術と、デジタル証明書と最高のセキュリティ レベルを含む公開鍵インフラストラクチャが搭載されています。
たとえば、送信者はハッシュ アルゴリズムを使用してデータのハッシュを作成します。次に、秘密キーとハッシュ データを署名アルゴリズムに入力してデジタル署名を作成します。この署名はハッシュ化されたデータに添付され、受信者に送信されます。
受信者はデジタル証明書と公開キーを検証アルゴリズムに入力して出力を作成します。受信側も、受信したデータに対して同じハッシュ関数を実行して、ハッシュ値を作成します。
検証の場合、受信者がデジタル署名の有効性を確認するには、検証アルゴリズムによって受信された出力とハッシュ値が一致する必要があります。
送信者は誰もアクセスできない秘密キーを使用してデジタル署名を作成するため、将来的にデータへの署名を拒否することはできません。
タイムスタンプとは何ですか?
情報やイベントが記録されるたびに、タイムスタンプが付けられます。たとえば、撮影した写真、録画したビデオ、共有ツイート、またはソーシャル メディアの投稿などです。
タイムスタンプは、情報がいつ作成または変更されたかを追跡するのに役立ちます。法的なシナリオではより効果的です。
ある組織が配布業者と著作権契約を結んだとします。配給会社は規則に違反しており、この出来事は署名された契約前に起こったと主張している。
このような場合、組織は契約署名のタイムスタンプがあれば事実を証明できます。ただし、タイム クロックのみに基づいたタイムスタンプは脆弱です。ハッカーはシステム クロックを簡単にハッキングして情報を漏洩することができます。
信頼できるサードパーティである Timestamping Authority (TSA) は、データ操作を回避するために、安全な FIPS 準拠のハードウェアを使用して信頼できるタイムスタンプを生成します。
RFC 3161 – RFC 5035 および Microsoft Authenticode は、通常、タイムスタンプのために TSA が従う 2 つの主要なプロトコルです。
クライアント アプリケーションはハッシュを作成し、タイムスタンプを付けるために TSA に送信します。ハッシュが送信されたら、コードに加えられた変更を TSA に伝える必要があります。
TSA は、PKI テクノロジーを使用してデータのハッシュと信頼できるタイムスタンプを結合し、タイムスタンプ トークンを作成します。クライアントは、タイムスタンプ トークンをドキュメントまたはコード署名に添付します。
信頼できるタイムスタンプにより、署名の否認防止と長期検証 (LTV) が保証されます。 LTV は、ユーザーが開発者のソフトウェアをダウンロードし、署名が失効または期限切れになった後でも署名の有効性を確認したい場合に適用できます。
ユーザー マシンは、システムの現在の時刻ではなく、デジタル署名された時刻に基づいて署名を検証し、最新のアップデートなしでソフトウェアをダウンロードすることを許可します。
開発者はコード署名証明書を再発行できます。