HTML5 新的表單元素 2.keygen元素
<keygen>標(biāo)簽用于表單對(duì)密鑰的生成。當(dāng)提交表單時(shí),私鑰存儲(chǔ)在本地,公鑰發(fā)送到服務(wù)器上。
代碼實(shí)例如下:
<form action="demo_keygen.asp" method="get">
Username: 〈input type="text" name="usr_name" />
Encryption: <keygen name="security" />
<input type="submit" />
</form〉
在這里,很多人可能都會(huì)好奇,這個(gè)keygen標(biāo)簽到底是干什么的? 一般會(huì)在什么樣的場(chǎng)景下去使用它呢?下面就為大家解除疑惑。
首先<keygen>標(biāo)簽會(huì)生成一個(gè)公鑰和私鑰,私鑰會(huì)存放在用戶本地,而公鑰則會(huì)發(fā)送到服務(wù)器上。那么<keygen>標(biāo)簽生成的公鑰/私鑰是用來(lái)做什么的?在看到公鑰/私鑰的時(shí)候,應(yīng)該就會(huì)想到非對(duì)稱加密。沒錯(cuò),<keygen>標(biāo)簽在這里起到的作用也是一樣的。
<keygen>標(biāo)簽所期望的是在收到SPKAC(SignedPublicKeyAndChallenge)排列后,服務(wù)器會(huì)生成一個(gè)客戶端證書(Client Certificate ),然后返回到瀏覽器,讓用戶去下載保存到本地。在需要驗(yàn)證的時(shí)候,使用本地存儲(chǔ)的私鑰和證書后,通過(guò)TLS/SSL安全傳輸協(xié)議到服務(wù)端做驗(yàn)證。
以下是使用<keygen>標(biāo)簽的益處:
?可以提高驗(yàn)證時(shí)的安金性。
?如果是作為客戶端證書來(lái)使用:可以提高對(duì)M丨TM攻擊的防御力度。
?keygen標(biāo)簽是跨越瀏覽器實(shí)現(xiàn)的,實(shí)現(xiàn)起來(lái)非常容易。
?可以不用考慮操作系統(tǒng)的管理員權(quán)限問(wèn)題。
例如,操作系統(tǒng)對(duì)不同用戶設(shè)置了不同的瀏覽器權(quán)限,IE或者其他瀏覽器可以設(shè)置禁用key的生成,在這種情況下,可以通過(guò)keygen標(biāo)簽來(lái)生成和使用沒有誤差的客戶端證書。
點(diǎn)擊加載更多評(píng)論>>