タイトル8 デジタル署名と印テスト
[タイトル説明 ]
データ・サーバは、ユーザが提出した署名を検証し、データの妥当性と整合性を確保するためにしながら、プロセス内の事業者によるオンライン銀行振込、または支払指図書では、ユーザーの必要性は、トランザクションデータを署名します。
それは、次のシーン、デジタル署名と検証するものとします。
1.サーバーは、ルートCA証明書とCAのルート証明書によって発行されたユーザ証明書を生成します。
2.オンラインバンキングの転送上のユーザー、およびトランザクションデータに署名し、取引要求を提出した証明書を使用しています。
3.転送を知らせるために、ユーザ署名データの認証を提出を通じてバックエンドシステムに転送トランザクションを確認するか、失敗するサーバーに送信します。
[要件]の質問
次のように具体的な要件は次のとおりです。
1.新しいMavenプロジェクトを作成します。
前記データインタフェースのためのプログラム署名は、署名のための入力データソースは、デジタル署名は、base64エンコードを返しました。特定の要件は、クライアントのユーザ認証情報user1.jks呼び出しは、ソースデータインタフェースの署名、デジタル署名フォーマットPKCS#7はBouncyCastle、含まれていません
ソースデータ(デタッチ法)。
3.そうでない場合は偽を返し、正常にtrueを返し、入力されたデジタル署名とデータ・ソースを符号化された署名検証インタフェースBASE64を達成するため、および特定の障害情報を印刷します。特定の要件は、サーバは、CA証明書user1.jksが満了したか否かを含む、はBouncyCastle関連インターフェース、署名、署名のデータ検証を起動し、証明書の正当性を検証使用する効果であり、CA署名付き証明書かどうかをチェックルート証明書。
その他:
1、user1.jksは、ユーザーの公開鍵証明書、秘密鍵およびCA証明書が含まれています。前記ユーザ証明書の別名は、CA証明書の別名がROOTCAのCAで、user1ですすべてのパスワードは123456ですuser1.jks。
図2に示すように、ソース署名データ:{ "注文ID": "1234"、 "量": "100"}
3、はBouncyCastleバージョンに依存し、次のとおりです。
<依存> <groupIdを> org.bouncycastle </ groupIdを> <たartifactId> bcmail-jdk15on </たartifactId> <バージョン> 1.56 </バージョン> </依存関係> <依存> <groupIdを> org.bouncycastle </ groupIdを> <たartifactId> bcprov-jdk15on </たartifactId> <バージョン> 1.56 </バージョン> </依存関係> |
[O]
図1に示すように、アナログデジタルクライアントの署名、署名の呼び出しインタフェースは、入力された:{「注文ID」:「1234」、「量」:「100」}、base64エンコード署名プリントアウト結果。
図2に示すように、署名を検証するために、アナログ・サーバ、インターフェースを確認するテストを呼び出し、入力された:{「注文ID」:「1234」、「量」:「100」}、およびテストは、署名データ1、印刷検証結果は、特定の要件を含むステップ3項目を確認します。
ベースラインの[時間]
3時間
[スコアリング]
精度は100%
完全に正しいデジタル署名があった 30点、70点は、署名が正しいことを確認しなければなりません
注釈
1.暗号化-公開鍵を 解読するために-プライベート 署名を-秘密鍵の 認証を-公衆 2.1)は、公開鍵と秘密鍵のペアが表示される 2)公開鍵は公開鍵と呼ばれ、あなただけが知っている秘密鍵と呼ばれる 3 )秘密鍵に対応する公開鍵データで暗号化のみ復号化することができる 対応する公開鍵の秘密データを暗号化された)4のみ復号化することができる 公開鍵を解読することができる場合)5を、対応する暗号化された秘密鍵に追加されなければならない )6秘密鍵を復号化することができる場合は、暗号化は、公開鍵に対応する追加しなければならない 機密のために-公開鍵暗号、復号化するための秘密鍵3. 4.秘密鍵暗号、公開鍵暗号解読-デジタル署名のために: 厳密に秘密鍵は、ダイジェストを暗号化するための秘密鍵で暗号化されていることをここで言っ 復号化が成功し、あなたが送信者の情報は、民間の所有者であることを確認することができ、受信者が復号化するために、公開鍵を使用することができます。 :二つの部分のデジタル署名の量 のデジタル署名-パート1:ニュースがあなたの髪であることを証明します。 - >受信者が復号化するための公開鍵を使用することができ、要約の秘密鍵で暗号化され、復号化が成功すると、あなたはの情報を確認することができ 、送信者の秘密鍵の所有者である メッセージの内容が実際に完了したことを証明:パート2 -デジタル署名。それは、改ざんの任意のフォームにさらされていない(欠けているの交換を含む、追加) - (MD5またはSHA1が行います)ハッシュを行うには、元の>の発表をし、このハッシュ暗号化するために、あなたの秘密鍵を使用して 署名としてそして、一緒に発表しました。人々があなたの通知を受信したとき、彼はあなたを復号化するために、あなたの公開鍵を使用することができます 復号化が成功し、そして、あなたのオリジナルの発表のうち、ハッシュ値を復号化し、同じことをやった場合、署名、その後、彼は 二つのことを証明した:これは確かにあなたが送ったメッセージですが、内容は完了し 、認証のため6.公開鍵- -デジタル証明書:ハッカーがあなたの公開鍵を交換して、あなたに情報を送信するために自分の秘密デジタル署名で行う、とあなたはハッカーが使用できる 公開鍵が正常に検証することができ、鍛造、あなたが誤ってソースが変更されていないと信じています。 この場合には、公開鍵認証のためのCA(認証局証明機関)が必要です。 公開鍵と送信者に関するいくつかの情報を暗号化し、その秘密鍵を使用してセンターの証明書、 「デジタル証明書」(デジタル証明書)を生成 7.対称および非対称アルゴリズムを: HTTPSは、一般的に非を含め、次のアルゴリズムを使用しています非対称および対称暗号化アルゴリズム: 非対称暗号化アルゴリズム:パスワードの暗号化ハンドシェイクのためのRSA、DSA / DSSは、生成された 対称暗号化アルゴリズムを:AES、RC4,3DES、伝送のための実際のデータが暗号化されている MD5:ハッシュアルゴリズム、データの整合性を検証するために使用SHA1、SHA256は、 の8.HTTPS作品 ハンドシェイクプロセスに設立され、クライアント(ブラウザ)とサーバ(Webサイト)の間でデータを転送する必要の前に握手のためにHTTPSを パスワード情報は、両側のデータの伝送を暗号化。TLS / SSLは、非対称暗号化、対称暗号化アルゴリズムで使用され、HASHは ブラウザ1.サイトをサポートするために、ルールの暗号化された独自のセットを送信します。 2.グループの暗号化アルゴリズムとハッシュアルゴリズム、および証明書の形で自分のアイデンティティ情報の中から選択されたサイトは、ブラウザに送信されます。内部の証明書 その上のウェブサイトのアドレス、メッセージの暗号化、公開鍵、および権限の証明書とが含まれています。 :次の操作を行うために、ウェブサイトの証明書、ブラウザを取得した後3. A)、(証明書に含まれるアドレスがアクセスされていると一致している場合、証明書はなど、合法的な、ウェブサイトのアドレスである)証明書の正当性を検証する制度を 、その後、証明書が信頼されている場合ブラウザは、そうでない場合は、証明書信頼されていないヒント与えられます、ロックの中に小さなバーが表示されます。 b)の証明書が信頼されている、またはユーザーが証明書が文字ではありません受け入れている場合は、ブラウザは、ランダムな数字のパスワード文字列を生成し、提供された公開鍵証明書で暗号化されます。 C)HASH計算良い合意ハンドシェイクメッセージを使用して、乱数を使用して、メッセージを暗号化するために、そして最終的にすべての情報は、以前に生成し、サイトに送信されます生成。 4.ウェブサイトは、以下の操作後に行うために、ブラウザによって送信されたデータ受信: A)のパスワードをメッセージを解読するために、自身の秘密鍵を使用し、パスワードの解読ブラウザを使用すると、ハンドシェイクメッセージを送信し、ブラウザのハッシュが送信されたかどうかを確認一貫性のあります。 b)のハンドシェイクメッセージのパスワードの暗号化の使用は、ブラウザに送信されます。 計算されたハッシュブラウザとサーバーとHASH、ハンドシェイク手順のこの端部は、その後、全ての通信データの前に送られた場合は、ハンドシェイクメッセージ解読 ランダムなパスワードは、ブラウザによって生成され、対称暗号化アルゴリズムを使用して暗号化されています。
参照リンクhttps://blog.csdn.net/willpower1li/article/details/79494809