html5仕様に新しい* keygen
要素 があります。 Internet ExplorerとSafariを除く主要なブラウザでサポートされています。
これは次のようになります。
<form action="processkey.cgi" method="post" enctype="multipart/form-data">
<p><keygen name="key"></p>
<p><input type=submit value="Submit key..."></p>
</form>
現在の実装では、RSAのみをkeytype
属性としてサポートしています。
さて、私の質問ですが、それを使って何ができるのでしょうか?何のために?
*: あんまり
明らかな使用法はクライアント認証です。パスフレーズやスマートカードと組み合わせてセキュリティを向上させたり、パスワードを入力するための便利な代替手段として使用できます。
WebIDシングルサインオンプロトコル は、このコンテキストでは興味深い提案です。
クライアント証明書の主な問題は、ブラウザにバインドされていることです。したがって、別のコンピューターを使用している場合は、予防策を講じない限り、コンピューターにアクセスできません。
セッションの乗っ取りを軽減するために使用できると思います。サーバーはクライアントを認証し、クライアントからの入力を受け取る前に、クライアントでチェックを実行できます。仕様では、公開鍵とチャレンジを生成することもできます。重要な情報をフォームで送信する前に、サーバーを再認証できると便利です。
この要素の目的は、ユーザーを認証する安全な方法を提供することです。タグは、フォームのキーペアジェネレータフィールドを指定します。詳細はこちら http://www.w3schools.com/html/html5_form_elements.asp