【レビュー】

JavaScript ASPでセキュア通信を - パスワード盗聴対策に"aSSL"はいかが?

2 「ほどほどの」セキュリティソリューションの魅力

    後藤大地  [2007/01/11]

    aSSLの動作の仕組み

    執筆現在における最新版は8日(米国時間)にリリースされたaSSL ver 1.2 beta3。同バージョンにおける基本的な通信確立手順は次のとおり。

    1. クライアントからサーバへ接続確立要求
    2. サーバからクライアントへRSAモジュール(公開鍵)および暗号化指数を送信
    3. クライアント側でサーバの公開鍵および暗号化指数を使ってランダムな128ビットの交換鍵を生成
    4. クライアントから交換鍵をサーバへ送信
    5. サーバ側で自身の秘密鍵を使って交換鍵を復元
    6. サーバ側で通信可能を確認したら、サーバからセッション継続時間をクライアントへ送信
    7. クライアントがセッション継続時間を受け取ったら接続保持時間を設定

    接続が確立したあとは、aSSLを経由したサーバクライアント間の通信はAESアルゴリズムを使って暗号化が実施される。暗号化通信を開始するまでのネゴシエーションはシンプルでわかりやすいものだ。

    Hello aSSL!

    aSSLをデプロイして使う方法はaSSLのサイトにチュートリアルが用意されているので参考にしてほしい。aSSL ASPログインサンプルが用意されているので、実際にどのように活用されるものなのかサンプルを使って体験してみるといいだろう。

    図1 aSSLログインサンプル - 同ライブラリを使ってサーバとネゴシエーションを実施中

    図2 サーバとクライアントでネゴシエーションが完了すると、以降は暗号化通信が実施される

    aSSLではサーバ側にコンポーネントが必要になる。デプロイについてはドキュメントをご覧いただきたい。サーバ側で使うRSA鍵についてはオンラインで実行できるRSAキージェネレータが用意されているので、同ジェネレータで鍵を作成して使うといいだろう。同ジェネレータはサーバではなくクライアント側で鍵を生成しているので、生成した鍵がサーバに蓄積されることはない。

    図3 RSA鍵を生成中 - しばらく時間がかかるためWebブラウザから警告が表示されることもあるが、そのまま実行する

    図4 生成されたRSA鍵

    セキュアレベル、そしてぴったりの用途は?

    aSSLはSSL/TLSのような方法でセキュア通信を実施するものの、Webブラウザレベルで処理が実施されるHTTPSほどは安全ではないと言われている。MiTM(Man-in-The-Middle)攻撃を実行しようとすれば実行できる。そもそもaSSLはHTTPSが要求されるようなクリティカルなサービスではなく、チャットやブログなど比較的クリティカルではないサービスにおいて使うように設計されているようだ。

    ではaSSLはどういった用途に対して適切かということになるが、aSSLはパスワード盗聴(Password Sniffing)といった脅威に対する対処として適している。HTTP経由でそのままアカウント情報のやりとりを実施した場合、簡単にパスワードが盗聴されてしまうが、aSSLを経由してデータ通信を暗号化する場合はそれは困難になる。

    執筆現在ではJavaScript(ASP)しか用意されていないが、PHP、Java、Perl、Pythonなどほかの言語版が用意されると活用の幅もぐっと広がる。今後の展開が楽しみなプロダクトだ。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン