標籤:
TSL/SSL協議 NetScape最開始提出了SSL( secure sockets layer 安全套接層)。ssl作為安全性通訊協定,是在傳輸層對網路進行加密。七層(物理- 資料鏈路 - 網路 -傳輸 - 會話 -表示 -應用) 資料在應用程式層之前就已經完成了加密解密過程。後來IETE將其標準化,稱其為TLS(transport layer security 安全傳輸層協議)TSL/SSL 是一個公開金鑰/私密金鑰的非對稱結構,用戶端和服務端都儲存了自己的私密金鑰和 對面的公開金鑰,發送資料的時候會用對面的公開金鑰加密,對面收到資料之後 會用自己的私密金鑰來解密。 但是存在一個問題,在用戶端和服務端交換公開金鑰的過程中,有可能有中間人偽造角色,將兩者的公開金鑰擷取到了,這樣就可以偽造資料傳送,會將偽造的網站響應給使用者。這時候TLS/SSL引入了是數位憑證。數位憑證中包含了: 伺服器的名稱 主機名稱 伺服器的公開金鑰 簽名頒發機構的名稱 來自簽名頒發機構的簽名。維基百科上面關於認證的解釋: 認證的內容包括:電子簽證機關的資訊、公開金鑰使用者資訊、公開金鑰、權威機構的簽字和有效期間等等。目前,認證的格式和驗證方法普遍遵循X.509 國際標準。 在建立串連前,會通過認證中的簽名確認收到公開金鑰是來自目標伺服器的,從而產生信任關係。 但是又存在一個問題,認證怎麼來呢,則需要第三方機構,CA(Certificate Authority,數位憑證認證中心),它的作用就是給我們的網站頒發認證.如何得到簽署憑證呢???? 服務端先要通過自己的私密金鑰產生CSR(certificate athourity request)認證簽章要求檔案,然後CA會根據這個檔案頒發屬於該伺服器的簽署憑證。CA根據自己的 也就是數位憑證認證中心的私密金鑰 和 申請數位憑證機構的公開金鑰 和一些資訊加密,產生數位憑證.[摘自ruanyf部落格] 用戶端在發起安全連線的時候,會先去擷取服務端的認證,並通過CA認證驗證伺服器,因為認證裡麵包含了伺服器的公開金鑰資訊. 參考資料: http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html 樸靈:深入淺出nodeJS If you are goods at English .u can read this :http://www.youdzone.com/signature.html
[摘錄]TSL/SSL協議