暗号の証明書を1つの記事で読む
前回の記事ではデジタル署名について説明しましたが、デジタル署名の役割は、改ざんや偽装を防ぎ、拒否を防ぐことです。ただし、デジタル署名技術を正しく使用するための非常に大きな前提があります。つまり、署名の検証に使用される公開鍵は、実際には送信者のものである必要があります。
取得した公開鍵が偽造されている場合、署名アルゴリズムがどんなに完璧であっても、間違った結果が得られます。
それでは、送信者の公開鍵をどのように保護できますか?ここでは、証明書を使用する必要があります。いわゆる証明書は、第三者の信頼できる機関を通じて送信者の公開鍵に署名することによって取得されます。
ここには2つの概念があります。公開鍵証明書(公開鍵証明書、PKC)と認証局(認証局、CA)です。ブロックチェーンに詳しい友人は、CAという用語をよく耳にするはずです。ここではCAが認証機関です。
証明書の例
実際に遭遇する例を見てみましょう。
AがBにメッセージを送信する場合、このメッセージはBの公開鍵を使用して暗号化する必要がありますが、AはBの公開鍵を事前に知ることができないため、次の証明書アーキテクチャを使用できます。
- 最初のステップでは、Bは自分の鍵ペアを生成し、公開鍵をCAに登録する必要があります。ここでCAは信頼できるサードパーティ組織です。
- CAはBの公開鍵を取得すると、独自の秘密鍵を使用してBの公開鍵に署名し、証明書を取得します。
- はCAから証明書とCAの公開鍵を取得し(CAは信頼できる機関であり、公開サイトから取得できます)、CAの公開鍵を使用して証明書の署名の有効性を確認します。
- AはBの公開鍵を取得し、Bの公開鍵を使用してメッセージを暗号化します。
- Bは自分の秘密鍵を使用してメッセージを復号化し、平文を取得します。
さて、これは証明書の使用の最も単純な例です。
証明書の基準と生成
証明書は認証機関によって発行されるため、ユーザーはそれを検証する必要があり、次にユーザーを容易にするために標準の証明書形式が必要です。最も広範な証明書標準形式の1つは、ITU(国際電気通信連合)およびISO(国際標準化機構)によって策定されたX.509仕様です。
x.509には、DER、CRT、CER、PEMなど、多くの拡張フォーマットがあります。環境によって使用方法は異なります。
では、どのようにして証明書を生成しますか?サードパーティのツールを使用するか、opensslなどのコマンドラインコマンドを使用して生成できます。特定の生成コマンドについては、ここでは詳しく説明しません。
PKI
証明書の形式で、実際に証明書を使用することはできますか?
実際、これではまだ十分ではありません。また、証明書の発行者、発行方法、証明書が無効な場合なども定義する必要があります。PKI(公開鍵インフラストラクチャ)は、証明書を効果的に使用するために策定された一連の仕様とプロトコルです。
PKIの構成には、3つの主要な部分があります。
- ユーザー
ユーザーとは、PKIを使用するユーザー、つまりCAを使用して自分の公開キーを公開し、他のユーザーの公開キーを取得する必要があるユーザーです。
- 認証機関
認証機関はCAであり、証明書を管理する人です。証明書の生成に加えて、CAには証明書を無効にするという非常に重要なタスクがあります。
ユーザーがキーを失う可能性があるため、または特定の理由により、一部の証明書は破棄されます。次に、CAへの失効リクエストを開始できます。無効な証明書はCRLに保存されます。CRLは、外部証明書の廃止リストです。証明書を使用する場合、ユーザーはまず、証明書がCRLリストにあるかどうかを確認する必要があります。その場合、証明書は使用できません。
- 倉庫
ウェアハウスは証明書を格納するためのデータベースであり、ユーザー登録後に生成された証明書は、他のユーザーが取得して使用できるようにウェアハウスに格納されます。
CA階層
ファブリックのルートCAの概念について学びましたが、これはどういう意味ですか?
上記の概要から、実際にはCAは組織によって保持されるだけでなく、公開鍵に署名する限り誰でもCAを構築できることがわかります。
大規模な組織がCAを構築したい場合、たとえば本社がCAを構築したい場合、最初にルートCAを構築し、次にルートCAの下にサブCAを構築できます。これらのサブCAは、下部にある特定のユーザーに証明書を発行する責任があります。 。
証明書への攻撃
証明書はデジタル署名技術に基づいているため、デジタル署名技術に基づくすべての攻撃は証明書に適用されます。
PKIシステムへの攻撃の概要は次のとおりです。
- 公開鍵を登録する前に、公開鍵を置き換えてください。
ユーザーBが証明書を生成する場合は、CAに登録し、公開鍵をCAに送信する必要があります。その後、公開鍵が送信される前に、悪意を持って置き換えられる可能性があります。
- 証明機関の秘密キーを盗む
すべてのユーザー公開鍵は、CAの秘密鍵によって署名されています。CAの秘密鍵が盗まれた場合、すべての証明書は安全ではありません。
CAは実際には一元化された組織であり、そのような問題はしばしば一元化された組織で発生します。1つを突破すると、すべてが破壊されます。
- 認証機関を装った
攻撃者は認証局のふりをして、ユーザーをだましてしまう可能性があります。したがって、ユーザーは登録時に注意する必要があります。
- CRL時差攻撃
Bのキーが失われた場合、BはCAに破棄アプリケーションを送信しますが、アプリケーションの送信とアプリケーションの有効化、およびCRLの生成の間に時間差があります。この間、破棄されたキーは合法的に使用できます。
詳細については、http://www.flydean.com/certificate/をご覧ください。