我们有一个 C# Web 应用程序,用户将使用存储在浏览器中的数字证书进行连接。
从我们看到的示例中,一旦我们启用 SSL,验证他们的身份将很容易,因为我们可以使用 Request.ClientCertificate 访问证书中的字段来检查用户名。
然而,我们也被要求对用户发送的数据(几个简单的字段和一个二进制文件)进行签名,以便我们可以毫无疑问地证明哪个用户在我们的数据库中输入了每条记录。
我们的第一个想法是创建一个包含字段(以及文件的 md5,如果可能的话)的小文本签名,并使用证书的私钥对其进行加密,但是......
据我所知,我们无法访问证书的私钥来签署数据,我不知道是否有任何方法可以在浏览器中对字段进行签名,或者我们除了使用 Java 之外别无选择小程序。如果是后者,我们会怎么做(有没有我们可以使用的开源小程序?如果我们自己创建一个会更好吗?)
当然,如果有任何方法可以使用我们可以从用户证书访问的数据来“签署”服务器中接收到的字段,那就更好了。但如果没有,任何有关解决问题的最佳方法的信息将不胜感激。