用户使用私钥对数据进行签名/时间戳的最佳方式是什么?

时间:2013-02-15 11:32:12

标签: java digital-signature digital-certificate trusted-timestamp

我仍然是安全问题的新手,所以我的问题实际上可能只是一种误解。

我正在使用的系统要求用户在Web应用程序的某处签名/加时间戳数据。 但是,为了使用数字证书进行签名,用户应在系统上输入其私有密钥。 考虑到第三方的参与,作为公司,我们应该保证只允许最终用户签署/加时间戳数据。

我看到的唯一方法是创建一个可以证明数据的桌面应用程序。但我仍然需要一个时间戳的能力,这需要与外部服务器通信,这可能是我们公司“窃取”他们的私钥的一种方式。

是否存在在互联网上,特别是在网络应用上签名/加时间戳数据的模式?怎么可以实现呢?

1 个答案:

答案 0 :(得分:1)

所以你有一个服务器和用户。用户在其系统上执行数据数字签名。时间戳与签名一起完成(它证明了签名时间)。时间戳由受信任的第三方TSA(时间戳授权机构)执行。将进行签名的代码将联系TSA(通常使用HTTP或HTTPS协议),并且将以这种方式执行时间戳。 TSA的证书包含在时间戳中,以便以后可以验证时间戳。

现在关于技术方面。对于Web应用程序,您最好的选择是创建一个applet或ActiveX控件,该控件将下载到用户的浏览器并进行签名。

我们公司为此提供了预先创建的解决方案,我在this answer中对其进行了详细介绍。

当然,您可以让用户下载文档并使用Acrobat内容或其他一些客户端应用程序对其进行签名,然后将文档上传回来。如果您决定自己编写此类应用程序,则需要签署组件,例如。 IText或我们的SecureBlackbox