投稿日:2009年11月27日
はじめに - Webサイトを安全に運用するために
近年、Webサイトの脆弱性が悪用されたフィッシング詐欺や個人情報の漏洩、
Webページ改竄などの事件が多発し、2005年から施行された個人情報保護法により、
情報資産の保護に対する意識はますます高まってきています。
Webサイトの脆弱性の悪用による被害を回避するためには、
安全なWebサイトの運用
安全なWebサイトを構築するためには、構築時と運用面での対策が必要となってきます。
IPA(情報処理推進機構)が国内で届出件数が多かった脆弱性や攻撃の影響度が大きい脆弱性を取り上げ、
Webサイト開発者や運営者に適切なセキュリティを実施するように資料を提供していますので、
まずは基本的な知識として熟読して頂き、最後にはチェックシートがありますので、
運営を行っている、または、運営を予定しているWebサイトに当てはめチェックしてみてください。
Webサーバのアクセス制限
Webサーバで一般的に利用されている Apache では、以下の4つの認証(アクセス制限)が可能です。
SSL("Secure Sockets Layer")って何?
SSLは1994年にNetscape Communications社の開発によって誕生しました。
インターネット上に流れる情報をPKI(公開鍵暗号基盤)という方法で暗号化し、
サーバとクライアント間でやり取りされる情報を安全に送受信することができます。
PKI
「Public Key Infrastructureの略で公開鍵基盤と訳され、
公開鍵暗号化方式と呼ばれる暗号技術を基盤とした暗号と認証の仕組みになります」
では、SSLで利用している暗号化のメカニズムについて見ていきましょう。
公開鍵暗号化方式では「秘密鍵」と「公開鍵」の2種類に分かれ、
秘密鍵で暗号化した情報は常にペアとなる公開鍵でしか復号化できません。
同様に公開鍵で暗号化した情報は秘密鍵でしか復号化できません。
この2つ正しい鍵ペアを利用することで、ネットワークでやり取りされる情報の安全を守ります。
具体的にSSLで暗号化されたWebサイトにアクセスしたときの暗号化通信を見ていきましょう。
【SSL通信の流れ】
1. クライアントはブラウザからSSL暗号化でWebサーバにリクエスト(https://で始まるURLアドレス)します
2. Webサーバはクライアント(ブラウザ)に対して公開鍵を含んだサーバ証明書を送信します
3. ブラウザは送受信データを暗号化する共通鍵を作成するため、基データから公開鍵で暗号化します
4. 公開鍵で暗号化した共通鍵をWebサーバに送信します
5. Webサーバは暗号化された基データを秘密鍵で復号します、基データから共通鍵を生成します
6. ブラウザ側も基データから共通鍵を生成します
Webサーバとクライアント(ブラウザ)間で安全に共通鍵を共有できたことになります。
後は、共通鍵にて個人情報やクレジットカードなどの機密情報を暗号化し、情報の送受信を行います。(7~9)
SSLの技術を使うとデータは常に暗号化されているため、
途中で傍受されてもデータを取り出すことはできませんので、
安全に情報の送受信が可能となります。