數據加密
單秘鑰加密,整個系統由需要加密的明文,加密算法和秘鑰工程。常見的有DES、AES、RC4等
雙秘鑰加密,整個系統由需要加密的銘文,加密算法,秘鑰和公鑰。公鑰和秘鑰都可以用來加密。常見的有RSA等
不可解密,哈希算法,MD5和SHA-1等
數字簽名
指用於標記數字文件擁有者、創造者、分發者身份的字符串。擁有標記文件身份、分發的不可抵賴性等作用,
目前常用的數字簽名採用了非對稱加密。
數字證書
銀行U盾初始化的過程就是下載數字證書,數字證書包含銀行公鑰。有了公鑰之後,網銀就可可以用公鑰加密我們提供給銀行的信息,銀行才能用對應的私鑰解密,確保安全。
PKI體系
全稱公鑰基礎設施,使用非堆成加密理論,提供數字簽名、加密、數字證書等服務的體系,一般包括權威認證機構CA、數字證書庫、秘鑰備份及恢復系統、證書作廢系統、應用接口API等
go語言的哈希函數
包crypto/sha1 crypto/md5
加密通信
https是基於ssl(secure sockets layer)協議。ssl是網景公司開發位於tcp與http之間的透明安全協議,通過ssl,可以把http包數據以非對稱加密的形式往返於瀏覽器和站點之間,避免被第三方非法獲取。
加密通信流程:
- 瀏覽器輸入https協議網址
- 服務器向瀏覽器返回證書,
- 瀏覽器檢車證書合法性
- 瀏覽器使用證書中的公鑰加密一個隨機堆成秘鑰,並將加密後的秘鑰和使用秘鑰加密後的請求URL一起發送到服務器
- 服務器用私鑰解密隨機堆成秘鑰,並用獲取的秘鑰解密加密的請求URL
- 服務器把用戶請求的網頁用秘鑰加密,並返回給用戶
- 瀏覽器用秘鑰解密服務器發來的數據,最終顯示
上述過程依賴SSL/TLS層實現。工程更復雜一些,基本流程是一致的
閱讀更多 oscube 的文章