HTML 【フォーム】15 ~ キーを発行して暗号化(keygen)

Accessibility Password Privacy Security Protection Concept

HTML5からの新要素にkeygen要素があります。keygen要素は、フォーム送信時にキーを発行して暗号化する要素です。
今回は、このkeygen要素についてまとめたいと思います。

フォームについては、以下のページもご参照下さい。
HTML 【フォーム】1 ~ フォームの概要とform要素の属性一覧
HTML 【フォーム】2 ~ form要素の使い方
HTML 【フォーム】3 ~ form要素で使う主な属性の使い方
HTML 【フォーム】4 ~ fieldset要素とlegend要素
HTML 【フォーム】5 ~ input要素(1)フォーム部品一覧
HTML 【フォーム】5 ~ input要素(2)テキスト入力部品
HTML 【フォーム】5 ~ input要素(3)ラジオボタンとチェックボックス
HTML 【フォーム】5 ~ input要素(4)日時の入力部品
HTML 【フォーム】5 ~ input要素(5)数値の入力部品
HTML 【フォーム】5 ~ input要素(6)レンジ(range)の入力部品
HTML 【フォーム】5 ~ input要素(7)色(color)の入力部品
HTML 【フォーム】5 ~ input要素(8)ファイル送信のための部品
HTML 【フォーム】5 ~ input要素(9)隠し情報(hidden)
HTML 【フォーム】5 ~ input要素(10)ボタン(submit、reset、button)
HTML 【フォーム】5 ~ input要素(11)画像ボタン(image)
HTML 【フォーム】6 ~ button要素で作るボタン
HTML 【フォーム】7 ~ ボタンの作り方比較とJavaScriptでアラート表示
HTML 【フォーム】8 ~ セレクトリスト
HTML 【フォーム】9 ~ 入力候補(datalist)
HTML 【フォーム】10 ~ テキストエリア(textarea)
HTML 【フォーム】11 ~ ラベル(label)
HTML 【フォーム】12 ~ 出力欄(output)
HTML 【フォーム】13 ~ 数量や割合のゲージ(meter)
HTML 【フォーム】14 ~ 進捗状況を示すプログレスバー(progress)

目次

1.keygen要素
2.公開キーの作成
3.keygen要素の属性一覧

1.keygen要素

keygenは、key generatorの略で、キー発生器のような意味です。キージェネとよばれています。
keygen要素は、データを送信する際に、キーを発行して暗号化する要素です。

keygen要素を使用すると、秘密キーと公開キーがペアで発行されます。
秘密キーはローカル環境に保存され、公開キーはサーバに送信されます。
このような仕組みによって、クライアント認証がより確実になり、情報送信の安全性も高まります。

keygen要素は、空要素で終了タグがありません。
keygen要素で作られた部品は、このように表示されます。

使用する要素 <keygen>
keygen要素の属性 name属性 keygen要素に固有の名前を付ける
keytype属性 生成されるキーの種類
デフォルト値はrsa
challenge属性 公開キーと一緒に送る文字列
disabled属性 使用不可の状態にする
autofocus属性 ロード後、自動的にフォーカス(選択された状態に)する
form属性 親のform要素のid名を呼び出して関連付ける
グローバル属性 id属性、class属性、title属性、style属性など

▲目次へ戻る

2.公開キーの作成

keygen要素を使用すると、秘密キーと公開キーがペアで生成されます。
秘密キーはローカルに保存され、公開キーはデータ送信時にサーバに送信されます。

入力データを暗号化するための部品は、次のように表示されます。




 
上の表示に対するhtmlコードは、以下の通りです。

<form>
ID:<input name=”test_id”>
暗号化:<keygen name=”test_key”>
<input type=”submit”>
</form>

keytype属性で、生成されるキー(暗号化)の種類を指定できますが、HTML5の仕様ではブラウザがサポートするべき暗号方式が定まっておらず、デフォルト値がrsaのため、今のところrsaのみ指定可能と考えられます(よって、他に指定可能なキーの種類ができるまでは、指定してもしなくても同じです)。

RSAとは、公開キーの暗号方式の標準として普及している暗号アルゴリズムの名称です。
RSAでは、巨大な数の素因数分解が困難なことを利用してデータを暗号化します。

▲目次へ戻る

3.keygen要素の属性一覧

name=”暗号化部品の名前(任意のテキスト)”
name属性の値と公開キーがセットで送信されるので、必ず名前を付けます。

 <keygen name=”sample”>

keytype=”rsa”
公開キーの暗号方式の種類を指定しますが、今のところrsa(RSA暗号方式)しか指定できません。
RSAとは、公開キーの暗号方式の標準として普及している暗号アルゴリズムの名称です。RとSとAは、開発者3名(R.L.Rivest、A.Shamir、L.Adleman)の頭文字のようです。
属性を省略するとデフォルト値のrsaになるので、他に指定できる値ができるまでは指定する必要がない属性です。

 <keygen name=”sample” keytype=”rsa”>

challenge=”公開キーと一緒に送る文字列(任意のテキスト)”
公開キーと一緒に送る文字列を指定します。

 <keygen name=”sample” challenge=”challenge_txt”>

disabled または disabled=”” または disabled=”disabled”
使用不可の状態にする指定です。この属性を指定すると、暗号化レベルをセレクトできない状態になります。

 <keygen name=”sample” disabled>

autofocus または autofocus=”” または autofocus=”autofocus”
HTML文書のロード後、この属性の指定がある要素が自動的にフォーカスされます。
このような性質上、1つのHTML文書に1つの要素のみautofocus属性の指定ができます。

 <keygen name=”sample” autofocus>

form=”form要素のID”
form属性で、form要素に付けたid名を呼び出して関連付けを行います。
そうすることによって、keygen要素がform要素の外に出ていても問題なく機能します。

 <form method=”post” action=”sample.cgi” id=”f_id”>
 ID:<input name=”test_id”gt;
 </form>
 <keygen name=”test_key” form=”f_id”>

この他に、id属性、class属性、title属性、style属性などのグローバル属性も使えます。

▲目次へ戻る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です