位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > HTML > 問(wèn)題詳情

HTML5 新的表單元素 2.keygen元素

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-16

<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)生成和使用沒有誤差的客戶端證書。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部