2016-12-27 25 views
1

「JSONウェブトークン(JWT)RSA暗号化を使用した」プライベートRSAとニンバスJOSE JWT暗号化、および公開鍵

リファレンスを参照してください:http://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-rsa-encryption

サンプルコードは、公開鍵の使用に基づくRSAEncrypterクラスと、それと逆のプライベートキーを使用するRSADencrypterクラスを提供します。

JSON Webトークンがこのように生成された理由を理解できません。暗号化された情報は、通常、JWE形式を使用してクライアントに送信されるためです。並行して、クライアントは公開鍵をデジタル証明書ストアやJWKストアなどの共有ソースから抽出し、JWEデータから情報を復号化します。

私の質問:クライアント側で秘密鍵を使用するのはなぜですか? Encrypterで秘密鍵を使用し、Decrypterクラスの公開鍵を使用しないのはなぜですか?

このRSAサンプルコードの概念的側面に関する説明は大歓迎です。

答えて

3

例に言ったように、暗号化の目的は、機密性である:データのみが公開鍵暗号に不可欠なセキュリティの側面は、データを確保している

がために暗号化されて所期の受信機によって読み取られることを確認しますデータの機密性を損なう可能性がある他の当事者のためのものではない。

当事者間の認証用に発行されたJSON Webトークンは、暗号化されていないため、秘密鍵でデジタル署名されています。相手は公開された公開鍵で真正性と完全性を検証することができます。しかし、内容は隠されていません。オブザーバーはメッセージを読むことはできますが、メッセージは変更できません。

暗号化は受信者の公開鍵で行われます。一致する秘密鍵の所有者のみがJWTの内容を解読できます。 RSa鍵で暗号化されたデータのサイズ制限のため、この例では、AES対称暗号化鍵が生成される。メッセージはAESキーで暗号化され、このキーはRSA公開鍵で暗号化され、JWTに埋め込まれます。受信者はRSA秘密鍵でAES鍵を解読します

+0

JWEで実装した場合でも、RSA暗号の主体についての概念図を明確にしてくれてありがとうございます。 RESTfulなピア・ツー・ピア通信の最終解読ステップで使用される秘密鍵を安全に配布して格納することができます。 –

+0

私はプロセス全体のJavaサンプルコードを取得できますか? – basari66

+0

ウェブサイトのサンプルページをご覧ください:https://connect2id.com/products/nimbus-jose-jwt/examples – pedrofb

関連する問題