Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security HTML5中的Keygen标记_Security_Html_Ssl - Fatal编程技术网

Security HTML5中的Keygen标记

Security HTML5中的Keygen标记,security,html,ssl,Security,Html,Ssl,所以我在HTML5中遇到了这个新标签,。我不太清楚它的用途,它是如何应用的,以及它可能会如何影响浏览器行为 我知道这个标签是用于表单加密的,但是和您的域有SSL证书有什么区别呢。另外,challenge属性是什么 我不打算使用它,因为它远没有在可接受的浏览器范围内实现,但我很好奇这个标签到底做了什么。我所能找到的只是含糊不清的cookiecuter文档,没有实际的使用示例 编辑: 我发现了一份非常翔实的文件。这贯穿于keygen标记的客户端和服务器端实现 我仍然很好奇,与域SSL证书相比,这有

所以我在HTML5中遇到了这个新标签,
。我不太清楚它的用途,它是如何应用的,以及它可能会如何影响浏览器行为

我知道这个标签是用于表单加密的,但是
和您的域有SSL证书有什么区别呢。另外,
challenge
属性是什么

我不打算使用它,因为它远没有在可接受的浏览器范围内实现,但我很好奇这个标签到底做了什么。我所能找到的只是含糊不清的cookiecuter文档,没有实际的使用示例


编辑:

我发现了一份非常翔实的文件。这贯穿于keygen标记的客户端和服务器端实现

我仍然很好奇,与域SSL证书相比,这有什么好处。

如果您正在寻找“精确”,那么我建议您阅读

keygen
元素用于创建用于用户身份验证的密钥,而SSL则涉及通信隐私和服务器身份验证。从RFC中引用:

本规范未指定如何使用生成的私钥。预计在收到SignedPublicKeyAndChallenge(SPKAC)结构后,服务器将生成一个客户端证书并提供给用户下载;此证书一旦下载并与私钥一起存储在密钥存储中,就可以用于对使用TLS和证书身份验证的服务进行身份验证

SSL是关于“服务器标识”或“服务器和客户端身份验证(相互身份验证)”

在大多数情况下,只有服务器在SSL握手期间提供其服务器证书,以便您可以确保这确实是您希望连接到的服务器。在某些情况下,服务器还希望验证您是否真的是您假装的那个人。为此,您需要一个客户端证书


标记生成公钥/私钥对,然后创建证书请求。此证书请求将发送给证书颁发机构(CA)。CA创建证书并将其发送回浏览器。现在您可以使用此证书进行用户身份验证。

您缺少一些历史记录
keygen
最初是由Netscape支持的,当时它还是一款相关的浏览器。IE,OTOH,通过其ActiveX API支持相同的用例。Opera和WebKit(甚至KHTML)不愿意对整个Win32 API进行反向工程,而是对keygen进行反向工程

它是在Web Forms 2.0中指定的(现在已合并到HTML规范中),以改进实现它的浏览器之间的互操作性

从那时起,IE团队重申拒绝实施
keygen
,规范(为了避免变成枯燥的科幻小说)已更改为不需要实际实施:

注:本规范不适用 指定用户代理的密钥类型 支持-对于用户来说是可能的 代理不支持任何密钥类型 全部


简而言之,这不是一个新元素,除非您可以忽略IE,否则它可能不是您想要的。

该文档有助于详细说明什么是keygen元素。它的要求出现在WebID中,可能被理解为链接数据语义网的一部分,如2.1.1所示。这可能对提供服务的网站有用,人们需要为服务付费,如视频点播,或彭博社等专业人士的新闻网站。有了这个键,人们只能在自己的电脑上观看内容,而不能同时在电脑上观看!您可以决定如何存储和处理数据。您可以指定一个.asp或.php文件来接收变量,并且您的文件将在用户配置文件中存储该密钥。这样,如果您愿意,您的用户将无法从其他计算机登录。你可以强迫他们检查他们的电子邮件来授权那台新电脑,就像steam一样。基本上,它允许个性化的服务访问,如果您的许可模式是每台机器,比如操作系统

您可以在此处查看规格: 已弃用

此功能已从Web标准中删除。虽然有些 浏览器可能仍然支持它,它正在被删除。 避免使用它,并尽可能更新现有代码。注意 此功能可能随时停止工作


是一些很好的文档。此外,Mark Pilgrim在这里给出了一个快速的解释:有大量的链接。您的部分问题似乎没有得到回答。与
元素关联的质询可用于提供带有
SPKAC
的密码短语。一旦证书颁发机构处理了客户端证书签名请求,并且在用户浏览器中设置了客户端证书,该质询就可以用作身份验证,就像在同一计算机终端上共享或多个用户的情况下使用典型密码一样。我可以在html中使用
表单
没有ssl证书?因此这两种方法都对通信进行加密,但是
密钥与用户标识有关,其中ssl与服务器标识有关?RFC是IETF发布的。您提供的链接指向W3C草案规范。您的用例实际上不起作用。没有任何东西可以阻止从浏览器导出密钥和证书并将其导出到其他计算机。我认为您不太了解此元素的用途。在没有ssl证书的情况下,我是否可以在html
表单中使用