公私秘鑰對可以通過壹種算法得到。
公鑰:公開的,都可以拿到的秘鑰。用來加密也用來解密,公鑰加密的信息只能用對應私鑰來解。
私鑰:只有壹個持有者,其他人都拿不到。用來加密也用來解密,私鑰加密的信息只有對應的公鑰能解。因為私鑰具有唯壹性,可以用來鑒別身份。需要註意的是私鑰的唯壹性是針對自己的公鑰來說的。
非對稱加密:過程使用兩把不同的鑰匙加解密,私鑰加密只能用公鑰解,公鑰加密用私鑰解,壹般流程為:A生成公私密鑰對,把公鑰給B,B用公鑰加密信息發送給A,A用私鑰解密。
摘要:對任意壹組輸入數據通過算法進行計算,得到壹個固定長度的輸出摘要,常見RSA公司的MD5算法和SHA-1算法。
簽名:包含兩部分:對所簽信息做摘要運算得到壹個結果值,在運用非對稱加密中的私鑰對這個值進行加密(比如app簽名就是對app自身文件做多次摘要,然後私鑰加密,https流程簽名就是對壹些企業證書信息做摘要然後私鑰加密)。
證書:公鑰相關信息,其他信息如證書有效期,名稱,最後貼附私鑰簽名的信息,格式普遍采用的是X.509V3國際標準(app中證書指紋,他是簽名工具相關信息的hash值不包括貼附私鑰簽名只會隨簽名keystore變化而變化,app變化時候不會改變,用來配合包名做身份鑒別,常用於app升級和安裝場景)。
keystore:證書庫文件,保存證書信息和公鑰及私鑰(用設置密碼保護私鑰),訪問私鑰要密碼。
CA:第三方可信機構。為什麽https過程中非對稱加密傳輸過程中需要用到第三方可信機構(CA),大家得客戶端都以保存在本地的CA發出來的公鑰解密,就可以確定CA的身份因為CA是唯壹的私鑰擁有者,CA做的事就是給合法的服務端證書簽名,所以客戶端鑒定CA的身份後,自然也認為解得CA簽名的服務器證書是合法的。
註意https中涉及兩對公私密鑰,CA的私鑰用來簽名,其簽名信息用來防篡改,CA公私鑰配合確定CA的是身份。服務器的公私密鑰用來加解密信息,也用來確定的服務器身份,其交互的信息用來協商對稱密鑰。