一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - 深入講解HTTPS中的加密算法

深入講解HTTPS中的加密算法

2020-08-11 21:15FOOFISH 編程技術

前段時間對接了好多外部接口,很多都是https的,還有證書,還有一些加密的。對這塊不是太了解,就查資料整理總結實踐下。下面這篇文章主要給大家深入的介紹了關于HTTPS中加密算法的相關資料,需要的朋友可以參考下。

https介紹

https其實是有兩部分組成:http + ssl / tls,也就是在http上又加了一層處理加密信息的模塊。服務端和客戶端的信息傳輸都會通過tls進行加密,所以傳輸的數據都是加密后的數據。

用途兩種:一種是建立一個信息通道,來保證數據傳輸的安全;另一種就是確認網站的真實性,凡是使用了 https 的網站,都可以通過點擊瀏覽器地址欄的鎖頭標志來查看網站認證之后的真實信息,也可以通過 ca 機構頒發的安全簽章來查詢。

前言

密碼學在計算機科學中使用非常廣泛,https就是建立在密碼學基礎之上的一種安全的通信協議。https早在1994年由網景公司首次提出,而如今在眾多互聯網廠商的推廣之下https已經被廣泛使用在各種大小網站中。在完全理解https之前,有必要弄清楚一些密碼學相關的概念,比如:明文、密文、密碼、密鑰、對稱加密、非對稱加密、摘要、數字簽名、數字證書。

密碼(cipher)

密碼學中的密碼(cipher)和我們日常生活中所說的密碼不太一樣,計算機術語『密碼 cipher』是一種用于加密或者解密的算法,而我們日常所使用的『密碼 password』是一種口令,它是用于認證用途的一組文本字符串,這里我們要討論的是前者:cipher。

密鑰(key)

密鑰是一種參數,它是在使用密碼(cipher)算法過程中輸入的參數。同一個明文在相同的密碼算法和不同的密鑰計算下會產生不同的密文。很多知名的密碼算法都是公開的,密鑰才是決定密文是否安全的重要參數,通常密鑰越長,破解的難度越大,比如一個8位的密鑰最多有256種情況,使用窮舉法,能非常輕易的破解,知名的des算法使用56位的密鑰,目前已經不是一種安全的加密算法了,主要還是因為56位的密鑰太短,在數小時內就可以被破解。密鑰分為對稱密鑰與非對稱密鑰。

明文/密文

明文(plaintext)是加密之前的原始數據,密文是通過密碼(cipher)運算后得到的結果成為密文(ciphertext)

深入講解HTTPS中的加密算法

對稱密鑰

對稱密鑰(symmetric-key algorithm)又稱為共享密鑰加密,對稱密鑰在加密和解密的過程中使用的密鑰是相同的,常見的對稱加密算法有des、3des、aes、rc5、rc6。對稱密鑰的優點是計算速度快,但是他也有缺點,密鑰需要在通訊的兩端共享,讓彼此知道密鑰是什么對方才能正確解密,如果所有客戶端都共享同一個密鑰,那么這個密鑰就像萬能鑰匙一樣,可以憑借一個密鑰破解所有人的密文了,如果每個客戶端與服務端單獨維護一個密鑰,那么服務端需要管理的密鑰將是成千上萬,這會給服務端帶來噩夢。下面就是一個簡單的對稱加密,將明文加密成ascii。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 加密的方式:在ascii的基礎上 + 密鑰的值
 
def encipher(plain_text, key):
 # 加密
 cipher_text = []
 for c in plain_text:
 cipher_text.append(str(ord(c) + key))
 
 return ' '.join(cipher_text)
 
def decipher(cipher_text, key):
 # 解密
 plain_text = []
 for c in cipher_text.split(" "):
 plain_text.append(chr(int(c)+key))
 return "".join(plain_text)
 
 
if __name__ == '__main__':
 print "cipher_text:", encipher("abcdef", 0)
 print "plain_text:", decipher("97 98 99 100 101 102", 0)

非對稱密鑰

非對稱密鑰(public-key cryptography),又稱為公開密鑰加密,服務端會生成一對密鑰,一個私鑰保存在服務端,僅自己知道,另一個是公鑰,公鑰可以自由發布供任何人使用。客戶端的明文通過公鑰加密后的密文需要用私鑰解密。非對稱密鑰在加密和解密的過程的使用的密鑰是不同的密鑰,加密和解密是不對稱的,所以稱之為非對稱加密。與對稱密鑰加密相比,非對稱加密無需在客戶端和服務端之間共享密鑰,只要私鑰不發給任何用戶,即使公鑰在網上被截獲,也無法被解密,僅有被竊取的公鑰是沒有任何用處的。常見的非對稱加密有rsa,非對稱加解密的過程:

  • 服務端生成配對的公鑰和私鑰

  • 私鑰保存在服務端,公鑰發送給客戶端

  • 客戶端使用公鑰加密明文傳輸給服務端

  • 服務端使用私鑰解密密文得到明文

數字簽名(digital signature)

