2014-10-07 33 views
0

我正在使用Java小程序在Web瀏覽器中籤署XML文件。 除了包含在簽名XML中的X509密鑰,還應該保留哪些信息以確保不可否認性? 我已經看到小應用程序傳輸私鑰(使用相同的私鑰加密)或公鑰。需要保持不可否認性的信息?

回答

0

XMLDsig/XAdES簽名中,不可否認(證明數據的完整性和來源)由簽名本身提供。

提供完整性是因爲如果您更改了簽名的任何字節,您將破壞它(簽名無法驗證),並且數據的來源由<xmldsig:keyInfo>元素提供,該元素爲您提供必要的證書以驗證簽名(但是這個元素是可選的,所以如果它不存在,它應該是應用程序上下文足以獲得該證書),如果簽名使用此證書驗證,那麼您擁有簽名作者的身份。此外,在XAdES中,標準定義了必需的<xades:SigningCertificate>屬性,並且它還引用了驗證簽名所需的證書。

希望這有助於

0

你應該從未轉移可能除了備份私鑰。保持私鑰安全的最安全方法是在需要私鑰的位置創建密鑰對,然後使用證書請求傳輸公鑰。

要驗證並驗證證書,因此簽名,你需要以下東西:

  1. 證書鏈,與密鑰對中用於簽名的證書開始,到一些可信證書。該鏈可以存在1個自簽名證書,但通常它會更長。通常您信任一些根證書,擁有1或2個CA證書,並以執行簽名的葉證書結束。

  2. 驗證鏈中任何證書未被吊銷的一些方法。通常這是一個經常分佈式的CRL或OCSP。

  3. 一個時鐘。如果沒有可信的時鐘,則不可能驗證證書是否過期。

這些都是驗證所必需的。爲了簽署,你不必保留任何東西。當然,您通常會持有您的私鑰和證書。