當前位置:首頁 » 密碼管理 » dtls加密

dtls加密

發布時間: 2024-11-07 05:58:38

Ⅰ TLS/DTLS技術--最詳細

安全傳輸層協議(TLS)用於在兩個通信應用程序之間提供保密性和數據完整性。TLS由兩層組成:TLS記錄協議和TLS握手協議。SSL是TLS的前身,TLS是SSL的標准化版本,當前版本是2018年發布的TLS 1.3。TLS和HTTPS的關系是TLS協議在傳輸層和應用層之間,TLS和應用層協議之間是解耦的,TLS不僅服務於HTTP,還能透明地運行在其他應用層協議之上。應用層協議傳送的數據通過TLS加密,保證通信的私密性。TLS是可選的,但必須運行在客戶端和伺服器之間。對稱加密使用相同的密鑰進行加密和解密,常見的演算法有DES、RC、AES、3DES。非對稱加密使用公鑰和私鑰,公鑰用於加密和驗證簽名,私鑰用於解密和簽名,常用的演算法有RSA、DH、ElGamal、ECC。證書是驗證身份的工具,由可信第三方的證書機構頒發,包含證書所有者的屬性信息,並由公鑰驗證。證書鏈由根證書衍生,確保次級證書的合法性,允許驗證。TLS的請求發起者是客戶端,請求響應者是伺服器。一旦客戶端和伺服器同意使用TLS協議,通過握手過程協商出有狀態連接以傳輸數據。握手過程涉及客戶端驗證伺服器身份並分享會話密鑰,通過會話密鑰進行安全通信。CA具有自簽名、頒發證書、校驗證書的功能。伺服器具有由CA頒發的證書,以及分發證書、簽名、建立會話密鑰安全通信的功能。客戶端獲取伺服器證書後向CA請求校驗證書,生成會話密鑰並與伺服器協商後建立安全傳輸通道。啟動角色流程依次是CA、伺服器、客戶端。TLS協議架構包括TLS記錄協議和TLS握手協議,有控制報文,如握手協議、密碼規范協議和報警協議。握手協議在加密通信之前,協商加密演算法和密鑰,類似於兩個陌生人見面相互握手打招呼。測試階段,可以使用openssl自簽發證書。正式平台必須使用CA證書簽發機構簽發的證書。自簽名SSL證書存在被黑客利用、瀏覽器警告、安全性降低、證書吊銷困難和有效期過長等弊端。在Nginx中,將生成的server.key與server.crt復制到證書相關目錄下並進行設置即可。DTLS與TLS主要區別在於DTLS使用UDP,而TLS使用TCP,適用於Web瀏覽、郵件、即時消息傳遞和VoIP。DTLS與SRTP一起用於WebRTC技術的安全協議之一。SRTP協議使用RTP協議頭,僅對數據加密。libsrtp是WebRTC使用的開源框架。

Ⅱ 通信安全:哈希、加密、證書、簽名、密鑰協商、ECDH、TLS、DTLS

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

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

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

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

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

散列有什麼用?

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

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

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

對稱加密

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

非對稱加密

非對稱加密用於加解密的密鑰不一樣,有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要協商出一個公共的顏色,他們可以交換信息,但交換的信息,可以被偷看到,怎麼辦?既能協商出公共顏色,又不能讓別人知道呢。

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

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

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

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

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

熱點內容
青草下載ftp 發布:2024-11-22 22:43:08 瀏覽:850
壓縮機方面 發布:2024-11-22 22:31:47 瀏覽:953
php網上購物 發布:2024-11-22 22:17:50 瀏覽:939
安卓系統低會有什麼影響 發布:2024-11-22 22:16:59 瀏覽:412
解壓到u盤根目錄 發布:2024-11-22 22:05:13 瀏覽:716
伺服器上如何查看sz的版本號 發布:2024-11-22 21:46:24 瀏覽:844
isa演算法 發布:2024-11-22 21:45:09 瀏覽:180
我的世界外區伺服器 發布:2024-11-22 21:44:12 瀏覽:791
android開發工具有哪些 發布:2024-11-22 21:43:34 瀏覽:697
如何配置鹽水比例 發布:2024-11-22 21:38:36 瀏覽:742