數據在瀏覽器和服務器之間傳輸時,有可能在傳輸過程中被冒充的盜賊把內容替換了,那么如何保證數據是真實服務器發送的而不被調包呢,同時如何保證傳輸的數據沒有被人篡改呢,要解決這兩個問題就必須用到數字簽名,數字簽名就如同日常生活的中的簽名一樣,一旦在合同書上落下了你的大名,從法律意義上就確定是你本人簽的字兒,這是任何人都沒法仿造的,因為這是你專有的手跡,任何人是造不出來的。那么在計算機中的數字簽名怎么回事呢?數字簽名就是用于驗證傳輸的內容是不是真實服務器發送的數據,發送的數據有沒有被篡改過,它就干這兩件事,是非對稱加密的一種應用場景。不過他是反過來用私鑰來加密,通過與之配對的公鑰來解密。

第一步:服務端把報文經過hash處理后生成摘要信息digest,摘要信息使用私鑰private-key加密之后就生成簽名,服務器把簽名連同報文一起發送給客戶端。

深入講解HTTPS中的加密算法

第二步:客戶端接收到數據后,把簽名提取出來用public-key解密,如果能正常的解密出來digest2,那么就能確認是對方發的。

第三步:客戶端把報文text提取出來做同樣的hash處理,得到的摘要信息digest1,再與之前解密出來的digist2對比,如果兩者相等,就表示內容沒有被篡改,否則內容就是被人改過了。因為只要文本內容哪怕有任何一點點改動都會hash出一個完全不一樣的摘要信息出來。

深入講解HTTPS中的加密算法

數字證書(certificate authority)

數字證書簡稱ca,它由權威機構給某網站頒發的一種認可憑證,這個憑證是被大家(瀏覽器)所認可的,為什么需要用數字證書呢,難道有了數字簽名還不夠安全嗎?有這樣一種情況,就是瀏覽器無法確定所有的真實服務器是不是真的是真實的,舉一個簡單的例子:a廠家給你們家安裝鎖,同時把鑰匙也交給你,只要鑰匙能打開鎖,你就可以確定鑰匙和鎖是配對的,如果有人把鑰匙換了或者把鎖換了,你是打不開門的,你就知道肯定被竊取了,但是如果有人把鎖和鑰匙替換成另一套表面看起來差不多的,但質量差很多的,雖然鑰匙和鎖配套,但是你卻不能確定這是否真的是a廠家給你的,那么這時候,你可以找質檢部門來檢驗一下,這套鎖是不是真的來自于a廠家,質檢部門是權威機構,他說的話是可以被公眾認可的(呵呵)。

同樣的, 因為如果有人(張三)用自己的公鑰把真實服務器發送給瀏覽器的公鑰替換了,于是張三用自己的私鑰執行相同的步驟對文本hash、數字簽名,最后得到的結果都沒什么問題,但事實上瀏覽器看到的東西卻不是真實服務器給的,而是被張三從里到外(公鑰到私鑰)換了一通。那么如何保證你現在使用的公鑰就是真實服務器發給你的呢?我們就用數字證書來解決這個問題。數字證書一般由數字證書認證機構(certificate authority)頒發,證書里面包含了真實服務器的公鑰和網站的一些其他信息,數字證書機構用自己的私鑰加密后發給瀏覽器,瀏覽器使用數字證書機構的公鑰解密后得到真實服務器的公鑰。這個過程是建立在被大家所認可的證書機構之上得到的公鑰,所以這是一種安全的方式。

總結

以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

參考:

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

https://zh.wikipedia.org/wiki/%e5%85%ac%e5%bc%80%e5%af%86%e9%92%a5%e5%8a%a0%e5%af%86

https://zh.wikipedia.org/wiki/%e9%ab%98%e7%ba%a7%e5%8a%a0%e5%af%86%e6%a0%87%e5%87%86

https://zh.wikipedia.org/wiki/%e8%b3%87%e6%96%99%e5%8a%a0%e5%af%86%e6%a8%99%e6%ba%96

https://zh.wikipedia.org/wiki/%e6%95%b8%e4%bd%8d%e7%b0%bd%e7%ab%a0

http://www.guokr.com/post/114121/

原文鏈接:https://foofish.net/https-symmetric.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人肌肌捅女人肌肌 | 日本高清二三四本2021 | 性印度freehd | 久久99精品久久久久久园产越南 | 1313午夜精品久久午夜片 | 999久久久 | 国产视频一二三区 | 99视频有精品视频免费观看 | 青青操在线播放 | 特黄特a级特别特级特毛片 特黄a级三级三级野战 | 公妇乱淫在线播放免费观看 | 精品精品国产自在香蕉网 | 国产伊人久久 | 猛操女人 | igao网果冻传媒 | 亚洲激情婷婷 | 欧美精品色精品一区二区三区 | 免费全看男女拍拍拍的视频 | 四虎影院网站 | 美女逼逼软件 | 美女被扒开屁股进去网 | 亚洲国产在线播放在线 | 无码一区二区三区视频 | 亚洲免费色 | beeg xxxx日本| 天海翼最新作品 | 白丝校花被扒开双腿喷水小说 | 国产欧美精品 | katsumi精品hd| 精品人伦一区二区三区潘金莲 | 嗯啊视频在线 | 欧美高清在线精品一区 | 四虎最新紧急更新地址 | 免费看国产一级片 | 国产精品久久久久一区二区三区 | 午夜视频网站 | 皇上撞着太子妃的秘密小说 | 天堂伊人网| 99久久国产综合精品女不卡 | 欧美一区二区三区四区视频 | 疯狂伦交1一6小说 |