0

我對安全問題仍然陌生,所以我的問題實際上可能只是一個誤會。用戶使用他的私鑰對數據進行簽名/時間戳的最佳方式是什麼?

我工作的系統有要求用戶應該在Web應用程序的某個地方對數據進行簽名/時間戳。 但是,爲了使用數字證書籤名,用戶應該在系統上輸入他們的私人密鑰。 爲了讓第三方參與進來,我們作爲公司應該保證只允許最終用戶簽署/標記數據。

我從中看到的唯一方法就是創建一個桌面應用程序,它可以證明數據。但是,我仍然需要一些時間戳的能力,這需要與外部服務器進行通信,這可能會成爲我們公司「竊取」私鑰的一種方式。

在互聯網上,特別是在Web應用程序上簽名/加蓋時間戳數據是否存在模式?這怎麼可能實現?

+0

不,我的意思是用數字證書籤名。通過第三方,你的意思是有人說我的代碼是安全的? – mrcaramori 2013-02-15 11:49:47

+0

你談論的私鑰有多同質?你的用戶應該能夠帶上自己的,任何接受的東西,或者你以某種方式限制類型?智能卡或USB令牌怎麼樣?在這些情況下,您顯然無法提取私鑰,但卡或令牌必須執行簽名,這很可能意味着它會在用戶自己工作的計算機上發生。這將確實指向一個桌面應用程序,但也表明支持多種硬件...... – mkl 2013-02-15 13:16:11

+0

@mkl用戶應該使用某種證書,我們將指出他們可以聯繫哪些權限。仍在研究智能卡和令牌。關鍵是我們公司不應該觸摸和看到用戶的私鑰。 – mrcaramori 2013-02-18 13:05:57

回答

1

所以你有一個服務器和用戶。用戶在其系統上執行數據的數字簽名。時間戳與簽名一起完成(它證明了簽名時間)。時間戳由可信賴的第三方TSA(時間戳機構)執行。將進行簽名的代碼將與TSA聯繫(通常使用HTTP或HTTPS協議),並且時間戳將以這種方式執行。 TSA的證書包含在時間戳中,以便稍後驗證時間戳。

現在關於技術方面。對於Web應用程序,您最好的選擇是創建一個applet或ActiveX控件,它將被下載到用戶的瀏覽器中,並將執行簽名。

我們公司爲此提供了預先創建的解決方案,我在this answer中詳細描述了它。

當然,您可以讓用戶使用Acrobat或其他客戶端應用程序下載文檔並簽名,然後再上傳文檔。如果您決定自己編寫此類應用程序,則需要簽署組件,例如。 IText或我們的SecureBlackbox

+1

+1;爲了實現使用iText的類似應用程序,請查看白皮書[PDF文檔的數字簽名](http://itextpdf.com/book/digitalsignatures),特別是第4.3節*用於簽名的客戶端/服務器體系結構。*(PS :iText可以以商業或AGPL的條款獲得許可) – mkl 2013-02-18 13:39:19

相關問題