htm5新增的表單元素keygen標籤的用法和屬性介紹,本篇文章主要為大家介紹了html5 keygen標籤的定義用法及其屬性的描述,還有關於html5 keygen標籤的優缺點說明
html5 keygen標籤的定義和用法:
<keygen> 標籤規定用於表單的金鑰組產生器欄位。
當提交表單時,私密金鑰儲存在本地,公開金鑰發送到伺服器。
HTML5 <keygen> 標籤執行個體:
帶有 keygen 欄位的表單:
<form action="demo_keygen.asp" method="get">Username: <input type="text" name="usr_name" />Encryption: <keygen name="security" /><input type="submit" /></form>
html5 keygen標籤的屬性:
html5 keygen標籤的優缺點介紹:
首先<keygen>標籤會產生一個公開金鑰和私密金鑰,私密金鑰會存放在使用者本地,而公開金鑰則會發送到伺服器。那麼<keygen>標籤產生的公開金鑰/私密金鑰是用來做什麼用的呢?很多朋友在看到公開金鑰/私密金鑰的時候,應該就會想到了非對稱式加密。沒錯,<keygen>標籤在這裡起到的作用也是一樣。
<keygen>標籤所期望的是在收到SPKAC(SignedPublicKeyAndChallenge)排列後,伺服器會產生一個用戶端認證(Client Certificate),然後返回到瀏覽器讓使用者去下載儲存到本地。之後,使用者在需要驗證的時候,使用本機存放區的私密金鑰和認證後通過TLS/SSL安全傳輸協議到服務端做驗證。
以下是使用<keygen>標籤的優點:
一個是可以提高驗證時的安全性;
同時如果是作為用戶端認證來使用,可以提高對MITM攻擊的防禦力度;
keygen標籤是跨越瀏覽器實現的,實現起來非常容易;
另外就是可以不用考慮作業系統的管理員權限問題。例如作業系統對不同使用者佈建了不同的瀏覽器許可權,IE或者其他瀏覽器可以在設定裡面禁用key的產生,這種情況下,可以通過keygen標籤來產生和使用沒有誤差的用戶端認證。
<keygen>標籤的不足之處也有很多:(比如下面的十種)
認證(Certificates)在不同的系統裡不是容易方便的(但是對於某些系統,這又是一個優勢)。
沒有在一個標準的位置儲存私密金鑰。
在html頁面看到<keygen>標籤產生的內容總是讓人困惑和難以理解。
<keygen>標籤會讓使用者從一個列表裡選擇適當的key,但是大多數使用者不知道該如何選擇。
很多使用者並不清楚是否該根據提示下載認證(Certificate)。
<keygen>標籤不提供一個能管理憑證讓其失效的機制。
沒有標準的key長度或者hash來實現瀏覽器無關性。
不支援演算法(RSA, DSA, ECC等)。
key的大小選擇只能來源於<keygen>標籤產生的表單內容,而不是使用者可以選擇的。
簽名只能基於MD5,而不能使用其他的密碼編譯演算法。
瀏覽器支援
所有主流瀏覽器都支援 <keygen> 標籤,除了 Internet Explorer 和 Safari。
【相關推薦】
html標籤legend的具體用法你知道嗎?legend標籤的屬性和使用方法詳解
html map標籤是什嗎?html map標籤的結構及具體使用方法詳解