HTML5中的Keygen标记

所以我在HTML5中遇到了这个新标签,
<keygen>
。我无法弄清楚它的用途,应用方式以及它如何影响浏览器行为。 我知道此标记用于表单加密,但
<keygen>
与您的域名拥有SSL证书之间的区别是什么。另外,
challenge
属性是什么? 我不打算使用它,因为它远远没有在可接受的浏览器范围内实现,但我很好奇这个标签的功能是什么。我所能找到的只是模糊的千篇一律的文档,没有真正的使用示例。 编辑: 我在这里找到了非常丰富的信息。这贯穿了keygen标记的客户端和服务器端实现。 我仍然很好奇这对域SSL证书的好处是什么。     
已邀请:
SSL是关于“服务器标识”或“服务器AND客户端认证(相互认证)”。 在大多数情况下,只有服务器在SSL握手期间显示其服务器证书,以便您确保这确实是您希望连接到的服务器。在某些情况下,服务器还想验证您确实是您假装的人。为此,您需要一个客户证书。
<keygen>
标记生成公钥/私钥对,然后创建证书请求。此证书请求将发送到证书颁发机构(CA)。 CA创建证书并将其发送回浏览器。现在,您可以使用此证书进行用户身份验证。     
你错过了一些历史。
keygen
在Netscape仍然是相关浏览器时首先得到了支持。 IE,OTOH通过其ActiveX API支持相同的用例。 Opera和WebKit(甚至是KHTML)不愿意对整个Win32 API进行反向工程,而是反向设计
keygen
。 它在Web Forms 2.0中指定(现已合并到HTML规范中),以提高实现它的浏览器之间的互操作性。 从那以后,IE团队重申拒绝执行
keygen
,并且规范(为了避免变成干科幻小说)已经改为不需要实际实施:   注意:本规范没有   指定用户代理的密钥类型   支持 - 对用户来说是可能的   代理不支持任何密钥类型   所有。 简而言之,这不是一个新元素,除非你可以忽略IE,否则它可能不是你想要的。     
如果您正在寻找“完全”,那么我建议您阅读RFC。
keygen
元素用于创建用于身份验证的密钥,而SSL则关注通信隐私和服务器身份验证。引用RFC   此规范未指定如何使用生成的私钥。预计在收到SignedPublicKeyAndChallenge(SPKAC)结构后,服务器将生成客户端证书并将其提供给用户进行下载;此证书一旦下载并与私钥一起存储在密钥存储区中,则可用于对使用TLS和证书身份验证的服务进行身份验证。     
弃用   此功能已从Web标准中删除。一些   浏览器可能仍然支持它,它正在被删除。   如果可能,请避免使用它并更新现有代码。意识到   此功能可能随时停止工作。 资源     
该文档有助于详细说明keygen元素是什么。其要求出现在WebID中,可以理解为链接数据的语义Web的一部分,如https://dvcs.w3.org/hg/WebID/raw-file/tip/spec/index-respec.html#creating-证书2.1.1     
这对于提供服务的网站非常有用,人们需要为这些服务付费,例如视频点播,或者像Bloomberg这样的专业人士的新闻网站。使用此键,人们只能在计算机中观看内容,而不能同时观看计算机!您可以决定如何存储和处理数据。您可以指定将接收变量的.asp或.php文件,您的文件将该密钥存储在用户配置文件中。这样,如果需要,您的用户将无法从其他计算机登录。您可以强制他们检查他们的电子邮件以授权新计算机,就像Steam一样。基本上它允许个性化服务访问,如果您的许可模型是每台机器,如操作系统。 你可以在这里查看规格: http://www.w3.org/TR/html-markup/keygen.html     

要回复问题请先登录注册