https的作用
將SSL引入http,在兩個系統(比如客戶端和服務端)中可以傳輸資訊的同時保證安全性,即使傳輸過程中被別人截胡,別人也看不出什麼,因為傳輸的資訊都被加密了。
和http的區別
- 加密和不加密的文字傳輸
- http預設埠80 https預設埠443
- 網址開頭不一樣
- 資料傳輸更快因為資訊被加密後減小了體積
對稱加密和非對稱加密
對稱加密:雙方握有同一個key,可以事先雙方協定好。這個key可以同時用來加密和解密。
非對稱加密: 一對?,公鑰和私鑰; 公鑰可以解密私鑰加密的資訊,私鑰也可以解密公鑰的資訊,公鑰可以分享給任何人。有的時候比如第一次溝通,雙方無法見面的情況下就要用到非對稱加密。
舉例利用非對稱加密客戶端到服務端的請求安全。
- 客戶端向服務端傳送連線請求。
- 服務端將公鑰傳送給客戶端,同時保留一份私鑰。
- 客戶端收到公鑰後將待傳送的資訊利用公鑰加密發給服務端。
- 服務端利用私鑰將客戶端發來的資訊進行解密。
這個過程是為了保證客戶端到服務端的資訊不被攔截。黑客如果在第三部攔截的話,他沒有私鑰解密不了資訊。但是存在一個問題,如果第二部被黑客攔截了,黑客將自己的公鑰傳送給客戶端,客戶端然後就會將自己的資訊用黑客的公鑰加密傳送的時候再被黑客攔截資訊就被黑客知道了。
證書的作用
要能保證我收到的公鑰是要能和我想溝通的人對的上。所以就會想到在這個公鑰上加上簽名,表明這個人的身份。但是就比如說你想和小明溝通上。當你第一次和小明溝通的時候,你無法確認你收到的簽名是不是小明籤的。
為什麼不能確認是小明:小明的簽名裡說我就是小明。那小黑也可以發個簽名說我是小黑。
怎麼做:引入第三方機構證明小明就是小明;就好像身份證一樣,這是國家機構證明你的個人身份。
偽造證書
偽造證書本身是不困難;但是瀏覽器只能信任某些權威機構簽發的證書。這些權威機構的演算法很複雜,保證了不會被輕易偽造簽名。
SSL具體如何工作
ssl Secure Socket Layer . 它是一個傳輸加密的機制,資訊在兩個系統之間傳輸時它來保證傳輸的安全性,比如什麼使用者資訊,銀行卡賬號密碼。 ssl通訊主要分為兩個步驟
- ssl 握手
- 實際資料傳輸
ssl握手
握手階段是非對稱加密,實際資料傳輸過程是對稱加密。
- 客戶端傳送客戶端的ssl版本號,密碼設定(cipher settings)給到伺服器
- 伺服器應答伺服器的ssl版本號,密碼設定。ssl 證書(裡面包含有公鑰)
- 客戶端在CA處驗證ssl證書。驗證成功後往下走,驗證失敗則拋錯
- 客戶端建立一個session key。以剛剛驗證過的公鑰加密傳送給伺服器。
- 伺服器用對應的私鑰解密出session key.並且用session key 加密後的資訊告知客戶端。 key是用於後續傳輸資料的對稱加密的key。非對稱加密的公鑰和私鑰這個時候就不使用了。
實際資料傳輸
用上面得到的session key 對稱加密進行傳輸。