發布源:深圳維創信息技術發布時間:2020-09-24 瀏覽次數: 次
像這三種類型,它們硬件不同,系統不同,服務端處理的編程語言不同。
它們之間卻可以在網絡的世界了自由聯通。
靠的是什么呢?靠的是它們遵守相同的規則(如:HTTP)。
應用層用什么格式(語言編碼,報文字段)封裝報文、傳輸層如何將大量的數據分段,并給每幀數據添加編號和端口信息、網絡層如何給沒幀數據添加IP地址,目標MAC地址、數據鏈路層如何將數字信息通過網卡發出去。
HTTPS是傳輸協議嗎?目前常見的應用層協議好像沒有看到HTTPS啊?沒錯,HTTPS并非TCP/IP協議族中的一員,它其實是HTTP協議+SSL協議的組合體,是披著SSL外衣的HTTP。
HTTPS與HTTP有什么關系?HTTP實現的功能:一種機制簡單(這也是從早期眾多傳輸協議中走出來的原因)的超文本傳輸協議,為客戶端和服務器通信服務,是處在TCP/IP協議族中的應用層協議。
HTTP在發送請求時,采用四層架構。
應用層:提供多種應用服務,如:HTTP FTP DNS等,可以直接提供給開發者使用。
傳輸層:網絡間數據的傳輸,如:TCP TDP,報文數據分割打包成幀網絡層:處理網絡中流動的數據包,在復雜的網絡段中選擇一條傳輸路線,將數據包送到目的地。
將現實中的寄快遞(在快遞上寫上收件地址等信息,送到快遞點(類似于路由器))數據鏈路層:處理鏈接網絡的硬件部分,如:網絡適配器,硬件驅動,操作系統,光纖。
HTTP請求過程中的重要概念!1.數據包在網絡層怎么走的呢?在數據包傳輸過程中,需要不斷使用地址解析協議(IP和MAC地址對應的表,互相反查),進行路由選擇(將數據包丟給一個路由器,路由器會根據數據包上帶的地址,自動分揀,傳給它認為比較好的下一站路,直到到達目的地)2.TCP通訊三次握手客戶端先發送一個SYN(synchronize)服務端收到后,返回一個SYN(synchronize)/ACK(acknowledgement)客戶端發送一個ACK(acknowledgement)3.DNS域名解析服務:在瀏覽器輸入url后,點擊enter。
網絡首先會拿填寫的域名到dns服務器查詢對應的IP地址。
瀏覽器將請求傳給返回的IP地址。
4.HTTP與HTTPS通信的區別只是在應用層與傳輸層之間添加了一個SSL層HTTPS為什么會安全?既然HTTPS是披著SSL外衣的HTTP,那SSL是什么呢?SSL是安全套接字層,是目前比較成熟的提供可靠數據傳輸的安全協議。
SSL可以提供證書認證,數據加密,完整性保護等保護性策略。
數據加密原理SSL采用的加密策略是:非對此加密+對稱加密的混合加密方式對成加密:單純的對稱加密,加密解密的效率高,但是在客戶端于服務端共享密鑰時,容易被中間劫持泄露,不夠安全非對稱加密:是新一代加密方案,加密解密銷量低,但是可以實現密鑰的安全傳輸,想通過公鑰解出私鑰難道極大,基本不可能。
最中采用在第一次交換共享密鑰時,使用非對稱加密。
然后用共享密鑰加密。
這樣既避免了密鑰被劫持,又保證了效率數據完整性策略采用報文摘要的策略,防止報文主題被修改。
在報文發送前,先通過md5-base64加密,得到一個報文主體的摘要,把這個摘要放到請求首部中,等服務器收到信息,采用同樣的算法,加密報文主體,根據得到的結果是否和報文摘要一致來判斷數據的完整性。
SSL和TLS的關系目前常見的加密協議有兩個SSL3.0和TLS1.0,它們之間有什么區別呢?SSL(Secure Socket Layer):是有瀏覽器開發商網景通信公司發起并開發到了SSL3.0版本TLS(Transport Layer Security):后面主導權移交給了IETF組織,他們在SSL3.0基礎上開發了 TLS一系列版本。
它們是“父子”關系。
HTTPS協議安全通信步驟HTTPS協議安全通信步驟中有三個主角元素:客戶端,服務器,第三方可信任的證書頒發機構。
過程如下:服務器的運維人員向“第三方可信任的證書頒發機構”提供公司的有效信息+公鑰。
“第三方可信任的證書頒發機構”認證公司有效,就用“第三方可信任的證書頒發機構”的私鑰給服務器的公鑰簽名,然后創建一個證書,證書中加入了公鑰+公鑰簽名結果,發給服務器。
服務器運營人員需要支付一定的費用。
客服端安裝瀏覽器,瀏覽器內部內置了“第三方可信任的證書頒發機構”的根證書,里面包含了“第三方可信任的證書頒發機構”的公鑰信息//正式開始SSL通信客戶端發送請求給CpentHello到服務器,請求報文中包含客戶端支持的SSL指定版本號,加密組件列表(使用的加密算法和密鑰長度)服務端收到請求后,也回發生個CpentHello回應,里面包含了使用的SSL版本和加密組件(該加密組件是從客戶端發生的列表中篩選出來的)緊接著服務器發生證書報文(Certificate),將服務器申請的公鑰證書傳給客戶端然后服務器發生一個Server Hello Done報文給客戶端,表示初期階段的SSL握手協商結束。
客戶端收到服務器發來的公鑰證書后,拿本地存儲的第三方機構根證書中的公鑰對證書中的簽名信息解密,如果解密的結構同證書中的原始服務器公鑰信息一樣,證明服務器可信。
接著客戶端在本地生成一個隨機密碼字符串。
用服務器的公鑰加密這個字符串,將得到的結果傳遞給服務器器。
然后客戶端再發送一個Change Cipher Spec報文(修改加密規則說明)給服務器,告訴服務器下面的通信將采用剛才的隨機密碼字符串作為加密密鑰。
最后客戶端發生一個Finish報文,報文中包含了從連接到現在所有報文的整體校驗碼,上面一系列的握手協商是否能最后成功,就看服務器能否正確解密這個Finish報文了。
服務器正確解密后,也發送個Change Cipher Spec報文(修改加密規則說明)給客戶端。
最后服務端也發送個Finish報文讓客戶端解密驗證。
等客戶端、服務器兩者的Finished報文都正常交換后,SSL連接算是正式建立完成。
下面的通信就會受到SSL的加密保護。
現在客戶端就可以安全的給服務器發送簡單的應用層協議(http)了,并得到受保護的響應最后通訊完成,由客戶端發送close_notify報文,通知服務器斷開鏈接。
/
Copyright © 2021 深圳市維創信息技術有限公司 版權所有