私が社会人になったのは四半世紀前のことだが、当時はインターネットなんて身近に無かったし、携帯電話も普及していなかった。
しかし現在はインターネットや携帯電話の無い生活や仕事は考えられなくなっている。
隔世の感を禁じ得ない。
今回はインターネットにおけるセキュリティについて観てみたい。
・TLS/SSL
インターネットで各種サイトにアクセスする際に、HTTPという文字が冒頭に記述される。
HTTP(Hyper Text Transfer Protocol)は、クライアントとWebサーバがHTML(Hyper Text Makeup Language)で書かれた文書などの情報をやりとりする時に使われる通信手順(プロトコル)を意味する。
HTTPはそれ自体が、基本認証(basic認証)とよばれる認証機能をもっており、ユーザIDとパスワードによるアクセス制限を設けることが可能である。
ただし、この基本認証では、ユーザIDとパスワードは平文で送信される。
これだと盗聴される可能性もあるため、アクセス制御が重要なシステムでは通信内容を暗号化するのが望ましい。
この暗号化するためのセキュリティプロトコルがSSL(Secure Sockets Layer)やその後継規格であるTLS(Transfer Layer Security)である。
ここでプロトコルという聞き慣れない単語が出てくるので解説する。
通信を行うためには様々な規約(約束事)を定めておかないといけない。
この規約のことをプロトコルというのである。
しかし、通信に必要なすべての規約を一つのプロトコルで実現しようとすると、プロトコルが複雑になったり、複数のプロトコル間で実現すべき機能が重複したりと効率がよくない。
そこで、プロトコルが実現すべき機能をいくつかの層(レイヤ)に分割し、各種のプロトコルを組み合わせて使うのが一般的である。
このレイヤにトランスポート層、セッション層、プレゼンテうーション層、アプリケーション層というのがある。
SSLやTLSはこれらのレイヤにおいて、次のようなセキュリティ機能を提供する。
・サーバ又はクライアントの提示する証明書を検証し、通信相手(サーバ又はクライアントあるいは両方)を認証する。
・セッション鍵方式(ハイブリッド方式)による暗号化通信
SSLをバージョンアップしたのがTLSだが、両者の機能はほぼ同じなので、SSL/TLSやTLS/SSLのように併記されることが多い。
SSLを用いたHTTP通信のことをHTTPS(HTTP over SSLまたはHTTP over TLS)といい、ブラウザ(クライアント)とWebサーバ間の通信内容が保護される。
SSLはPKIの仕組みを利用しており、証明書にはサーバの公開鍵やFQDN(Fully Qualified Domain Name : 一部を省略しない形のドメイン名)などが含まれる。
このため、証明書を受け取ることにより、通信中のデータだけではなく、サイトそのものも虚偽でないことが確認できる。
SSLの通信例として次のようなものがある。
公開鍵の入手
共通鍵の生成情報の暗号化と配送
データの送受信
TLS/SSLは現状で十分なセキュリティを確保できるため、通信内容の保護に関しては大きな問題はない。
ただし、証明書の交換やセッション鍵の生成などの処理が発生し、処理件数によってはサーバには大きな負担がかかり、処理性能の低下の危険性がある。
TLS/SSLを利用するサーバには高い処理能力が要求される。
これがボトルネックになる場合、SSLアクセレータとよばれるSSL処理を専門に行う装置(ハードウェア)を導入してしてサーバの負荷を下げることがある。
・S/MIME
送信元から宛先まで電子メールの内容を暗号化する場合、電子メールを送信する前にメッセージを暗号化することが基本になる。
これを行う電子メール用のセキュリティプロトコルをS/MIMEという。
S/MIME(Secure MIME)は、PKIとMIMEの仕組みを利用して電子メールに暗号化とディジタル署名の機能を提供するプロトコルである。
MIMEというのは、電子メールシステムに画像や音声などの添付ファイルや各国言語(複数バイト文字)を扱うことを可能にする拡張規格である。
S/MIMEでは、セッション鍵方式でメールメッセージの暗号化を行う。
暗号化されたメールメッセージや署名、暗号化された公開鍵などは、MIMEの機能を用いて添付ファイルの形で送受信される。
S/MIMEは、暗号化とディジタル署名が可能で、PKIのディジタル証明書の利用がポイントだ。
・迷惑メール対策
インターネットの普及とともに、不特定多数のユーザに対し、広告や勧誘など無差別に送信する迷惑メールやスパムメールが問題になってきた。
迷惑メールの送信は、他社のメールサーバを踏み台(他のシステムへの侵入、攻撃の足場、中継点)として利用する第三者中継が多く、企業のメールサーバに対策が必要となる。
迷惑メールは、メールの送信に用いられるプロトコルSMTPに認証機能がないことから発生している。
自社のメールサーバが踏み台に利用されると、社会的信用を失ったり、自社の利用に必要なメールサーバの機能が確保できない等の問題が生じる。
対策として以下のものが挙げられる。
・リレー制限
メールサーバに電子メールの中継機能を制限する方式である。
外部から発信された電子メールは外部に転送しないように設定することにより、電子メールの不正中継を防ぐことが可能になる。
・SMTP-AUTH
SMTPには認証という概念が無かったので送信者の特定が困難だった。
そこでSMTPにユーザ認証の機能を追加した拡張仕様がSMTP-AUTHである。
・送信元ドメイン認証
電子メールの送信者のアドレスがなりすまされておらず、信頼できるネットワーク領域(ドメイン)から送信されてることを証明することである。
送信元ドメイン認証を実現する技術として、送信元ドメインのDNSサーバにメールサーバのIPアドレスを登録・公開しておき、受信者側がそれを参照・確認するSPF(Sender Policy Framework)や、メールサーバがメールに署名するDKIM(DomainKeys Idetified Mail)などがある。
・Webサイトのセキュリティ対策
電子メール同様にWebサイトにもセキュリティ対策が必要である。
・Webサイトの改ざん
Webサイトの運営においては、Webページの改ざんというリスクがつきまとう。
Webページの改ざんするためには、Webサーバに侵入して管理者権限などのWebページを書き換える権限を得ないといけない。
このための代表的な手段としては、パスワードクラック(コンピュータシステムで保存または伝達されるデータからパスワードを割り出す)、推測、盗聴などによりWebサーバに直接侵入する、というのが挙げられる。
このためには、強固なパスワードを設定して定期的に変更するなどの対策が有効だ。
・フィッシング
電子メールなどを用いて、正規のWebサイトを装った偽のWebサイト(フィッシングサイト)に誘導してクレジット番号を窃取するといった詐欺行為である。
巧妙に正規のWebサイトを装ってはいるが、ドメイン名が違ってたり、ドメイン名でなくIPアドレスを用いてたりするので、URLに注意すれば被害にあうことは少ないといえる。
・DNSキャッシュポイズニング
クライアントからのDNS問い合わせを受け付けて、ゾーン情報を保持するDNSサーバ(コンテンツサーバ)に問合せを行うDNSサーバをキャッシュサーバという。
ここにDNS(Domain Name System)とは、IPアドレスの数字の羅列と、ドメイン名という文字列(人間にとって分かりやすい)の相互変換を行う機能である。
DNSキャッシュポイズニングとは、キャッシュサーバの持つキャッシュに偽りの情報を埋め込む攻撃である。
キャッシュサーバは、問合せを受けたドメイン名がキャッシュにあればコンテンツサーバへの問合せを行わないので、正規のドメイン名に対して不正なサーバのIPアドレスを回答してしまうのである。
・DoS攻撃(Denial Service)
DoS攻撃とは、提供するサービスの妨害や停止を目的とした攻撃である。
DoS攻撃は過負荷をかけるものとプロトコルなどのセキュリティホール(設計または実装上のミスなど)を狙って不正なデータを送るものに大別される。
また、複数の攻撃用コンピュータから一斉にDoS攻撃を仕掛ける攻撃をDDoS攻撃という。
・VPN( Virtual Private Network )
VPNとは、複数の利用者が存在するネットワーク上で、暗号技術や認証技術などを用いて、仮想的な専用ネットワーク(Private Network)を構築し安全に通信を行う技術の総称である。
インターネット上に仮想的な専用網をこうちくする仕組みといえる。
VPNの構築形態として典型的なのは、仮想的な専用通信路を構築するトンネリングである。
外部ネットワークと内部ネットワークの境界にVPN装置を設置して、このVPN装置が暗号化や認証を行うことにより、VPN装置ー外部ネットワークーVPN装置の部分に仮想的な専用路ができるのである。
外部から隠蔽された通信路(トンネル)中を本来のデータが送受信される。
VPNを実現するセキュリティプロトコルにIPsec、SSLなどがある。
・IPsec
IPsecとは、IPにセキュリティ機能を提供するためのプロトコルであり、次のような複数のプロトコルで構成される。
認証ヘッダ(AH:Authentication Header)
→メッセージ認証の機能を実現
暗号化ペイロード(ESP:Encapsulating Security Payload)
→メッセージ認証と暗号化の機能を実現
IKE(Internet Key Exchange)
→自動的な鍵交換(鍵の自動生成と共有)を実現
IPsecでは、これらの機能を組み合わせて、成りすましや改ざん、盗聴などを防止する。
認証ヘッダと暗号化ペイロードはどちらもメッセージ認証の機能をもつが、メッセージ認証の範囲が異なるため、両者を併用することができる。
・SSL-VPN
SSL-VPNは、TLS/SSLを用いてVPNを構築する技術であり、SSL-VPN装置(SSL-VPNゲートウェイ)を利用する。
SSL-VPNでHTTPを利用する場合(Webアプリケーションなど)、クライアントとなるパソコンのブラウザはTLS/SSLに対応しているため、クライアント側に特別な設定は不要である。
SSL-VPN装置は、HTTPSの通信要求を受け付けると、利用者の認証、TLS/SSLによる復号処理を行った上でリバースプロキシ(代理アクセスサーバ)として動作し、URLを書き換えて目的のサーバに代理でアクセスする。
このような特徴により、SSL-VPNはリモートアクセス環境に適している。
・終わりに
世間は4連休ではあるが、私の仕事は昨日と今日の2連休である。
明日は祭日だけど出勤だ。
この貴重な?休みの大半を、このブログ作成のために費やしてしまった。(土曜日は飲み会があり作業できず)
でも、これまで漠然と分かった気になってた情報セキュリティが、もう少し理解を深めることができたのは良かったと思う。
というわけで、これからも頑張ります。