數位簽章工作流程

來源:互聯網
上載者:User

    如果利用非對稱式加密演算法進行雙方通訊,會引入第三方攻擊。比如有通訊雙方A和B,A和B的公開金鑰大家都可以得到。

A主動和B通訊,先擷取B的公開金鑰

 

A -->B , 用B的公開金鑰加密,並且把自己的公開金鑰附在後面

B-->A,  B接收到後,同時也擷取A的公開金鑰,用A的公開金鑰加密發送回A

 

這樣就可以防止第三者監聽寄件者的內容。但問題是無法解決第三者攻擊,比如中間有一個M,M冒充A給B發送內容。

事實上無法解決對方到底是誰的問題!

 

解決方案是發送內容進行二次加密,並且通訊雙方有可靠的途徑知道對方的公開金鑰

A發送給B時候,先用A的私密金鑰加密,然後再用B的公開金鑰加密

B收到後,先用B的私密金鑰解密,再用A的公開金鑰解密,得到明文。

 

擷取公開金鑰的可靠途徑不一樣,就可以有不容的實現方式

1。通訊雙方事先有對方的公開金鑰,這種方法比較麻煩,要面對面交換。顯然不適合大規模應用,用在夫妻之間到是比較好的!

2。第三方的數位簽章,這個就比較好了,大家都把公開金鑰放在第三方CA那裡,通訊發起方問CA要雙方的公開金鑰,並傳給對方。

比如A發起請求給B。 A先去第三放CA那邊請求B的公開金鑰,CA返回給A後,A用私密金鑰加密給B,B收到後在傳給CA解密,解密後傳回給B。B由此知道A的公開金鑰,同時也可以驗證A傳過的來的自己的公開金鑰對不對。

 

中間人攻擊不可能了:無法冒充A了,B無法用A的公開金鑰解開任何冒充A的中間人。

A抵賴不可能:B收到後,出示加密後的報文即可,只有A有自己的私密金鑰。 

B不能說沒收到:去過第三方了,或者已經A把收到的B過來過的報文出示就行,因為只有B自己有私密金鑰。 

 

這篇文章用java實現了, 不錯 http://blog.csdn.net/lijiecong/archive/2011/04/21/6337932.aspx

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.