要約
公開鍵暗号化では、数学的に関連付けられた公開鍵と秘密鍵のペアを使用して、転送中のデータを保護し、送信者のアイデンティティを検証します。従来の対称システムとは異なり、両者が事前に秘密鍵を共有する必要がありません。強力である一方、ブルートフォース攻撃や中間者攻撃といった脆弱性のリスクも伴います。こうしたリスクを軽減するには、慎重なキー管理が求められます。
公開鍵暗号化の仕組み
公開鍵暗号化は、実際には2組の鍵を使用します。1つは公開鍵で、今後接続したい相手と広く共有されます。もう一方の秘密鍵は厳重に保護され、あなただけが知っています。
アルゴリズムが鍵を生成します。これらは互いに関連していますが、互いを解読するために使用することはできません。あなたの公開鍵を持っている人が、あなたの秘密鍵の大まかな輪郭さえ知るためには、かなり複雑なハッキングを行う必要があります。
このようなシステムは、プライバシーと効率性の両方を維持します。お客様のデータは、転送中および保管時に保護されていることをご存知でしょう。しかし、接続を開始するために、相手と長々と設定について話し合う必要はありません。
専門家は、誰もが暗号技術を理解することが不可欠であると述べています。組織内で在宅勤務をしている人がいる場合は特に重要です。公開鍵暗号化を適切に使用していない場合(あるいはまったく使用していない場合)、企業を壊滅的なリスクにさらす可能性があります。
暗号鍵とは?
私たちは皆、メールボックス、トランク、ドアを開けるために毎日鍵を使っています。暗号鍵は、アクセスを許可するための障壁をロックおよびロック解除します。しかし、物理的な鍵とは異なり、暗号鍵は金属でできていません。その代わりに、コードで設定を行います。
暗号化キーは、数字と文字をスクランブルして、人間が読めないようにします。元のテキスト(平文)がキーを通過し、新しい形式(暗号)になります。キーは、そのプロセスを元に戻します。
いくつかの種類の暗号化キーが存在します。
- 公開:名前が示すように、このタイプのキーは誰でも広く利用できます。
- 非公開:この形式のキーは厳重に保護されています。この情報をご存じなのはあなただけです。
- ハイブリッド:非常に機密性の高い環境向けにカスタムメイドされたこの複雑なシステムでは、公開鍵と秘密鍵の組み合わせが使用されます。
コンピューティングの初期の頃は、すべての企業が対称システムを使用していました。両当事者は、データを暗号化および復号化するために、同じキーのコピーを必要としていました。
しかし、より多くの企業がオンライン化し、コミュニケーションの必要性が高まるにつれて、すべてのキーを追跡することが煩雑になりました。これに対し、開発者は公開鍵暗号のような非対称システムを開発しました。このプロセスでは、2つの当事者が別々に関連するキーを必要とします。
公開鍵暗号の仕組みとは?
関連する鍵を持つ2つの当事者は、公開鍵暗号を介して通信します。一方の鍵はデータを暗号化し、もう一方の鍵はそれを復号化します。
アリスがボブにメッセージを送りたいとします。攻撃者のトムが盗聴しています。Alice:
- ボブの公開鍵を使用して、自分のメッセージを暗号化します。
- それをボブに送信します。
- Bobが秘密鍵を使用して復号化するのを待ちます。
これらは公開されているため、Tomは暗号文とBobの公開鍵の両方にアクセスできます。しかし、Bobは秘密鍵を秘密にしているため、TomはBobの秘密鍵を知りません。
公開鍵暗号におけるデジタル署名とは?
もし、ボブがアリスではなくトムがメッセージを送ったことを確認する必要がある場合はどうすればよいでしょうか。今回は、アリスです:
- Bobの公開鍵と自身の秘密鍵という2つの鍵を使用して、Bob宛てのメッセージを暗号化します。
- メッセージを送信します。
- Bobが自身の秘密鍵とAliceの公開鍵の両方を使ってそれを復号するのを待ちます。
アリスの公開鍵で復号できるメッセージはアリスの秘密鍵でしか暗号化できず、またアリスはその秘密鍵を公開しないため、ボブはこのメッセージがアリス以外から送られたものではないと確信できます。これはデジタル署名と呼ばれます。
公開鍵暗号化の一般的なアプリケーションには、どのようなものがありますか?
デジタル署名に加えて、公開鍵暗号化は以下に役立ちます。
- Web接続のセキュリティを確保します。Webサイトのセキュリティ証明書(またはSecure Sockets Layer/Transport Layer Security(SSL/TLS)証明書)には、公開鍵が含まれています。関連する秘密鍵はサーバーにインストールされます。データが転送される前に、両者間で「ハンドシェイク」が行われます。GoogleやSalesForceなどのWebサイトは、このプロトコルを利用しています。
- Bitcoin。この形式のデジタル通貨は、安全性とセキュリティを確保するために公開鍵暗号方式を利用しています。
公開鍵暗号方式の長所と短所は何ですか?
多くの暗号化方式が存在します。公開鍵システムに頼るべきか、それとも他のものに頼るべきでしょうか?リスクと利点を理解することで、賢明な判断を下すことができます。
| 強み | 弱点 |
|---|---|
| 機密性:承認された受信者のみが暗号化されたメッセージを読み取ることができます。 | ブルートフォース鍵探索攻撃に対する脆弱性 |
| 真正性:デジタル署名でメッセージの完全性を確認 | 中間者攻撃に対する脆弱性 |
| 否認防止:送信者はメッセージの内容を否認できません | プログラミングの複雑さと実装の課題 |
| 鍵管理の課題(トレーニング、管理、復旧) |
こうしたメリットにより、Pretty Good Privacy(PGP)やHypertext Transfer Protocol Secure(HTTPS)から、OpenID Connect(OIDC)、Web Authentication(WebAuthn)に至るまで、公開鍵暗号方式の多くのアプリケーションが開発されてきました。また、セキュアシェル証明書にも使用され、管理者はパスワードを記憶することなく、あらゆる場所のサーバーに接続できます。
ただし、課題も存在します。次のようなものがあります。
- 総当たり鍵検索攻撃に対する脆弱性。処理能力に優れた超高速コンピューターは、広範な検索を実行して秘密鍵の詳細を突き止めることができます。理論上は、わずか数分で完了する可能性があります。
- 中間者攻撃に対する脆弱性。ハッカーはメッセージを傍受して改ざんし、ホストコンピュータをだまして安全でない接続をさせることができます。そうなると、ハッカーはサーバー宛てのほぼすべてのメッセージを読み取ることができます。
- プログラミングの課題。公開鍵暗号方式は、ゼロから理解して実装するのは難しい場合がありますが、幸いなことに、開発者は面倒な処理を担う多くのライブラリを利用できます。有名なNetworking and Cryptography Library(NaCl)は、Box APIと呼ばれるアプリケーションプログラミングインターフェイス(API)を提供しており、これによって公開鍵暗号の取り扱いが簡単になります。
- 鍵管理の課題。公開鍵方式では、ユーザーのトレーニングと受け入れ、システム管理、メンテナンス、鍵の回復にどのように対処するかを十分に検討する必要があります。
HMACを使用するOktaの支援
Oktaでは、ユーザーの暗号化されたセッションを検証するために、独自のシステムで公開鍵暗号を使用しています。また、組織内の適切な担当者が適切な権限を持つようにするために使用できる、広範なツールスイートも構築しました。
Oktaが「暗号化」の意味やそのメリットについてご説明します。また、お客様に代わってサービスをセットアップすることも可能です。お問い合わせのうえ、さっそく始めましょう。
よくある質問(FAQ)
公開鍵と秘密鍵の違いとは何ですか?
公開鍵は、通信したい相手と自由に共有できますが、秘密鍵は厳重に保護され、自分だけが知っているものです。2つの鍵は数学的に関連付けられています。一方の鍵でデータを暗号化し、もう一方の鍵で復号しますが、公開鍵を持っていても秘密鍵を特定することは極めて困難です。
開発者が対称暗号から非対称暗号に移行した理由とは?
コンピューティングの初期には、対称システムでは双方が同じ鍵のコピーを保持する必要がありました。より多くの企業がオンライン化し、コミュニケーションの必要性が高まるにつれて、すべての鍵を追跡することが大きな負担となっていきました。公開鍵暗号化などの非対称システムでは、2つの当事者が別々でありながら関連性のあるキーを代わりに使用できるようにすることで、この課題を解決しました。
電子署名とは何か、その仕組みとは?
デジタル署名は、送信者が受信者の公開鍵と自身の秘密鍵の両方を使用してメッセージを暗号化するときに作成されます。受信者は、自身の秘密鍵と送信者の公開鍵を使用してメッセージを復号できます。送信者の秘密鍵でしか、その公開鍵で復号できるメッセージを作成できないため、受信者はメッセージの送信元を検証できます。
公開鍵暗号方式の主なセキュリティリスクとは何ですか?
主なリスクは2つあります。1つは、強力なコンピューターで秘密鍵の詳細を特定しようとするブルートフォース鍵検索攻撃です。もう1つは、ハッカーがメッセージを傍受・改ざんして安全でない接続を確立する中間者攻撃です。鍵管理と実装を慎重に行うことで、こうしたリスクを軽減できます。
鍵管理とは何か、そしてなぜ重要なのか?
鍵管理とは、ユーザーのトレーニングと受け入れ、システム管理、メンテナンス、鍵の復旧など、暗号鍵のライフサイクル全体にわたる取り扱いに関するプロセスを指します。堅牢な鍵管理アプローチがなければ、適切に実装された公開鍵システムであっても、セキュリティ上の脆弱性となり得ます。
日常的なテクノロジーにおいて、公開鍵暗号化はどこで使われていますか?
公開鍵暗号化は、セキュアなWeb接続のためのHTTPS(Hypertext Transfer Protocol Secure)、eメール暗号化のためのPGP(Pretty Good Privacy)、デジタル通貨セキュリティのためのBitcoin、アイデンティティプロトコルのためのOpenID Connect(OIDC)とWeb Authentication(WebAuthn)、サーバー管理のためのセキュアシェル証明書など、多くの一般的なテクノロジーの基盤となっています。
参考文献
ロックダウン2.0の今こそ磨くべき重要なサイバースキル、暗号技術。(2020年12月、ITProPortal.
ビットコインのブロックチェーンのセキュリティを確保しているものとは(2020年11月、復号します。
共通鍵暗号アルゴリズム:長寿と暗号化を。(2020年11月、Security Boulevard。
中間者攻撃:増え続けるモバイルの脅威とその対策。(2020年4月)Dark Reading)
IBM Cloud、耐量子暗号を導入。(2020年11月、Silicon Angle.