網絡安全基本概念以及結合https分析

前言:

本來打算計網就這樣結束的,但是貌似安全方面以及https方面沒了解,就翻書順手把那章節大概看了,這裏總結一下。

對稱密鑰密碼體系

在發送方和接收方 公用一個密鑰。加密和解密都是用此密鑰。這個共享密鑰不能爲他人所知,只能由雙方知道。其他人就算只要加密算法和加密後的報文也不能推斷出密鑰

公開密鑰加密

發送方和接收方都擁有着兩個密鑰,一個公鑰(提供給發送方來加密報文),一個密鑰(用於解密報文)。發送信息用接收方的公鑰來加密,而接收方解密則用自己的私鑰來解密。
兩個密鑰之一是保密的,無解密密鑰,解密不可行。
知道算法和其中一個密鑰以及若干的密文不能確定另一個密鑰。

RSA

其加密方式比較特殊,需要兩個密鑰:公開密鑰簡稱公鑰(publickey)和私有密鑰簡稱私鑰(privatekey)。公鑰加密,私鑰解密;私鑰加密,公鑰解密。這個加密算法就是偉大的RSA。
特點就是加密容易,破解難。缺點就是適用小數據加密。

會話密鑰

在實際應用中,由於RSA加密和解密的過程耗時,所以通常配合會話密鑰來使用,即發送端拿到接收端的公鑰,生成一個用於加密數據本身的密鑰,再用公鑰將其加密,傳送給接收端,接收端收到之後用私鑰解密,就得到了該加密數據的密鑰(會話密鑰—對稱密鑰)。然後後面傳輸大量數據就可以用此會話密鑰加密了

報文完整性

前面的加密是爲了給通信機密性,而通信過程中報文的完整性也要注意。
而報文的完整性需要解決兩個問題:

  • 報文的源主機是誰?
  • 報文在傳輸過程中沒有被篡改

報文在傳輸過程中沒有被篡改

  • 密碼散列函數:
    -不相等的兩個報文散列之後得到的字符串不相等,最常見的散列算法有md5,sha-1。
    在傳送報文過程中發送者將報文散列過後的字符串 附加到報文後面。當到達接收端時,接收段用相同散列算法對報文散列,得到的字符串與攜帶的字符串相比,如果相等則證明未被修改。 存在問題:攻擊者修改完報文後,用相同散列算法得到字符串,並修改攜帶的字符串。這樣接收段也會誤認爲沒錯,此時就需要引入
  • 報文鑑別碼。
    報文鑑別碼:爲了執行報文的完整性,除了使用密碼散列函數外,還需要發送方和接收方共享一段比特串(報文鑑別密鑰),
    (1)在計算散列的時候計算報文+報文鑑別碼,得到的報文鑑別碼(MAC)。
    (2)隨後發送方將MAC附加到報文上,生成擴展報文。發送給接收方
    (3)接收方收到擴展報文後,已知報文鑑別密鑰,將報文和報文鑑別密鑰散列化後與MAC比較,相等則證明未被修改。
    問題又來了,,那麼如何讓雙方共享這個報文鑑別密鑰呢???
    這個跟上面說的會話密鑰不久連在一起了嗎=。=
    解決報文的源主機是誰
  • 數字簽名
    數字簽名的用處是在MAC的基礎上再加一增加新的加密來保證源主機的不變。
    運作過程
    (1)發送方用自身的私鑰計算簽名。發送給接收方
    (2)接收方用發送方的公鑰進行解密,假若可以解密則代表着該報文淶源與發送方,因爲根據公開密鑰體系 公鑰加密後的數據用密鑰可以解析,密鑰加密後的數據公鑰可以解析。
    但是加密一整個報文的話,耗費時間太長,所以最終應用都是對散列後的報文進行生成數字簽名。
    問題又來了,,我擦叻我是老黑客了啊,我用自己私鑰來進行數字簽名,然後發送給接收方我自身的公鑰,然後冒充我是警察,這時候接收端用我的公鑰來解密我的數字簽名,這當然可以解析出來啊,這樣他就認爲了我是警察???
    上述存在這認證問題。
    這時候呢認證中心CA就出來了

認證中心 CA

將公鑰與特定的實體綁定起來。
1)CA證明一個實體的真實身份。
2)一旦CA驗證了某個實體的身份,這個CA會生成一個將其身份和實體的公鑰綁定起來的證書。這個證書包含了這個公鑰和公鑰所有者全局唯一的身份標識的信息。
那麼是如何避免上述問題的發生呢?
1)發送方在發送報文的時候,也發送了其CA簽署的證書
2)接收方用 CA的公鑰來覈對證書的合法性,然後提取發送方的公鑰
3)然後就是用提取出來的公鑰解密咯。。。
完美解決了把這樣就。

端點鑑別

端點鑑別是一個實體經計算機網絡向另一個實體證明其自己的過程.
採用的是不重數的解決方案
1)發送端給接收端發送hello信息
2)接收段選擇一個不重數,發給接收段
3)發送端用自身的私鑰加密該不重數,然後發送給接收段,接收段用發送端的公鑰,得到的不重數相等,則確認收到hello的報文是由發送端發送的。

TCP連接安全:SSL

唏噓 說了這麼多,終於到了實際的應用了https

超文本傳輸安全協議(HTTPS,常稱爲 HTTP over TLS/SSL)是一種通過計算機網絡進行安全通信的傳輸協議。HTTPS 經由 HTTP 進行通信,但利用 SSL/TLS 來加密數據包。HTTPS 開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隱私與完整性。

TLS/SSL

  • TCP (Transmission Control Protoco) 傳輸層控制協議
  • TLS (Transport Layer Security) 傳輸層安全協定
  • SSL (Secure Socket Layer) 安全套接層
    更詳細的理解請移步:http://liuduo.me/2018/05/14/https-detail/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章