加密傳輸SSL協議6 驗證公鑰

2022-04-10 16:21:42 字數 1107 閱讀 8675

如上圖所示,我怎麼能確定我手裡的公鑰就是我心中的接收方的公鑰呢?怎麼防止被釣魚呢?

解決的辦法就是引入乙個第三方,乙個權威機構,乙個我們都相信的機構。

顯然,這不是乙個用技術所能解決的問題,很好的解決辦法就是建立乙個中介,我們所有的人都相信這個中介,中介對接收方的公鑰的合法性進行認證,在接收方的公鑰上簽名,這樣傳送方在相信中介的基礎上就能安全的給接收方傳送資訊了。

具體的做法就是:中介要求接收方在他這裡註冊,驗證其公鑰,然後中介對接收方的公鑰進行簽名,也就是中介用自己的私鑰對接收方的公鑰進行加密。然而中介的公鑰是眾所周知,任何人都知道,不會被任何人假冒的,傳送方如果能用中介的公鑰認證這份證書,就證明裡面的接收方的公鑰是註冊過的,是合法的。就能安全的給接收方傳送資訊了。

也即是說如果我們想給某個人傳送資訊,必須得到他的公鑰,但是為了防止釣魚,這個公鑰必須得被我們相信的中介簽名後才是安全的。

注意:這個證書仍是通訊雙方通訊時,接收者給出的,不同的是這個證書已經被我們相信的中介簽過名。

這裡面用到了雜湊函式的知識,因為非對稱加密對大的資料加密速度很慢,所以通常的做法是把接收方的公鑰和dn這個字串組合成同乙個檔案,生成其相應的雜湊值,然後中介只需要對這個雜湊值進行簽名,傳送方在給接收方傳送資料時,只對雜湊值進行認證,就能核對公鑰和dn的值是否合法。一張數字證書包含接收方的公鑰、dn資訊、簽過名的雜湊值。

一張數字證書的前兩部分是我們需要的接收方的資訊,dn是distinguished name,就是接收方的id。那麼我們怎麼確信這個id和這把公鑰是真的對應關係呢?那麼就要看下面的簽過名的雜湊值(特徵碼)。

ca的簽名過程:首先接收方要在ca那裡主存,當然這不是免費的,然後ca把接收方的dn和他的公鑰打包。然後對打包後的檔案hash一下,產生其特徵碼。ca用自己的私鑰對特徵碼加密(簽名)。然後把這三個東西給接收方,註冊完成。

傳送方的驗證過程:在通訊開始的階段,傳送方為了加密傳輸問接收方要其公鑰,同時為了防止釣魚,還應給出dn資訊和ca簽過名的雜湊值。傳送方把公鑰和dn資訊打包,然後用和ca同樣的演算法得到其hash值,然後用ca的公鑰解密接收方給的hash值,對比兩個hash值,如果相同,那麼就是合法的。

加密傳輸SSL協議3 非對稱加密

困死了,這裡對非對稱加密體系開個頭,具體的實驗明天寫 為了解決對稱加密中金鑰的傳輸的問題,一些天才的數學家就提出了非對稱式的加密體系,也稱為公鑰加密體系。加密和解密的金鑰是不同的。一把稱為公鑰,一把稱為私鑰。比如,甲 乙 丙三個人要給丁傳送資訊,但是他們都不想讓另外的兩個人知道資訊的內容。首先丁要散...

加密傳輸SSL協議1 OpenSSL的安裝

終於在自己不斷的奮鬥之後,來到科大的一波考試過去了,但是為了不使自己過於放鬆,回顧一下之前的東西,做一下筆記。所以新開乙個專題筆記 當然支援ssl協議的軟體庫很多,但是推薦一款開源的openssl,因為安全軟體嘛,你的安全要放在桌面上,讓大家看的見,不能有隱藏的漏洞。正式開始 講解實驗的環境 vmw...

加密傳輸SSL協議8 Apache伺服器的安裝

學習了那麼多的理論的知識,下面通過在apache伺服器中安裝和使用ssl協議,實現安全傳輸,但是首先要安裝好apache伺服器。linux下所有的軟體的原碼的安裝都是三部曲 config make make install。當然可以用前面學到的md5或者sha1去驗證這個軟體有沒有被惡意修改過。然後...