keygen - フォーム送信時にキーを発行

keygenとは、key generatorの略で、フォーム送信時にキーを発行して暗号化する際に使用します。
キーが発行されると、秘密キーと公開キーがペアで発行されます。
秘密キーはローカル環境に保存、公開キーはサーバーに送信されます。
これら仕組みにより、クライアント認証がより確実となり、情報送信の安全性が高まります。

keygen要素のブラウザ別サポート状況

- ie6 ie7 ie8 ie9 firefox4 chorme safari5 opera10
keygen - - - -

keygen要素のHTML4からHTML5への変更点

keygen要素は、HTML5から新たに追加された要素です

コンテンツ属性

グローバル属性 すべての要素で共通に使える属性。HTML5で新たに定義された属性もあります。
autofocus 自動フォーカス
初期画面でフォーカスさせるものに1つ指定可
challenge 送信されるキーと一緒にパッケージする値を指定
disabled 無効化
form フォームと関連付けるid名を指定
keytype 暗号化の種類を指定
HTML5では、ユーザーエージェントがサポートするべき暗号方式は正式には決められていません。
ユーザーエージェントによっては、暗号方式がサポートされていないこともありえます。
デフォルトでは、RSAですが、妥当ではない値が指定された場合は、unknown(キーは空)となります。
name キーの名前

「基本」のサンプル

HTMLコード

<form action="request.php" method="post" enctype="multipart/form-data">
<keygen name="key"><br>
<input type=submit value="キーを送信する">
</form>

プレビュー

対応していないブラウザでは正しくプレビューされません。

別ウィンドウで「基本」のサンプルプレビューを確認

原文(英語):(http://www.w3.org/TR/2009/WD-html5-20090423/forms.html#the-keygen-element)