2012-09-11 43 views
0

我正在構建一個基於用戶輸入構建XML文檔的Web應用程序。在創建文檔之後,它需要遵循批准路徑,例如,一個工作流程,其中幾個用戶「簽署」文檔。從用戶的角度來看,簽名只是檢查一個字段並單擊「接受」,但我需要的是在每個步驟中對文檔進行數字簽名,最終將其簽署到數據庫中。如何讓用戶對XML文檔進行數字簽名?

需要使用哪種設備/工具?客戶端瀏覽器上的X.509證書?由應用生成的公鑰/私鑰?任何鏈接到文檔將不勝感激。

回答

1

證書通常不由應用程序生成(因爲PKI是關於信任的,在證書的情況下是分層的)。用戶使用私鑰獲取證書(爲了簡單起見,可以這麼說),並將它們存儲在安全的地方或硬件設備(智能卡,USB令牌)。

然後,那些證書用於簽署信息。在Web應用程序中,您可以將數據本身傳輸到客戶端,也可以在那裏發送數據散列,但在任何情況下,簽名都發生在客戶端(除了證書存儲在中央服務器上並訪問它們的極少數情況每次使用證書時都由客戶授權)。

我們提供用於分佈式數據簽名的組件。 This answer包含這種簽名作品的詳細說明。您可以使用我們的解決方案或創建您自己的解決方案,這樣做也是一樣。

+0

是的,這將是我需要的。我需要CLIENT簽署文檔,因此某種組件(Applet可能)應該訪問證書(或PK?該部分對我來說不清楚)並使用它簽署文檔。 爲了簡單起見,我仍然計劃在用戶註冊時由服務器端應用程序生成密鑰/證書,但只是要知道,替代方案是什麼? – dariopy

+0

是的,Java小應用程序將通過客戶端上的私鑰訪問證書*,並使用它來簽署文檔或文檔的散列。如果證書不可信,則證書是無用的。如果你在服務器上生成它們,那麼只有你的服務器會信任它們。這對你來說可以,但不能 - 這取決於那些文件在那裏。您還需要實施證書管理 - 撤銷,存儲過期的證書等。這是一個複雜的話題。 –

相關問題