RSA、Diffie-Hellman和中間人攻擊

背景

網(wǎng)絡(luò)上常常有對RSA衬鱼、DH算法业筏,以及中間人攻擊的討論。
一種說法是“RSA密鑰協(xié)商(交換)不會受到中間人攻擊”鸟赫,聽起來似乎RSA比DH做密鑰協(xié)商更優(yōu)蒜胖。
這種說法有些不負責(zé)任消别。下面把這個問題中涉及到的概念都解釋一下,再來看這個問題台谢。

中間人攻擊 MITM

(MITM) is an attack where the attacker secretly relays and possibly alters the communication between two parties who believe they are directly communicating with each other.

中間人攻擊寻狂,可以這樣解釋:攻擊者一定程度上控制了網(wǎng)絡(luò),成為網(wǎng)絡(luò)雙方通信的中間者朋沮,從而獲取到雙方的通信信息蛇券;而通信雙方都感知不到中間人的存在。
這個話題往往和加密通信一起討論:如果加密信道中存在中間人樊拓,那明文就會被中間人獲取纠亚,而通信雙方還不會知曉。

中間人攻擊的根本筋夏,在于通信雙方?jīng)]有進行身份認證蒂胞。即:不知道和自己直接通信的人是誰。如果雙方能確認直接通信的人就是對方条篷,也就不存在中間人攻擊了骗随。

RSA加密算法

RSA加密算法是一種非對稱加密技術(shù)。由一對密鑰(公鑰+私鑰)組成拥娄。
可以利用私鑰來生成公鑰蚊锹。

一般來說,私鑰會被秘密保存起來稚瘾,而公鑰則分發(fā)出去牡昆。

公鑰加密,私鑰解密摊欠,稱為RSA加密算法丢烘。是為了保證公鑰加密的內(nèi)容,只有私鑰持有者可以解密些椒。常常用在客戶端賬密登錄過程:客戶端對密碼進行公鑰加密播瞳,發(fā)送到服務(wù)端后用私鑰解密,這樣即使請求被截獲也不會泄露密碼(實際上要更復(fù)雜一些)免糕。

私鑰加密赢乓,公鑰解密,稱為RSA簽名算法石窑。是為了保證公鑰持有者獲取的內(nèi)容牌芋,確實是來自私鑰持有者的正確內(nèi)容。比如服務(wù)器持有私鑰松逊,將一個重要信息計算hash再私鑰簽名后躺屁,和信息本身一起發(fā)送到客戶端;客戶端用公鑰解密簽名得到hash值经宏,再計算信息的hash值犀暑,進行比對驯击,就知道內(nèi)容是否被篡改。由于私鑰的保密性耐亏,攻擊者無法偽造有效的簽名徊都。

DH密鑰交換算法

DH密鑰交換算法并不是加密算法,而是雙方在不安全的網(wǎng)絡(luò)中交換信息而生成雙方僅有的密鑰的一種方法苹熏。其結(jié)果是碟贾,交換的雙方得到了一樣的會話密鑰,而其他任何人不能得到這個密鑰轨域。
由于算法的結(jié)果是通信雙方擁有了一樣的密鑰,雙方往往會利用這個密鑰進行對稱加密通信杀餐。

DH算法的過程可以簡單解釋如下:通信雙方AB干发,各自生成一對DH密鑰(Pa,Sa)和(Pb,Sb)(P代表公鑰,S代表私鑰)史翘。雙方交換各自的公鑰P枉长,于是A持有Sa、Pb琼讽,B持有Sb必峰、Pa。通過某種計算钻蹬,Sa吼蚁、Pb可以生成會話密鑰K,Sb问欠、Pa也可以生成相同的K肝匆。

DH的問題:中間人攻擊

DH算法本身不包含身份認證機制,所以中間人攻擊是其明顯的問題顺献。
設(shè)想:
在AB間旗国,有一C。AB交換DH公鑰P時注整,C在中間截獲能曾;C自己生成一對DH密鑰(Pc,Sc),用Pc和A肿轨、B完成密鑰交換寿冕。于是C與A間有了會話密鑰Kac=f(Pa,Sc)=f(Pc, Sa),C與B間有了會話密鑰Kcb=f(Pb,Sc)=f(Pc, Sb)萝招。只要C從一方獲得的信息蚂斤,重新加密后傳遞給另一方,AB就都不會發(fā)現(xiàn)他們的通信被劫持了槐沼。

RSA密鑰協(xié)商

