個人數字證書的核心是通過非對稱加密算法來 標識身份 和 單向加密敏感數據 。它由證書,公鑰,私鑰組成,其中證書和公鑰同時存在於客戶端和服務端,私鑰只存在於客戶端。證書可以由認證機構頒發,也可以是自簽證書,其作用主要是用來匹配服務端和客戶端公私鑰,在個人數字證書使用過程中,並沒有發揮很大作用。
利用私鑰簽名,公鑰驗簽的特性,可以驗證數據來源的身份。由於私鑰具有唯壹性和隱秘性,所以經過私鑰簽名的數據,代表了私鑰持有者的身份,其他人是無法偽造的。
短信或者郵箱驗證碼也能標識身份,但其操作步驟較為麻煩,不適合頻繁使用的場景。個人數字證書的使用過程,對用戶來講幾乎是透明的。
銀行的U盾其實就是在經過多重線下身份驗證後(身份證,銀行卡,手機號等),把個人數字證書植入到U盾中,並做了物理和網絡隔離。使用U盾時,利用私鑰對數據進行簽名,如果銀行服務器中對應的公鑰能驗簽成功,則說明身份是合法的,可以進行轉賬,提現等敏感操作。
支付類的App中,也有個人數字證書。作用跟U盾類似,只是身份驗證條件比較弱(支付密碼,手機號等),另外,沒有物理隔離,存儲於手機中。
利用公鑰加密,只有對應的私鑰才能解密的特性,可以實現敏感數據的加密。所以這裏的 單向 是指從服務器到客戶端的傳輸。服務端用特定公鑰將數據加密後,只有擁有對應私鑰的客戶端才能解密得到明文。
某支付的付款碼,就是以此來保障付款碼的離線安全性。
頒發流程
使用流程
下面這個流程先進行標識身份,然後把敏感數據單向加密