我仍然是安全问题的新手,所以我的问题实际上可能只是一种误解。
我正在使用的系统要求用户在Web应用程序的某处签名/加时间戳数据。 但是,为了使用数字证书进行签名,用户应在系统上输入其私有密钥。 考虑到第三方的参与,作为公司,我们应该保证只允许最终用户签署/加时间戳数据。
我看到的唯一方法是创建一个可以证明数据的桌面应用程序。但我仍然需要一个时间戳的能力,这需要与外部服务器通信,这可能是我们公司“窃取”他们的私钥的一种方式。
是否存在在互联网上,特别是在网络应用上签名/加时间戳数据的模式?怎么可以实现呢?
答案 0 :(得分:1)
所以你有一个服务器和用户。用户在其系统上执行数据数字签名。时间戳与签名一起完成(它证明了签名时间)。时间戳由受信任的第三方TSA(时间戳授权机构)执行。将进行签名的代码将联系TSA(通常使用HTTP或HTTPS协议),并且将以这种方式执行时间戳。 TSA的证书包含在时间戳中,以便以后可以验证时间戳。
现在关于技术方面。对于Web应用程序,您最好的选择是创建一个applet或ActiveX控件,该控件将下载到用户的浏览器并进行签名。
我们公司为此提供了预先创建的解决方案,我在this answer中对其进行了详细介绍。
当然,您可以让用户下载文档并使用Acrobat内容或其他一些客户端应用程序对其进行签名,然后将文档上传回来。如果您决定自己编写此类应用程序,则需要签署组件,例如。 IText或我们的SecureBlackbox。