SSL提供了一套安全加密方法,相當于網路的加密層,
TLS是SSL的升級版,遵循X.509協議,
支持TLS協議的有很多廠商,如OpenSSL,主要用于生成證書,OpenSSL是TLS協議的一種免費實作方案,
頒發者(CA)頒發證書,頒發者需要有權威性、有公信力,頒發證書程序中需要技術手段保證其可信性,即用OpenSSL在頒發者和證書之間建立安全、可信、有權威性的關系,
證書是網站所申請的,由瀏覽器代替訪客查看證書,有證書意味網站是可信任的,
HTTP:用于瀏覽器和服務器端交換純文本資料,
對稱加密:客戶端和服務器都有密碼或密鑰,
離線加密狗:將密碼寫在硬體上,服務器對每個用戶發放密碼,客戶端通過插件的形式得到密碼,保證了網路上沒有密碼傳輸,要求所有用戶離線操作,
HTTPS需要第三方下發證書保證安全,
如何實作在對稱加密時使用互聯網傳輸密碼且密碼不外泄? 無法實作,所以有了非對稱加密,
非對稱加密:加密方和使用方使用的密鑰不同(公私鑰匙),私鑰上鎖,公鑰能解,公鑰加密,私鑰也能解開,當公鑰加密資料時,不能用公鑰解,
TCP三次握手目的是建立穩定鏈接,HTTP協議基于TCP協議,HTTPS協議基于TCP+HTTP+SSL協議,SSL協議要求進行第四次握手,
第四次握手的程序中,客戶端發送請求(傳輸加密的方式,沒有密碼),服務器回傳是否支持該加密演算法,若服務器支持,回傳接受請求的回應和服務器的公鑰(用于密碼加密),
客戶端用第四次握手中被接受的對稱加密演算法對資料加密,隨機生成生成對稱加密的密鑰(解開加密資料的密碼)后,使用公鑰對對稱加密的密鑰進行加密,生成公鑰密文(對稱加密的密鑰),然后發給服務器,
服務器收到公鑰密文后用私鑰進行解密,得到對稱加密的密鑰(即對稱加密需要的密碼)和加密演算法,
這時在傳輸程序中攔截到的資訊只有服務器的公鑰和公鑰密文,公鑰不可以解開公鑰加密的資料,
公私鑰怎么來:先有私鑰,由私鑰生成的公鑰,生成的程序是由OpenSSL這個工具做的,私鑰是純文本,相當于一個可讀的純文本密碼,由私鑰作為引數,用OpenSSL生成公鑰,使用的典型演算法是RSA演算法,這個演算法保證了公鑰加密的資料私鑰能解,私鑰加密的公鑰能解,但公鑰加密的公鑰不能解,公私鑰都是文本,是一對,
客戶端到服務器端的傳輸程序:
客戶端------>代理服務器------->服務器
(1)客戶端到代理服務器需要互動;(2)代理服務器和服務器互動,
在(2)的情景下,此時代理服務器代替客戶端發送和接收資訊,代理服務器是真正的客戶端,這時代理服務器能拿到 服務器的公鑰,客戶端拿到代理服務器的公鑰,
在(1)的情景下,代理服務器是服務器端,
也就是說這個代理服務器可以兩面冒充,
這時需要第三方認證來保證安全,
server端需要申請認證,需要提供域名、鄧白氏編碼、營業許可,網站+域名,需要證明服務器有網站的持有權,第三方提供證書,內容包含公鑰、域名、公司名、簽發人,第三方有自己的私鑰,用自己的私鑰加密以上資訊,同時提供了公鑰內置在客戶端,瀏覽器內置有CA機構內置的公鑰,
這時server向客戶端發送的是證書,客戶端解密得到證書的明文,從而得到了服務器的公鑰,避免中間的代理商替換掉server的公鑰,因此需要第三方,
非對稱加密效率低于對稱加密,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/273780.html
標籤:區塊鏈
