- ベストアンサー
特定の端末のみからログイン可能なアクセス制御
ショッピングサイトを製作中なのですが、ひとつのIDに対して、特定の端末のみからログインさせる必要があります(IDとパスワードさえわかれば、どの端末からでもログインできるようにさせたくない)。 これを実現するのになにかよい方法はありますでしょうか? 電子証明書で実現できるのではないかと思っているのですが、具体的にどうしてよいかわからず困っています。また費用はどの程度かかりますでしょうか?会員数に比例して費用が発生するのでしょうか?また、導入の手間はどの程度ですか?会員側でも手間を必要とするでしょうか? あるいはまた、もし電子証明書以外の方法があれば、是非ともご教授願いたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご想像通り、クライアント証明書で実現できます。 まず、サーバーがIISならクライアント証明書の他にSSLサーバー証明書も必要になりますが、双方の証明書の認証局が同じである必要はありません。 サーバーにApacheを使用するならばクライアント証明書のみでも可能です。 いずれにしても、会員にクライアント証明書を発行するための認証局を自分で構築する必要があります。 正直に言って、OpenSSLだと拡張領域に独自の内容を定義するのはハードルが高いので、「電子証明書のシリアル番号 = 会員ID」でクライアント証明書を発行するのが妥当でしょう。 クライアント証明書の発行に際しては、VBscriptを使うと端末側でCSR(証明書作成要求)を作ることができますが、ブラウザがIEに限定されてしまいます。 サーバー側で秘密鍵+電子証明書を作り、pkcs#12形式でダウンロードさせるとブラウザやOSに依存せずにアクセスが可能です。ただし、この場合にはダウンロードした電子証明書を複数の端末にインストールされる可能性があります。 仮にApacheを使ったとします。 その場合には、SSLOptions で +ExportCertData を指定すれば環境変数にBase64エンコードされたクライアント証明書が格納されるので、環境変数の中身と会員に発行した証明書を全文一致で比較すれば会員の特定ができます。 以上が端末特定の概略です。 導入の手間としては、プライベート認証局の構築とルート証明書のインストール、クライアント証明書の発行、会員がアクセスしたときの検証手順の確定、クライアント証明書を使うことの会員への周知と教育、などがあります。 ・・・、けっこう大変だと思いますよ。
その他の回答 (1)
- nnori7142
- ベストアンサー率60% (755/1249)
お尋ねの件ですが、自社Webサーバなのかレンタルサーバなのかで方法が異なりますが、例えばNTT-PCコミュニケーションズ「WebARENA」共用サーバ契約ですと、ログインセキュリティに独自SSLと共用SSLサービスを運営しており、オンラインショップ等の個人情報に重要機密データ通信を要求する場合には、ベリサイン認証させる契約の方がデータの機密性が良い点、更に会員登録制の登録制オンラインサイト・ログイン(ベーシック認証)を併用すると良いかと存じます。 年次料金については、共用サーバの契約容量により料金が違います。(参考までに・・http://web.arena.ne.jp/suitex/spec/price.html) オンラインショップ連動ホームページ開設の際のレスポンスは、共用サーバと専用サーバにて帯域保証及びサーバスペック割当て仕様が違います。専用サーバの方ですと、サーバ接続の際のロードバランサーもある程度のスペックを選択出来ますので、見込んでおりますアクセス・ユーザー(顧客)数を考慮して、共用サーバにするか専用サーバにするか選択して頂ければと存じます。 因みに、専用サーバの固定費については、「http://web.arena.ne.jp/dedicated/spec/」を参考に。 なるべくお奨め出来かねますが、自社サーバ構築・公開ですと、ある程度のスペックのサーバ、例えばHP製「ML350e Gen8」+光単独引込回線(NTT光ベーシック回線)、帯域保証設定可能な業務系ルーター「RTX1200」、「RTX3500」など、後回線上のロードバランサー切替(http://h50146.www5.hp.com/products/servers/proliant/support/support_02/support02_03_02.html)も考慮し、上記HPサーバ自身も負荷分散させる目的で、複数のご用意及びシステム同期も考慮しなければいけないかと存じます。
補足
ありがとうございます。 通常のVPSか、あるいはAWSを使用するかもしれません。No.2さんの仰るように、プライベート認証局で対応しようかなと考えています。 ちなみにAWSを使用した場合、アクセス制御に関して何かメリットがないかご存じないでしょうか?
補足
ありがとうございます。 結構大変そうですね。。。 Webサーバはapacheを使います。 プライベート認証局は自前で構築しなければいけませんか?所謂オレオレ認証局ですかね。たしかオレオレ認証局の場合、アクセスした時に信頼できない認証局ということで、セキュリティ警告がでるんですよね?会員への周知と教育というのはそのことでしょうか?このプライベート認証をベリサイン等の大手の認証局では対応できないのでしょうか。 複数の端末にインストールされる可能性というのは、会員が証明書をエクスポートして複数の端末にインストールした場合のことでしょうか。 また証明書の発行回数ですが、1つのIDにつき、例えば2回だけ発行するなどして、PCとスマートフォンの2台の端末だけからアクセスさせるなどのことが可能になるでしょうか?