密鑰協(xié)商(key establishment)包括“密鑰傳輸”(key transmission)和“密鑰交換”(key exchange)曙蒸。

所謂RSA密鑰協(xié)商實際是密鑰傳輸捌治,即一方生成密鑰,傳遞給另一方纽窟,而不必雙方交換肖油。
具體來說,就是A自己生成一個密鑰K臂港,用自己的RSA公鑰加密森枪,再傳遞給B;B用RSA私鑰解密得到K审孽。僅就這個過程而言县袱,不會存在中間人攻擊。

但是這不是說RSA就比DH就更安全了佑力。設(shè)想上面的情況式散,必須先要令A(yù)持有RSA公鑰,B持有RSA私鑰打颤。這首先先進行一次RSA公鑰傳遞暴拄,而這個傳遞過程是存在中間人攻擊的。

設(shè)想:
B生成一對RSA密鑰Pb编饺、Sb乖篷,將公鑰Pb發(fā)送給A。而AB中有C透且。C截獲了Pb撕蔼,而自己生成了一對RSA密鑰Pc、Sc石蔗,將Pc發(fā)送給A罕邀。
A用Pc加密了會話密鑰K,發(fā)送給B养距,被C截獲诉探。C用Sc解密得到K,再用Pb加密后給B棍厌。這時C完成了中間人攻擊肾胯。

所以說:RSA的公鑰在端與端間傳遞時,存在中間人攻擊問題耘纱。

RSA最好的使用場景在服務(wù)端/客戶端之間敬肚,服務(wù)端持有私鑰,客戶端直接內(nèi)置好公鑰束析,就不用擔(dān)心中間人攻擊了艳馒。

HTTPS中的中間人攻擊

平時我們使用的,號稱安全的https協(xié)議,也存在中間人攻擊問題弄慰。比如Fiddler這種抓包軟件第美,就能充當(dāng)https通信中的中間人。
一般上網(wǎng)時使用的https是單向認證陆爽,即客戶端通過CA認證服務(wù)器持有有效證書什往,來確認其身份。服務(wù)器不會驗證客戶端的身份慌闭。

如果使用雙向認證别威,通過CA確認兩端的身份都是正確的,就可以防止中間人攻擊了驴剔。這種雙向認證一般出現(xiàn)在企業(yè)應(yīng)用對接中省古。

RSA公鑰交換:非端到端加密

網(wǎng)絡(luò)上有這樣一種說法:
通信兩端交換RSA公鑰,通過對方公鑰加密數(shù)據(jù)仔拟,自己私鑰解密衫樊。這樣就實現(xiàn)了端到端加密。

實際上這不是端到端加密利花。因為不能保證服務(wù)器無法修改數(shù)據(jù):服務(wù)器可以用公鑰來加密任何的數(shù)據(jù)發(fā)給兩端。

而且载佳,按之前所說的炒事,這種交換,存在中間人攻擊問題蔫慧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挠乳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子姑躲,更是在濱河造成了極大的恐慌睡扬,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黍析,死亡現(xiàn)場離奇詭異卖怜,居然都是意外死亡,警方通過查閱死者的電腦和手機阐枣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門马靠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔼两,你說我怎么就攤上這事甩鳄。” “怎么了额划?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵妙啃,是天一觀的道長。 經(jīng)常有香客問我俊戳,道長揖赴,這世上最難降的妖魔是什么馆匿? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮储笑,結(jié)果婚禮上甜熔,老公的妹妹穿的比我還像新娘。我一直安慰自己突倍,他們只是感情好腔稀,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羽历,像睡著了一般焊虏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秕磷,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天诵闭,我揣著相機與錄音,去河邊找鬼澎嚣。 笑死疏尿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的易桃。 我是一名探鬼主播褥琐,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晤郑!你這毒婦竟也來了敌呈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤造寝,失蹤者是張志新(化名)和其女友劉穎磕洪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诫龙,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡析显,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赐稽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叫榕。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖姊舵,靈堂內(nèi)的尸體忽然破棺而出晰绎,到底是詐尸還是另有隱情,我是刑警寧澤括丁,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布荞下,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尖昏。R本人自食惡果不足惜仰税,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抽诉。 院中可真熱鬧陨簇,春花似錦、人聲如沸迹淌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唉窃。三九已至耙饰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纹份,已是汗流浹背苟跪。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔓涧,地道東北人件已。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像元暴,于是被迫代替她去往敵國和親拨齐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容