公鑰加密的應用

因爲我是信息安全專業的,面試的時候就經常被問到這個,很神奇……

實際上光RSA的應用就太多了,說2個最最常見的吧

1. TLS/SSL

TLS加密首先用公鑰加密協商一個私鑰出來。

之後用這個協商出來的私鑰進行對稱加密傳輸。

(以下摘自維基百科:)

爲了生成會話密鑰用於安全連接,客戶端使用服務器的公鑰加密隨機生成的密鑰,並將其發送到服務器,只有服務器才能使用自己的私鑰解密。

利用隨機數,雙方生成用於加密和解密的對稱密鑰。這就是TLS協議的握手,握手完畢後的連接是安全的,直到連接(被)關閉。如果上述任何一個步驟失敗,TLS握手過程就會失敗,並且斷開所有的連接。

這樣做的好處:

1. 因爲公鑰加密效率太低,實際傳輸時必須用對稱加密。

2. 對稱加密的密鑰每次都會更換,由於公鑰加密的特點,可以通過加密傳遞私鑰。

 

2. SSH的RSA簽名登錄

這個在git中有非常廣泛的應用,下面介紹一下原理:

假設你有一臺自己的PC,叫做A;一臺服務器,叫做B。

(*事實上,在我們使用github的時候,我們自己的電腦就是A,github就是B)

你嘗試在A上通過SSH登錄B。但是每次都要輸入SSH密鑰,很麻煩,起的太簡單又總有弱智破你的弱密鑰來DDos,怎麼辦?

簡單,你可以在A上生成一對RSA公鑰和密鑰,分別存在兩個文件裏。

然後,把公鑰文件拷貝到B上,設置B成爲能提供這個公鑰的對應私鑰的人就可以登錄。

(這個過程在github上也是手動的,github的settings中SSH選項裏一般都有你之前設置的RSA,只不過你可能已經忘了)

注意這裏不是使用RSA加密信息,而是使用RSA簽名來認證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章