2014-10-30 36 views
0

我是OpenSSL的新手,並且在SSL協議中有理論信息。我有任務創建一個使用RSA算法進行對稱會話密鑰交換的證書,並使用我自己的我的加密算法FooSymmetricAlgorithm作爲對稱會話密鑰。我需要一種方法告訴瀏覽器和Web服務器使用FooSymmetricAlgorithm作爲對稱算法。我知道我可以將我的根證書導入瀏覽器,但我認爲這並不意味着我可以將我的加密算法添加到瀏覽器。 我的問題是,我如何告訴瀏覽器使用FooSymmetricAlgorithm進行會話密鑰和加密。瀏覽器之間沒有區別。有一個瀏覽器就足夠了,我只會將它用於測試目的。如何使用OpenSSL將創建的會話加密算法添加到(主要)瀏覽器

我想知道當我向瀏覽器發送數字證書時,是否有任何方式,瀏覽器被迫使用我的FooSymmetricAlgorithm來加密數據?我的意思是有什麼方法可以將我的算法添加到瀏覽器?

+1

您的意思是您希望將此算法合併到OpenSSL項目本身中嗎?或者,這是一個假設性問題,關於如何將密碼套件添加到TLS規範?或者你只是想了解如何將一個密碼添加到OpenSSL代碼庫(沒有意圖將它合併到上游)? – 2014-10-30 14:54:35

+0

@StephenTouset我想用OpenSSL來測試它。我想看看在OpenSSL中使用我自己的算法是否實用? – 2014-10-30 14:59:35

+1

問題是**過於寬泛**以回答......尤其是因爲您沒有提供任何關於您的知識水平的指示。正如我假設你不指望我們寫一本書,你可能想編輯你的問題,並添加一些更多的細節。當你處理它時:執行諸如「將證書導入瀏覽器」,「配置Web服務器以支持SSL」或「修改和編譯OpenSSL」之類的事情響起?還是所有這些聽起來都像是外語?我在問,因爲根據細節,答案將駐留在所有這些之間的某個地方。通過編輯你的問題,你會幫助我們回答它。 – 2014-10-31 07:10:26

回答

3

我的問題是,我如何告訴瀏覽器使用FooSymmetricAlgorithm進行會話密鑰和加密。

您必須將自己的密碼套件添加到瀏覽器,這意味着需要在NSS(Chrome,Firefox)中更改源代碼。然後,您必須對服務器使用的TLS堆棧進行更改,並在其中添加密碼套件。有關如何執行此操作的詳細信息,請參閱OpenSSL和/或NSS中現有密碼套件的實現。由於密碼套件不是IANA assigned,您必須使用其中一個標記爲私人用途的密碼。

如果一切正常完成,瀏覽器將宣佈支持新的密碼套件,服務器將使用它。但是,所有這些過程並不像添加根證書那麼簡單,這意味着它涉及大量的編碼,讀取現有的源代碼等。

+0

謝謝,我們可以使用OpenSSL的s_client命令代替瀏覽器嗎? – 2014-11-01 09:26:51

+0

在這種情況下,您只需要實現OpenSSL,而不是NSS,但其餘部分保持不變。但鑑於你提出這樣一些基本問題,我懷疑你有必要的知識能做所有這些事情。 – 2014-11-01 09:31:07

+0

是否有任何文檔僅幫助我實現OpenSSL實現?我的意思是我可以如何添加我的加密算法並將其用於對稱加密。問題是在http://stackoverflow.com/questions/26673141/is-it-possible-to-add-our-symmetric-algorithm-to-openssl?noredirect=1#comment41949087_26673141。 – 2014-11-01 12:03:17

相關問題