不對稱加密的詳細過程

注,CA1是當前CA.CA的上級爲CA2,根CA爲CAn.

A要和CA1通信

實際上是CA向A傳遞對稱加密密鑰

交換證書

A向CA1發送自己從CA1處申請的證書。
CA1發送自己從CA2處申請的證書。
對於A:自己不相信CA1是CA1。那麼可以從CA2處查詢。CA2寫了CA1的證書,同時用CA2的私鑰對CA1的證書籤名,以證明他的完整性。
對於CA2的驗證可以找CA3,同理一直到找CAn,而CAn的公鑰是都是知道的。

怎麼說呢。CA1自己的證書可以通過CA2的私鑰簽名,那麼你知道CA2的公鑰不是可以解開CA2的簽名得到CA1的證書了麼?那麼這個證書肯定就是你要找的那個證書啊。但是你不知道CA2的公鑰,那你找CA3啊。CA3的證書裏面有CA3的公鑰。用他的公鑰解開CA3的簽名就可以得到CA2的證書。同理可以追溯到CAn。CAn是國家的。(國家的基礎設施之一),因此根CA的公鑰(證書)是廣爲人知的。

對於CA1:A的證書就是在自己的機構申請的,因此可以判斷是否是A。

這個時候如果攻擊者截獲了A的證書冒充A呢?
出示證書是爲了讓對方知道自己的公鑰。因此及時攻擊者D知道了自己的公鑰,那有何妨?

生產對稱密鑰

注意,這個情景是假設有好幾個通信者要通信,因此需要對稱密鑰,此時由CA頒發對稱加密密鑰k。這個情景就是解決怎麼傳這些東西的問題。

由CA生產A,B,C互相通信的對稱加密密鑰k.

傳遞對稱密鑰k

因爲要傳十分重要的東西了。(對稱加密密鑰k)。因此絕對不能讓攻擊者獲取密鑰k修改密文
CA向A傳。(CA向B,C傳同A)

1.CA用hash算一遍加密的內容(這個例子是對稱加密密鑰k)
2.CA用A的公鑰對k進行加密
3.CA用自己的私鑰對hash值進行簽名
4.將加密的密文和簽過名的hash值拼接到一起傳給A。

A收到後:

1.用自己的私鑰解開密文,得到k。
2.用hash算一遍k,得到hash值。
3.用CA證書裏面的公鑰解開CA傳過來簽過名的hash,進行比較,如果一樣,那麼證明沒有被篡改。否則要求CA重發。

1.攻擊者有CA和A的證書,但是沒有他們的私鑰,因此解不開。
2.攻擊者如果篡改數據,那麼A計算得到的hash值會不一樣,會證明被篡改。
3.攻擊者可以解開hash值,填入僞造的hash值,但是攻擊者沒有CA的私鑰,因此當A用CA的公鑰解簽名的時候,會發現解不開。
4.攻擊者有CA和A的公鑰,可以僞裝CA。但是這個過程中要求CA必須有CA的私鑰。而CA的私鑰是打死也不會泄露的,否則不止A了,所有在CA申請證書的公司--大多數還是商務公司都面臨着巨大的風險。
5.攻擊者解不開密文,也分不了,其實還是可以的。
可以一直篡改,讓CA重發密鑰。此時A一直得不到密鑰。
不過A可以向網警舉報攻擊者的IP。
6.攻擊者截獲的數據因爲公鑰和私鑰都是通過CA來生產的。因此想要破解很難。不過可以從CA內部滲透。通過社會工程學的角度來進行。
7.攻擊者可以入侵道A的操作系統,直接更改CA1的證書,填成自己的地址。
8…

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