webnote.info

Home › インターネット概論 › WWWのセキュリティ

§  Introduction to Internet

04.

PKIとは

PKIとは、公開鍵暗号基盤、パブリックキー インフラストラクチャ(Public Key Infrastructure)の略です。 公開鍵暗号という仕組みを使って、遠隔地間で情報を安全にやりとりするためのインフラのことをいいます。「信頼できる第三者」が審査を行い、インターネット上で本人確認(身分証明)を可能にする。

PKIは、公開鍵証明書とそれを発行する認証局と、証明書を格納するリポジトリの3つで構成され、適切な証明書の管理と配布を行っている。


公開鍵暗号方式

公開鍵暗号方式(Public Key Cryptosystem)では、公開鍵秘密鍵という2つのペアの鍵を使用する。

ある公開鍵で暗号化 [1] された情報は、同じ公開鍵で復号することはできず、ペアの秘密鍵でしか復号できません。例えば、南京錠(公開鍵)は誰でも閉めることができますが、南京錠を開くことができるのはもうひとつの鍵(秘密鍵)をもっている当事者だけになるのと同じです。


共通鍵暗号方式

共通鍵暗号方式は、発信者と受信者とであらかじめ同じ鍵をもっていることを前提に、暗号化と復号に同じ鍵を使う方式をいいます。


さまざまな認証方式

ウェブサイトの認証方式には、Basic認証、Digest認証、SSO、OpenID、OTPなどがあります。Basic認証、Digest認証などのステータスコードには、200 OK(成功)401 Unauthorized(認証が必要)があります。


MD5とは

Message Digest 5 の略。
MD5とは、認証やデジタル署名などに使われるハッシュ関数(一方向要約関数)のひとつです。通信経路の両端で比較することで、通信途中で原文が改ざんされていないかを検出することができます。


WWWの暗号化通信

ウェブ上では、はじめての相手との共通鍵暗号方式は困難なので、公開鍵暗号方式と共通鍵方式を組み合わせた SSL を使う。SSLの暗号化通信をHTTPに実装したもの HTTPS という。


SSHとは

セキュア シェル(Secure SHell)の略。遠隔地のマシンでコマンドを実行したり、他のマシンへファイルを移動したりするためプログラムです。ネットワーク上を流れるデータは暗号化され、インターネット経由でも一連の操作を安全に行うことができます。オープンソースで開発されたSSHのソフトウェアをOpenSSHといい、SSHサーバやSSHクライアントを含みます。SSHの通信路を使ったファイル転送に SCPSFTPがあります。


無線LANの暗号化

無線LANで安全な通信を行うための暗号化技術にWEPWPAがあります。


インターネットでの不正アクセス

不正アクセスとは、他人のアクセス権やネットワーク、OSの脆弱性(セキュリティーホール)などを突いて、アクセス制御機能を持つコンピュータの機能を利用できる状態にする行為をいいます。代表的な不正アクセスは以下のとおりです。


マルウェアとは

マルウェアとは、ウイルス、ワームトロイの木馬などのスパイウェア [3] など、「悪意(mal-)」のある有害なソフトウェアのことをいいます。正常なプログラムに見せかけて、攻撃対象のコンピュータに侵入し、隠されたプログラムによってコンピュータへの感染や改ざん、破壊活動を行ったり、情報を外部に漏洩させたりします。電子メールやブラウザからのダウンロードによって隠されたプログラムが配布されるので注意が必要です。

対策として、ウイルス対策ソフト等を導入し、利用パソコンのOSと共に、定義ファイル等を最新の状態に保って使用する必要があります。


ウェブアプリケーションの脆弱性に対する攻撃

ウェブアプリケーションの実装上の不備(不正な入力値を検出して無害化する処理の漏れ)を突く攻撃として、SQLインジェクション、XSS、CSRFがあります。


システムによる不正侵入の検知と防御

一般的にファイアウォールは受信するパケットの中身までは検査しないため、IDSIPSとファイアウォールを組み合わせて使用することで高いセキュリティを確保することができる。


DMZとは

ファイアウォール(FW)で内部・外部のネットワークから隔離された区域のことです(語源は「非武装地帯」)。外部に公開するウェブサーバをDMZに配置すれば、FWによって外部からの不正なアクセスを排除でき、万が一の場合でも内部ネットワークにまで被害が及ぶことはなくセキュリティが確保できます。

