0

有我的應用程序的幾個組件,需要他們的通信安全的意義Origin Verify。這些組件不能共享一個共同的祕密。所以我必須選擇非對稱密鑰加密。假設我已經兩個組件AB A發送一些數據FBB必須驗證它確實從Aopenssl網絡釣魚:V聲稱是A

A來產生消化FH用自己的私鑰
A重視A_pubH其請求參數,發送F並聲明原始/發件人爲A
B驗證摘要HA_pub針對提供10

顯然它看起來不錯,但如果一些其他組件V做同樣與V_pub並聲稱自己爲AB仍然認爲該請求從A出來,因爲這H是由具有V_prv OpenSSL的驗證好了。

我想給抵禦這種攻擊的V

我使用ecparamsecp112r1,以儘量減少密鑰長度。並且鍵被重複改變。

- 編輯 -

ABV是通過獨特的URI標識應用程序組件。它目前打算限制安全頁面流。例如您可以假設A,B,V成爲我想要的只有A可以計算爲B並且只有B可以進行到C ....並且我不想爲此維護全局/應用程序範圍的會話。所以如果B可以根據特殊參數A以狀態/會話較少的方式傳遞給它,就可以驗證此鏈接的來源。而且通用性越強,它在其他場景中的實現也越具有可重用性。

有一次,我想在可信的全局存儲中維護一個校驗和A_pub。但是,我恐怕不會是一個過度的工程?

我腦海中另一種方式是查詢有關公鑰的原始URL。但是我想避免這種情況。

+0

有兩種可能性:1)'A'和'V'只是任意的標識符(如'第一方'和'第二方'),只要'B'保留它們並不重要直行。 2)'A'和'V'不是任意的,並且表示特定的事物。在這種情況下,如果你不告訴我們這是什麼,你就不會得到有用的答案。 – 2012-03-31 20:06:52

+0

請檢查我的編輯 – 2012-04-01 07:29:02

回答

0

該技術無法驗證發件人的身份,只能說這些密鑰是匹配的一對。

通常,B將擁有一些可用於驗證A身份的可信信息。該信息通常是其先前已驗證的A_pub的副本,或者是由可信任的第三方簽署的,在這種情況下,B必須能夠訪問該第三方的公鑰。

沒有此附加信息,B無法驗證A的身份。

+0

您可以更詳細地瞭解哪些選項? – 2012-03-31 17:09:50

+0

公鑰基礎結構的基礎是每個設備都維護一個可信證書庫。它使用這些證書來驗證其他設備的身份。但是無法使用從該設備獲取的_only_信息驗證設備的身份;必須有一個「信任鏈」,以已知的信息爲真。 – 2012-03-31 17:45:05

+0

如何使用openssl命令行在'A_pub'上生成證書? – 2012-03-31 18:35:02