SSL驗證, 非對稱加密時序圖

非對稱加密時序圖

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

  • 對稱密鑰加密

    • 單密鑰, 加密和解密是相同的密鑰。
    • 密鑰保存很重要,加密方和解密方任一方泄露密鑰,將會使通信存在被竊聽、偷換等危險。
    • 例:DES(Data Encryption Standard),通用的雙鑰加密算法爲RSA( Rivest-Shamir-Adleman)。
  • 非對稱密鑰加密

    • 密鑰分爲公鑰和私鑰,公私密鑰不相同,但相互對應。
    • 公鑰加密的信息只能私鑰才能解開,反之亦然。
    • 公鑰加密私鑰解密,用於通信信息加密;私鑰加密公鑰解密,用於加密方數字簽名,證明身份有效性。
  • 非對稱加密時序圖

    • 通常C/S架構中加密通信必須驗證S(Server)端的身份有效性,即證書、數字簽名等。
    clientserverssl/tls 請求certificate證書, PubKey公鑰client驗證證書是否在信賴的證書庫裏,或直接信賴未經驗證的證公鑰加密信息爲密文server私鑰解密得到信息server發送信息:msg->hash->digest(hash摘要)->私鑰加密->Signature(數字簽名)數字簽名+信息client公鑰解密簽名->digest-0,msg->hash->digest-1,比對digest-0 和digest-1確認信息是否被篡改clientserver
    • 中間人攻擊(Middle-Man Attack): 中間人使用自己的證書和公鑰,對client冒充server,對server冒充client.劫持、篡改雙方的通信而不被察覺。
    request
    certificate, PubKey
    certificate, PubKey
    request
    client
    middleman
    server
    • 針對以上問題,需要server端向第三方的證書權威機構(CA)公證自己的信息、域名和公鑰等,CA對其進行私鑰加密生成"數字證書"(Digital Certificate)。server端後續通信過程中,只需要再加上這個數字證書,client收到後,根據CA的相關公鑰解開證書,獲取到server的信息、域名和公鑰等,然後公鑰解密簽名, 比對信息是否被篡改。能用證書中解開的公鑰解密簽名,則證明發信人的確是想要的client端,比對簽名解密後的digest(hash摘要),則能確認信息是否被篡改,這樣就保證了加密通信的可靠。
  • ssl 雙向驗證、單向驗證和雙方均不驗證

    • 一般Web應用是SSL單向驗證,客戶端驗證服務端的身份,服務端不驗證客服端,如瀏覽器訪問服務端網站。企業內微服務、應用間的雙向通行往往需要雙向驗證。
    • 從客戶端方面來看,對於服務端的證書可以選擇驗證或者忽略(即始終信賴),後者雖然不安全,但是對於自己開發部署的企業內部程序而言會比較方便。

    <全文完>

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