有我的應用程序的幾個組件,需要他們的通信安全的意義Origin Verify。這些組件不能共享一個共同的祕密。所以我必須選擇非對稱密鑰加密。假設我已經兩個組件A
和B
A發送一些數據F
到B
和B
必須驗證它確實從A
openssl網絡釣魚:V聲稱是A
A
來產生消化F
H
用自己的私鑰
A
重視A_pub
,H
其請求參數,發送F
並聲明原始/發件人爲A
B
驗證摘要H
與A_pub
針對提供10
顯然它看起來不錯,但如果一些其他組件V
做同樣與V_pub
並聲稱自己爲A
,B
仍然認爲該請求從A
出來,因爲這H
是由具有V_prv
OpenSSL的驗證好了。
我想給抵禦這種攻擊的V
我使用ecparam
secp112r1
,以儘量減少密鑰長度。並且鍵被重複改變。
- 編輯 -
A
,B
和V
是通過獨特的URI
標識應用程序組件。它目前打算限制安全頁面流。例如您可以假設A
,B
,V
成爲我想要的只有A
可以計算爲B
並且只有B
可以進行到C
....並且我不想爲此維護全局/應用程序範圍的會話。所以如果B
可以根據特殊參數A
以狀態/會話較少的方式傳遞給它,就可以驗證此鏈接的來源。而且通用性越強,它在其他場景中的實現也越具有可重用性。
有一次,我想在可信的全局存儲中維護一個校驗和A_pub
。但是,我恐怕不會是一個過度的工程?
我腦海中另一種方式是查詢有關公鑰的原始URL。但是我想避免這種情況。
有兩種可能性:1)'A'和'V'只是任意的標識符(如'第一方'和'第二方'),只要'B'保留它們並不重要直行。 2)'A'和'V'不是任意的,並且表示特定的事物。在這種情況下,如果你不告訴我們這是什麼,你就不會得到有用的答案。 – 2012-03-31 20:06:52
請檢查我的編輯 – 2012-04-01 07:29:02