成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

安全 數據安全
本篇文章介紹一下程序員都應該了解的網絡通信相關的安全基礎知識。下面,我們一起來看。

本篇文章介紹一下程序員都應該了解的網絡通信相關的安全基礎知識。下面,我們一起來看。

[[277662]]

通信風險

  • 竊聽風險(eavesdropping):第三方可以獲知通信內容。
  • 篡改風險(tampering):第三方可以修改通信內容。
  • 冒充風險(pretending):第三方可以冒充他人身份參與通信。

風險防范

  • 信息加密傳輸,第三方無法竊聽。
  • 增加校驗機制,一旦被篡改,通信雙方會立刻發現。
  • 配備身份證書,防止身份被冒充。

​哈希(Hash)

哈希也叫散列,是把任意長度的輸入通過散列算法變換成固定長度的輸出,該輸出就是散列值,也叫摘要(Digest)。

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

哈希是一種壓縮映射,通常不可逆

這種轉換是一種壓縮映射。也就是,散列值的空間通常遠小于輸入的空間,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來確定唯一的輸入值,但如果輸出的位數足夠,不同輸入散列成相同輸出的概率非常非常小。

簡單的說,散列就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的過程。

散列是不可逆的,也就是無法通過輸出還原輸入,此特性常被用于密碼保存。

SHA-512、MD5等都是著名的散列函數,MD5生成的散列碼是128位,甚至MD5就是哈希的同名詞,你可以通過網站:https://passwordsgenerator.net/sha512-hash-generator/ 在線計算哈希。

散列有什么用?

  • 散列可用于保存密碼,明文保存密碼是危險的。通常我們把密碼哈希加密之后保存,這樣即使泄漏了密碼,因為是散列后的值,也沒有辦法推導出密碼明文(字典攻擊難以破解)。驗證的時候,只需要對密碼(明文)做同樣的散列,對比散列后的輸出和保存的密碼散列值,就可以驗證同一性。
  • 可用于驗證下載文件的完整性以及防篡改,比如網站提供安裝包的時候,通常也同時提供md5值,這樣用戶下載之后,可以重算安裝包的md5值,如果一致,則證明下載到本地的安裝包跟網站提供的安裝包是一致的,網絡傳輸過程中沒有出錯。

加密

加密就是把明文變成密文的過程,解密就是反方向把密文變成明文。

比如著名的凱撒密碼,就是把每個字對應到另一個,這樣的話,只要有密碼本,就能對照完成加解密。比如最簡單的,對于英文26個字母,每個字母右移3個,abc變成def,這也是一種加密,當然這種加密很簡單,很容易被破譯。

而諸如AES(高級加密標準)、3DES(三重數據加密算法)則被公認為很難破解,不過山東大學女教授王小云很厲害,破解了MD5和SHA-1,迫使加密標準升級,最終當上了院士。

1. 對稱加密

對稱加密就是加解密的密鑰是一樣的,優點是快,這也是傳統的加密方式,像AES、3DES都是對稱加密。

2. 非對稱加密

非對稱加密用于加解密的密鑰不一樣,有2個密鑰,公鑰和私鑰,公鑰可以公開,私鑰妥善保管。RSA、ECC(橢圓曲線加密算法)、DH(密鑰交換算法)這些都是非對稱加密。

非對稱加密很慢,有多慢?相比對稱加密慢1000倍,因為慢,所以它常用于密鑰協商(Handshake),協商出會話密鑰后,再用對稱密鑰加密通信數據。

1976年,Whitfield Diffie和Martin Hellman首次提出了非對稱加密的概念,該算法被稱為Diffie-Hellman密鑰交換。然后在1978年,麻省理工學院的Ron Rivest,Adi Shamir和Leonard Adleman發表了RSA 算法。這些都可以被視為非對稱加密的基礎。

非對稱加密也稱為公鑰基礎結構,又稱PKI。非對稱加密的提出是密碼學上的一次革命,影響深遠。

非對稱加密算法用私鑰加密,用公鑰解密,或者用公鑰加密,用私鑰解密。

證書

證書就是為了證明我是我,比如你要訪問中國銀行網站,但中行官網如何證明它是中行官網呢?答案就是數字證書。

