標籤:java安全
數位簽章
作用:檢驗jar包是否為公開金鑰發行者的發布的,並且沒有被篡改。
過程:
1,作者使用散列演算法對jar包產生散列(指紋);
2,作者使用私密金鑰對散列進行加密,
3,將jar包和簽名後的散列一起發布。
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/91/DD/wKioL1j4w9PDBUIPAALs0dbPd9c204.png" style="float:none;" title="Screenshot from 2017-04-20 22-20-25.png" alt="wKioL1j4w9PDBUIPAALs0dbPd9c204.png" />
4,使用者使用作者發布的公開金鑰解密散列,得到jar包的指紋;
5,使用者使用散列演算法對jar產生指紋;
6,對比兩個指紋是否一致。
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/91/DE/wKiom1j4xVyCHOAGAAK8vHsVd_8195.png" title="Screenshot from 2017-04-20 22-20-44.png" alt="wKiom1j4xVyCHOAGAAK8vHsVd_8195.png" />
數位憑證:權威仍證機構使用自己的私密金鑰對申請認證的使用者的公開金鑰進行簽名的產物。
作用:檢驗使用者得到的公開金鑰的發行者是否可信
過程:
1,申請者攜帶材料到認證機構申請數位憑證(即讓認證機構為其公開金鑰簽名);
2,認證機構對其進行審核,審核通過後,使用私密金鑰對申請者的公開金鑰簽名,申請者得到數位憑證;
3,申請者發布jar及數位憑證;
4,使用者下載jar及數位憑證;
5,使用者使用認證機構的公開金鑰對數位憑證解密,得到公開金鑰發行者的公開金鑰的指紋;
6,使用散列演算法對公開金鑰進行散列,產生指紋;
7,對比公開金鑰的兩個指紋是否一致,若一致,使用數位憑證沒有被篡改,即認證機構對該公開金鑰進行了簽名,說明該公開金鑰是可靠的。
Java數位簽章和數位憑證