HTTPS的加密問(wèn)題
上海聚搜信息技術(shù)有限公司是阿里云的代理商網(wǎng)址:http://www.4526.cn/可以直接在網(wǎng)站上聯(lián)系阿里云代理商客服進(jìn)行咨詢(xún)服務(wù)器架構和配置以及優(yōu)惠價(jià)格?。ň鬯?a href="http:///">營(yíng)銷(xiāo)介紹鏈接:http:///meiyou/)是一家致力于搜索引聚搜營(yíng)銷(xiāo)及全網(wǎng)營(yíng)銷(xiāo),致力于為客戶(hù)提供搜索營(yíng)銷(xiāo)領(lǐng)域的服務(wù),幫助廣告客戶(hù)在搜索引聚搜獲取的投資回報,包括搜索引聚搜競價(jià)服務(wù)(SEM),搜索引聚搜優(yōu)化服務(wù)(seo)和搜索營(yíng)銷(xiāo)代運營(yíng)服務(wù),能夠有效為廣告主帶來(lái)高效的投放回報,我們的理念一直是:讓搜索營(yíng)銷(xiāo)營(yíng)銷(xiāo)具有價(jià)值。
聚搜營(yíng)銷(xiāo)團隊于2015年在上海成立,團隊核心均來(lái)自百度搜索部門(mén)和國內知名服務(wù)商的成員,有非常豐富的產(chǎn)品和項目?jì)?yōu)化經(jīng)驗,這兩年來(lái),服務(wù)于國內很多大中型企業(yè)和很多初創(chuàng )公司,通過(guò)我們多年的經(jīng)驗和服務(wù),幫助他們在搜索營(yíng)銷(xiāo)領(lǐng)域上取得了不斷的成功。
1.加密相關(guān)的幾個(gè)概念
1)對稱(chēng)加密
概念:采用單鑰密碼系統的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱(chēng)為對稱(chēng)加密,也稱(chēng)為單密鑰加密。
使用一個(gè)公式來(lái)描述:
加密:f(key,data) = X
解密:g(key,X) = data
data為我們想要加密的內容,key就是對稱(chēng)加密使用的單秘鑰,X為加密后的內容。f為加密,g為解密。
常見(jiàn)的對稱(chēng)加密算法有DES、3DES、AES等,目前用得比較多的是AES加密。
概念:非對稱(chēng)加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)密鑰是公開(kāi)密鑰(public key,簡(jiǎn)稱(chēng)公鑰)和私有密鑰(private key,簡(jiǎn)稱(chēng)私鑰)。
使用一個(gè)公式來(lái)描述:
A-->B方向:
加密:f(pk,data) = X
解密:g(sk,X) = data
B-->A方向:
加密:f(sk,data) = Y
解密:g(pk,Y) = data
假設A是客戶(hù)端,B是服務(wù)器。
當A向B發(fā)數據時(shí),A使用公鑰(pk)加密,得到加密后的數據X。
B收到X后,使用私鑰(sk)解密。
當B向A發(fā)數據時(shí),B使用私鑰(sk)加密,得到加密后的數據Y。
A收到Y后,使用公鑰(pk)解密。
注意:所有能夠與B服務(wù)器交換數據的客戶(hù)端都可以持有公鑰,而服務(wù)器持有私鑰(只有服務(wù)端B有私鑰)??梢詤⒖糞SH協(xié)議中的私鑰和公鑰。
常見(jiàn)的非對稱(chēng)加密算法有:RSA、DSA、ECDSA等。
3)HASH散列
概念:HASH散列是把任意長(cháng)度的輸入(又叫做預映射pre-image)通過(guò)散列算法變換成固定長(cháng)度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小于輸入的空間,不同的輸入可能會(huì )散列成相同的輸出,所以不可能從散列值來(lái)確定唯一的輸入值。簡(jiǎn)單的說(shuō)就是一種將任意長(cháng)度的消息壓縮到某一固定長(cháng)度的消息摘要的函數。
hash散列有什么作用?
我們一般使用哈希值來(lái)比較一個(gè)文件或一段內容是否被篡改。例如在我們使用迅雷或其他下載工具下載了一個(gè)軟件,我們想驗證是否下載完整則可以使用它的散列值進(jìn)行比對,如果一致則下載完整,如果不一致則內容有問(wèn)題。
常用的Hash散列算法有:MD4、MD5、SHA1、SHA-256等。
2.只使用對稱(chēng)加密的情況
我們在HTTP的基礎上讓客戶(hù)端(瀏覽器)和服務(wù)器只使用對稱(chēng)加密,如下圖所示:
從圖中可以看出,客戶(hù)端和服務(wù)器之間如果只使用對稱(chēng)加密技術(shù),則始終需要商議一個(gè)加密用的秘鑰(key,例如一個(gè)隨機字符串)。在這個(gè)商議的過(guò)程中,黑客就可以介入進(jìn)行截取,只要黑客獲取到這個(gè)key,那么后面的對稱(chēng)加密就完全失效了。
3.只使用非對稱(chēng)加密的情況
在HTTP上只使用非對稱(chēng)加密的技術(shù),如下圖所示:
可以看到,黑客可以截取到公鑰以及之后傳輸的數據,并可以解密服務(wù)器發(fā)給客戶(hù)端的數據,同樣存在數據安全的問(wèn)題。(這里只討論數據加密的安全問(wèn)題,中間人攻擊在后面討論)
4.同時(shí)使用對稱(chēng)加密和非對稱(chēng)加密的情況
既然只使用對稱(chēng)加密和只使用非對稱(chēng)加密都無(wú)法避免數據被黑客截取,那么我們可以將對稱(chēng)加密和非對稱(chēng)加密結合起來(lái)使用,如下圖:
從圖中可以看到,我們使用非對稱(chēng)加密算法來(lái)協(xié)商對稱(chēng)加密的秘鑰key??蛻?hù)端拿到服務(wù)器的公鑰后,產(chǎn)生一個(gè)隨機的key,然后使用公鑰對其進(jìn)行加密,并發(fā)送給服務(wù)器。
由于公鑰加密的內容只有私鑰才能解密,也就是說(shuō)黑客即便截取到了公鑰,也無(wú)法獲取到key。
所以之后的數據使用key進(jìn)行對稱(chēng)加密是絕對安全的。
從以上過(guò)程我們可以看到,使用對稱(chēng)加密+非對稱(chēng)加密的方式可以使黑客無(wú)法通過(guò)截取的方式來(lái)獲取數據,看似已經(jīng)很安全了,但是我們還要討論一種情況,就是中間人欺騙攻擊。
5.中間人欺騙攻擊
在第4節的基礎上,可能出現以下情況,如圖:
黑客在中間充當一個(gè)中間人,讓客戶(hù)端以為自己是服務(wù)器,讓服務(wù)器以為自己是客戶(hù)端。
他使用一套假的非對稱(chēng)加密秘鑰來(lái)與客戶(hù)端進(jìn)行通訊,而使用服務(wù)器給的真的公鑰與服務(wù)器進(jìn)行通訊,從中將數據解密并重新加密,起到兩邊欺騙的效果。
那么,如何防范這種中間人欺騙的攻擊呢?
那就需要服務(wù)器能夠證明自己的身份??蛻?hù)端從服務(wù)器拿到公鑰的同時(shí),還要能夠確定當前通訊的服務(wù)器的身份是正確的(從而才能確保拿到的公鑰是正確的,使用該公鑰加密,只有正確的服務(wù)器才能解密)。