go語言編程 要點總結(六)安全編程

數據加密

單祕鑰加密,整個系統由需要加密的明文,加密算法和祕鑰工程。常見的有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包數據以非對稱加密的形式往返於瀏覽器和站點之間,避免被第三方非法獲取。

加密通信流程:

  1. 瀏覽器輸入https協議網址
  2. 服務器向瀏覽器返回證書,
  3. 瀏覽器檢車證書合法性
  4. 瀏覽器使用證書中的公鑰加密一個隨機堆成祕鑰,並將加密後的祕鑰和使用祕鑰加密後的請求URL一起發送到服務器
  5. 服務器用私鑰解密隨機堆成祕鑰,並用獲取的祕鑰解密加密的請求URL
  6. 服務器把用戶請求的網頁用祕鑰加密,並返回給用戶
  7. 瀏覽器用祕鑰解密服務器發來的數據,最終顯示

上述過程依賴SSL/TLS層實現。工程更復雜一些,基本流程是一致的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章