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

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

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

<keygen>標(biāo)簽用于表單對密鑰的生成。當(dāng)提交表單時,私鑰存儲在本地,公鑰發(fā)送到服務(wù)器上。

    代碼實例如下:

    <form action="demo_keygen.asp" method="get">

        Username: 〈input type="text" name="usr_name" />

        Encryption: <keygen name="security" />

        <input type="submit" />

    </form〉

    在這里,很多人可能都會好奇,這個keygen標(biāo)簽到底是干什么的? 一般會在什么樣的場景下去使用它呢?下面就為大家解除疑惑。

    首先<keygen>標(biāo)簽會生成一個公鑰和私鑰,私鑰會存放在用戶本地,而公鑰則會發(fā)送到服務(wù)器上。那么<keygen>標(biāo)簽生成的公鑰/私鑰是用來做什么的?在看到公鑰/私鑰的時候,應(yīng)該就會想到非對稱加密。沒錯,<keygen>標(biāo)簽在這里起到的作用也是一樣的。

    <keygen>標(biāo)簽所期望的是在收到SPKAC(SignedPublicKeyAndChallenge)排列后,服務(wù)器會生成一個客戶端證書(Client Certificate ),然后返回到瀏覽器,讓用戶去下載保存到本地。在需要驗證的時候,使用本地存儲的私鑰和證書后,通過TLS/SSL安全傳輸協(xié)議到服務(wù)端做驗證。

    以下是使用<keygen>標(biāo)簽的益處:

    ?可以提高驗證時的安金性。

    ?如果是作為客戶端證書來使用:可以提高對M丨TM攻擊的防御力度。

    ?keygen標(biāo)簽是跨越瀏覽器實現(xiàn)的,實現(xiàn)起來非常容易。

    ?可以不用考慮操作系統(tǒng)的管理員權(quán)限問題。

    例如,操作系統(tǒng)對不同用戶設(shè)置了不同的瀏覽器權(quán)限,IE或者其他瀏覽器可以設(shè)置禁用key的生成,在這種情況下,可以通過keygen標(biāo)簽來生成和使用沒有誤差的客戶端證書。

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

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