一、概述
https,主要協議tls/ssl,進而需要了解證書機構(CA)、證書、數字簽名、私鑰、公鑰、對稱加密、非對稱加密。
信息安全問題:信息的保密性、信息的完整性、身份識別。
1.1、信息安全問題
1、信息的保密性(加密算法)

2、信息的完整性(數字簽名)
信息傳輸的途中,我們的信息很有可能被第三方劫持篡改,所以我們需要保證信息的完整性,通用方法是使用散列算法如SHA1,MD5將傳輸內容hash一次獲得hash值,即摘要。
客戶端使用服務端的公鑰對摘要和信息內容進行加密,然后傳輸給服務端,服務端使用私鑰進行解密獲得原始內容和摘要值,這時服務端使用相同的hash算法對原始內容進行hash,然后與摘要值比對,如果一致,說明信息是完整的。
3、身份識別(數字證書)
在信息傳輸的過程中,我們通常需要驗證信息的發送方的身份,這時我們轉化一下思路就可以完成,把發送端的公鑰發送給接收端,發送端通過把自己的內容使用私鑰加密然后發送給接收端,接收端只能用發送端的公鑰解密,自然就驗證了發送端的身份。

1.2、知識概要說明
1、對稱加密
對稱加密是指雙方持有相同的密鑰進行通信,加密速度快,但是有一個安全問題,雙方怎樣獲得相同的密鑰。
常見的對稱加密算法有DES、3DES、AES等
參看地址:java-信息安全(十八)java加密解密,簽名等總結
2、非對稱加密
非對稱加密,又稱為公開密鑰加密,是為了解決對稱加密中的安全問題而誕生,一個稱為公開密鑰(public key),即公鑰,另一個稱為私鑰(private key),即私鑰。但是它的加密速度相對於對稱加密來說很慢。
- 公鑰(public key)是對外開放的,私鑰(private key)是自己擁有的。
- 公鑰(public key)加密的數據,只能用私鑰(private key)解密。
- 私鑰(private key)加密的數據,只能用公鑰(public key)解密。
3、數字證書
注:為什么需要CA頒發數字證書
首先看一下非對稱加密時候的加密方式


數字證書是如何保證公鑰來自請求的服務器呢?數字證書上由持有人的相關信息,通過這點可以確定其不是一個中間人;但是證書也是可以偽造的,如何保證證書為真呢?
一個證書中含有三個部分:"證書內容,散列算法,加密密文",證書內容會被散列算法hash計算出hash值,然后使用CA機構提供的私鑰進行RSA加密。


數字證書就是互聯網通訊中標志通訊各方身份信息的一串數字,提供了一種在Internet上驗證通信實體身份的方式,數字證書不是數字身份證,而是身份認證機構蓋在數字身份證上的一個章或印(或者說加在數字身份證上的一個簽名)。它是由權威機構——CA機構,又稱為證書授權(Certificate Authority)中心發行的,人們可以在網上用它來識別對方的身份。
證書制作:java-信息安全(十三)-數字證書-格式、編碼、keytool、keystore
如果生產一般會直接獲取證書文件
示例代碼
代碼地址:https://github.com/bjlhx15/algorithm-sign.git