Androidセキュリティ暗号化:デジタル署名とデジタル証明書詳細
6338 ワード
Androidセキュリティ暗号化のテーマ記事インデックス Androidセキュリティ暗号化:対称暗号化
Androidセキュリティ暗号化:非対称暗号化
Androidセキュリティ暗号化:メッセージ要約Message Digest
Androidセキュリティ暗号化:デジタル署名とデジタル証明書
Androidセキュリティ暗号化:Httpsプログラミング 以上はすべての内容を学びました。対称暗号化、非対称暗号化、メッセージ要約、デジタル署名などの知識はすべてデジタル証明書の動作原理を理解するために予備知識として使われています。デジタル証明書は暗号学における究極の武器であり、人類が数千年の歴史を総括した知恵の結晶であり、デジタル証明書の動作原理を理解してからこそ、Httpsプロトコルの安全通信機構を理解することができる。最終的にSSL開発の過程でうまくいくことができます。
また、対称暗号化とメッセージ要約の2つの知識点は、単独で使用することができる。
知識点の連絡先:
デジタル証明書は以上の勉強のすべての知識を使っています。対称暗号化と非対称暗号化を組み合わせた秘密鍵交換が実現され、その後、通信双方はこの秘密鍵を用いて対称暗号化通信を行う。 メッセージの要約は、非対称暗号化とともにデジタル署名を実施し、ルート証明書機関が対象証明書に署名し、検証するとき、ルート証明書は公開鍵で検証される。検証が成功したら、証明書は信頼されているということです。 Keytoolツールは証明書を作成し、その後、ルート証明書機関に認証された後、直接に署名証明書を使用して、証明書のRFCフォーマット情報などを出力することができます。 デジタル署名技術は、アイデンティティ認証とデータ完全性保証を実現する。 暗号化技術はデータの機密性を保証し、メッセージ要約アルゴリズムはデータの完全性を保証し、対称暗号化はデータ処理の信頼性を保証し、デジタル署名技術は動作の否定できない性を保証する。
以上の内容の勉強を通して、私達は以下の知識点を身につけます。基礎知識:ビット、バイト、文字、文字コード、進数変換、io は、実際の開発で対称暗号化をどうやって解決するかを知っています。 は、対称暗号化、非対称暗号化、メッセージ要約、デジタル署名、デジタル証明書が、どのような問題を解決するために作られたかを知る である。 SSL通信プロセスを理解する 実際に開発した中で、どのようにHttpsのインターフェースを要求しますか?
デジタル署名
1.概要
デジタル署名は非対称暗号化とデジタル要約の組み合わせアプリケーションです。
2.アプリケーションシーン
ユーザの識別情報を検証する(秘密鍵を使って署名し、公開鍵を使って検証し、公開鍵を使って検証しさえすれば、この情報は必ず秘密鍵の所有者によって発行される)
データの完全性を検証します。(解読後のメッセージ要約で原文のメッセージ要約と比較します。)
3.署名プロセス
「この要約は、送信者が1つのハッシュ関数で新聞文テキストから要約文を生成し、自分の秘密鍵で暗号化します。この暗号化された要約は、送信者が最初に送信者と同じハッシュ関数で受信した元の報文から要約文を計算します。次に、送信者の共通鍵を用いて、添付された電子署名を解読する。この二つの要約が同じであれば、受信者はこのデジタル署名が送信者であることを確認することができる。
デジタル署名には二つの効果があります。一つはメッセージが送信者のサインと同時に出てくることを確認できます。他の人が送信者のサインを偽ってはいけないからです。第二に、デジタル署名は、メッセージの完全性を決定することができる。デジタル署名の特徴はファイルの特徴を表していますので、ファイルが変更されるとデジタル要約の値も変わります。異なるファイルには別のデジタルダイジェストがあります。デジタル署名は、ハッシュ関数、送信者の公開鍵、送信者の秘密鍵に関する。
4.使用手順
デジタル署名は一般的に単独では使われません。基本的にはデジタル証明書でSSL通信プロトコルを実現するために使われます。次に勉強するデジタル証明書はデジタル署名技術に基づいて実現されます。
デジタル証明書
1.概要
デジタル証明書とは、インターネット通信において、各当事者の身分情報を示す一連の数字であり、インターネット上で通信エンティティの身分を検証する方式を提供しています。デジタル証明書はデジタルの身分証明書ではなく、身分認証機関がデジタルの身分証明書に捺印した章または印です。これは権威ある機関であるCA機関で、証明書授権センターとも言われています。人々はインターネットで相手の身分を識別するために利用できます。
2.アプリケーションシーン
トレーダーのアイデンティティの確定性、否定できない性、変更可能性
アプリケーションに署名認証を行う(Androidのappkなど)
3.デジタル証明書のフォーマット
デジタル証明書のフォーマットは一般的に採用されています。X.509 V 3国際規格です。標準のX.509デジタル証明書には以下の内容が含まれています。証明書のバージョン情報。 証明書のシリアルナンバーは、各証明書に一意の証明書のシリアルナンバーがあります。 証明書に使用される署名アルゴリズム。 証明書の発行機関名、命名規則は一般的にX.500フォーマットを採用しています。 証明書の有効期限は、一般的な証明書はUTC時間フォーマットを採用しています。その時間範囲は1950-2049です。 証明書のすべての人の名前、命名規則は一般的にX.500フォーマットを採用します。 証明書の所有者の公開鍵。 証明書発行者が証明書に署名する。
4.デジタル証明書の原理
デジタル証明書は安全分野における究極の武器であり、SSL通信協定の中で最も核心となるものはデジタル証明書である。彼は前述のすべての知識に関連しています。対称暗号化、非対称暗号化、メッセージ要約、デジタル署名などです。
デジタル証明書はjavaが持参したKeyToolツールで生成できます。生成したデジタル証明書は普通Key Storeに保管されます。Key Storeは秘密鍵倉庫と呼ぶことができます。
秘密鍵倉庫は3種類のデータを保管できます。Key Stree.Private KeyEntry(非対称機密内の秘密鍵)、Key Stree.SecretKeyEntry(対称暗号化における秘密鍵)、Key Stree.TrustedCitifeat Entry(信頼された証明書)
5.KeyToolツール
パス:jre\bin\keytool.exe
一般的なコマンド:
キーを生成
keytool-genkeypair
keytool-genkeypair-alias lisi(後の部分は証明書のために別名を指定します。そうでなければデフォルトの名前はmykeyです。)
keystoreの中にどんな項目がありますか?
keytool-listまたはkeytool-list-v
keytool-export-alias lisi-file lisi.cer
印刷可能な証明書を生成します。
keytool-exportcert-alias lisi-file lisi.cr Crfc
デジタル証明書ファイルの証明書情報を表示します。
keytool-printcert-file lisi.net
lisi.cerを直接ダブルクリックして、windowシステムの内蔵プログラムでlisi.cerを開けます。
6.Androidのkeystoreに関する知識
debug署名経路:user.android\debug.keystore
debug.keystoreの別名(alias)とパスワード:
別名:android debugkey、パスワード:android
署名コマンド(jdk 1.6):
jarsigner-verbose-keystore debug.keystor-signedjar 1 signed.appk 1.appk android debugkey
署名コマンド(jdk 1.7):
jarsigner-verbose-keystore debug.keystor-signedjar 1 signed.appk 1.appk android debugkey-digestalg
SHA 1-sigalg MD 5 withRSA
最適化コマンド:
zippalign-v 4 1 signed.appk 1 signedaligned.appk
署名の検証が成功しましたか?
jarsigner-verify 1 signed.appk
7.追加
署名証明書:
権威ある発表機関からサーバまたは個人に与えられ、自分の身分を証明するものは、デフォルトのクライアントは信頼されています。主な目的はデータの整合性と非相殺性を暗号化して保証することです。
例えば、ルート証明書機関SymartcからBaiduに授与されたのは署名証明書で、信頼されています。
署名済み証明書:
サーバーから自分で自分に発表して、自分の身分を証明するためのもの、非権威の発表機構が発表して、デフォルトのクライアントはすべて信用しないので、主な目的はデータの完全性と否定性を暗号化して保証するために用いて、署名の証明書と同じです。
例えば、中鉄集団(SRCA)アプローチが12306に与えた証明書は、自己署名証明書であり、自分で発行したものである。
また、対称暗号化とメッセージ要約の2つの知識点は、単独で使用することができる。
知識点の連絡先:
デジタル証明書は以上の勉強のすべての知識を使っています。
1.概要
デジタル署名は非対称暗号化とデジタル要約の組み合わせアプリケーションです。
2.アプリケーションシーン
ユーザの識別情報を検証する(秘密鍵を使って署名し、公開鍵を使って検証し、公開鍵を使って検証しさえすれば、この情報は必ず秘密鍵の所有者によって発行される)
データの完全性を検証します。(解読後のメッセージ要約で原文のメッセージ要約と比較します。)
3.署名プロセス
「この要約は、送信者が1つのハッシュ関数で新聞文テキストから要約文を生成し、自分の秘密鍵で暗号化します。この暗号化された要約は、送信者が最初に送信者と同じハッシュ関数で受信した元の報文から要約文を計算します。次に、送信者の共通鍵を用いて、添付された電子署名を解読する。この二つの要約が同じであれば、受信者はこのデジタル署名が送信者であることを確認することができる。
デジタル署名には二つの効果があります。一つはメッセージが送信者のサインと同時に出てくることを確認できます。他の人が送信者のサインを偽ってはいけないからです。第二に、デジタル署名は、メッセージの完全性を決定することができる。デジタル署名の特徴はファイルの特徴を表していますので、ファイルが変更されるとデジタル要約の値も変わります。異なるファイルには別のデジタルダイジェストがあります。デジタル署名は、ハッシュ関数、送信者の公開鍵、送信者の秘密鍵に関する。
4.使用手順
// signature , :MD2withRSA, MD5withRSA, or SHA1withRSA
Signature signature = Signature.getInstance("MD5withRSA");
// ( )
PrivateKey privateKey = (PrivateKey)SerializableUtil.readObject(
"heima.privateKey");
//
signature.initSign(privateKey);
//
signature.update(content.getBytes());
//
byte[] sign = signature.sign();
// ( )
PublicKey publicKey = (PublicKey) SerializableUtil.readObject(
"heima.publicKey");
//
signature.initVerify(publicKey);
// ( )
signature.update(content.getBytes());
//
boolean verify = signature.verify(sign);
5.まとめデジタル署名は一般的に単独では使われません。基本的にはデジタル証明書でSSL通信プロトコルを実現するために使われます。次に勉強するデジタル証明書はデジタル署名技術に基づいて実現されます。
デジタル証明書
1.概要
デジタル証明書とは、インターネット通信において、各当事者の身分情報を示す一連の数字であり、インターネット上で通信エンティティの身分を検証する方式を提供しています。デジタル証明書はデジタルの身分証明書ではなく、身分認証機関がデジタルの身分証明書に捺印した章または印です。これは権威ある機関であるCA機関で、証明書授権センターとも言われています。人々はインターネットで相手の身分を識別するために利用できます。
2.アプリケーションシーン
トレーダーのアイデンティティの確定性、否定できない性、変更可能性
アプリケーションに署名認証を行う(Androidのappkなど)
3.デジタル証明書のフォーマット
デジタル証明書のフォーマットは一般的に採用されています。X.509 V 3国際規格です。標準のX.509デジタル証明書には以下の内容が含まれています。
デジタル証明書は安全分野における究極の武器であり、SSL通信協定の中で最も核心となるものはデジタル証明書である。彼は前述のすべての知識に関連しています。対称暗号化、非対称暗号化、メッセージ要約、デジタル署名などです。
デジタル証明書はjavaが持参したKeyToolツールで生成できます。生成したデジタル証明書は普通Key Storeに保管されます。Key Storeは秘密鍵倉庫と呼ぶことができます。
秘密鍵倉庫は3種類のデータを保管できます。Key Stree.Private KeyEntry(非対称機密内の秘密鍵)、Key Stree.SecretKeyEntry(対称暗号化における秘密鍵)、Key Stree.TrustedCitifeat Entry(信頼された証明書)
5.KeyToolツール
パス:jre\bin\keytool.exe
一般的なコマンド:
キーを生成
keytool-genkeypair
keytool-genkeypair-alias lisi(後の部分は証明書のために別名を指定します。そうでなければデフォルトの名前はmykeyです。)
keystoreの中にどんな項目がありますか?
keytool-listまたはkeytool-list-v
keytool-export-alias lisi-file lisi.cer
印刷可能な証明書を生成します。
keytool-exportcert-alias lisi-file lisi.cr Crfc
デジタル証明書ファイルの証明書情報を表示します。
keytool-printcert-file lisi.net
lisi.cerを直接ダブルクリックして、windowシステムの内蔵プログラムでlisi.cerを開けます。
6.Androidのkeystoreに関する知識
debug署名経路:user.android\debug.keystore
debug.keystoreの別名(alias)とパスワード:
別名:android debugkey、パスワード:android
署名コマンド(jdk 1.6):
jarsigner-verbose-keystore debug.keystor-signedjar 1 signed.appk 1.appk android debugkey
署名コマンド(jdk 1.7):
jarsigner-verbose-keystore debug.keystor-signedjar 1 signed.appk 1.appk android debugkey-digestalg
SHA 1-sigalg MD 5 withRSA
最適化コマンド:
zippalign-v 4 1 signed.appk 1 signedaligned.appk
署名の検証が成功しましたか?
jarsigner-verify 1 signed.appk
7.追加
署名証明書:
権威ある発表機関からサーバまたは個人に与えられ、自分の身分を証明するものは、デフォルトのクライアントは信頼されています。主な目的はデータの整合性と非相殺性を暗号化して保証することです。
例えば、ルート証明書機関SymartcからBaiduに授与されたのは署名証明書で、信頼されています。
署名済み証明書:
サーバーから自分で自分に発表して、自分の身分を証明するためのもの、非権威の発表機構が発表して、デフォルトのクライアントはすべて信用しないので、主な目的はデータの完全性と否定性を暗号化して保証するために用いて、署名の証明書と同じです。
例えば、中鉄集団(SRCA)アプローチが12306に与えた証明書は、自己署名証明書であり、自分で発行したものである。