HTML5 新的表单元素 2.keygen元素
<keygen>标签用于表单对密钥的生成。当提交表单时,私钥存储在本地,公钥发送到服务器上。
代码实例如下:
<form action="demo_keygen.asp" method="get">
Username: 〈input type="text" name="usr_name" />
Encryption: <keygen name="security" />
<input type="submit" />
</form〉
在这里,很多人可能都会好奇,这个keygen标签到底是干什么的? 一般会在什么样的场景下去使用它呢?下面就为大家解除疑惑。
首先<keygen>标签会生成一个公钥和私钥,私钥会存放在用户本地,而公钥则会发送到服务器上。那么<keygen>标签生成的公钥/私钥是用来做什么的?在看到公钥/私钥的时候,应该就会想到非对称加密。没错,<keygen>标签在这里起到的作用也是一样的。
<keygen>标签所期望的是在收到SPKAC(SignedPublicKeyAndChallenge)排列后,服务器会生成一个客户端证书(Client Certificate ),然后返回到浏览器,让用户去下载保存到本地。在需要验证的时候,使用本地存储的私钥和证书后,通过TLS/SSL安全传输协议到服务端做验证。
以下是使用<keygen>标签的益处:
•可以提高验证时的安金性。
•如果是作为客户端证书来使用:可以提高对M丨TM攻击的防御力度。
•keygen标签是跨越浏览器实现的,实现起来非常容易。
•可以不用考虑操作系统的管理员权限问题。
例如,操作系统对不同用户设置了不同的浏览器权限,IE或者其他浏览器可以设置禁用key的生成,在这种情况下,可以通过keygen标签来生成和使用没有误差的客户端证书。
点击加载更多评论>>