makoto_fujimotoのblog

株式会社進角
代表 藤本信のブログです
どうぞよろしくお願いします

個人情報の漏えい事件やアカウントの乗っ取りなどの被害が後をたちません。

何らかの不正手段によってWebサイトがハッキングされて個人情報が漏えいした場合、パスワードデータが平文(非暗号)で保存される仕様になっていると、他のサービスで不正利用されるなど二次被害も予想されます。ユーザIDをメールアドレスとしているサイトが多数ありますので、使いまわしているパスワードとの組合せがあれば他のサイトでもそのまま使用できてしまいます。

日々さまざまなハッキング手法が生み出されるWebの世界では、常に完璧にセキュリティ対策を執り続けるのは不可能に近いので、「最悪盗まれても致命的なダメージとならない」という安全策も必要だと思います。

以下に既存サイトのパスワード保存形式を暗号化する改修ステップを整理してみました。

  1. 暗号化したパスワードが保管できるようにテーブルのフィールド長を拡張する
    MD5を使用する場合は最低32桁必要※
  2. ログインプログラムを改修
    パスワードを照合する際に入力値を一旦MD5ハッシュ値に変換して比較する
  3. 会員登録プログラムを改修
    入力したパスワードをMD5ハッシュ値に変換して保存する
  4. 会員情報変更プログラムを改修
    パスワードの変更があった場合に入力したパスワードをMD5ハッシュ値に変換して保存する
  5. バッチプログラムで平文パスワードを元にMD5ハッシュ変換した値に一括更新
  6. パスワードリマインダなどの機能は再発行のプロセスを仕様変更する必要あり

サービスレベルではパスワードの通知機能が使えなくなるなどのデメリットがありますが、セキュリティとのトレードオフで諦めるしかありません。

※ただしMD5やSHA1では、脆弱性が指摘されているので注意してほしい。現時点で最も手軽に使えて安全性の高いハッシュ・アルゴリズムはSHA256である。

(2014.8.19追記)
これらの暗号化方式では外部で不正流出した大量の情報によって暗号化データが解読されて出回っていることも考えられ安全とは言えないので、さらに独自の秘密キー設定も必要ですね。

事業会社がWebサービスを計画している場合、専門のSI業者などから提案や見積もりをもらう為に、できる限り詳細で将来発生しうる事象を見越した要件を伝える必要があります。この資料をRFPすなわち提案依頼書と言います。
以下の例は比較的汎用的な内容となっていますので参考にして頂ければと思います。


-----------------------------------------------------

本要件定義は、○○○情報端末(以下「情報端末」という)をプラットホームとする○○○サービス(以下「サービス」という)を提供するにあたり、安定したサービス運用とコミュニケーション活性化を実現するインフラ環境の与件をまとめたものである。

  1. 想定環境

    情報端末数:最大○○万台
    常にアクティブ※な情報端末の割合:○○%
    最大サーバアクセス:瞬間コネクション○万Connect
    最大Webヒット数:○○○○万hits/日
    最大メール送受信数:○○万件/日
    最大投稿数:○○万/日

  2. データセンター
    運用担当者が営業時間帯において1時間以内に移動が可能な立地にあり、耐震・防火設備、熱対策、入退室管理、入出庫機器管理、ID認証、監視カメラ、手荷物検査、施錠可能ラック、追加電源対応、停電対策、津波・浸水対策が施されており、工具・モニタ・キーボード貸与、一次保守(リセット、ランプ確認、ケーブルメンテ)、24時間保守要員が常駐し対応が可能なこと。

  3. インターネット回線
    最大○○○Mbpsの回線速度とし、SLAあるいは相応の安定した可用性と帯域実績があること。独自IPアドレスを○○個以上取得する。情報端末に容量の大きなファイルを一斉配布する場合は外部のCDNやクラウドサービスを活用することも想定する。

  4. ファイアウォール
    WANとの接点にWAF(Web Application Firewall)型のアプライアンス装置を設置し、SQLインジェクション、XSS等アプリケーションレベルでの攻撃防御に対応する。

  5. ロードバランサ
    Webサーバの各種指標による負荷分散と障害時の自動切り離し機能を基本とし、各種クライアントに対応したセッション維持機能持つL7対応の機器を想定。また容易にWebサーバの増設・保守に対応できるもの。

  6. スイッチ
    サーバ機器等のネットワーク接続に用いるスイッチは、L2以上のインテリジェント型とし、ギガビット1000BASE-T、ポート毎のパケットバッファ搭載を満たす機器とする。

  7. OSおよびミドルウェア
    LAMP構成を基本とする(データベースはPostgreSQLも可)。サービス公開時点においては最新安定版かつ既知の脆弱性・バグ対策済みのバージョンとし、運用時は容易にパッチ適用対策が可能な構成とする。

  8. サーバ構成
    サーバは用途別に構成し、機能及び負荷、メンテナンス等による干渉を避けるようにする。機能の追加・改修やコンテンツの事前確認用としてステージングサーバ環境を用意する。Webサーバは将来アクセスが増加した際、容易に台数の増加が可能な構成とする。データベースサーバはハードウェア増強によるスケールアップに対応できる機器とする。

  9. データベースサーバ
    より安全性の高いネットワークに設置し、外部から直接アクセスできないようにする。障害対策として冗長化構成とし、同期型レプリケーションを行い、速やかなサービス復旧が可能でデータ毀損の発生しないシステム構成とする。

  10. サービス側のシステム要件に備え、DBMSに全文検索機能を実装する。

  11. Webサーバ
    一日最大○○○○万hits、○○○万pvのサーバサイドスクリプト含むHTTP(S)リクエストの処理が可能な構成に最適化し、負荷分散・障害対策も考慮する。

  12. ストレージサーバ
    ユーザコンテンツの格納先として、1アカウントあたり○○○MBを上限とする領域を確保し、使用率は最大○○%を想定する。将来の拡張を想定した論理設計を行う。障害時のリカバリ対策として冗長化構成とする。

  13. その他サーバ
    各種用途に特化したハードウェア性能と最小限のミドルウェア稼働やアクセス制限を構成して最適化する。

  14. バックアップ
    ハードディスク障害発生に備え、ユーザコンテンツファイル、ログ、データベース、コンテンツ、プログラム等を日次でフルバックアップを実施し、データベース、コンテンツ、プログラムについては過去○世代保持できるようにする。

会社名の「進角」とは、エンジンやモーターに関する専門用語のひとつ。

点火や通電タイミングを変化させることによって、出力アップや効率化を図ることが可能となる非常に重要で影響力の高い要素です。

IT業界におきましても、そのように影響力が強く効果的な調整機構としてサービス展開できればと思って命名いたしました。

↑このページのトップヘ