CA是數字證書中心,服務器需要找CA做認證,讓CA給自己頒布數字證書,數字證書內一般包含服務的一些信息、以及服務器的公鑰,通過CA的私鑰加密后,產生的數字證書,因為CA的權威性,且它的公鑰天下皆知,所以,如果你能用CA的公鑰解開證書,那便可證明該證書一定是CA頒發的,要不然它不會有CA的私鑰,也便沒法產生可用CA公鑰解密的證書。

所以,由此可見,數字證書用到了非對稱加密。

數字簽名

日常生活中也有簽名,每個人的筆跡是不一樣的,你刷卡消費后在賬單簽上大名,服務員校驗過之后保存下來,你哪天賴賬,便可以有簽名為證,因為別人寫的字跟你的筆跡終有差別。

那數字簽名是什么呢?比如a發一封email,接收方怎么證明這封信是a寫的?

本質上,數字簽名也是利用了非對稱加密。

前面講了,非對稱加密有公鑰和私鑰,如果發生方用私鑰加密,然后接收方用發送方的公鑰可以解密,那便可以證明是從某發送方發送的,因為別人拿不到你的私鑰,也便無法用你的私鑰加密,你不能抵賴。

數字簽名通常先對內容算哈希,產生內容摘要,再用私鑰加密,得到簽名。

密鑰協商

下面舉一個例子來說明這幾個問題:

張三有2把鑰匙,一把公鑰,公告天下,一把私鑰,妥善保管,只有自己知道,很明顯,非對稱加密。

李四給張三寫信,寫完之后,用張三的公鑰加密,通過郵局寄給張三,即使郵遞員拆開信封看,他也看不懂,因為內容是密文,只有張三的密鑰才能解密。

張三收到信后,用私鑰解密,可以正常閱讀。

現在張三要給李四回信,寫完后,用hash函數生成摘要digest。

然后張三,再用私鑰對摘要加密,生成數字簽名signature。

然后把簽名附在信的下面,一起發給李四。

過程是:信明文 -> hash -> digist -> 私鑰加密 -> signature。

李四收到回信后,用張三的公鑰對數字簽名解密,得到摘要,由此證明,信確實是張三發出的,為什么?因為如果不是張三發的,那寫信的人就沒有張三私鑰,用別的私鑰加密得到的簽名,是無法用張三的公鑰解開的。

李四,再對信的內容做hash,得到摘要,與上一步得到的摘要對比,如果一致,則證明信的內容沒有被修改過,信的內容是完整的。

復雜的情況出現了。

王五,用自己的公鑰替換李四保存的張三的公鑰,也就是王五欺騙了李四,李四誤把王五的公鑰當張三的公鑰,這樣一來,王五就能冒充張三給李四寫信(王五用自己的私鑰加密)。

問題是什么?問題是李四不能確信自己保存的公鑰真的是張三的公鑰。如果客戶端電腦上存的工商銀行官網的公鑰,實際上是騙子公司的公鑰,那就麻煩大了。

怎么破?讓張三去認證中心CA(Certificate Authority),為公鑰做認證,怎么做呢?CA中心用自己的私鑰,對張三的公鑰和其他相關信息一起加密,生成數字證書(Digital Certificate)。

張三拿到數字證書后,以后給李四回信,在簽名的同時,附帶上數字證書。

李四收到信之后,從CA的公鑰解開數字證書,取出張三的公鑰(一定是真的),然后就能放心的愉快的按之前的流程解開簽名了。

數字證書加入后,核心區別就是張三的公鑰不再保存在李四處,而是通過數字證書下發。

為什么數字證書里的張三的公鑰一定是真的呢?因為CA是權威機構,假設全世界就一家(其實不止,但也不多),它的公鑰天下盡知,就是固定的串,所以能用CA公鑰解開的證書,一定是CA頒布的,因為CA用它的私鑰加密產生的證書。很明顯,非對稱加密能用于證明我是我。

密鑰交換算法

著名的DH密鑰交換算法,這個算法很有意思,也很巧妙,簡而言之,就是通信雙方交換一點信息(不怕被偷看到),然后就在兩端,分布產生出一個相同的密鑰,神奇啊。

