<keygen>の解説|クロノドライブのHTML5辞典

<keygen>

対応ブラウザ Chrome 1~ / Firefox 1.0~ / Opera 3.0~ / Safari 1.2~ / Android 2.3~
※iOS6以前では空のドロップダウンリストが表示されるのみ、7以降未確認
タグの分類 フロー・コンテンツ
フレージング・コンテンツ
インタラクティブ・コンテンツ
フォーム関連要素
パルパブル・コンテンツ
含められるもの なし(空要素)
使える場所 フレージング・コンテンツを使える場所
用例 <form>
<input name="text">
<keygen name="key">
<input type="submit">
</form>

<keygen>とは

「keygen」とは、「key generation」の略で、フォームの送信時に暗号鍵を生成してセキュリティ効果を強化するために使用するタグです。フォームから<keygen>を含むデータが送信されると、クライアント側で秘密鍵と公開鍵がペアで生成されます。このうち秘密鍵はローカル環境に保存され、公開鍵はサーバーに送られることになります。この仕組みによりクライアント認証がより確実となり、安全に情報を送信することが可能です。

<keygen>要素に対応しているブラウザでは、鍵の長さを設定するためのフォーム部品が表示されます。

keytype属性は使う鍵の形式を指定します。現在のところ定められている形式はrsaのみで、keytype属性を指定しない場合のデフォルトもrsaとなります。ただし、ブラウザが<keygen>のRSA形式をサポートしていない場合は無効となります。

challenge属性が指定された場合、値がチャレンジ文字列としてサーバーへ公開鍵とともに送られます。指定しない場合のデフォルトは空文字列です。