footnotes

  1. 1.暗号化
    大事な情報を他人には知られないようにするため、データを見てもその内容がわからないように、定められた規則でデータを変えてしまうこと。暗号化されたデータは、復号という処理によって元のデータ(平文)に戻すことができる。

    page top

  2. 2.ハッシュ関数
    与えられたデータから固定長の疑似乱数を生成する演算手法。電子署名による身元証明やユーザー認証などに利用される。ハッシュ関数から得られた数値のことを「ハッシュ値(ハッシュ)」「メッセージダイジェスト(ダイジェスト)」という。ハッシュ関数には以下の特徴がある。

    1)同じデータからは常に同じダイジェストが出力される。
    2)データの内容が少しでも変化すると出力されるダイジェストも変わる。
    3)ダイジェストからもともとのデータを導き出すことは不可能。

    たとえば、あるデータを送る際、そのデータからハッシュ関数で得られたダイジェストを付けて送信する。受け取った側でもメッセージからハッシュ値を算出し、送られたそれと比較して同じ値であれば、データが改ざんされていないと証明できる。

    page top

  3. 3.スパイウェア
    パソコンを使うユーザの行動や個人情報などを収集等を行うアプリケーションソフトで、マルウェアの一種。利用者の了承を得ずにパソコンなどにインストールされ、そのパソコン操作や個人情報などを収集し、利用者の情報漏えいを引き起こす。
    近年、トロイの木馬型マルウェアを作成できる「SpyEye」というツールが闇市場で流通しており、スパイウェアが出回っている。犯罪者は、スパイウェアを多くのパソコンなどに感染させ、独自のネットワーク(ボットネット)を構成でき、利用者は気付かないうちに犯罪者の手足となってフィッシング詐欺などの犯罪行為の踏み台として取り込まれる恐れがある。スパイウェアは他のアプリケーションソフトとセットで配布されるため、ユーザはスパイウェアがインストールされていることに気づきにくい。

    page top

  4. 4.SQLインジェクションSQL injection
    データベースと連動したウェブサイトで、データベースへの問い合わせや操作を行うプログラムにパラメータとしてSQL文の断片を加えて、データベースを改ざんしたり不正に情報を入手する攻撃。インジェクション(injection)は「注入」という意味。
    多くのウェブアプリケーションではデータベースの操作にSQLという言語を利用しており、ユーザがフォームから送信した検索語などのパラメータを受け取り、これをSQL文に埋め込んでデータベースへの問い合わせや操作を行う。このとき、SQL文の断片として解釈できる文字列をパラメータに含めることで、プログラムが想定していないSQL文を合成し、不正にデータベースの内容を削除したり、本来アクセスできない情報を表示させたりすることができる場合がある。

    <対策>
    パラメータ中にSQL構文やSQL文で特殊な意味を持つ文字が含まれていないかチェックして削除したり別の文字列に変換(エスケープ)するといった処理を組み込む。

    page top

  5. 5.クロスサイトスクリプティングXXS
    悪意を持ったユーザがフォームなどを通してJavaScriptなどのスクリプトコードを入力することで、そのスクリプトの内容がそのままHTMLに埋め込まれ、ページを閲覧したPCでスクリプトが実行されてしまうもの。
    ユーザは認識できないため、防止策はブラウザ側でスクリプトを使用しない設定にするほかない。Cookieの盗聴や改さんなどができ、ネットショッピングに使ったCookieを使って本人になりすまして購入したり、Cookieを認証やセッション管理に使っているサイトに侵入したりして損害を与える恐れがある。重要な通信ではSSLを利用するなどの配慮が必要であり、URLが http:// で始まるウェブページで個人情報の入力を促された場合、XSSの危険性がある。

    <対策>
    プログラム側にスクリプトなどのコードを識別して問題となるタグをサニタイズ(無効化)する。具体的には、属性値をクォート(引用符で囲む)したり、文字実体参照などで表す必要があります。

    page top

  6. 6.クロスサイトリクエスト
    フォージェリ
    CSRF
    ユーザはCSRFの仕込まれたサイトにアクセスすることによって、掲示板やアンケートなどに意図しない書き込ませたり、オンラインショップで買い物をさせたりするなど、意図しないコマンドを実行させる。

    <対策>
    ワンタイムトークンを使って送信元の整合性をチェックするなどの対策を講じ、サイト外からのリクエストの受信を拒否する必要がある。

    page top

  7. 7.ネットワーク型IDSNIDS
    ネットワークを流れるパケットを監視して不正侵入(攻撃)を検知する。
    侵入を検知したら接続の遮断などの防御をリアルタイムに行う。

    page top

  8. 8.ホスト型IDSHIDS
    監視対象となるホスト(サーバー)にインストールして使う。
    不正アクセスを検出したり、一般ユーザが管理者権限を取得できないようにしたり、ファイルやアクセスログの改ざんを防止する。

    page top