- - PR -
SSLでのクライアント認証
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-12-06 03:08
SSLそのものでは証明書によるクライアント認証しか提供されていない
ようなのですが、他のアプリケーションプロトコルでは、SSL上で動作する クライアント認証メカニズムがあるようなので、それらをSSLを介して 実装する方法を知りたいのですが・・・ 例えば、以下のような単純な認証方式は、どのように実装すればよいのでしょうか? ・ユーザー名、パスワード ・ワンタイムパスワード ・チャレンジ・レスポンス よろしくお願い致します。 | ||||||||
|
投稿日時: 2007-12-06 17:18
実装というのが「何を」実装しようとしているのかによると思います。
「どのように」という方法はその後考えればよいのでは? | ||||||||
|
投稿日時: 2007-12-06 20:06
ご返答ありがとうございます。
例えば、ユーザ名、パスワード で認証する場合、クライアントは、 どのタイミングで、ユーザ名、パスワード をサーバー側に送信すれば 良いのか? などと言うことなのですが・・・ ハンドシェイク時に行なうのか? ハンドシェイク後のデータ通信で行なうのかなどと言う事を 知りたいのです。 よろしくお願い致します。 | ||||||||
|
投稿日時: 2007-12-06 23:30
一応、ハンドシェークでも、データ通信時でも可能ではあります。 ハンドシェークのときにパスワードを受送信するのは、謎ではありますが。。。 頑張れば可能です。制約が厳しいですが。 そのプロトコルをSSLと言い切るのはためらいがあります。 しかも脆弱性を新たに付け加えているような気がします。 実際には、特別な要求でない限り、データ通信時しかありえません。
どのタイミングでもかまいません。SSLはトランスポート層のプロトコルなので 上位は何でも通すことが出来ます(一応) SSLは2点間の通信路を設定しているだけなので、通信路上でいいならどんなデータでもいいです。 | ||||||||
|
投稿日時: 2007-12-07 11:00
SSL層を作っているのか、その上のアプリケーションを作っているかによると思います。 SSL層を作っているのなら、ハンドシェーク時しかないでしょう。 アプリケーションを作っているのなら、データ通信時しかないでしょうね。 ただしSSLハンドシェーク時にパスワード認証をするのは、セキュリティ強度を考えると いろいろな問題をクリアする必要があり、かなり大変そうです。 実際にはTLS_SRP_何ちゃらという暗号スイートも、ドラフトレベルでは存在するので (SRPはSecure Remote Password)、研究目的でSSL層を作っているなら、これを実装して みるのも手かと思います。 とりあえずFirefoxとOpenSSLあたりに実装すればよさそうな気がしますが、個人的には 根性不足ですので、お前がやれとかは言わないでください。 | ||||||||
|
投稿日時: 2007-12-09 10:08
ご返答ありがとうございます。
ハンドシェイク時ではなく、データ通信時にパスワードを送受信する方式であれば 簡単に行なえるとの理解でよろしいでしょうか? また、OpenSSLあたりにAPIが用意されているのでしょうか? よろしくお願い致します。 | ||||||||
|
投稿日時: 2007-12-09 10:35
はい。
データ通信時にパスワードを送受信するためのAPI なんてありません。 それは、データを送るときと同じAPI を使用すれば問題ないです。 SSL はセッション層、HTTP、SMTP、FTP、TELNET などはアプリケーション層。 なので、OpenSSL のライブラリは上位のプロトコルを扱うAPI まで提供していないはずです。 | ||||||||
|
投稿日時: 2007-12-13 16:49
返信遅れまして申し訳ありません。
あんとれぬし様 ご返答ありがとうございました。 感謝いたします。 |
1