S/MIME(Secure/Multipurpose Internet Mail Extensions)とは、インターネットで電子メールを送受信する際に、第三者による盗聴、なりすまし、メールの改ざんといった、主にフィッシング詐欺を防止する技術の一つです。
電子メールのセキュリティを向上する暗号化方式の一つであり、電子証明書を用いてメールの暗号化とメールへの電子署名を行うことができます。 MIMEとは、Multipurpose Internet Mail Extensionsの省略で、電子メールで添付ファイルを送るときに使われる技術のことです。 電子メールでファイルの受け渡しが行われる際、「そのファイルがどういう種類のファイルなのか」を表す情報も一緒に送られます(例えば、「text/plan」「text/html」「image/png」等)。 このように、画像や音声、コンピュータプログラムの実行ファイル、HTML文書、オフィスソフトの文書ファイルなど、テキスト以外のバイナリデータをテキストデータに変換して送っているのがMIMEです。 S/MIMEとは、このMIMEを拡張し、電子署名を利用した認証やメールの暗号化を行えるようにしたものを言い、信頼できる第三者機関である認証局が発行した電子証明書を使い、送信するメールの暗号化や、電子署名を付けたメールを送ることができます。 S/MIMEを使ってメールの送受信を行うには、送信者と受信者の両方がS/MIMEに対応するメールソフト使っている必要があります。 プロキシ(Proxy)という英単語には「代理」という意味があり、ITにおいてはその意味の通り、インターネットへの接続を代行するコンピューター、またはそのような機能を持つサーバーのことをいいます。
通常であれば、あるサイトを見たい時、クライアントはWebブラウザから目的のサイトにアクセスをし、サーバ側は要求されたページをWebブラウザに返信してサイトを表示します。 これをプロキシ経由で行う場合、クライアントがWebブラウザから外部へのアクセス要求を行なった際、プロキシサーバーがその要求を受信し、プロキシサーバーが接続元となって外部Webサーバーへアクセス要求を行います。そして、外部サーバ側から返ってきた応答も、プロキシサーバーを経由して、クライアントのコンピューターへ取り次ぎます。 つまり、プロキシサーバーは、クライアントから見ると外部サーバーが接続してきたように見え、外部サーバーからするとクライアントが接続してきたように見えるので、クライアントの存在や、そのアドレスをある程度秘匿にする事ができます。 企業の社内LANに接続されたコンピューターがインターネットへ接続する際、ほとんどの場合、社内LANと外部インターネットの間にはプロキシサーバーが置かれ、プロキシサーバーを経由したネットアクセスが行われています。 プロキシサーバーは、企業の社内LANと外部インターネットの境界に置かれ、この場所はDMZ(非武装地帯、緩衝地帯の意味)と呼ばれます。 社内にプロキシを導入する場合、Webブラウザなどにプロキシを経由する設定を行わなければなりませんが、内部の利用者全員に設定させる必要があるため、管理コストの増大等の問題が起きる可能性があります。それを回避する方法として、「透過プロキシ」という方法があり、ネットワーク内の通信装置の設定などによって、全てのアクセスを強制的に(自動的に)プロキシ経由にすることが可能です。 <プロキシサーバーの主な機能・役割> ・キャッシュ機能 プロキシサーバーは一度アクセスしたwebサイトのデータを自らのストレージに保存しておくキャッシング機能を実装しており、クライアントから再び同じデータへのアクセス要求があった際には、キャッシュに保存したデータからクライアントに返信するため、素早い表示を行う事ができます。 ・フィルタリング プロキシサーバーは内外を流れるデータをアプリケーションレベルで把握する事ができるので、好ましくないURLをアクセス禁止にするようなフィルタリングを行ったり、外部からウイルスなど不正データが入ってくるのを防ぐファイアーウォールのような役目を果たすことも可能です。 ・匿名性 プロキシサーバーを経由せず、直接外部のWebサーバーにアクセスした場合、接続先にIPアドレスなどのプライベート情報が伝わってしまい、特に、企業などのように専門回線を使用している場合は危険度が高くなります。プロキシサーバーを経由すると、接続元がプロキシサーバーのIPアドレスとなるため、接続先に自らのIPアドレスを伏せておく事ができ、内部の匿名性を確保できるメリットがあります。 CSRF(Cross Site Request Forgery)とは、webアプリケーションに存在する脆弱性の一種、また、その脆弱性を利用した攻撃方法のことです。
掲示板やアンケートフォームなどを処理する「フォーム」と呼ばれる機能を持っているwebアプリケーションが、本来拒否すべきはずの他サイトからの不正なリクエストを受け取り、処理してしまうことから被害が発生します。 この脆弱性を悪用すると、誰かになりすましてSNSにコメントしたり、掲示板やアンケートフォームに犯罪予告を不正に書き込んだり、オンラインショッピングサービスを勝手に利用すること等ができてしまいます。 <攻撃の仕組み> (1) 攻撃者が不正リクエストを仕掛けた攻撃用のwebサイトを準備します。 (2) 攻撃者が、被害者が閲覧しているサイトやメールにURLを仕込む等して、攻撃用webサイトを見るように誘導します。 (3) 被害者が攻撃用webサイトを閲覧すると、攻撃用webサイトにあらかじめ用意された不正リクエストが攻撃対象のサーバーに送信されます。 (4) 攻撃対象のサーバー上のwebアプリケーションからすると、正規のユーザーが正当なリクエストを送信してきたと認識するので、不正リクエストはそのまま受け入れられ、処理が行われます。(ここがCSRFの脆弱性の厄介な所です) (5) 攻撃用webサイトを閲覧している被害者は、アクセスするつもりのないwebサイトに強制的にアクセスさせられ、コメントなどが勝手に書き込まれます。 ※書き込まれたWebサイトのアクセスログには、被害者のPCからのアクセス情報(IPアドレス等)が残ります。そのため、攻撃用webサイトに誘導された被害者が、攻撃対象のサーバーへ不正リクエストをした攻撃者として認識される恐れがあります。 <CSRFの対策> ・web管理者側 CSRFはwebアプリケーション全体に影響が及ぶので、設計段階から対策を行う必要があり、サイト外からのリクエストを受信、処理しないシステムを作り込むのが大事です。 ただ、CSRFの対策は全画面で行うわけではなく、パスワードの変更といった重要な処理を行うページを選別して行います。具体的には、攻撃者に推測されにくい、任意の情報を照合する処理(例えばセッションID、ページトークン、ランダム数字)を実装するといった方法です。画像化されたチェックコードを表示してユーザーに入力させる画像キャプチャ機能の実装も効果的です。 ・ユーザー側 電子メールやwebサイト内に仕込まれた不審なURLを安易にクリックするのは避け、個人端末にもセキュリティソフトを導入し、攻撃用webページにアクセスするのを事前にブロックするのが最良の方法です。 ステートフルパケットインスペクション(SPI:Stateful Packet Inspection)とは、ルータやファイアーウォールなどが持つセキュリティ機能の一つで、パケットフィルタリングを拡張したものです。
LAN側からインターネットに送信したデータをセッションログとして記録しておき、インターネットからパケットが送られてきた際、そのパケットがセッションログと矛盾しないかどうかを確認し、不正と判断した場合、接続を遮断します。 一般的なパケットフィルタリングでは、管理者側が事前に設定した基準(パケットを遮断するかしないかの基準)に基づいてパケット通過の可否を行なっています。そのため、不正アクセスである可能性の高いパケットであっても、事前に通す設定になっていたら通してしまい、データのやり取りが始まる危険があります。 これに対してSPIでは、それまでの通信の状態を記録しておき、現在の通信状態と矛盾するパケットは不正パケットとして遮断することができます。つまり、自身を通過するパケットの一連の流れを監視して、送られてくるパケットの順番や内容などをチェックして矛盾が見つかればパケットを破棄します。要は、パケットを遮断するかしないかの基準が一定であるパケットフィルタリングに比べて、SPIは一連のパケットの流れを丸ごと遮断するのかしないのかの判断材料にします。 セッションハイジャックとは、コンピューター通信で利用されるセッション(通信の確立)情報を窃取し、本人(クライアントやサーバー)になりすまして通信を行うサイバー攻撃のことです。WebサイトやWebサービスの不正利用を主な目的としています。
*セッションとは、接続を開始してから切断するまでの一連の通信のことを言います。例えば、Webページにアクセスしたユーザーが、IDとPWを入力してログインを行い、その後、ログアウトするまでが1セッションです。 Webアプリの中には快適なサービスを提供するために、ユーザー毎にセッションIDやCookie情報を生成し、個人認証を行って、通信をやりとりしているものがあります。セッションハイジャックはこれらの情報を何らかの方法で盗んで、ユーザーになりすますという攻撃です。 *セッションIDとは、Webサイトにアクセスしたユーザーのセッションを一意に識別するために、WebサーバやWebアプリがユーザーに付与する識別用のIDのことです。 近年では、LINEでアカウントの乗っ取りが発生したことがありますが、これはセッションハイジャックによるものと言えます。 <セッションハイジャックが起こる仕組み> (1)セッションIDが日付や連番、登録名といった、推測しやすい文字列で構成されている場合 攻撃者は正規の経路でWebサイトに何度かアクセスし、その度に生成されるセッションIDの法則を見つけ出します。そして、正規ユーザーがログインしたタイミングを見計らい、同じIDを使って本人になりすますことができます。 (2)不正アクセスによってセッションIDが盗難される場合 攻撃者は何らかの方法で正規ユーザーとWebアプリの間に介入し、ネットワークの情報を傍聴したり、正規ユーザーを全く別のページへ誘導することで、セッションIDを盗難します。 (3)強制的に目的のセッションIDを正規ユーザーに使わせる場合 攻撃者は正規に取得したセッションIDを何らかの方法で正規ユーザーに利用させ、正規ユーザーがWebサイトにログインするのを確認したら、攻撃者も同じセッションIDを使って不正ログインを働きます。基本的に正規ユーザーは強制的にセッションIDを使わされていることに気づきません。 セッションハイジャックの被害発生を防ぐには攻撃者にセッションIDを察知されないようにすることが大事です。 (1)セッションIDを推測困難なものにする。 (2)セッションIDをワンタイム化する。 (3)URLにセッションIDを含めない。 WebサービスとブラウザはセッションIDをやり取りする際、URLにセッションIDを含んでいることがあるので、CookieにセッションIDを含めるか、フォームデータのhiddenフィールドでやり取りする方法に切り替えるのが良いでしょう。 (4)SSL通信でセッションIDを難読にする。 SSL暗号化通信では、セッションIDも暗号化できるので、攻撃者による推測や盗難を防ぐのに効果的です。 (5)WAFによる対策をとる。 WAFとは、Webアプリケーションの脆弱性を狙ったサーバー攻撃に対するセキュリティ製品で、攻撃者によるセッションIDやCookieの盗難・不正利用を防ぎ、Webサイトを保護することができます。 XSS(クロスサイトスクリプティング)は、Webサイトの入力フォームでユーザが入力した情報を受けつけるWebアプリケーションが運営されている場合に発生する脆弱性のこと、もしくはその脆弱性を利用した攻撃方法のことです。
攻撃者は入力フォームに悪意のあるスクリプト(Javascript)を埋め込み、そのスクリプトがユーザのWebブラウザ上で実行されることで、Cookieの内容を盗難したり、ユーザがサイトに入力する情報を読み書きする等の被害を起こします。 <XSSによって引き起こされる被害の例> 1)攻撃者は△△銀行の利用者ログインサイトにXSS脆弱性があることを見つけ、サイトにユーザがIDとPWをログインした場合に、攻撃者が別に用意したサイトへ情報が送信されるよう細工をする。 2)攻撃者は△△銀行だと偽り利用者へ無差別にメールを送信し、思わずクリックしてしまう様 な誘い文句とともにリンク先を添付しておく。 3)利用者がリンクをクリックすると、いつも通りのログインサイト(SSL証明書も問題なく表示されている)が開く。 4)利用者がログインサイトにIDとPWを入力し、OKボタンを押すと、攻撃者が別に用意したサイトへ情報が送信される。*利用者が自分のIDとPWが盗まれたことに気づく可能性はほとんどありません。 XSSの発生原因は、Webサイトのプログラム設計におけるセキュリティ上の不具合やミスであり、そのミスを利用して悪意あるプログラムが埋め込まれます。その為、ユーザ側での対処は難しく、サイト運営側が責任を持って対処する必要があります。 <XSSによって引き起こされる不正行為> ・Cookie情報や個人情報を盗んで、悪意ある第三者へ送信することで、ユーザーのなりすまし被害を起こす。 ・入力フォームの送信先を変更し、悪意ある第三者へ情報を送信する。 ・強制的にページを移動させて、悪意あるサイトへ誘導する。 ・ページ全体や一部を書き換えて、偽ページを作り出す。 ユーザー側で出来る対処方法としては、アクセスしているドメインではないURLに移動していないか確認したり、XSSで利用されるスクリプトの多くがJavascriptなので、Javascriptを無効にするという手もあります。(Javascriptの無効に関しては、Javascriptが多くのサービスで利用されているので、無効にしてしまうとサービスを利用できないといった事態も否めません) サイト運営側は、悪意あるスクリプトが埋め込まれないよう入力チェックをしっかり行うということ、そしてWEBアプリケーションファイアーウォール(WAF)を導入するのも効果的です。 マルウェアとは不正目的で作られた悪意あるソフトウェアや悪質なコードの総称で、不正プログラム全体を指します。
これらの不正プログラムには様々な種類があり、大きくは自己増殖をするのか否か、何かのファイルに寄生するのか、単体で活動するのかに分類されますが、中には複数の定義を満たすものもあります。 マルウェアには動作形態の違いから様々な種類がありますが、代表的な種類と概要は次の通りです。 ・「ウイルス」 ファイルに寄生して、そのファイルを破壊し、ユーザーの意図しない挙動を行う不正プログラム。ウイルスは、ユーザーがPCやアプリケーションを起動した際に動作を開始し、PCから別のPCヘと自身を複製しながら蔓延します。 ・「ワーム」 あるPCから別のPCヘと自身を複製しながら蔓延し、ファイルを破壊して、ユーザーの意図しない挙動を行う不正プログラム。一見、ウイルスと似ているが、ファイルには寄生せずに、独立してファイルの動作を妨げます。 ・「トロイの木馬」 不正な意図から作成されたソフトウェアを、一見無害に見えるソフトウェアに潜り込ませて正体を偽り、対象のPCに送り込んで実行させるプログラム。ターゲットのPCからデータを盗んだり、データを消去したりといったような相手を陥れる動作をします。 ・「ボット」 外部からの指令により一斉に不正行為を働くプログラムで、感染していても指令があるまで動かないので、感染している事に気づきづらい。ウイルス感染などによってPCにボットが組み込まれると、遠隔操作によって第三者にPCを自由に使われてしまうなどの危険があります。 ・「スパイウェア」 利用者の意図に反してインストールされ、利用者の個人情報やアクセス履歴などを収集し、外部のPCに送信する機能を持つソフトウェア全般のこと。ウイルスやワームとしてPCに侵入したり、他のアプリケーションとセットで導入される場合もあります。 マルウェアの侵入経路は、メールやインターネットといったネットワーク経路や、OSやドライバーの脆弱性を突いて勝手にダウンロードされるなど様々です。ユーザーが知らないうちにPCに侵入しているという事も頻繁に起こっているので、日頃からOSやドライバーを最新状態にし、セキュリティ対策をしっかり行う事が大事でしょう。 DDoS攻撃(Distributed Denial of Service attack)とは、サイバー攻撃の一種で、標的となるコンピューターに対し、あるタイミングで一斉に複数のマシンから過剰な負荷を与えることで、サービス不能状態に陥れる攻撃のことです。
DoS攻撃の手法を分散型(Distributed)に発展させたもので、DoS攻撃は一台のマシンから攻撃を仕掛けるのに対し、DDoS攻撃はトロイの木馬やマルウェアを使って不正に乗っ取った複数のマシンから単一の標的に攻撃を仕掛けます。DDoSは複数のマシンを使う為、使用できるIPアドレスの数がDoSより多く、標的により大きな負荷をかけることができます。 トロイの木馬やマルウェアを使って不正に乗っ取られる複数のマシンは、サーバばかりでなく一般のコンピューターである場合も多く、それらは攻撃者がDDoS攻撃を仕掛ける際に、攻撃元をわかりにくくするための踏み台として使用されます。また、標的となるコンピューターにとっては、不正アクセスではなく通常アクセスであることが多いため、防御するのが困難でもあります。 DDoS攻撃は主に下記の2つのタイプに分かれます。 (1)大量のパケットを送り込み、ネットワーク帯域幅やネットワーク装置のリソースを消費させることで、標的のコンピューターの処理を飽和させ、機能不全にするというもの。最も古いタイプの攻撃手法であり、現在でも多く発生しています。 (2)TCPやHTTPなどのプロトコルで予想させる動作を利用して、過剰な負荷をかけ、正常な処理を妨げるというもの。少ないトラフィックで大きな負荷を与えることができる上、サーバ運営者は攻撃を受けている事に気づかないこともあります。 DoS攻撃やDDoS攻撃を受けるリスクを減らすには、 ・(DoS攻撃の場合、攻撃元が一つで単純なので)攻撃元のIPアドレスを特定したら、そのIPアドレスからのアクセスを遮断する。 ・サイバー攻撃の多くが海外からのアクセスなので、運営しているWebサイトが国内向けであれば、海外からのアクセスを遮断する。 DoS攻撃、DDoS攻撃は標的になると厄介なもので、コストは発生してしまいますが、ネットワークトラフィックの監視システムやDDoS攻撃対策ツールを導入するというのも有効な手段です。 DoS攻撃(Denial of Service attack)とは一台のPCから一つの対象に攻撃を行うスタイルで、インターネット上でサービスを提供している各種サーバやネットワークに機能障害を起こさせる事を目的としている、サイバー攻撃の一種です。
手口としては単純で、攻撃対象であるホストやサーバに対し、短時間の間に大量のデータを送りつけることで、データを受信したホストやサーバのトラフィックが異常に膨れ上がり、負荷に耐えられなくなったホストやサーバがダウンするというものです。 DoS攻撃は具体的には次の通りです。 ・フラッディング(flooding)型攻撃 相手に対して、一見正常に見えるデータを大量に送信し続けることで負荷をかける攻撃です。中でも「F5攻撃」は有名で、これはブラウザの更新キーであるキーボードの「F5 」にちなんで名付けられています。 F5キーを押すと「httpリクエスト」が実行されますが、これはキャッシュを保存せずに情報を要求できるため、攻撃対象に大きな負荷をかけることできます。F5攻撃は、この特性を利用して、不必要に相手にF5リクエストを送信し、F5キーを連続して押させることで、サーバへ大量にアクセスし、結果、サーバは負荷がかかりダウンしてしまいます。 ・脆弱性型攻撃 ネットワークプロトコルの仕様を悪用したり、OSやアプリケーションの脆弱性を狙った攻撃で、例えば、送信元を宛先と同じであると偽装したパケットを相手に送りつけ、相手を正常に通信できない状態に追い込むといったもの(LAND攻撃)が挙げられます。 DoS攻撃を防ぐには、OSやアプリケーションを最新の状態に保つことが重要で、その上でファイアーウォールや監視システムを導入するといった手段を取り入れるといいでしょう。 水飲み場型攻撃とは、攻撃対象のユーザーがよく利用するであろうWebサイトを事前に予測して、そのサイトを改ざんし、サイトに訪れたユーザーをウイルスに感染させようとする攻撃です。
日頃から使い慣れているWebサイトにアクセスする事は誰だって警戒心が緩み、水飲み場型攻撃の特徴は、そういった人間の心理をついた点にあると言えるでしょう。 また、ターゲット以外の個人がWebサイトにアクセスしてもウイルスに感染する事はないので、攻撃が発覚しにくいといった点もこの水飲み場型攻撃の特徴と言えます。 水飲み場型攻撃という名前の由来も、この攻撃が事前にターゲットを絞り、そのターゲットが訪れるであろうWebサイトに罠を仕掛けておく事から、草原や砂漠に存在するオアシスに寄ってくる動物たちを待ち伏せして仕留めようとする攻撃になぞらえられています。 万が一、組織に属する個人がターゲットになった場合、攻撃者はウイルスに感染した個人のパソコンを乗っ取って社内データにアクセスし、重要な情報を盗み取ることが可能になります。 ユーザー側の対策としては、セキュリティベンダーが提供する監視ツールを利用して不正アクセスを防いだり、Webサイト運営側においてもWebサイトが水飲み場型攻撃の対象にならないよう、不正なプログラムが埋め込まれた段階で改ざんを検知するようなサービスの導入を考える必要があるでしょう。 スパイウェアとは、ユーザーに関する情報(パソコン内にあるユーザーの個人情報や、ユーザーが日頃どのようなページを見ているかといった行動)を収集して、ユーザーの気づかないうちに自動的に外部に送信する機能を持ったソフトウェアの事を言います。
スパイウェアそのものは、企業がマーケティング活動のため、個人情報の収集を目的に作成し、企業がユーザーに無償で使えるソフトを提供する代わりに、そのソフトにスパイウェアを組み込んでユーザーの意識や動向を把握するなど、悪質ではない使われ方をする場合が多々あります。 企業が無償で配布したソフトの中には、利用規約にスパイウェアが含まれている旨を記載しているものもあり、ユーザーが利用規約を読まないで、無意識にスパイウェアまで一緒にインストールしている事があります。また、スパイウェアはユーザーの見えない所で動作する上、コンピューターウイルスとは異なりインストールをしても普段通りにパソコンが使える為、インストールしたという事実になかなか気づきません。 よく、webサイトを見ていると、自分が以前に購入した商品と同じもの、もしくは類似品に関する広告が表示される事がありますが、この場合もスパイウェアがバックグラウンドで動作している可能性が考えられ、ユーザーの閲覧情報を元にポップアップ広告が出されています。 このように、スパイウェアはユーザーの意識や動向を把握するマーケティング活動の一環として悪質ではない使われ方をする一方、ソフトにスパイウェアが含まれていると知らせずにユーザーの行動を監視したり、個人情報を盗むといったケースも存在します。その為、ソフトをインストールする前に利用規約をきちんと読み、必要なものだけをインストールするのはもちろん、「スパイウェア対策」を導入して、知らないうちにインストールされてしまったスパイウェアを検知するソフトを使用するのが良いでしょう。 チャレンジ・レスポンス方式とはユーザー認証に使われる文字列に特殊な処理を施すことによって、通信途中でパスワードの漏洩を防ぐ認証方式のことです。主にワンタイムパスワードでパスワード認証として使用されたり、Wi-Fiアクセスポイントの端末認証等で利用されています。
<チャレンジ・レスポンス認証を使ったパスワード認証までのプロセス> (1)クライアント側(認証を受ける側)がサーバ側(認証する側)にユーザーIDを送信し、ユーザーIDを使った認証要求を行います。 (2)認証要求とユーザーIDを受け取ったサーバ側は、ランダムに生成したチャレンジと言われる情報(チャレンジ文字列)をクライアント側に送信します。この時、送信したチャレンジと、あらかじめ登録されていたユーザーのパスワードを、特定のアルゴリズムに従って合成し、クライアントが生成するはずのレスポンス(レスポンス文字列)を生成しておきます。 (3)クライアント側は、送られてきたチャレンジと自分のパスワードを特定のアルゴリズムに従って合成してレスポンスを生成し、サーバーに送信します。 (4)レスポンスを受け取ったサーバー側は、受け取ったレスポンスと自分があらかじめ生成しておいたレスポンスを比較して、同一であれば認証を成功させます。 中間者攻撃とは、通信を行う二者の間に悪意ある第三者が不正な手段を用いて割り込み、通信内容の盗聴や改ざんを行う攻撃のことで、無線LANや中継地点のネットワーク機器に十分なセキュリティ対策が施されていない場合に多く発生しています。
そもそも中間者攻撃は、第三者の侵入を許してしまうことがきっかけで発生し、データ通信を行った当人が気づかないうちにIDやパスワードを盗まれたり、通信途中のデータが奪われたり、アクセス許可をしていない人物にファイルを覗かれたりする恐れがあります。 中間者攻撃の被害を受ける流れとしては、以下の例が挙げられます。 (1)無線LAN(Wi-Fi)を不正に傍受される→通信内容を盗聴される (2)脆弱性のあるアプリを使用する→SSLサーバ証明書を検証せず暗号化される→通信内容を盗聴される (3)オンラインバンキングを使用する→偽のログイン画面を表示される→不正送金の被害にあう 中間者攻撃では、関係のない第三者(攻撃者)が、本来のデータの送信者と受信者に気づかれることなく通信の内容を盗聴、あるいは書き換えることができます。例えば、本来のデータ送信者Aと受信者Bが公開鍵暗号方式を使ってデータのやり取りを行なっていたとすると、第三者の攻撃者Xは、AからBに送られた公開鍵を横取りし、代わりにBに対して自分で作成した公開鍵をAが送ったものだと偽って送信します。偽の公開鍵を受け取ったBは、Aが送ってくれたものだと思い込み、偽の公開鍵を使って暗号化したデータをAに送信します。すると、攻撃者Xはまたもやそのデータを横取りして自らの秘密鍵で復号し、その後、本来のAの公開鍵で再び暗号化してAに送信し直します。この過程において、攻撃者Aは自由にデータを覗き見したり改変したりできるのです。 このような中間者攻撃を受けないようにするには、認証レベルの高いSSLサーバ証明書による暗号化通信を利用する必要があります。 常時SSL化とは、Webサイト全てのページでHTTPS通信を行うようにしてSSL化(常時暗号化)し、ユーザーがブラウザからアクセスする場合は常にSSL接続して閲覧してもらう方法です。
これまで、SSLによる暗号化は、個人情報などを入力するページや、ID・パスワードを使ってログインするページといった特定のページのみに使用するのが一般的でした。常時SSLとは、その状態をユーザーが訪問するWebページ全体に広げて、全ての情報のやり取りを暗号化通信(HTTPS通信)の下で行うことを言います。 その背景には、急速に増えた公共のWi-Fiネットワークの存在があり、これらの公共Wi-Fiネットワークは便利な一方で暗号化がなされていないため、中間者攻撃をしようとする第三者が暗号化されていないセッションを検出して公共Wi-Fiネットワークを利用するユーザーのログイン情報を傍受しようとする危険性がでてきたことが考えられます。 Webサイトを常時SSLで作成しておけば、全ての通信が暗号化されるため、上記のような第三者によるデータの傍受を防ぐことが可能です。また、全てのページを常時SSL化しておけば、トップページを開いた時点からアドレスバーに鍵マークが表示され、SSL証明書によって暗号化やドメインが実在していることの証明にもなります。 常時SSLはSEO対策の部分でも注目されており、実際にGoogleはHTTPSをランキングシグナルに使用して、SSL化されたサイトを重要視する方向に動いています。そのため、Webサイト全体を常時SSLにしておくことで、サーチエンジンからページへの流入が見込めるようになります。 常時SSLは以前より注目はされていたものの、SSLサーバ証明書などの導入費用がかかり敬遠されがちでした。しかし、サイトページに個人情報を入力する際の暗号化としての側面が大きかったSSLは、今では企業の実在証明としての側面が強くなってきています。サイトに訪問するユーザーも「https」から始まるURLの記載によって、安心してアクセスすることができるのです。 パケットフィルタリングとは、IPパケットのヘッダに含まれている情報をもとに、送られてきたパケットを通過させるかどうかを判断する機能のことで、ルーターなどのネットワーク機器や、ソフトウェアに備わっているファイアーウォールの最も基本的な機能の一つです。
IPパケットのヘッダにはパケットの送信先や宛先IPアドレス、ポート番号やプロトコルの種類に関する情報が含まれており、パケットフィルタリングは、これらの情報を参照しながら、あらかじめネットワークの管理者が設定した条件によって通過させるかどうかを判断しています。 明確に許可されているパケット以外は全て拒否するというのが一般的で、条件に当てはまらないパケットは破棄されます。 どのような条件に基づいて判断するかは、そのネットワークの管理者が任意に設定することができます。 認証局(CA : Certification Authority)とは、暗号通信に必要な電子証明書を発行する団体や機関のことで、信頼できる第三者機関として電子証明書を通じドメインの所有者であることや組織が実在することを証明します。
また、認証局は電子証明書の発行だけでなく失効を行うこともできます。例えば、電子証明書の所有者が暗号通信においてデータの暗号化と復号を行う「鍵」を盗まれた場合、本来の所有者になりすましてデータの盗聴や改ざんが行われる可能性があります。そのため、「鍵」を盗まれた場合、直ちに認証局に届けでて電子証明書の失効手続きを行わなければなりません。これら「鍵」が盗まれた場合以外にも、電子証明書の記載事項が変更になれば、それは失効手続きの対象となります。 SMTPとはインターネット上でメールを送信・転送するためのプロトコルで、メール送信サーバ(SMTPサーバ)にメール送信をリクエストする際や、メールサーバ間でメール転送する際に使用されます。
このSMTPに、ユーザアカウントとパスワードによる本人認証の仕組みを足したものがSMTP-AUTH(SMTP Authentication)です。 SMTP-AUTHでは、メール送信者がネットワーク管理者の運用するメール送信サーバ(SMTPサーバ)へメール送信依頼を行う際、送信者が本人かどうかを確認する認証過程を導入し、送信者にユーザアカウントとパスワードを申告させることによって、正規の本人であると確認してからメール送信依頼を受けつけます。 元々、SMTPには本人認証の仕組みは備わっておらず、誰でも自由にメールサーバにアクセスしてメールを送信することができた為、第三者によるメールサーバの不正利用が起こり、本人の知らないうちにスパムや迷惑メールの送信元にされてしまうという問題が起こっていました。 そこで、この問題を解決するために誕生したのがSMTP-AUTHです。 インターネットを使ってクライアントとサーバ間でデータを送受信する際、通信途中で第三者に盗聴や改ざんをされないよう、データを解読できない暗号文に変換して送受信することを暗号化と言い、そのうちの一つが「共通鍵暗号方式」です。
ここでいう「鍵」とはデータを暗号化したり復号化する際に必要となるもので、共通鍵暗号方式では送信者側がデータを暗号化する鍵と、受信者側が受け取ったデータを復号化する鍵に、同じ鍵(共通鍵)を使用します。 <共通鍵暗号方式で通信する流れ> 1. Aさんはデータを共通鍵で暗号化してBさんに送信する。 2. Aさんは暗号化に使った共通鍵を第三者に知られない方法でBさんに送信する。 3. Bさんは受け取った暗号化済みのデータをAさんから受け取った共通鍵で復号する。 もしAさんがBさん以外の人ともデータの送受信を行いたい場合は、新たに共通鍵を作成する必要があります。また、共通鍵暗号方式ではあらかじめ安全な方法で相手に鍵を渡さなければならないことから、限られた相手とのやりとりに適しているでしょう。 送信者側と受信者側の間でのみ共通鍵が共有されるので、公開鍵暗号方式に比べてデータの暗号化や復号にかかる処理速度は速いのが特徴です。しかし、インターネット経由で共通鍵を相手に渡す場合、共通鍵自体は暗号化されていないので、第三者に改ざん、盗聴される恐れがあります。そこで、現在では公開鍵暗号方式と共通鍵暗号方式それぞれの長所を組み合わせたハイブリッド暗号方式という考え方が生み出されています。 インターネットを使ってクライアントとサーバ間でデータを送受信する際、通信途中で第三者に盗聴や改ざんをされないよう、データを解読できない暗号文に変換して送受信することを暗号化と言い、そのうちの一つが「公開鍵暗号方式」です。
ここでいう「鍵」とはデータを暗号化したり復号化する際に必要となるもので、公開鍵暗号方式では「公開鍵」と「秘密鍵」という対になるペアの鍵を使ってデータの暗号化と復号化を行います。 <公開鍵暗号方式で通信する流れ> 1. 送信者側が、受信者側が公開している「公開鍵」を取得し、取得した「公開鍵」を使ってデータを暗号化し送信する。 2. 受信者側は受け取ったデータを、受信者側のみが保持している「秘密鍵」を使って復号化する。 基本的に、公開鍵と秘密鍵は1対1で、公開鍵に対してペアとなっている秘密鍵でなければデータの復号はできません。また、公開鍵はオープンになっているので誰でも取得することができ、複数用意して複数人で共有することも可能ですが、秘密鍵は受信者側だけが保持しています。その為、公開鍵暗号方式の安全性はとても高いと言えるでしょう。 暗号化とは、インターネット上でクライアントとサーバ間でやり取りされる情報を第三者にわからないようにするため、平文(暗号化されていないそのままの状態)から解読できない暗号文に変換して送受信する技術のことを言い、暗号化されたデータを元に戻すことを復号と言います。
暗号化と復号は「鍵」と呼ばれる特殊な文字列によって行われ、大雑把にいうと、データを暗号鍵で暗号化し、そのデータは暗号を解く鍵をもつ人しか読むことができないという仕組みで成り立っています。実際にパソコン上で行われる暗号化や復号はもっと複雑な鍵の仕組みで成り立っており、それには「公開鍵」と「共通鍵」の二種類の方式が用いられています。 上記の方法によって暗号化された状態で通信することを暗号通信と言い、メールやWebでの暗号化通信にはSSLという技術が一般的に採用されており、無線LANの暗号化規格にはWPAやWEPがあります。 SSLとはSecure Sockets Layerの略で、インターネット上で通信を暗号化する技術のことです。Webサーバとパソコン間でやり取りするデータ通信を暗号化するもので、第三者による情報の盗聴や改ざんの可能性を防ぐことができ、よく銀行口座の情報や重要な個人情報を登録するWebページなどで用いられています。
SSLを導入しているWebサイトのURLは「https://〜」からはじまり、URLの左隣に鍵マークが表示されます。一方、「http://〜」のWebサイトではサーバとパソコン間でやり取りするデータがそのままの形でインターネット上に流れている為、第三者による盗聴や改ざんの可能性は否めません。 SSLには二つの役割があり、一つは上記に示した通り「データ通信を暗号化する」ということ、もう一つは「Webサイトの運営者(企業や個人)が実在する事を証明する」というものです。自身のWebサイトにSSLを導入するにはサイト運営者が認証機関に申請し、「SSLサーバ証明書」という電子証明書を取得する必要があります。 これら「データ通信を暗号化する」と「Webサイトの運営者(企業や個人)が実在する事を証明する」という二つの役割は、SSLが「共通鍵暗号方式」と「公開鍵暗号方式」という二つの暗号方式を用いることで成り立っており、そもそも「暗号化」とは、インターネット上で大事なデータをやり取りする際に当事者以外にはわからないようにすることを言い、暗号化したデータを元に戻すことを復号と言います。 共通鍵暗号方式とは、送信側から暗号化されて送られてきたデータを受信側が復号する際、暗号化された時に使われた鍵(パスワードのようなもの)と同じ鍵(共通鍵)を使用します。この方式は暗号化と復号の処理が軽く済む反面、暗号化した側から復号する側へ使用した鍵を伝えなければならず、鍵をそのままインターネット上で伝えると盗聴される恐れがありとても危険です。 そこで登場するのが公開鍵暗号方式で、この方式は暗号化と復号で異なる鍵を使用するため、復号に必要な鍵を伝える必要がなく、盗聴をほぼ完全に防ぐことができます。公開鍵暗号方式では、公開鍵と秘密鍵と呼ばれるペアの鍵を使い、片方の鍵で暗号化したデータは、その鍵とペアになっているもう片方の鍵でしか復号できません。つまり、片方の鍵をインターネットで公開しても、もう片方の鍵を秘密にしておけば、当事者だけに安全にデータを送ることができるのです。 しかし、公開鍵暗号方式は計算処理が複雑なため暗号化や復号に非常に時間がかかります。そこで、SSL通信では、データ全体の暗号化には計算の早い共通鍵暗号方式を用い、共通鍵暗号方式の「鍵の配送」を安全に行うために公開鍵暗号方式で送信するという方法をとっています。 例えば、SSLを使った電子商取引において、Aさんがネットショップで買い物をする際、Aさんは買い物の情報を入力しますが、この時、Aさんの入力画面にはネットショップのサーバから自身の公開鍵が入ったSSLサーバ証明書が送られてきています。Aさんは、入手したサーバの公開鍵を使って、入力したデータを暗号化した共通鍵をさらに暗号化してサーバに送ります。 以上のようにSSLでは、公開鍵暗号方式を使って暗号化・復号に使う鍵を第三者に知られることなく安全に共有し、共有した共通鍵を使ってデータを高速で暗号化・復号するという、二つの暗号方式をうまく活用しているのです。 ホットリンクとは、あるサイトの画像ファイルなどを、外部ページからそのまま参照して埋め込んて表示したり、ファイルを直接開くことができるリンクを貼ることを言います。
ホットリンク保護を行うことで、これらの行為を防ぎ、他のサイトから自分のサイト上のファイルに直接リンクできないようにします。 SSL(Secure Sockets Layer)とは、簡単に言うとインターネット上で通信を暗号化するための技術です。SSLを使うことによって、サーバとコンピューター間の通信を暗号化することができ、第三者によるデータの盗聴や改ざんを防ぐことができます。
自分がアクセスしたいウェブサイトが安全かどうか(SSLに対応しているかどうか)を確認するには、ブラウザのアドレスバーに表示されるURLが「https://〜」から始まっているかどうかで確認することが可能です。 もし「http://〜」だけで「s」が付いていないサイトであれば、データが暗号化されておらずそのままの形でインターネット上を流れているため、例えば個人情報やクレジットカード情報を入力すると盗聴や改ざんをされる可能性があります。 しかし、せっかくアクセスしたいサイトがSSLによってデータの暗号化がされているとわかったとしても、サイト運営者そのものが信用できる相手でなければ意味がありません。そのため、SSLには第三者の認証機関によって、そのサイト運営者が実在していると証明してくれる仕組みも組み込まれています。それがSSL証明書です。SSL証明書を取得しているサイトかどうかはURLの左側に鍵のマークをクリックすればSSL証明書の情報を確認することができます。 サイト運営者にとってSSLとは自身の安全性や信頼性をアピールする上では欠かせないものです。(サイトでSSLを利用するにはベリサインなどの認証機関に申請が必要です) SSHとは暗号化通信の仕組みの一つで、SSHを使えば暗号や認証の技術を利用して、離れた場所にあるコンピューターと安全にリモート接続することができます。
SSHと似た仕組みのものにtelnetやrloginなどがありますが、これらはパスワードをそのままネットワークに流してしまうといった不安な要素が存在します。 しかし、SSHではパスワードやデータなど通信経路全体を暗号化して通信するため、telnetやrloginより安全な通信を行うことが可能です。 そのため、もし誰かがSSHクライアントとSSHサーバ間の通信を覗き見しようとしても、通信内容を知ることはとても難しく、SSHで通信が暗号化されているので、たとえ危険なネットワークであったとしても安全に通ることができます。 |