有一個很有意思的例子。

Alice和Bob要協商出一個公共的顏色,他們可以交換信息,但交換的信息,可以被偷看到,怎么辦?既能協商出公共顏色,又不能讓別人知道呢。

  • 首先,他們有公共的顏色,都是1毫升黃色。
  • 然后Alice挑選一個私密的紅色,Bob選綠色,都是1毫升。只有自己知道,不會告訴別人。
  • 然后Alice把黃色和紅色混合在一起,Bob把黃色和綠色混合在一起,各為2毫升。
  • 然后,他們把自己混合后的2毫升顏色液體,發給對方。
  • 然后,用自己的一毫升私密顏色液體,跟從對方那里收到的2毫升液體,混合,下面就是見證奇跡的顏色的時刻,他們得到了相同的顏色,而第三方并不能通過偷看他們傳遞的數據知道他們最終得到的顏色(基于一個假設,圖里有說明)。

密鑰交換算法的原理跟這個差不多,網上有大量的資料講述這個問題,我覺得理解了上面的例子,再看ECDH便也不難了。

眾所周知http是互聯網協議,但是它不夠安全,所以后面有改進版的https,其實就是多了一個TLS,這個是傳輸層加密,本質上,就是通過handshake,協商出一個會話密鑰,后面的數據傳遞,都用這個密鑰做對稱加解密。

我們經常講安全通道,其實也就是協商出一個會話密鑰,他并不神秘。胡亂放幾張圖片吧。

為了減少這幾個RTT,又想了各種辦法,然后復用連接的話,就可以做到0RTT,1RTT了。

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

通信安全基礎:哈希、對稱加密、非對稱加密、密鑰協商

就說這些吧,最后拋幾個名詞,有興趣自行百度學習:DTLS,HMAC,AEAD,重放攻擊,放大攻擊,是不是很高端?

 

責任編輯:趙寧寧 來源: 碼磚雜役
相關推薦

2020-05-27 10:10:56

對稱加密Hash算法數字簽名

2023-09-04 14:00:28

加密密鑰私鑰

2023-11-22 16:08:48

2019-09-11 08:37:16

2011-03-14 15:06:49

SQL Server 安全

2014-07-07 10:04:32

2024-12-31 08:00:00

SpringBoot開發加密

2019-11-21 14:58:34

哈希加密安全

2019-10-10 08:51:01

哈希加密證書

2019-12-11 16:56:37

HTTPS對稱加密Java

2022-10-21 07:33:12

2010-07-28 10:09:01

2011-03-14 10:38:10

SQL Server非對稱密鑰加密

2018-07-10 10:29:27

2012-09-13 09:58:38

2024-11-26 10:01:25

2024-12-31 08:54:38

2016-11-10 23:51:41

2020-06-02 17:17:43

HTTPS加密算法前端

2011-03-15 09:51:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久成人av电影 | 日韩三级在线 | 国产一区二区三区色淫影院 | 日本精品一区二区三区在线观看视频 | 一区二区三区亚洲视频 | 在线免费毛片 | 日韩有码一区 | 日韩一区二区av | 农村妇女毛片精品久久久 | 国产一区二区三区久久久久久久久 | 色综合av| 成人性视频在线播放 | 黄色大片网站 | 午夜电影网址 | 成人在线观看欧美 | 亚洲综合国产 | 欧美一区二区三区四区五区无卡码 | 国产精品日韩欧美一区二区 | 亚洲精品在线看 | 黄久久久 | 国产亚洲精品精品国产亚洲综合 | 成人在线视频免费观看 | 国产精品1区2区 | 欧美日韩高清一区二区三区 | 91视频.com| 91一区二区| 青草青草久热精品视频在线观看 | 欧美日韩亚洲视频 | 亚洲精品片 | 欧美国产一区二区三区 | 干干干操操操 | 久久精品视频播放 | 亚洲一区二区精品视频 | 综合五月 | 欧美一区二区三区在线观看视频 | 日韩欧美视频在线 | 国产一区二区三区在线 | 午夜午夜精品一区二区三区文 | 综合久久av | 久久久涩 | 亚洲第一视频网 |