HTML 5 keygen'记得'我的例子?

时间:2014-02-08 02:47:38

标签: html5 cryptography public-key-encryption html5-keygen

我记得看过<keygen>,我从未理解的一件事是如何将结果保存到客户端浏览器?根据我的理解,它会向您发送一个公钥,我应签署一些内容并将其发回给客户。

但是,我送回什么?我是否签署了证书,如何告诉浏览器安装它以便下次用户访问该网站时可以使用它?我不明白如何告诉它做那部分,每次访问页面时,例子似乎都会忘记我。

1 个答案:

答案 0 :(得分:0)

也许我误解了您的问题,但<keygen>元素是有目的地构建的,因此每次新表单提交都会生成公钥/私钥对。私钥存储在本地密钥库中,公钥作为(AFAIK)提交为Base64编码的字符串。

此表单元素对于CA使用适当的签名算法签署客户端证书非常有用。以SSL证书为例,它需要一些背景信息以及RSA公钥/私钥。在这种情况下,您可以使整个系统成为一个Web界面,其中所有相关数据都放在一个表单中供用户输入,而不是让用户使用脱机工具自行生成证书请求。在这种情况下,证书“请求”可以简单地在服务器端构建,为客户节省了很多麻烦。

返回的数据取决于您使用密钥执行的操作。如果您要签署客户的证书,那么您将根据其提供的信息返回签名客户的证书。当然,如果您使用此键执行任何其他操作,您可以选择要返回的内容。

请注意,<keygen>元素不用于在您(服务器)和客户端之间建立任何类型的安全通道。考虑这一点的最简单方法是<keygen>元素的行为类似于长文本区域,客户端键入(或者更确切地说是复制)其公钥以供证书颁发者处理,只有整个密钥生成已经自动化。至于SSL证书,返回数据很可能是原始签名证书文件本身,或者是一个包含证据数据的文本框,在一个漂亮而精美的网页中,但这完全取决于你。

详细了解如何签署证书here