インターネット上でユーザ認証やセンシティブな情報を集める際にはSSLを使うことが一般的だ。とは言え個人やレンタルサーバレベルでは証明書を取得するのはコスト面や技術面で難しいことがある。だからといって、そのような情報を平文のまま流すのは気になる所だ。

ピクチャ 58.png

フォームの内容を暗号化して送信

 

簡単な暗号化だけでも良いから行いたい、そんな時に使えそうなのがjCryptionだ。

今回紹介するオープンソース・ソフトウェアはjCryption、JavaScriptベースの暗号化ライブラリだ。

jCryptionはRSA暗号(公開鍵暗号)に則ったアルゴリズムを使った暗号化ライブラリだ。復号化可能なライブラリであり、jCryptionではPHPのクラスを提供している。実装はjQueryを使って行われているのでjQueryを使った開発では利用がとても簡単に行える。

ピクチャ 59.png

公開鍵を送信しているスクリプト部分

 

送信直前にサーバサイドにキーの生成を問い合わせており、その結果を使って暗号化を行っているようだ。アルゴリズムはRSAの2048bitとなっている。とは言えSSLの代わりに使える訳ではない(証明がないので)。対応ブラウザはIE6以上、Firefox3以上、Safari3以上、Opera9以上、Google Chromeとなっている。

うろ覚えだが、Yahoo! JapanのログインページでもSSLでない場合はJavaScriptで暗号化処理がされていた。それに似たようなシステムと言えるだろう。なおAjaxによるポストにも対応している。過信は禁物だが、利点、欠点を把握した上で多少なりとも暗号化したいという時には有益なのではないだろうか。

 

jCryption - JavaScript data encryption

 http://www.jcryption.org/