Network-security-quick-guide
ネットワークセキュリティ-概要
この現代では、組織はコンピューターネットワークに大きく依存して、効率的かつ生産的な方法で組織全体で情報を共有しています。 現在、組織のコンピューターネットワークは大規模でユビキタスになっています。 各スタッフが専用のワークステーションを持っていると仮定すると、大規模な会社では、ネットワーク上に数千のワークステーションと多くのサーバーがあります。
これらのワークステーションは集中管理されていない可能性があり、境界保護もありません。 さまざまなオペレーティングシステム、ハードウェア、ソフトウェア、およびプロトコルがあり、ユーザー間でサイバー認識のレベルが異なる場合があります。 ここで、会社のネットワーク上のこれらの数千のワークステーションがインターネットに直接接続されていると想像してください。 この種のセキュリティ保護されていないネットワークは、貴重な情報を保持し、脆弱性を表示する攻撃の標的になります。
この章では、ネットワークの主要な脆弱性とネットワークセキュリティの重要性について説明します。 以降の章では、同じことを達成する方法について説明します。
物理ネットワーク
ネットワークは、リソースを効率的に共有するために接続された2つ以上のコンピューティングデバイスとして定義されます。 さらに、2つ以上のネットワークを接続することは*インターネットワーキング*と呼ばれます。 したがって、インターネットは単なるインターネットワークであり、相互接続されたネットワークの集まりです。
内部ネットワークをセットアップするために、組織にはさまざまなオプションがあります。 有線ネットワークまたは無線ネットワークを使用して、すべてのワークステーションを接続できます。 現在、組織は主に有線ネットワークと無線ネットワークの両方を組み合わせて使用しています。
有線および無線ネットワーク
有線ネットワークでは、デバイスはケーブルを使用して互いに接続されます。 通常、有線ネットワークはイーサネットプロトコルに基づいており、デバイスはUnshielded Twisted Pair(UTP)ケーブルを使用して異なるスイッチに接続されます。 これらのスイッチは、インターネットにアクセスするためにネットワークルーターにさらに接続されています。
ワイヤレスネットワークでは、デバイスは無線伝送を介してアクセスポイントに接続されます。 アクセスポイントは、外部ネットワークアクセスのために、ケーブルを介してスイッチ/ルーターにさらに接続されます。
ワイヤレスネットワークは、提供されるモビリティにより人気を博しています。 モバイルデバイスはケーブルに接続する必要がなく、ワイヤレスネットワークの範囲内で自由にローミングできます。 これにより、効率的な情報共有が保証され、生産性が向上します。
脆弱性と攻撃
有線ネットワークと無線ネットワークの両方に存在する一般的な脆弱性は、ネットワークへの「不正アクセス」です。 攻撃者は、安全でないハブ/スイッチポートを介してデバイスをネットワークに接続できます。 この点で、無線ネットワークは物理的な接続なしで簡単にアクセスできるため、有線ネットワークよりも安全性が低いと見なされます。
アクセスした後、攻撃者はこの脆弱性を悪用して次のような攻撃を開始できます-
- 貴重な情報を盗むためにパケットデータを盗聴します。
- ネットワーク媒体を偽のパケットであふれさせることによる、ネットワーク上の正当なユーザーへのサービス拒否。
- 正当なホストの物理的身元(MAC)をスプーフィングし、データを盗むか、「中間者」攻撃をさらに開始します。
ネットワークプロトコル
ネットワークプロトコルは、ネットワークに接続されたデバイス間の通信を管理する一連のルールです。 それらには、接続を確立するためのメカニズムと、送受信されるメッセージのデータパッケージのフォーマットルールが含まれます。
それぞれが特定の目的のために設計されたいくつかのコンピューターネットワークプロトコルが開発されました。 一般的で広く使用されているプロトコルは、高レベルおよび低レベルのプロトコルが関連付けられたTCP/IPです。
TCP/IPプロトコル
*Transmission Control Protocol* (TCP)および *Internet Protocol* (IP)は、主に一緒に使用される2つの異なるコンピューターネットワークプロトコルです。 それらは人気があり、広く採用されているため、ネットワークデバイスのすべてのオペレーティングシステムに組み込まれています。
IPはネットワーク層(レイヤー3)に対応し、TCPはOSIのトランスポート層(レイヤー4)に対応します。 TCP/IPは、TCPトランスポートを使用してIPネットワーク全体にデータを配信するネットワーク通信に適用されます。
TCP/IPプロトコルは、一般に、アプリケーション層のHTTP、FTP、SSH、データリンク/物理層のイーサネットなどの他のプロトコルとともに使用されます。
TCP/IPプロトコルスイートは、セキュリティの側面にほとんど関心のないインターネットワーキングソリューションとして1980年に作成されました。
限られた信頼できるネットワークでの通信用に開発されました。 ただし、このプロトコルは、一定期間にわたって、セキュリティで保護されていないインターネット通信の事実上の標準になりました。
TCP/IPプロトコルスーツの一般的なセキュリティ脆弱性のいくつかは次のとおりです-
- HTTPは、WebサーバーからWebページを構成するファイルの転送に使用されるTCP/IPスイートのアプリケーション層プロトコルです。 これらの転送はプレーンテキストで行われ、侵入者はサーバーとクライアント間で交換されるデータパケットを簡単に読み取ることができます。
- 別のHTTP脆弱性は、セッションの初期化中のクライアントとWebサーバー間の弱い認証です。 この脆弱性は、攻撃者が正当なユーザーのHTTPセッションを盗むセッションハイジャック攻撃につながる可能性があります。
- TCPプロトコルの脆弱性は、接続確立のためのスリーウェイハンドシェイクです。 攻撃者は、この脆弱性を悪用するためにサービス拒否攻撃「SYNフラッディング」を開始できます。 彼は、ハンドシェイクを完了しないことで、多くのハーフオープンセッションを確立します。 これにより、サーバーが過負荷になり、最終的にクラッシュします。
- IP層は多くの脆弱性の影響を受けやすくなっています。 IPプロトコルヘッダーの変更により、攻撃者はIPスプーフィング攻撃を開始できます。
上記とは別に、TCP/IPプロトコルファミリには、その実装と同様に多くの他のセキュリティ脆弱性が存在します。
ちなみに、TCP/IPベースのネットワーク通信では、1つの層がハッキングされると、他の層はハッキングを認識せず、通信全体が危険にさらされます。 したがって、各層でセキュリティ制御を採用して、誰でも安心なセキュリティを確保する必要があります。
DNSプロトコル
ドメインネームシステム(DNS)は、ホストドメイン名をIPアドレスに解決するために使用されます。 ネットワークユーザーは、主にインターネットの閲覧中にWebブラウザにURLを入力してDNS機能に依存します。
DNSの攻撃において、攻撃者の目的は、正当なDNSレコードを修正して、不正なIPアドレスに解決することです。 そのIPのすべてのトラフィックを間違ったコンピューターに転送できます。 攻撃者は、DNSプロトコルの脆弱性を悪用するか、攻撃を具体化するためにDNSサーバーを侵害します。
- DNSキャッシュポイズニング*は、DNSプロトコルで見つかった脆弱性を悪用する攻撃です。 攻撃者は、リゾルバーによって権限のあるサーバーに送信された再帰的なDNSクエリへの応答を偽造することにより、キャッシュを汚染する可能性があります。 DNSリゾルバーのキャッシュがポイズニングされると、ホストは悪意のあるWebサイトに誘導され、このサイトへの通信によって資格情報が侵害される可能性があります。
ICMPプロトコル
インターネット制御管理プロトコル(ICMP)は、TCP/IPネットワークの基本的なネットワーク管理プロトコルです。 エラーを送信し、ネットワークデバイスのステータスに関するメッセージを制御するために使用されます。
ICMPはIPネットワーク実装の不可欠な部分であるため、非常にネットワークのセットアップに存在します。 ICMPには独自の脆弱性があり、ネットワークに攻撃を仕掛けるために悪用される可能性があります。
ICMPの脆弱性が原因でネットワークで発生する可能性のある一般的な攻撃は-
- ICMPを使用すると、攻撃者はネットワーク偵察を実行して、ネットワークトポロジとネットワークへのパスを決定できます。 ICMPスイープには、ターゲットのネットワーク全体で生きているすべてのホストIPアドレスの検出が含まれます。
- トレースルートは、クライアントからリモートホストへのパスをリアルタイムで記述することにより、ターゲットネットワークをマッピングするために使用される一般的なICMPユーティリティです。
- 攻撃者は、ICMPの脆弱性を使用してサービス拒否攻撃を開始できます。 この攻撃では、65,535バイトを超えるIPMP pingパケットがターゲットデバイスに送信されます。 ターゲットコンピュータはこのパケットを適切に処理できず、オペレーティングシステムがクラッシュする可能性があります。
ARP、DHCP、SMTPなどの他のプロトコル また、攻撃者がネットワークセキュリティを侵害するために悪用できる脆弱性もあります。 これらの脆弱性のいくつかについては、後の章で説明します。
プロトコルの設計および実装中のセキュリティの側面に対する最小の懸念は、ネットワークセキュリティに対する脅威の主な原因になりました。
ネットワークセキュリティの目標
前のセクションで説明したように、ネットワークには多数の脆弱性が存在します。 したがって、送信中、データは攻撃に対して非常に脆弱です。 攻撃者は、通信チャネルを標的にしてデータを取得し、同じものを読み取るか、誤ったメッセージを再挿入して、悪意のある目的を達成できます。
ネットワークセキュリティは、通信チェーンの各端にあるコンピューターのセキュリティだけに関心があるわけではありません。ただし、ネットワーク全体のセキュリティを確保することを目的としています。
ネットワークセキュリティには、ネットワークとデータの使いやすさ、信頼性、整合性、および安全性の保護が伴います。 効果的なネットワークセキュリティは、ネットワークへの侵入やネットワークからの拡散によるさまざまな脅威を打ち負かします。
ネットワークセキュリティの主な目標は、機密性、整合性、および可用性です。 ネットワークセキュリティのこれらの3つの柱は、多くの場合* CIA三角形*として表されます。
- 機密性-機密性の機能は、権限のない人から貴重なビジネスデータを保護することです。 ネットワークセキュリティの機密性の部分により、データは意図した権限のある人だけが利用できるようになります。
- 整合性-この目標は、データの正確性と一貫性を維持および保証することを意味します。 整合性の機能は、データが信頼でき、権限のない人によって変更されないようにすることです。
- 可用性-Network Securityの可用性の機能は、正当なユーザーが必要とするときはいつでも、データ、ネットワークリソース/サービスが継続的に利用可能であることを確認することです。
ネットワークセキュリティの達成
ネットワークセキュリティの確保は非常に簡単に見えるかもしれません。 達成すべき目標は簡単なようです。 しかし、実際には、これらの目標を達成するために使用されるメカニズムは非常に複雑であり、それらを理解するには適切な推論が必要です。
*International Telecommunication Union* (ITU)は、セキュリティアーキテクチャX.800に関する勧告で、ネットワークセキュリティを実現する方法の標準化をもたらす特定のメカニズムを定義しています。 これらのメカニズムのいくつかは-
- 暗号化-このメカニズムは、権限のない人のためにデータを読み取り不可能な形式に変換することにより、データ機密性サービスを提供します。 このメカニズムは、秘密鍵を使用した暗号化/復号化アルゴリズムを使用します。
- デジタル署名-このメカニズムは、電子データの通常の署名と電子的に同等です。 データの信頼性を提供します。
- アクセス制御-このメカニズムは、アクセス制御サービスを提供するために使用されます。 これらのメカニズムは、エンティティの識別と認証を使用して、エンティティのアクセス権を決定および強制する場合があります。
ネットワークセキュリティを実現するためのさまざまなセキュリティメカニズムを開発および特定したら、それらを適用する場所を決定することが不可欠です。物理的に(どの場所に)論理的に(TCP/IPなどのアーキテクチャのどのレイヤーに)。
ネットワーク層でのセキュリティメカニズム
OSIネットワーク層モデルの特定の層で開発できるように、いくつかのセキュリティメカニズムが開発されています。
- アプリケーション層でのセキュリティ-この層で使用されるセキュリティ対策はアプリケーション固有です。 さまざまな種類のアプリケーションには、個別のセキュリティ対策が必要です。 アプリケーション層のセキュリティを確保するには、アプリケーションを変更する必要があります。 +暗号的に適切なアプリケーションプロトコルの設計は非常に難しく、適切に実装することはさらに難しいと考えられています。 したがって、ネットワーク通信を保護するためのアプリケーション層セキュリティメカニズムは、しばらく使用されている標準ベースのソリューションのみであることが推奨されます。 +アプリケーションレイヤーセキュリティプロトコルの例は、電子メールメッセージの暗号化に一般的に使用されるSecure Multipurpose Internet Mail Extensions(S/MIME)です。 DNSSECは、DNSクエリメッセージの安全な交換に使用されるこの層の別のプロトコルです。
- トランスポート層でのセキュリティ-この層でのセキュリティ対策を使用して、2つのホスト間の単一の通信セッションでデータを保護できます。 トランスポート層セキュリティプロトコルの最も一般的な用途は、HTTPおよびFTPセッショントラフィックの保護です。 Transport Layer Security(TLS)およびSecure Socket Layer(SSL)は、この目的に使用される最も一般的なプロトコルです。
- ネットワーク層-この層でのセキュリティ対策は、すべてのアプリケーションに適用できます。したがって、これらはアプリケーション固有ではありません。 2つのホストまたはネットワーク間のすべてのネットワーク通信は、アプリケーションを変更せずにこのレイヤーで保護できます。 一部の環境では、インターネットプロトコルセキュリティ(IPsec)などのネットワークレイヤーセキュリティプロトコルは、個々のアプリケーションにコントロールを追加することが難しいため、トランスポートまたはアプリケーションレイヤーコントロールよりも優れたソリューションを提供します。 ただし、この層のセキュリティプロトコルは、一部のアプリケーションに必要な通信の柔軟性が低くなります。
ちなみに、上位層で動作するように設計されたセキュリティメカニズムは、下位層が上位層が認識しない機能を実行するため、下位層のデータを保護できません。 したがって、ネットワークセキュリティを強化するには、複数のセキュリティメカニズムを展開する必要がある場合があります。
チュートリアルの次の章では、ネットワークセキュリティを実現するためにOSIネットワークアーキテクチャのさまざまな層で採用されているセキュリティメカニズムについて説明します。
ネットワークセキュリティ-アプリケーション層
現在、クライアントサーバーアプリケーションを介してさまざまなビジネスサービスがオンラインで提供されています。 最も一般的なフォームは、Webアプリケーションと電子メールです。 両方のアプリケーションで、クライアントは指定されたサーバーと通信し、サービスを取得します。
サーバーアプリケーションからサービスを使用している間、クライアントとサーバーは、基盤となるイントラネットまたはインターネット上で多くの情報を交換します。 これらの情報トランザクションはさまざまな攻撃に対して脆弱であるという事実を認識しています。
ネットワークセキュリティでは、データがネットワーク上で転送されている間、攻撃からデータを保護する必要があります。 この目標を達成するために、多くのリアルタイムセキュリティプロトコルが設計されています。 そのようなプロトコルは、少なくとも以下の主要な目的を提供する必要があります-
- 当事者は相互に交渉して、相互に認証することができます。
- ネットワークで情報を交換する前に、秘密セッションキーを確立します。
- 暗号化された形式で情報を交換します。
興味深いことに、これらのプロトコルはネットワークモデルのさまざまな層で機能します。 たとえば、S/MIMEプロトコルはアプリケーション層で機能し、SSLプロトコルはトランスポート層で機能するように開発され、IPsecプロトコルはネットワーク層で機能します。
この章では、電子メール通信および関連するセキュリティプロトコルのセキュリティを実現するためのさまざまなプロセスについて説明します。 DNSを保護する方法については、後で説明します。 後の章では、Webセキュリティを実現するプロトコルについて説明します。
メールセキュリティ
現在、電子メールは非常に広く使用されているネットワークアプリケーションになっています。 電子メールセキュリティプロトコルについて知る前に、電子メールインフラストラクチャについて簡単に説明しましょう。
メールインフラ
電子メールを送信する最も簡単な方法は、送信者のマシンから受信者のマシンにメッセージを直接送信することです。 この場合、両方のマシンがネットワーク上で同時に実行されていることが不可欠です。 ただし、ユーザーがマシンをネットワークに接続する場合があるため、この設定は実用的ではありません。
そのため、電子メールサーバーをセットアップするという概念が生まれました。 この設定では、メールはネットワーク上で永続的に利用可能なメールサーバーに送信されます。 受信者のマシンがネットワークに接続すると、メールサーバーからメールを読み取ります。
一般に、電子メールインフラストラクチャは、メールサーバーのメッシュ( Message Transfer Agents (MTA)とも呼ばれる)と、ユーザーエージェント(UA)とローカルMTAで構成される電子メールプログラムを実行するクライアントマシンで構成されます。
通常、電子メールメッセージはそのUAから転送され、MTAのメッシュを通過して、最終的に受信者のマシンのUAに到達します。
電子メールに使用されるプロトコルは次のとおりです-
- 電子メールメッセージの転送に使用される簡易メール転送プロトコル(SMTP)。
- ポストオフィスプロトコル(POP)およびインターネットメッセージアクセスプロトコル(IMAP)は、サーバーから受信者がメッセージを取得するために使用されます。
MIME
基本的なインターネット電子メール標準は1982年に作成され、インターネット上で交換される電子メールメッセージの形式を記述しています。 主に、基本的なローマ字のテキストとして記述された電子メールメッセージをサポートします。
1992年までに、それを改善する必要性が感じられました。 したがって、追加の標準_Multipurpose Internet Mail Extensions_(MIME)が定義されました。 これは、基本的なインターネット電子メール標準に対する一連の拡張機能です。 MIMEは、キリル文字(ロシア語で使用)、ギリシャ文字、または中国語の表意文字など、基本的なローマ字以外の文字を使用して電子メールを送信する機能を提供します。
MIMEによって満たされる別のニーズは、画像やビデオクリップなどの非テキストコンテンツを送信することです。 この機能により、MIME標準は電子メール通信用にSMTPで広く採用されるようになりました。
電子メールセキュリティサービス
重要で重要なトランザクションのための電子メール通信の使用の増加には、次のような特定の基本的なセキュリティサービスの提供が必要です-
- 機密性-電子メールメッセージは、意図した受信者以外には読まれてはなりません。
- 認証-電子メールの受信者は送信者の身元を確認できます。
- 整合性-電子メールメッセージが送信者によって送信されてから変更されていないことを受信者に保証します。
- 非拒否-電子メールの受信者は、送信者が実際にメッセージを送信したことを第三者に証明できます。
- 提出の証明-電子メール送信者は、メッセージがメール配信システムに渡されたことの確認を取得します。
- 配達証明-送信者は、受信者がメッセージを受信したことの確認を取得します。
プライバシー、認証、メッセージの整合性、否認防止などのセキュリティサービスは、通常、公開キー暗号化を使用して提供されます。
通常、電子メール通信には3つの異なるシナリオがあります。 これらのシナリオで上記のセキュリティサービスを実現する方法について説明します。
一対一の電子メール
このシナリオでは、送信者は1人の受信者のみに電子メールメッセージを送信します。 通常、通信に関与するMTAは2つ以下です。
送信者が受信者に機密の電子メールを送信したいとします。 この場合のプライバシーの提供は次のように達成されます-
- 送信者と受信者の秘密公開鍵は、それぞれ(S〜PVT〜、S〜PUB〜)および(R〜PVT〜、R〜PUB〜)です。
- 送信者は、暗号化のために秘密の対称キーK〜S〜を生成します。 送信者は暗号化にR〜PUB〜を使用できたかもしれませんが、対称キーを使用して暗号化と復号化を高速化します。
- 送信者はキーK〜S〜でメッセージを暗号化し、受信者の公開キーR〜PUB〜でK〜S〜も暗号化します。
- 送信者は、暗号化されたメッセージと暗号化されたK〜S〜を受信者に送信します。
- 受信者は、最初に自分の秘密キーR〜PVT〜を使用してエンコードされたK〜S〜を復号化することによりK〜S〜を取得します。
- 次に、受信者は対称キーK〜S〜を使用してメッセージを復号化します。
このシナリオでメッセージの整合性、認証、および否認防止サービスも必要な場合、上記のプロセスに次の手順が追加されます。
- 送信者はメッセージのハッシュを生成し、彼の秘密鍵S〜PVT〜でこのハッシュにデジタル署名します。
- 送信者は、この署名付きハッシュを他のコンポーネントとともに受信者に送信します。
- 受信者は公開鍵S〜PUB〜を使用し、送信者の署名の下で受信したハッシュを抽出します。
- 次に、受信者は復号化されたメッセージをハッシュし、2つのハッシュ値を比較します。 それらが一致する場合、メッセージの整合性が達成されたと見なされます。
- また、受信者は、メッセージが送信者によって送信されたことを確認します(認証)。 そして最後に、送信者はメッセージを送信しなかったことを拒否できません(否認防止)。
1対多の受信者の電子メール
このシナリオでは、送信者は2人以上の受信者に電子メールメッセージを送信します。 リストは、送信者の電子メールプログラム(UA +ローカルMTA)によって管理されます。 すべての受信者が同じメッセージを受け取ります。
送信者が機密メールを多くの受信者(R1、R2、R3など)に送信したいとします。 この場合のプライバシーの提供は次のように達成されます-
- 送信者とすべての受信者は、秘密と公開鍵の独自のペアを持っています。
- 送信者は秘密の対称キーK〜s〜を生成し、このキーでメッセージを暗号化します。
- 次に、送信者はR1、R2、およびR3の公開キーでK〜S〜を複数回暗号化し、R1〜PUB〜(K〜S〜)、R2〜PUB〜(K〜S〜)、およびR3〜PUB〜( K〜S〜)。
- 送信者は、暗号化されたメッセージと対応する暗号化されたK〜S〜を受信者に送信します。 たとえば、受信者1(R1)は暗号化されたメッセージとR1〜PUB〜(K〜S〜)を受信します。
- 各受信者は、まず自分の秘密キーを使用してエンコードされたK〜S〜を復号化することにより、キーK〜S〜を抽出します。
- 各受信者は、対称キーK〜S〜を使用してメッセージを復号化します。
メッセージの整合性、認証、および否認防止を提供するための手順は、1対1の電子メールシナリオで前述した手順と同様です。
1対1の配布リストの電子メール
このシナリオでは、送信者は2人以上の受信者に電子メールメッセージを送信しますが、受信者のリストは送信者によってローカルで管理されません。 通常、電子メールサーバー(MTA)はメーリングリストを管理します。
送信者がメーリングリストを管理するMTAにメールを送信すると、MTAによってリスト内のすべての受信者にメールが展開されます。
この場合、送信者がメーリングリストの受信者(たとえば、R1、R2、およびR3)に機密の電子メールを送信する場合。プライバシーは次のように保証されています-
- 送信者とすべての受信者は、秘密と公開鍵の独自のペアを持っています。 Exploder Serverには、各メーリングリスト(List〜PUB〜、List〜PVT〜)が保持する秘密鍵と公開鍵のペアがあります。
- 送信者は秘密の対称キーK〜s〜を生成し、このキーでメッセージを暗号化します。
- 次に、送信者はリストに関連付けられた公開鍵でK〜S〜を暗号化し、List〜PUB〜(K〜S〜)を取得します。
- 送信者は、暗号化されたメッセージとList〜PUB〜(K〜S〜)を送信します。 エクスプローダーMTAは、List〜PVT〜を使用してList〜PUB〜(K〜S〜)を復号化し、K〜S〜を取得します。
- エクスプローダは、リストにあるメンバーと同じ数の公開キーでK〜S〜を暗号化します。
- Exploderは、受信した暗号化されたメッセージと対応する暗号化されたK〜S〜をリスト内のすべての受信者に転送します。 たとえば、Exploderは暗号化されたメッセージとR1〜PUB〜(K〜S〜)を受信者1などに転送します。
メッセージの整合性、認証、および否認防止を提供するための手順は、1対1の電子メールシナリオの場合と同様です。
興味深いことに、電子メールをセキュリティで保護するために上記のセキュリティ方法を採用している電子メールプログラムは、上記のすべての可能なシナリオで機能することが期待されます。 電子メールの上記のセキュリティメカニズムのほとんどは、Pretty Good Privacy(PGP)とS/MIMEの2つの一般的なスキームによって提供されます。 次のセクションで両方について説明します。
PGP
*Pretty Good Privacy* (PGP)は、電子メール暗号化スキームです。 これは、電子メール通信のセキュリティサービスを提供するための事実上の標準となっています。
前述のように、公開キー暗号化、対称キー暗号化、ハッシュ関数、およびデジタル署名を使用します。 それを提供します-
- プライバシー
- 送信者認証
- メッセージの完全性
- 否認防止
これらのセキュリティサービスに加えて、データ圧縮とキー管理サポートも提供します。 PGPは、新しいものを発明するのではなく、RSA、IDEA、MD5などの既存の暗号化アルゴリズムを使用します。
PGPの働き
- メッセージのハッシュが計算されます。 (MD5アルゴリズム)
- 結果の128ビットハッシュは、送信者の秘密キー(RSAアルゴリズム)を使用して署名されます。
- デジタル署名はメッセージに連結され、結果は圧縮されます。
- 128ビットの対称キーK〜S〜が生成され、IDEAで圧縮メッセージを暗号化するために使用されます。 *K〜S〜は、RSAアルゴリズムを使用して受信者の公開鍵を使用して暗号化され、暗号化されたメッセージに結果が追加されます。
PGPメッセージの形式を次の図に示します。 IDは、KSの暗号化に使用されるキーと、ハッシュの署名の検証に使用されるキーを示します。
PGPスキームでは、メッセージは署名および暗号化され、MIMEは送信前にエンコードされます。
PGP証明書
PGP鍵証明書は通常、信頼のチェーンを通じて確立されます。 たとえば、Aの公開鍵はBが彼の公開鍵を使用して署名し、Bの公開鍵はCが彼の公開鍵を使用して署名します。 このプロセスが進むにつれて、信頼の輪が確立されます。
PGP環境では、すべてのユーザーが認証機関として機能できます。 すべてのPGPユーザーは、別のPGPユーザーの公開鍵を認証できます。 ただし、そのような証明書は、ユーザーが認証者を信頼できる紹介者として認識した場合にのみ、別のユーザーに有効です。
このような認証方法にはいくつかの問題があります。 既知の信頼できる公開キーから目的のキーに至るチェーンを見つけるのは難しいかもしれません。 また、複数のチェーンが存在する可能性があり、それらが目的のユーザーの異なるキーにつながる可能性があります。
PGPは、認証局でPKIインフラストラクチャを使用することもでき、公開鍵はCAによって認証されます(X.509証明書)。
S/MIME
S/MIMEは、Secure Multipurpose Internet Mail Extensionの略です。 S/MIMEは、安全な電子メール標準です。 これは、MIMEと呼ばれる以前の非セキュアな電子メール標準に基づいています。
S/MIMEの動作
S/MIMEアプローチはPGPに似ています。 また、公開キー暗号化、対称キー暗号化、ハッシュ関数、デジタル署名も使用します。 電子メール通信用のPGPと同様のセキュリティサービスを提供します。
S/MIMEで使用される最も一般的な対称暗号は、RC2とTripleDESです。 通常の公開キー方式はRSAであり、ハッシュアルゴリズムはSHA-1またはMD5です。
S/MIMEは、暗号化後のデータエンベロープのために、「application/pkcs7-mime」などの追加のMIMEタイプを指定します。 MIMEエンティティ全体が暗号化され、オブジェクトにパックされます。 S/MIMEでは、暗号化メッセージ形式が標準化されています(PGPとは異なります)。 実際、MIMEは、メッセージ内の暗号化および/または署名された部分を識別するためのいくつかのキーワードで拡張されています。
S/MIMEは、公開キー配布のためにX.509証明書に依存しています。 認定サポートにはトップダウンの階層PKIが必要です。
S/MIMEのエンプロイアビリティ
実装には認証機関からの証明書が必要であるため、一部のユーザーは公開/秘密キーペアでメッセージを暗号化する場合があるため、すべてのユーザーがS/MIMEを利用できるわけではありません。 たとえば、証明書の関与や管理オーバーヘッドなし。
実際には、ほとんどの電子メールアプリケーションはS/MIMEを実装していますが、証明書の登録プロセスは複雑です。 代わりに、PGPサポートでは通常、プラグインを追加する必要があり、そのプラグインには鍵の管理に必要なものがすべて付属しています。 Web of Trustは実際には使用されません。 他の媒体を介して公開鍵を交換します。 取得すると、通常は電子メールを交換する相手の公開鍵のコピーを保持します。
次の図に、PGPおよびS/MIMEスキームのネットワークアーキテクチャの実装層を示します。 これらのスキームはどちらも、電子メール通信のアプリケーションレベルのセキュリティを提供します。
環境に応じて、PGPまたはS/MIMEのいずれかのスキームが使用されます。 キャプティブネットワークでの安全な電子メール通信は、PGPに適応することで提供できます。 新しい未知のユーザーと頻繁にメールが交換されるインターネット上の電子メールセキュリティでは、S/MIMEが適切なオプションと見なされます。
DNSセキュリティ
最初の章では、攻撃者がDNSキャッシュポイズニングを使用してターゲットユーザーに攻撃を実行できることを説明しました。* ドメインネームシステムセキュリティ拡張機能(DNSSEC)は、このような攻撃を阻止できるインターネット標準です。
標準DNSの脆弱性
標準のDNSスキームでは、ユーザーがドメイン名に接続するたびに、コンピューターはDNSサーバーに接続し、そのドメイン名に関連付けられたIPアドレスを検索します。 IPアドレスが取得されると、コンピューターはそのIPアドレスに接続します。
このスキームでは、検証プロセスは一切含まれていません。 コンピューターはDNSサーバーにWebサイトに関連付けられたアドレスを要求し、DNSサーバーはIPアドレスで応答し、コンピューターは間違いなくそれを正当な応答として受け入れ、そのWebサイトに接続します。
DNSルックアップは、実際にはいくつかの段階で行われます。 たとえば、コンピュータが「www.finddevguides.com」を要求すると、DNSルックアップはいくつかの段階で実行されます-
- コンピューターは最初にローカルDNSサーバー(ISP提供)に問い合わせます。 ISPがキャッシュにこの名前を持っている場合、ISPは「ルートゾーンディレクトリ」にクエリを転送します。「ルートゾーンディレクトリ」では、「。com。」とルートゾーンの応答を見つけることができます。
- 次に、コンピュータは応答に基づいて、「finddevguides.com」を見つけることができる「.com」ディレクトリを尋ねます。
- 受け取った情報に基づいて、コンピューターはwwwを見つけることができる「finddevguides.com」に問い合わせます。 finddevguides.com。
DNSSEC定義
DNSSECを使用して実行されるDNSルックアップには、応答エンティティによる応答の署名が含まれます。 DNSSECは公開キー暗号化に基づいています。
DNSSEC標準では、すべてのDNSゾーンに公開キーと秘密キーのペアがあります。 DNSサーバーから送信されるすべての情報は、信頼性を確保するために、発信元ゾーンの秘密キーで署名されます。 DNSクライアントは、署名を確認するためにゾーンの公開キーを知る必要があります。 クライアントは、すべてのトップレベルドメインまたはルートDNSの公開キーで事前に構成されている場合があります。
DNSSECを使用すると、検索プロセスは次のようになります-
- コンピューターが.comを見つけることができるルートゾーンに尋ねると、応答はルートゾーンサーバーによって署名されます。
- コンピューターはルートゾーンの署名キーをチェックし、それが正しい情報を持つ正当なルートゾーンであることを確認します。
- 応答では、ルートゾーンは.comゾーンサーバーの署名キーとその場所に関する情報を提供し、コンピューターが.comディレクトリにアクセスできるようにして、正当であることを確認します。
- .comディレクトリは次に、finddevguides.comの署名キーと情報を提供し、それがgoogle.comに連絡して、その上のゾーンで確認されているように、実際のfinddevguides.comに接続していることを確認できるようにします。
- 送信される情報は、リソースレコードセット(RRSet)の形式です。 トップレベルの「.com」サーバーにあるドメイン「finddevguides.com」のRRSetの例を次の表に示します。
Domain Name | Time to live | Type | Value |
---|---|---|---|
finddevguides.com | 86400 | NS | dns.finddevguides.com |
dns.finddevguides.com | 86400 | A | 36..1.2.3 |
finddevguides.com | 86400 | KEY | 3682793A7B73F731029CE2737D… |
finddevguides.com | 86400 | SIG | 86947503A8B848F5272E53930C… |
- KEYレコードは「finddevguides.com」の公開鍵です。
- SIGレコードは、最上位の.comサーバーのフィールドNS、A、およびKEYレコードの署名付きハッシュであり、それらの信頼性を検証します。 その値はKcom〜pvt〜(H(NS、A、KEY))です。
したがって、DNSSECが完全にロールアウトされると、ユーザーのコンピューターはDNS応答が正当かつ真実であることを確認でき、DNSキャッシュポイズニングを通じて開始されるDNS攻撃を回避できると考えられます。
概要
電子メールを保護するプロセスにより、通信のエンドツーエンドのセキュリティが確保されます。 機密性、送信者認証、メッセージの整合性、および否認防止のセキュリティサービスを提供します。
電子メールセキュリティのために、PGPとS/MIMEの2つのスキームが開発されました。 これらのスキームは両方とも、秘密鍵暗号と公開鍵暗号を使用します。
標準のDNSルックアップは、DNSスプーフィング/キャッシュポイズニングなどの攻撃に対して脆弱です。 DNSルックアップの保護は、公開鍵暗号方式を採用するDNSSECの使用により実現可能です。
この章では、アプリケーション層で使用され、エンドツーエンド通信のネットワークセキュリティを提供するメカニズムについて説明しました。
ネットワークセキュリティ-トランスポート層
ネットワークセキュリティでは、データがネットワーク上で転送されている間、攻撃からデータを保護する必要があります。 この目標を達成するために、多くのリアルタイムセキュリティプロトコルが設計されています。 S/MIME、SSL/TLS、SSH、IPsecなどのリアルタイムネットワークセキュリティプロトコルには一般的な標準があります。 前述のように、これらのプロトコルはネットワークモデルのさまざまな層で機能します。
前の章では、アプリケーション層のセキュリティを提供するように設計されたいくつかの一般的なプロトコルについて説明しました。 この章では、トランスポート層および関連するセキュリティプロトコルでネットワークセキュリティを実現するプロセスについて説明します。
TCP/IPプロトコルベースのネットワークの場合、物理層とデータリンク層は通常、ユーザー端末とネットワークカードハードウェアに実装されます。 TCPおよびIP層は、オペレーティングシステムに実装されています。 TCP/IPを超えるものはすべて、ユーザープロセスとして実装されます。
トランスポート層セキュリティの必要性
典型的なインターネットベースのビジネストランザクションについて説明しましょう。
ボブは商品を販売するためにアリスのウェブサイトにアクセスします。 ウェブサイトのフォームに、ボブは希望する商品と数量のタイプ、住所と支払いカードの詳細を入力します。 ボブは[送信]をクリックして、アカウントから価格金額を引き落とす商品の配達を待ちます。 これはすべて良いことのように聞こえますが、ネットワークセキュリティがない場合、ボブはいくつかの驚きに直面する可能性があります。
- 取引で機密性(暗号化)が使用されていない場合、攻撃者は支払いカード情報を入手する可能性があります。 その後、攻撃者はボブの費用で購入することができます。
- データの整合性の尺度が使用されていない場合、攻撃者は商品の種類または数量に関してボブの注文を変更する可能性があります。
- 最後に、サーバー認証を使用しない場合、サーバーはアリスの有名なロゴを表示できますが、サイトはアリスを装った攻撃者によって維持されている悪意のあるサイトである可能性があります。 ボブの注文を受けた後、彼はボブのお金を取って逃げることができました。 または、ボブの名前とクレジットカードの詳細を収集して、個人情報の盗難を行うこともできます。
トランスポートレイヤーセキュリティスキームは、TCP/IPベースのネットワーク通信を機密性、データ整合性、サーバー認証、クライアント認証で強化することにより、これらの問題に対処できます。
このレイヤーのセキュリティは、主にネットワーク上のHTTPベースのWebトランザクションを保護するために使用されます。 ただし、TCP上で実行される任意のアプリケーションで使用できます。
TLS設計の哲学
トランスポート層セキュリティ(TLS)プロトコルは、TCP層の上で動作します。 これらのプロトコルの設計では、TCP層とのインターフェース用の「ソケット」と呼ばれる、TCPに対する一般的なアプリケーションプログラムインターフェイス(API)を使用します。
アプリケーションは、TCPではなくTransport Security Layerに直接インターフェースされます。 Transport Security Layerは、TCPのAPIに類似した類似のソケットを備えたシンプルなAPIを提供します。
上の図では、TLSは技術的にアプリケーション層とトランスポート層の間に存在しますが、共通の観点から見ると、TLSはセキュリティサービスで強化されたTCP層として機能するトランスポートプロトコルです。
TLSは、「タイミングアウト」や「失われたデータの再送信」を心配する必要がないため、TLS(UDPプロトコル上ではない)の信頼できるレイヤー4プロトコル上で動作するように設計されており、TLSの設計をより簡単にします。 TCP層は、TLSの必要性に応える通常の処理を続けます。
TLSが人気がある理由
トランスポート層でセキュリティを使用することの人気の理由は、単純さです。 この層でのセキュリティの設計と展開では、オペレーティングシステムに実装されているTCP/IPプロトコルを変更する必要はありません。 ユーザープロセスとアプリケーションのみを設計/修正する必要があり、複雑さは軽減されます。
セキュアソケットレイヤー(SSL)
このセクションでは、TLS用に設計されたプロトコルファミリについて説明します。 このファミリには、SSLバージョン2および3とTLSプロトコルが含まれています。 SSLv2はSSLv3に置き換えられたため、SSL v3とTLSに焦点を当てます。
SSLの簡単な歴史
1995年、NetscapeはSSLv2を開発し、Netscape Navigator 1.1で使用しました。 SSLバージョン1が発行されて使用されたことはありません。 その後、MicrosoftはSSLv2を改良し、Private Communications Technology(PCT)という別の同様のプロトコルを導入しました。
Netscapeは、さまざまなセキュリティ問題に関するSSLv2を大幅に改善し、1999年にSSLv3を展開しました。 その後、インターネット技術特別調査委員会(IETF)は、同様のTLS(トランスポート層セキュリティ)プロトコルをオープンスタンダードとして導入しました。 TLSプロトコルはSSLv3と相互運用できません。
TLSは、キーの拡張と認証のための暗号化アルゴリズムを変更しました。 また、TLSは、SSLで使用されている特許取得済みのRSA暗号の代わりに、オープン暗号Diffie-Hellman(DH)およびデジタル署名標準(DSS)の使用を提案しました。 しかし、2000年にRSA特許が失効したため、ユーザーが広く導入されているSSLv3からTLSに移行する強い理由はありませんでした。
SSLの顕著な特徴
SSLプロトコルの顕著な特徴は次のとおりです-
- SSLは、ネットワーク接続のセキュリティを提供します-
- 機密性-情報は暗号化された形式で交換されます。
- 認証-通信エンティティは、デジタル証明書を使用して互いに識別します。 Webサーバー認証は必須ですが、クライアント認証はオプションです。
- 信頼性-メッセージの整合性チェックを維持します。
- SSLはすべてのTCPアプリケーションで使用できます。
- ほとんどすべてのWebブラウザーでサポートされています。
- 新しいオンラインエンティティとのビジネスを容易にします。
- 主にWeb eコマース向けに開発されました。
SSLのアーキテクチャ
SSLはTCPに固有であり、UDPでは機能しません。 SSLは、アプリケーションにApplication Programming Interface(API)を提供します。 CおよびJava SSLライブラリ/クラスはすぐに利用できます。
SSLプロトコルは、次の図に示すように、アプリケーションとトランスポート層の間で相互作用するように設計されています-
SSL自体は、画像に示されているような単一層のプロトコルではありません。実際、2つのサブレイヤーで構成されています。
- 下位サブレイヤーは、SSLレコードプロトコルと呼ばれるSSLプロトコルの1つのコンポーネントで構成されます。 このコンポーネントは、整合性と機密性のサービスを提供します。
- 上位サブレイヤーは、3つのSSL関連プロトコルコンポーネントとアプリケーションプロトコルで構成されます。 アプリケーションコンポーネントは、クライアント/サーバーインタラクション間の情報転送サービスを提供します。 技術的には、SSLレイヤーの上でも動作します。 3つのSSL関連のプロトコルコンポーネントは-
- SSLハンドシェイクプロトコル
- 暗号仕様プロトコルの変更
- アラートプロトコル。
- これらの3つのプロトコルは、すべてのSSLメッセージ交換を管理し、このセクションで後述します。
SSLプロトコルコンポーネントの機能
SSLプロトコルの4つのサブコンポーネントは、クライアントマシンとサーバー間の安全な通信のためのさまざまなタスクを処理します。
- 記録プロトコル
- レコード層は、上位層のプロトコルメッセージをフォーマットします。
- データを管理可能なブロックに分割します(最大長16 KB)。 オプションでデータを圧縮します。
- データを暗号化します。
- 各メッセージのヘッダーと最後にハッシュ(メッセージ認証コード(MAC))を提供します。
- 転送のために、フォーマットされたブロックをTCP層に引き渡します。
- SSLハンドシェイクプロトコル
- SSLの最も複雑な部分です。 アプリケーションデータが送信される前に呼び出されます。 クライアントとサーバーの間にSSLセッションを作成します。
- セッションの確立には、サーバー認証、キーとアルゴリズムのネゴシエーション、キーの確立とクライアント認証が含まれます(オプション)。
- セッションは、暗号化セキュリティパラメータの一意のセットによって識別されます。
- クライアントとサーバー間の複数の安全なTCP接続は、同じセッションを共有できます。
- 4段階のハンドシェイクプロトコルアクション。 これらについては、次のセクションで説明します。
- ChangeCipherSpecプロトコル
- SSLプロトコルの最も単純な部分。 これは、クライアントとサーバーという2つの通信エンティティ間で交換される単一のメッセージで構成されます。
- 各エンティティはChangeCipherSpecメッセージを送信すると、合意されたとおりに接続の側を安全な状態に変更します。
- 暗号パラメータの保留状態が現在の状態にコピーされます。
- このメッセージの交換は、将来のデータ交換がすべて暗号化され、整合性が保護されていることを示します。
- SSLアラートプロトコル
- このプロトコルは、予期しないメッセージ、不良レコードMAC、セキュリティパラメータネゴシエーションの失敗などのエラーを報告するために使用されます。
- また、TCP接続の終了を通知する、不良または未知の証明書の受信を通知するなど、他の目的にも使用されます。
SSLセッションの確立
前述のように、SSLセッションの確立には4つのフェーズがあります。 これらは主にSSLハンドシェイクプロトコルによって処理されます。
- フェーズ1 *-セキュリティ機能の確立。
- このフェーズは、_Client_hello_と_Server_hello_の2つのメッセージの交換で構成されます。
- _Client_hello_には、クライアントがサポートする暗号化アルゴリズムのリストが含まれており、優先度の高い順に並んでいます。
- _Server_hello_には、選択した暗号仕様(CipherSpec)と新しい_session_id_が含まれます。
- CipherSpecには次のようなフィールドが含まれます-
- 暗号アルゴリズム(DES、3DES、RC2、およびRC4)
- MACアルゴリズム(MD5、SHA-1に基づく)
- 公開鍵アルゴリズム(RSA)
- 両方のメッセージには、リプレイ攻撃を防ぐための「ノンス」があります。
- フェーズ2 *-サーバー認証とキー交換。
- サーバーは証明書を送信します。 クライアントソフトウェアには、証明書を確認するためのさまざまな「信頼できる」組織(CA)の公開キーが設定されています。
- サーバーは選択された暗号スイートを送信します。
- サーバーがクライアント証明書を要求する場合があります。 通常は行われません。
- サーバーは_Server_hello_の終わりを示します。
- フェーズ3 *-クライアント認証とキー交換。
- クライアントは、サーバーから要求された場合にのみ証明書を送信します。
- また、サーバーの公開キーで暗号化されたプリマスターシークレット(PMS)も送信します。
- クライアントは、この証明書に関連付けられた秘密キーを持っていることを証明するために証明書が送信された場合、_Certificate_verify_メッセージも送信します。 基本的に、クライアントは前のメッセージのハッシュに署名します。
- フェーズ4 *-終了。
- クライアントとサーバーは_Change_cipher_spec_メッセージを相互に送信して、保留中の暗号状態を現在の状態にコピーします。
- これ以降、すべてのデータは暗号化され、整合性が保護されます。
- 各端からの「完了」メッセージは、キー交換と認証プロセスが成功したことを確認します。
上記で説明した4つのフェーズはすべて、TCPセッションの確立中に発生します。 SSLセッションの確立は、TCP SYN/SYNACKの後に始まり、TCP Finの前に終わります。
切断されたセッションの再開
- クライアントが暗号化された_session_id_情報とともに_hello_request_をサーバーに送信すると、(_ Alert_メッセージを介して)切断されたセッションを再開することができます。
- サーバーは、_session_id_が有効かどうかを判断します。 検証されると、クライアントとChangeCipherSpecおよび_finished_メッセージを交換し、安全な通信を再開します。
- これにより、セッション暗号パラメータの再計算が回避され、サーバーとクライアント側での計算が節約されます。
SSLセッションキー
SSLセッションの確立のフェーズ3では、プリマスターシークレットがクライアントからサーバーの公開キーを使用して暗号化されたサーバーに送信されることがわかりました。 マスターシークレットとさまざまなセッションキーは次のように生成されます-
- マスターシークレットは(擬似乱数ジェネレーターを介して)を使用して生成されます-
- プリマスターシークレット。
- client_helloおよびserver_helloメッセージで交換された2つのノンス(RAおよびRB)。
- 次に、このマスターシークレットから6つのシークレット値が導出されます-
- MACで使用される秘密鍵(サーバーから送信されるデータ用)
- MACで使用される秘密鍵(クライアントから送信されるデータ用)
- 暗号化に使用される秘密鍵とIV(サーバーによる)
- 暗号化に使用される秘密鍵とIV(クライアントによる)
TLSプロトコル
SSLのオープンインターネット標準を提供するために、IETFは1999年1月にトランスポート層セキュリティ(TLS)プロトコルをリリースしました。 TLSは、RFC 5246で提案されているインターネット標準として定義されています。
顕著な特徴
- TLSプロトコルには、SSLと同じ目的があります。
- クライアント/サーバーアプリケーションは、認証、盗聴の防止、メッセージの変更への抵抗により、安全な方法で通信できます。
- TLSプロトコルは、ネットワーキングレイヤースタック内の信頼性の高い接続指向トランスポートTCPレイヤーの上にあります。
- TLSプロトコルのアーキテクチャは、SSLv3プロトコルに似ています。 TLS RecordプロトコルとTLS Handshakeプロトコルの2つのサブプロトコルがあります。
- SSLv3とTLSプロトコルのアーキテクチャは類似していますが、特にハンドシェイクプロトコルのアーキテクチャと機能にいくつかの変更が加えられました。
TLSプロトコルとSSLプロトコルの比較
TLSプロトコルとSSLv3プロトコルには、主に8つの違いがあります。 これらは次のとおりです-
- プロトコルバージョン-TLSプロトコルセグメントのヘッダーは、SSLプロトコルセグメントヘッダーによって運ばれる番号3を区別するためにバージョン番号3.1を運びます。
- メッセージ認証-TLSは、キー付きハッシュメッセージ認証コード(H-MAC)を使用します。 利点は、SSLプロトコルで明示的に述べられているように、MD5またはSHAだけでなく、H-MACが任意のハッシュ関数で動作することです。
- セッションキーの生成-キーマテリアルの生成には、TLSプロトコルとSSLプロトコルの間に2つの違いがあります。
- プリマスターおよびマスターシークレットの計算方法は似ています。 ただし、TLSプロトコルでは、マスターシークレットの計算では、アドホックMACの代わりにHMAC標準および擬似ランダム関数(PRF)出力が使用されます。
- セッションキーと開始値(IV)を計算するアルゴリズムは、TLSではSSLプロトコルと異なります。
- アラートプロトコルメッセージ-
- TLSプロトコルは、SSLのアラートプロトコルで使用されるすべてのメッセージをサポートしますが、「証明書なし」アラートメッセージは冗長化されます。 クライアント認証が不要な場合、クライアントは空の証明書を送信します。
- _record_overflow、decode_error_などの他のエラー条件のために、多くの追加のアラートメッセージがTLSプロトコルに含まれています。
- サポートされる暗号スイート-SSLはRSA、Diffie-Hellman、およびFortezza暗号スイートをサポートします。 TLSプロトコルは、Fortezzaを除くすべてのスーツをサポートします。
- クライアント証明書タイプ-TLSは、_certificate_request_メッセージで要求される証明書タイプを定義します。 SSLv3はこれらすべてをサポートしています。 さらに、SSLは、Fortezzaなどの他の特定の種類の証明書をサポートします。
- CertificateVerifyおよび終了したメッセージ-
- SSLでは、_certificate_verify_メッセージに複雑なメッセージプロシージャが使用されます。 TLSを使用すると、検証済みの情報がハンドシェイクメッセージ自体に含まれるため、この複雑な手順が回避されます。
- 終了したメッセージは、TLSとSSLv3でさまざまな方法で計算されます。
- データのパディング-SSLプロトコルでは、暗号化前にユーザーデータに追加されるパディングは、合計データサイズを暗号のブロック長の倍数にするために必要な最小量です。 TLSでは、パディングは、暗号のブロック長の倍数、最大255バイトまでのデータサイズになる任意の量にすることができます。
上記のTLSプロトコルとSSLv3プロトコルの違いを次の表にまとめます。
セキュアブラウジング-HTTPS
このセクションでは、安全なWebブラウジングを実行するためのSSL/TLSプロトコルの使用について説明します。
HTTPS定義
Webブラウジングには、ハイパーテキスト転送プロトコル(HTTP)プロトコルが使用されます。 HTTPSの機能はHTTPに似ています。 唯一の違いは、HTTPSが「安全な」Webブラウジングを提供することです。 HTTPSはHTTP over SSLの略です。 このプロトコルは、クライアントWebブラウザーとWebサイトサーバー間の暗号化および認証された接続を提供するために使用されます。
HTTPSを介した安全な閲覧により、次のコンテンツが暗号化されます-
- 要求されたWebページのURL。
- サーバーがユーザークライアントに提供するWebページコンテンツ。
- ユーザーが記入したフォームの内容。
- 双方向で確立されたCookie。
HTTPSの動作
HTTPSアプリケーションプロトコルは通常、2つの一般的なトランスポートレイヤーセキュリティプロトコルの1つ、SSLまたはTLSを使用します。 安全なブラウジングのプロセスは、次の点で説明されています。
- ブラウザのアドレスバーにhttps://の後にURLを入力して、WebページへのHTTPS接続を要求します。
- WebブラウザがWebサーバーへの接続を開始します。 httpsを使用すると、SSLプロトコルが使用されます。
- アプリケーション(この場合はブラウザー)は、ポート80(httpの場合に使用)の代わりにシステムポート443を使用します。
- SSLプロトコルは、前のセクションで説明したように、安全なセッションを確立するためにハンドシェイクプロトコルを通過します。
- Webサイトは最初にSSLデジタル証明書をブラウザに送信します。 証明書を検証すると、SSLハンドシェイクが進行して、セッションの共有秘密を交換します。
- 信頼されたSSLデジタル証明書がサーバーで使用されると、ユーザーはブラウザーのアドレスバーに南京錠のアイコンが表示されます。 拡張検証証明書がWebサイトにインストールされると、アドレスバーが緑色に変わります。
- 確立されると、このセッションは、Webサーバーとブラウザー間の多くの安全な接続で構成されます。
HTTPSの使用
- HTTPSを使用すると、ユーザーに機密性、サーバー認証、メッセージの整合性が提供されます。 インターネット上での電子商取引の安全な実施を可能にします。
- データが盗聴されるのを防ぎ、HTTPに対する一般的な攻撃である個人情報の盗難を拒否します。
現在のWebブラウザーとWebサーバーにはHTTPSサポートが装備されています。 ただし、HTTPS over HTTPを使用するには、暗号化とSSLハンドシェイクを実行するために、クライアントとサーバー側でより多くの計算能力が必要です。
セキュアシェルプロトコル(SSH)
SSHの顕著な特徴は次のとおりです-
- SSHは、TCP/IP層の上で実行されるネットワークプロトコルです。 リモートログオン機能の安全でない手段を提供するTELNETを置き換えるように設計されています。
- SSHは安全なクライアント/サーバー通信を提供し、ファイル転送や電子メールなどのタスクに使用できます。
- SSH2は、以前のバージョンのSSH1よりも改善されたネットワーク通信セキュリティを提供する一般的なプロトコルです。
SSH定義
SSHは3つのサブプロトコルとして構成されています。
- Transport Layer Protocol -SSHプロトコルのこの部分は、データの機密性、サーバー(ホスト)認証、およびデータの整合性を提供します。 オプションでデータ圧縮も提供できます。
- サーバー認証-ホストキーは公開/秘密キーのように非対称です。 サーバーは公開鍵を使用して、クライアントにその身元を証明します。 クライアントは、接続されたサーバーが、保持しているデータベースの「既知の」ホストであることを確認します。 サーバーが認証されると、セッションキーが生成されます。
- セッションキーの確立-認証後、サーバーとクライアントは使用する暗号について合意します。 セッションキーは、クライアントとサーバーの両方によって生成されます。 ユーザー名とパスワードを暗号化して送信できるように、ユーザー認証の前にセッションキーが生成されます。 これらのキーは通常、セッション中に定期的に(たとえば、1時間ごとに)交換され、使用後すぐに破棄されます。
- データの整合性-SSHはメッセージ認証コード(MAC)アルゴリズムを使用してデータの整合性をチェックします。 SSH1で使用される32ビットCRCよりも改善されています。
- ユーザー認証プロトコル-SSHのこの部分は、サーバーに対してユーザーを認証します。 サーバーは、アクセスが目的のユーザーのみに与えられていることを確認します。 現在、入力されたパスワード、Kerberos、公開鍵認証など、多くの認証方法が使用されています。
- 接続プロトコル-これは、単一の基盤となるSSH接続で複数の論理チャネルを提供します。
SSHサービス
SSHは、多くの安全なソリューションの提供を可能にする3つの主要なサービスを提供します。 これらのサービスは次のように簡単に説明されています-
- * Secure Command-Shell(リモートログオン)*-ユーザーは、ファイルを編集したり、ディレクトリの内容を表示したり、接続されたデバイス上のアプリケーションにアクセスしたりできます。 システム管理者は、サービスとプロセスをリモートで開始/表示/停止し、ユーザーアカウントを作成し、ファイル/ディレクトリのアクセス許可などを変更できます。 マシンのコマンドプロンプトで実行可能なすべてのタスクは、安全なリモートログオンを使用してリモートマシンから安全に実行できるようになりました。
- セキュアファイル転送-SSHファイル転送プロトコル(SFTP)は、セキュアファイル転送のためのSSH-2の拡張として設計されています。 本質的に、ファイル転送を処理するためにSecure Shellプロトコルの上に階層化された別個のプロトコルです。 SFTPは、ユーザー名/パスワードと転送されるファイルデータの両方を暗号化します。 Secure Shellサーバーと同じポート、つまり システムポート番号22。
- ポートフォワーディング(トンネリング)-保護されていないTCP/IPベースのアプリケーションからのデータを保護できます。 ポート転送が設定された後、Secure Shellはプログラム(通常はクライアント)からのトラフィックを再ルーティングし、暗号化されたトンネルを介して反対側のプログラム(通常はサーバー)に送信します。 複数のアプリケーションが単一の多重化された安全なチャネルでデータを送信できるため、ファイアウォールまたはルーターで多くのポートを開く必要がなくなります。
利点と制限
トランスポート層で通信セキュリティを採用する利点と制限は次のとおりです-
- 利点
- トランスポート層セキュリティは、アプリケーションに対して透過的です。
- サーバーが認証されます。
- アプリケーション層のヘッダーは非表示です。
- トランスポート接続レベルで機能するため、レイヤー3(IPsec)のセキュリティメカニズムよりもきめ細かいです。
- 制限事項
- TCPベースのアプリケーションにのみ適用可能(UDPではない)。
- TCP/IPヘッダーは明確です。
- クライアントとサーバー間の直接通信に適しています。 サーバーのチェーンを使用した安全なアプリケーションには対応していません(例: Eメール)
- クライアント認証はオプションであるため、SSLは否認防止を提供しません。
- 必要に応じて、SSLの上にクライアント認証を実装する必要があります。
概要
過去10年間に、インターネット上に多数のWebアプリケーションが登場しました。 多くの電子政府および電子商取引ポータルがオンラインになりました。 これらのアプリケーションでは、サーバーとクライアント間のセッションが安全であり、セッションの機密性、認証、および整合性が確保される必要があります。
ユーザーのセッション中に発生する可能性のある攻撃を軽減する1つの方法は、安全な通信プロトコルを使用することです。 この章では、このような通信プロトコルのうち2つ、SSL(Secure Sockets Layer)とTLS(Transport Layer Security)について説明します。 これらのプロトコルは両方ともトランスポート層で機能します。
TELNETを置き換えるように設計された別のトランスポート層プロトコルであるSecure Shell(SSH)は、リモートログオン機能の安全な手段を提供します。 Secure Command ShellやSFTPなどのさまざまなサービスを提供できます。
トランスポート層セキュリティの採用には多くの利点があります。 ただし、これらの層で設計されたセキュリティプロトコルはTCPでのみ使用できます。 UDPを使用して実装された通信のセキュリティは提供しません。
ネットワークセキュリティ-ネットワーク層
ネットワーク層のセキュリティ制御は、特にインターネットなどの共有ネットワーク上で、通信を保護するために頻繁に使用されています。これは、多くのアプリケーションを変更せずに一度に保護できるためです。
前の章では、多くのリアルタイムセキュリティプロトコルがネットワークセキュリティのために進化し、プライバシー、発信元認証、メッセージの整合性、否認防止などのセキュリティの基本的な原則を保証していることを説明しました。
これらのプロトコルのほとんどは、OSIプロトコルスタックの上位層に焦点を当てたままであり、標準のインターネットプロトコルに固有のセキュリティの欠如を補います。 これらのメソッドは価値がありますが、どのアプリケーションでも使用できるように簡単に一般化することはできません。 たとえば、SSLはHTTPやFTPなどのアプリケーションを保護するために特別に開発されています。 しかし、安全な通信を必要とする他のアプリケーションもいくつかあります。
このニーズにより、すべての上位層プロトコルがそれを利用できるように、IPレイヤーでセキュリティソリューションを開発する必要が生じました。 1992年、インターネット技術特別調査委員会(IETF)が標準の「IPsec」の定義を開始しました。
この章では、この非常に一般的なプロトコルIPsecのセットを使用して、ネットワーク層でセキュリティを実現する方法について説明します。
ネットワーク層のセキュリティ
ネットワークセキュリティを提供するために開発されたスキームは、次の図に示すように、プロトコルスタックの一部の層で実装する必要があります-
Layer | Communication Protocols | Security Protocols |
---|---|---|
Application Layer | HTTP FTP SMTP | PGP. S/MIME, HTTPS |
Transport Layer | TCP/UDP | SSL, TLS, SSH |
Network Layer | IP | IPsec |
ネットワーク層でセキュリティを確保するために開発された一般的なフレームワークは、インターネットプロトコルセキュリティ(IPsec)です。
IPsecの機能
- IPsecは、トランスポートプロトコルとしてTCPでのみ動作するように設計されていません。 UDPだけでなく、ICMP、OSPFなど、IPより上の他のプロトコルでも動作します。
- IPsecは、上位層ヘッダーを含むIP層に提示されるパケット全体を保護します。
- ポート番号を伝える上位層のヘッダーが隠されているため、トラフィック分析はより困難です。
- IPsecは、アプリケーションプロセス間ではなく、あるネットワークエンティティから別のネットワークエンティティに対して機能します。 したがって、個々のユーザーのコンピューター/アプリケーションを変更することなく、セキュリティを採用できます。
- IPsecはネットワークエンティティ間の安全な通信を提供するために広く使用されていますが、IPsecはホスト間セキュリティも提供できます。
- IPsecの最も一般的な使用法は、2つの場所(ゲートウェイ間)またはリモートユーザーとエンタープライズネットワーク(ホスト間)のいずれかに仮想プライベートネットワーク(VPN)を提供することです。
セキュリティ機能
IPsecによって提供される重要なセキュリティ機能は次のとおりです-
- 守秘義務
- 通信ノードがメッセージを暗号化できるようにします。
- 第三者による盗聴を防ぎます。
- オリジン認証とデータ整合性。
- 受信したパケットが、パケットヘッダーで送信元として識別されたパーティによって実際に送信されたことを保証します。
- パケットが変更されていないことを確認します。
- キー管理。
- キーの安全な交換を許可します。
- リプレイ攻撃など、特定の種類のセキュリティ攻撃に対する保護。
仮想プライベートネットワーク
理想的には、どの機関でも、セキュリティを確保するために、通信用に独自のプライベートネットワークが必要です。 ただし、地理的に分散したエリアでこのようなプライベートネットワークを確立および維持するには、非常にコストがかかる場合があります。 通信リンク、ルーター、DNSなどの複雑なインフラストラクチャを管理する必要があります。
IPsecは、そのような機関に仮想プライベートネットワーク(VPN)を実装するための簡単なメカニズムを提供します。 VPNテクノロジーにより、公共のインターネットに入る前にトラフィックを暗号化し、他のトラフィックから論理的に分離することにより、公共のインターネットを介して機関のオフィス間のトラフィックを送信できます。 VPNの簡略化された動作は、次の図に示されています-
IPsecの概要
IPsecは、IP層でセキュリティを提供するためのプロトコルのフレームワーク/スイートです。
原点
1990年代初頭、ほとんどの学術目的でインターネットが使用された機関はほとんどありませんでした。 しかし、数十年後、ネットワークの拡大と、通信やその他の目的でインターネットを使用するいくつかの組織により、インターネットの成長は急激になりました。
インターネットの大規模な成長に加えて、TCP/IPプロトコルの固有のセキュリティ上の弱点と相まって、インターネット上でネットワークセキュリティを提供できる技術の必要性が感じられました。 「インターネットアーキテクチャのセキュリティ」というタイトルのレポートは、1994年にインターネットアーキテクチャ委員会(IAB)によって発行されました。 セキュリティメカニズムの重要な領域を特定しました。
IABは、次世代IPであるIPv6に不可欠なセキュリティ機能として認証と暗号化を組み込みました。 幸いなことに、これらのセキュリティ機能は、現在のIPv4と未来のIPv6の両方で実装できるように定義されました。
セキュリティフレームワークであるIPsecは、いくつかの「コメントのリクエスト」(RFC)で定義されています。 プロトコルの一部を指定するRFCもあれば、ソリューション全体を扱うRFCもあります。
IPsec内の操作
IPsecスイートは、同時に実行された場合、2つの別個の操作を持ち、セキュリティサービスの完全なセットを提供すると見なすことができます。 これら2つの操作は、IPsec通信とインターネットキー交換です。
- IPsec通信
- 通常、標準のIPsec機能に関連付けられています。 IPデータグラムのカプセル化、暗号化、ハッシュ化、およびすべてのパケットプロセスの処理が含まれます。
- 通信パーティ間で確立された使用可能なセキュリティアソシエーション(SA)に従って通信を管理する責任があります。
- 認証ヘッダー(AH)やカプセル化されたSP(ESP)などのセキュリティプロトコルを使用します。
- IPsec通信は、キーの作成やその管理には関与しません。
- IPsec通信操作自体は、一般にIPsecと呼ばれます。
- インターネットキー交換(IKE)
- IKEは、IPsecに使用される自動キー管理プロトコルです。
- 技術的には、キー管理はIPsec通信に必須ではなく、キーは手動で管理できます。 ただし、大規模なネットワークでは手動のキー管理は望ましくありません。
- IKEは、IPsecのキーを作成し、キー確立プロセス中に認証を提供します。 IPsecは他のキー管理プロトコルに使用できますが、デフォルトではIKEが使用されます。
- IKEは、すでに定義されているキー管理フレームワークInternet Security Association Key Management Protocol(ISAKMP)で使用される2つのプロトコル(OakleyとSKEME)を定義しています。
- ISAKMPはIPsec固有ではありませんが、任意のプロトコルのSAを作成するためのフレームワークを提供します。
この章では、主に、セキュリティを実現するために使用されるIPsec通信と関連プロトコルについて説明します。
IPsec通信モード
IPsec通信には2つの機能モードがあります。トランスポートおよびトンネルモード。 これらのモードは、組み合わせて使用することも、希望する通信の種類に応じて個別に使用することもできます。
輸送モード
- IPsecは、上位層から受信したパケットをカプセル化しません。
- 元のIPヘッダーは維持され、データは上位層プロトコルによって設定された元の属性に基づいて転送されます。
- 次の図は、プロトコルスタックのデータフローを示しています。
- トランスポートモードの制限は、ゲートウェイサービスを提供できないことです。 次の図に示すように、ポイントツーポイント通信用に予約されています。
トンネルモード
- IPsecのこのモードは、他のセキュリティサービスとともにカプセル化サービスを提供します。
- トンネルモード操作では、セキュリティプロトコルを適用する前に、上位層からのパケット全体がカプセル化されます。 新しいIPヘッダーが追加されます。
- 次の図は、プロトコルスタックのデータフローを示しています。
- トンネルモードは通常、ゲートウェイアクティビティに関連付けられています。 カプセル化により、単一のゲートウェイを介して複数のセッションを送信できます。
- 一般的なトンネルモード通信は、次の図に示すとおりです。
- エンドポイントに関する限り、エンドポイントには直接トランスポート層接続があります。 ゲートウェイに転送された1つのシステムからのデータグラムはカプセル化されてから、リモートゲートウェイに転送されます。 リモート関連ゲートウェイは、データのカプセル化を解除し、内部ネットワーク上の宛先エンドポイントに転送します。
- IPsecを使用すると、ゲートウェイと個々のエンドシステム間でもトンネリングモードを確立できます。
IPsecプロトコル
IPsecは、セキュリティプロトコルを使用して、必要なセキュリティサービスを提供します。 これらのプロトコルはIPsec操作の中心であり、他のすべてはIPsecでこれらのプロトコルをサポートするように設計されています。
通信エンティティ間のセキュリティアソシエーションは、使用されるセキュリティプロトコルによって確立および維持されます。
IPsecで定義されている2つのセキュリティプロトコル—認証ヘッダー(AH)とカプセル化セキュリティペイロード(ESP)があります。
認証ヘッダー
AHプロトコルは、データの整合性とオリジン認証のサービスを提供します。 必要に応じて、メッセージの再生抵抗に対応します。 ただし、いかなる形式の機密性も提供しません。
AHは、ヘッダーの追加によりデータグラムのコンテンツのすべてまたは一部の認証を提供するプロトコルです。 ヘッダーは、データグラムの値に基づいて計算されます。 データグラムのどの部分が計算に使用され、ヘッダーを配置する場所は、モード協力(トンネルまたはトランスポート)に依存します。
AHプロトコルの操作は驚くほど簡単です。 これは、チェックサムの計算またはエラー検出のためのCRCチェックの実行に使用されるアルゴリズムと同様と見なすことができます。
AHの背後にある概念は同じです。ただし、AHは、単純なアルゴリズムを使用する代わりに、特別なハッシュアルゴリズムと通信側のみが知っている秘密キーを使用します。 これらの詳細を指定する2つのデバイス間のセキュリティアソシエーションがセットアップされます。
AHのプロセスは、次のフェーズを通過します。
- IPパケットが上位プロトコルスタックから受信されると、IPsecはパケット内の利用可能な情報から関連するセキュリティアソシエーション(SA)を決定します。たとえば、IPアドレス(送信元と宛先)。
- SAから、セキュリティプロトコルがAHであることが識別されると、AHヘッダーのパラメーターが計算されます。 AHヘッダーは次のパラメータで構成されています-
- ヘッダーフィールドは、AHヘッダーに続くパケットのプロトコルを指定します。 シーケンスパラメータインデックス(SPI)は、通信するパーティ間に存在するSAから取得されます。
- シーケンス番号が計算されて挿入されます。 これらの数値は、AHにリプレイ攻撃に抵抗するオプション機能を提供します。
- 認証データは、通信モードによって異なる方法で計算されます。
- トランスポートモードでは、認証データの計算と送信用の最終IPパケットの組み立てを次の図に示します。 元のIPヘッダーでは、AHの指定されたアプリケーションに対して51のプロトコル番号のみが変更されます。
- トンネルモードでは、次の図に示すように、上記のプロセスが実行されます。
カプセル化セキュリティプロトコル(ESP)
ESPは、機密性、整合性、発信元認証、オプションのリプレイ耐性などのセキュリティサービスを提供します。 提供されるサービスのセットは、セキュリティアソシエーション(SA)の確立時に選択されたオプションによって異なります。
ESPでは、暗号化および認証システムの生成に使用されるアルゴリズムは、SAの作成に使用される属性によって決定されます。
ESPのプロセスは次のとおりです。 最初の2つのステップは、上記のAHのプロセスに似ています。
- ESPが関与していると判断されると、ESPパケットのフィールドが計算されます。 ESPフィールドの配置を次の図に示します。
- トランスポートモードでの暗号化および認証プロセスを次の図に示します。
- トンネルモードの場合、暗号化および認証プロセスは次の図に示すとおりです。
認証と機密性はESPが提供する主要なサービスですが、どちらもオプションです。 技術的には、認証なしでNULL暗号化を使用できます。 ただし、実際には、ESPを効果的に使用するには、2つのうち1つを実装する必要があります。
基本的な概念は、認証と暗号化が必要な場合はESPを使用し、暗号化なしの拡張認証が必要な場合はAHを使用することです。
IPsecのセキュリティアソシエーション
Security Association(SA)はIPsec通信の基盤です。 SAの機能は次のとおりです-
- データを送信する前に、「Security Association(SA)」と呼ばれる仮想エンティティが送信エンティティと受信エンティティの間に確立されます。
- IPsecは、ネットワークの暗号化と認証を実行するための多くのオプションを提供します。 各IPsec接続は、暗号化、整合性、信頼性、または3つのサービスすべてを提供できます。 セキュリティサービスが決定されると、2つのIPsecピアエンティティが使用するアルゴリズムを正確に決定する必要があります(たとえば、暗号化にはDESまたは3DES、整合性にはMD5またはSHA-1)。 アルゴリズムを決定した後、2つのデバイスはセッションキーを共有する必要があります。
- SAは、IPsecセッションを構築するために2つ以上のシステム間の関係を提供する上記の通信パラメーターのセットです。
- SAは本質的に単純であるため、双方向通信には2つのSAが必要です。
- SAは、セキュリティプロトコルヘッダーに存在するセキュリティパラメータインデックス(SPI)番号によって識別されます。
- 送信エンティティと受信エンティティの両方が、SAに関する状態情報を保持します。 状態情報も保持するTCPエンドポイントに似ています。 IPsecはTCPのような接続指向です。
SAのパラメーター
すべてのSAは、次の3つのパラメータによって一意に識別されます-
- セキュリティパラメータインデックス(SPI)。
- これは、SAに割り当てられた32ビット値です。 同じ宛先で終端し、同じIPsecプロトコルを使用する異なるSAを区別するために使用されます。
- IPsecのすべてのパケットには、SPIフィールドを含むヘッダーが含まれています。 SPIは、着信パケットをSAにマップするために提供されています。
- SPIは、送信者が受信者に対してSAを識別するために生成する乱数です。
- 宛先IPアドレス-エンドルータのIPアドレスにすることができます。
- セキュリティプロトコル識別子-アソシエーションがAHまたはESP SAであるかどうかを示します。
IPsec通信に関係する2つのルーター間のSAの例を次の図に示します。
セキュリティ管理データベース
IPsecには、IPsecデータグラムの処理を制御する2つのデータベースがあります。 1つはセキュリティアソシエーションデータベース(SAD)で、もう1つはセキュリティポリシーデータベース(SPD)です。 IPsecを使用する各通信エンドポイントには、論理的に別個のSADとSPDが必要です。
セキュリティ協会データベース
IPsec通信では、エンドポイントはSA状態をSecurity Association Database(SAD)に保持します。 SADデータベースの各SAエントリには、次の表に示す9つのパラメータが含まれています-
Sr.No. | Parameters & Description |
---|---|
1 |
Sequence Number Counter アウトバウンド通信用。 これは、AHまたはESPヘッダーで提供される32ビットのシーケンス番号です。 |
2 |
Sequence Number Overflow Counter オプションフラグを設定して、特定のSAを利用したさらなる通信を防止します。 |
3 |
32-bit anti-replay window インバウンドAHまたはESPパケットがリプレイであるかどうかを判断するために使用されます |
4 |
Lifetime of the SA SAがアクティブのままになるまでの時間 |
5 |
Algorithm - AH AHおよび関連するキーで使用されます |
6 |
Algorithm - ESP Auth ESPヘッダーの認証部分で使用されます |
7 |
Algorithm - ESP Encryption ESPおよびその関連キー情報の暗号化に使用されます |
8 |
IPsec mode of operation トランスポートモードまたはトンネルモード |
9 |
Path MTU(PMTU) 観測されたパスの最大伝送単位(フラグメンテーションを回避するため) |
SADのすべてのSAエントリは、宛先IPアドレス、セキュリティプロトコル識別子、およびSPIの3つのSAパラメータによってインデックス付けされます。
セキュリティポリシーデータベース
SPDは、発信パケットの処理に使用されます。 使用するSADエントリの決定に役立ちます。 SADエントリが存在しない場合、SPDを使用して新しいエントリが作成されます。
SPDエントリには次のものが含まれます-
- SADで保持されているアクティブなSAへのポインター。
- セレクタフィールド-IPsecの適用を決定するために使用される上位層からの着信パケットのフィールド。 セレクタには、送信元アドレスと宛先アドレス、関連する場合はポート番号、アプリケーションID、プロトコルなどを含めることができます。
発信IPデータグラムはSPDエントリから特定のSAに送られ、エンコードパラメーターを取得します。 着信IPsecデータグラムは、SPI/DEST IP/Protocol Tripleを使用して正しいSAに直接到達し、そこから関連するSADエントリを抽出します。
SPDは、IPsecをバイパスするトラフィックを指定することもできます。 SPDは、SAプロセスのアクティブ化が決定されたアクションであるパケットフィルターと見なすことができます。
概要
IPsecは、ネットワーク接続を保護するためのプロトコルスイートです。 特定の暗号化アルゴリズムと認証機能の単純な定義を提供する代わりに、両方の通信端が同意するものを実装できるフレームワークを提供するため、かなり複雑なメカニズムです。
認証ヘッダー(AH)とカプセル化セキュリティペイロード(ESP)は、IPsecで使用される2つの主要な通信プロトコルです。 AHは認証のみを行いますが、ESPは接続を介して送信されるデータを暗号化および認証できます。
トランスポートモードは、IPヘッダーを変更せずに2つのエンドポイント間の安全な接続を提供します。 トンネルモードは、ペイロードIPパケット全体をカプセル化します。 新しいIPヘッダーが追加されます。 後者は、信頼できないインターネット上に仮想の安全なトンネルを提供するため、従来のVPNの形成に使用されます。
IPsec接続のセットアップには、あらゆる種類の暗号の選択が含まれます。 認証は通常、MD5やSHA-1などの暗号化ハッシュの上に構築されます。 暗号化アルゴリズムは、DES、3DES、Blowfish、およびAESが一般的です。 他のアルゴリズムも可能です。
通信するエンドポイントは両方とも、ハッシュまたは暗号化で使用される秘密の値を知る必要があります。 手動キーは、おそらく何らかの帯域外メカニズムによって伝えられる両端の秘密値の手動入力を必要とし、IKE(インターネットキーエクスチェンジ)はこれをオンラインで行うための洗練されたメカニズムです。
ネットワークセキュリティ-データリンク層
インターネットの急速な成長により、ネットワークセキュリティに対する大きな懸念が高まっていることがわかりました。 ネットワークのアプリケーション、トランスポート、またはネットワーク層でセキュリティを提供するために、いくつかの方法が開発されました。
多くの組織は、アプリケーション層からIP層まで、より高いOSI層にセキュリティ対策を組み込んでいます。 ただし、一般的に放置されている領域の1つは、データリンクレイヤーの強化です。 これにより、ネットワークがさまざまな攻撃や侵害にさらされる可能性があります。
この章では、Data Link Layerのセキュリティ問題とそれらに対処する方法について説明します。 私たちの議論はイーサネットネットワークに焦点を合わせます。
データリンク層のセキュリティ上の懸念
イーサネットネットワークのデータリンク層は、いくつかの攻撃を受けやすい傾向があります。 最も一般的な攻撃は-
ARPスプーフィング
アドレス解決プロトコル(ARP)は、IPアドレスをローカルイーサネットで認識可能な物理マシンアドレスにマップするために使用されるプロトコルです。 ホストマシンは、IPアドレスの物理的なメディアアクセス制御(MAC)アドレスを見つける必要がある場合、ARP要求をブロードキャストします。 IPアドレスを所有する他のホストは、その物理アドレスとともにARP応答メッセージを送信します。
ネットワーク上の各ホストマシンは、「ARPキャッシュ」と呼ばれるテーブルを保持しています。 このテーブルには、ネットワーク上の他のホストのIPアドレスと関連MACアドレスが保持されます。
ARPはステートレスプロトコルであるため、ホストがARP要求を送信していない場合でも、ホストが別のホストからARP応答を受信するたびに、そのARPエントリを受け入れ、ARPキャッシュを更新します。 ARPポイズニングまたはARPスプーフィングと呼ばれる偽造エントリを使用して、ターゲットホストのARPキャッシュを変更するプロセス。
ARPスプーフィングにより、攻撃者は正当なホストになりすまして、ネットワーク上のデータフレームを傍受し、それらを変更または停止することができます。 多くの場合、この攻撃は、中間者攻撃、セッションハイジャック、サービス拒否などの他の攻撃を開始するために使用されます。
MACフラッディング
イーサネットのすべてのスイッチには、MACアドレス、スイッチポート番号、およびその他の情報を格納するContent-Addressable Memory(CAM)テーブルがあります。 テーブルのサイズは固定されています。 MACフラッディング攻撃では、攻撃者は、CAMテーブルがいっぱいになるまで、偽造ARPパケットを使用してMACアドレスでスイッチをフラッディングします。
CAMがフラッディングされると、スイッチはハブのようなモードになり、CAMエントリのないトラフィックのブロードキャストを開始します。 同じネットワーク上にいる攻撃者は、特定のホストのみを宛先としたすべてのフレームを受信するようになりました。
ポートスティーリング
イーサネットスイッチには、MACアドレスを学習してポートにバインドする機能があります。 スイッチは、MAC送信元アドレスを持つポートからトラフィックを受信すると、ポート番号とそのMACアドレスをバインドします。
ポートを盗む攻撃は、スイッチのこの機能を悪用します。 攻撃者は、ターゲットホストのMACアドレスをソースアドレスとして偽造されたARPフレームでスイッチをフラッディングします。 スイッチは、ターゲットホストが実際に攻撃者が接続しているポート上にあると信じるようにだまされます。
これで、ターゲットホストを対象としたすべてのデータフレームが、ターゲットホストではなく攻撃者のスイッチポートに送信されます。 したがって、攻撃者は、実際にはターゲットホストのみに宛てられたすべてのフレームを受信します。
DHCP攻撃
動的ホスト構成プロトコル(DHCP)はデータリンクプロトコルではありませんが、DHCP攻撃のソリューションはレイヤー2攻撃を阻止するのにも役立ちます。
DHCPは、特定の期間、コンピューターにIPアドレスを動的に割り当てるために使用されます。 ネットワークでサービス拒否を引き起こすか、DHCPサーバーになりすますことにより、DHCPサーバーを攻撃することができます。 DHCP枯渇攻撃では、攻撃者は利用可能なすべてのDHCPアドレスを要求します。 これにより、ネットワーク上の正当なホストへのサービス拒否が発生します。
DHCPスプーフィング攻撃では、攻撃者は不正なDHCPサーバーを展開して、クライアントにアドレスを提供できます。 ここで、攻撃者はホストマシンにDHCP応答を備えた堅牢なデフォルトゲートウェイを提供できます。 ホストからのデータフレームは、現在、攻撃者がすべてのパッケージをインターセプトし、実際のゲートウェイに応答するか、ドロップすることができるルージュゲートウェイに導かれます。
その他の攻撃
上記の一般的な攻撃に加えて、レイヤー2ベースのブロードキャスト、サービス拒否(DoS)、MACクローニングなどの他の攻撃があります。
ブロードキャスト攻撃では、攻撃者はスプーフィングされたARP応答をネットワーク上のホストに送信します。 これらのARP応答は、デフォルトゲートウェイのMACアドレスをブロードキャストアドレスに設定します。 これにより、すべてのアウトバウンドトラフィックがブロードキャストされ、同じイーサネット上にいる攻撃者によるスニッフィングが可能になります。 このタイプの攻撃は、ネットワーク容量にも影響します。
レイヤー2ベースのDoS攻撃では、攻撃者はネットワーク内のホストのARPキャッシュを存在しないMACアドレスで更新します。 ネットワーク内の各ネットワークインターフェイスカードのMACアドレスは、グローバルに一意であると想定されています。 ただし、MACクローニングを有効にすることで簡単に変更できます。 攻撃者は、DoS攻撃によってターゲットホストを無効にし、ターゲットホストのIPアドレスとMACアドレスを使用します。
攻撃者は攻撃を実行して、ネットワーク上を移動する情報のセキュリティを危険にさらすために、より高いレベルの攻撃を開始します。 彼はすべてのフレームを傍受でき、フレームデータを読み取ることができます。 攻撃者は中間者として行動し、データを変更したり、DoSにつながるフレームを単にドロップしたりできます。 彼は、ターゲットホストと他のマシンとの間の進行中のセッションをハイジャックし、間違った情報をすべて伝えることができます。
イーサネットLANの保護
前のセクションで、Data Link Layerで広く知られているいくつかの攻撃について説明しました。 これらのタイプの攻撃を軽減するために、いくつかの方法が開発されました。 重要な方法のいくつかは-
ポートセキュリティ
これは、インテリジェントイーサネットスイッチで使用可能なレイヤー2セキュリティ機能です。 これには、スイッチの物理ポートを特定のMACアドレスに関連付けることが含まれます。 ホストを利用可能なスイッチポートの1つに接続するだけで、誰でも安全でないネットワークにアクセスできます。 ただし、ポートセキュリティはレイヤ2アクセスを保護できます。
デフォルトでは、ポートセキュリティは入力MACアドレスカウントを1に制限します。 ただし、複数の許可されたホストが構成を介してそのポートから接続できるようにすることは可能です。 インターフェイスごとに許可されるMACアドレスは、静的に構成できます。 便利な代替方法は、ポートの最大制限に達するまでスイッチポートがMACアドレスを動的に学習する「スティッキー」MACアドレス学習を有効にすることです。
セキュリティを確保するために、ポート上の指定されたMACアドレスの変更またはポート上の過剰なアドレスへの反応は、さまざまな方法で制御できます。 ポートは、指定された制限を超えるMACアドレスをシャットダウンまたはブロックするように構成できます。 推奨されるベストプラクティスは、ポートをシャットダウンすることです。 ポートセキュリティは、MACフラッディングおよびクローン攻撃を防ぎます。
DHCPスヌーピング
DHCPスプーフィングは、攻撃者がネットワーク上のホストからのDHCP要求をリッスンし、承認されたDHCP応答がホストに届く前に偽のDHCP応答で応答する攻撃であることがわかりました。
DHCPスヌーピングは、このような攻撃を防ぐことができます。 DHCPスヌーピングはスイッチ機能です。 スイッチは、どのスイッチポートがDHCP要求に応答できるかを決定するように構成できます。 スイッチポートは、信頼できるポートまたは信頼できないポートとして識別されます。
承認されたDHCPサーバーに接続するポートのみが「信頼済み」として構成され、すべてのタイプのDHCPメッセージの送信が許可されます。 スイッチ上の他のすべてのポートは信頼されておらず、DHCP要求のみを送信できます。 DHCP応答が信頼できないポートで見られる場合、ポートはシャットダウンされます。
ARPスプーフィングの防止
ポートセキュリティの方法により、MACフラッディングおよびクローン攻撃を防ぐことができます。 ただし、ARPスプーフィングは防止されません。 ポートセキュリティはフレームヘッダーのMAC送信元アドレスを検証しますが、ARPフレームにはデータペイロードに追加のMAC送信元フィールドが含まれており、ホストはこのフィールドを使用してARPキャッシュに入力します。 ARPスプーフィングを防止するいくつかの方法を以下にリストします。
- *静的ARP *-推奨されるアクションの1つは、ホストARPテーブルで静的ARPエントリを使用することです。 静的ARPエントリは、ARPキャッシュ内の永続的なエントリです。 ただし、この方法は実用的ではありません。 また、静的IPをレイヤー2ネットワーク内のすべてのホストに使用する必要があるため、一部の動的ホスト構成プロトコル(DHCP)の使用を許可しません。
- 侵入検知システム-防御方法は、大量のARPトラフィックを検出するように構成された侵入検知システム(IDS)を利用することです。 ただし、IDSは誤検知を報告する傾向があります。
- ダイナミックARPインスペクション-ARPスプーフィングを防ぐこの方法は、DHCPスヌーピングに似ています。 信頼できるポートと信頼できないポートを使用します。 ARP応答は、信頼できるポートでのみスイッチインターフェイスに許可されます。 信頼できないポートのスイッチにARP応答が届くと、ARP応答パケットの内容がDHCPバインディングテーブルと比較され、その正確性が検証されます。 ARP応答が無効な場合、ARP応答はドロップされ、ポートは無効になります。
スパニングツリープロトコルの保護
スパニングツリープロトコル(STP)は、レイヤー2リンク管理プロトコルです。 STPの主な目的は、ネットワークに冗長パスがある場合にデータフローループが発生しないようにすることです。 通常、冗長パスは、ネットワークに信頼性を提供するために構築されます。 しかし、それらは致命的なループを形成し、ネットワークでDoS攻撃を引き起こす可能性があります。
スパニングツリープロトコル
目的のパスの冗長性を提供し、ループ状態を回避するために、STPはネットワーク内のすべてのスイッチにまたがるツリーを定義します。 STPは、特定の冗長データリンクを強制的にブロック状態にし、他のリンクを転送状態に保ちます。
フォワーディングステートのリンクが故障した場合、STPはネットワークを再構成し、適切なスタンバイパスをアクティブにしてデータパスを再定義します。 STPは、ネットワークに配置されたブリッジとスイッチで実行されます。 すべてのスイッチは、ルートスイッチの選択およびその後のネットワークの構成に関する情報を交換します。 ブリッジプロトコルデータユニット(BPDU)は、この情報を伝達します。 BPDUの交換により、ネットワーク内のすべてのスイッチがルートブリッジ/スイッチを選択し、これがネットワーク内のフォーカルポイントになり、ブロックおよび転送されたリンクを制御します。
STPへの攻撃
- ルートブリッジを引き継ぐ。 これは、レイヤー2で最も破壊的なタイプの攻撃の1つです。 デフォルトでは、LANスイッチは額面価格で隣接スイッチから送信されたBPDUを取得します。 ちなみに、STPは信頼性が高く、ステートレスであり、音声認証メカニズムを提供しません。
- ルート攻撃モードになると、攻撃スイッチは現在のルートブリッジと同じ優先順位で2秒ごとにBPDUを送信しますが、MACアドレスがわずかに低いため、ルートブリッジ選択プロセスでの勝利を保証します。 攻撃者のスイッチは、BPDUフラッディングを引き起こしている他のスイッチを適切に確認しないか、スイッチを一度にルートであると主張してすぐに撤回することにより、BPDUを過剰処理することにより、DoS攻撃を開始できます。
- 構成BPDUのフラッドを使用したDoS。 攻撃しているスイッチはルートとして引き継ぐことを試みません。 代わりに、1秒間に多数のBPDUが生成され、スイッチでのCPU使用率が非常に高くなります。
STPへの攻撃の防止
幸いなことに、ルートテイクオーバー攻撃への対策はシンプルで簡単です。 ルートテイクオーバー攻撃を阻止するには、2つの機能が役立ちます。
- ルートガード-ルートガードは、ルートブリッジをネゴシエートできるスイッチポートを制限します。 「ルートガード対応」ポートが、現在のルートブリッジが送信しているものよりも優れたBPDUを受信した場合、そのポートはルート不整合状態に移行し、そのポートを介してデータトラフィックは転送されません。 ルートガードは、ルートブリッジとして引き継ぐことを期待されていないスイッチに接続するポートに対して最適に展開されます。
- BPDU-Guard -BPDUガードは、アクセスポートでのBPDUの受信によって引き起こされる可能性のある問題からネットワークを保護するために使用されます。 これらは、それらを受信してはならないポートです。 BPDUガードは、攻撃者による不正なスイッチの挿入を防ぐために、ユーザー向けのポートに最適に展開されます。
仮想LANの保護
ローカルネットワークでは、レイヤー2攻撃を受けやすいホストの数を制限するセキュリティ対策として、仮想ローカルエリアネットワーク(VLAN)が構成されている場合があります。 VLANは、ブロードキャスト(ARP、DHCP)トラフィックが通過できないネットワーク境界を作成します。
仮想ローカルエリアネットワーク
VLAN機能をサポートするスイッチを使用するネットワークは、単一の物理LANインフラストラクチャ上で複数のVLANを定義するように構成できます。
VLANの一般的な形式は、ポートベースのVLANです。 このVLAN構造では、スイッチ管理ソフトウェアを使用して、スイッチポートがVLANにグループ化されます。 したがって、単一の物理スイッチが複数の仮想スイッチとして機能できます。
VLANを使用すると、トラフィックが分離されます。 大規模なブロードキャストレイヤー2ネットワークをより小さな論理レイヤー2ネットワークに分割し、ARP/DHCPスプーフィングなどの攻撃の範囲を減らします。 1つのVLANのデータフレームは、同じVLANに属するポート内のみで移動できます。 2つのVLAN間のフレーム転送は、ルーティングを介して行われます。
VLANは通常、上の図に示すように複数のスイッチにまたがっています。 トランクポート間のリンクは、複数の物理スイッチで定義されたすべてのVLANのフレームを伝送します。 したがって、スイッチ間で転送されるVLANフレームは、単純なIEEE 802.1イーサネット形式のフレームにすることはできません。 これらのフレームは同じ物理リンク上を移動するため、VLAN ID情報を伝送する必要があります。 IEEE 802.1Qプロトコルは、トランクポート間で転送されるプレーンイーサネットフレームに追加のヘッダーフィールドを追加/削除します。
2つのIPアドレスフィールドに続くフィールドが0x8100(> 1500)の場合、フレームは802.1Qフレームとして識別されます。 2バイトのTag Protocol Identifier(TPI)の値は81-00です。 TCIフィールドは、3ビットの優先度情報、1ビットのドロップ適格インジケータ(DEI)、および12ビットのVLAN IDで構成されています。 この3ビットの優先度フィールドとDEIフィールドは、VLANには関係ありません。 優先ビットは、サービス品質の提供に使用されます。
フレームがどのVLANにも属していない場合、フレームが関連付けられていると見なされるデフォルトのVLAN IDがあります。
VLANへの攻撃と防止策
VLANホッピング攻撃では、あるVLANの攻撃者が、通常はアクセスできない他のVLANのトラフィックにアクセスできます。 1つのVLANから別のVLANへの通信時にレイヤー3デバイス(ルーター)をバイパスし、VLAN作成の目的を無効にします。
VLANホッピングは2つの方法で実行できます。なりすましと二重タグ付けを切り替えます。
スイッチのなりすまし
攻撃者が接続しているスイッチポートが「トランキング」モードまたは「オートネゴシエーション」モードのいずれかである場合に発生する可能性があります。 攻撃者はスイッチとして動作し、ターゲットリモートVLANのVLANタグを含む802.1Qカプセル化ヘッダーを発信フレームに追加します。 受信スイッチは、これらのフレームを別の802.1Qスイッチから送信されたものとして解釈し、フレームをターゲットVLANに転送します。
スイッチスプーフィング攻撃に対する2つの予防策は、エッジポートを静的アクセスモードに設定し、すべてのポートでオートネゴシエーションを無効にすることです。
ダブルタギング
この攻撃では、スイッチのネイティブVLANポートに接続された攻撃者がフレームヘッダーに2つのVLANタグを付加します。 最初のタグはネイティブVLANのもので、2番目はターゲットVLAN用です。 最初のスイッチは攻撃者のフレームを受信すると、ネイティブVLANのフレームがタグなしでトランクポートに転送されるため、最初のタグを削除します。
- 2番目のタグは最初のスイッチによって削除されなかったため、受信スイッチは残りのタグをVLAN宛先として識別し、そのVLANのターゲットホストにフレームを転送します。 ダブルタグ攻撃は、ネイティブVLANの概念を利用します。 VLAN 1はアクセスポートのデフォルトVLANおよびトランクのデフォルトネイティブVLANであるため、簡単なターゲットです。
- 最初の防止策は、攻撃者のポートがスイッチのネイティブVLANのポートと一致する必要があるため、デフォルトVLAN 1からすべてのアクセスポートを削除することです。 2番目の防止策は、すべてのスイッチトランク上のネイティブVLANを未使用のVLAN、たとえばVLAN id 999に割り当てることです。 そして最後に、すべてのスイッチは、トランクポートでネイティブVLANフレームの明示的なタグ付けを実行するように構成されます。
ワイヤレスLANの保護
ワイヤレスローカルエリアネットワークは、オフィスビルや学校のキャンパスなど、限られた地理的領域内のワイヤレスノードのネットワークです。 ノードは無線通信が可能です。
無線LAN
ワイヤレスLANは通常、既存の有線LANの拡張として実装され、ネットワークアクセスにデバイスモビリティを提供します。 最も広く実装されているワイヤレスLANテクノロジーは、IEEE 802.11標準とその修正に基づいています。
ワイヤレスLANの2つの主要なコンポーネントは-
- アクセスポイント(AP)-これらはワイヤレスネットワークのベースステーションです。 無線周波数を送受信して、無線クライアントと通信します。
- ワイヤレスクライアント-これらは、ワイヤレスネットワークインターフェイスカード(WNIC)を備えたコンピューティングデバイスです。 ラップトップ、IP電話、PDAは、ワイヤレスクライアントの典型的な例です。
多くの組織が無線LANを実装しています。 これらのネットワークは驚異的に成長しています。 したがって、無線LANの脅威を理解し、ネットワークセキュリティを確保するための一般的な予防策を学ぶことが重要です。
ワイヤレスLANの攻撃
ワイヤレスLANで実行される典型的な攻撃は次のとおりです-
- 盗聴-攻撃者は、認証資格情報を含むデータのワイヤレスネットワークを受動的に監視します。
- マスカレード-攻撃者は承認されたユーザーになりすまし、ワイヤレスネットワークでアクセスおよび権限を取得します。
- トラフィック分析-攻撃者は、無線ネットワーク経由の送信を監視して、通信パターンと参加者を特定します。
- サービス拒否-攻撃者は、無線LANまたはネットワークデバイスの通常の使用または管理を防止または制限します。
- メッセージの変更/リプレイ-攻撃者は、ワイヤレスネットワーク経由で送信された正当なメッセージを削除、追加、変更、または並べ替えることにより、変更または返信します。
ワイヤレスLANのセキュリティ対策
セキュリティ対策は、攻撃を打ち負かし、ネットワークへのリスクを管理する手段を提供します。 これらは、ネットワーク管理、運用、および技術的手段です。 以下では、無線LANを介して送信されるデータの機密性、可用性、および整合性を確保するために採用された技術的対策について説明します。
ワイヤレスLANでは、すべてのAPは、暗号化とクライアント認証を通じてセキュリティを提供するように構成する必要があります。 セキュリティを提供するために無線LANで使用されるスキームのタイプは次のとおりです-
Wired Equivalent Privacy(WEP)
これは、ワイヤレスネットワークを保護するために802.11標準に組み込まれた暗号化アルゴリズムです。 WEP暗号化は、40ビット/104ビットキーと24ビット初期化ベクトルを備えたRC4(Rivest Cipher 4)ストリーム暗号を使用します。 エンドポイント認証も提供できます。
ただし、WEP暗号化には多くの欠陥が発見されているため、これは最も弱い暗号化セキュリティメカニズムです。 WEPには認証プロトコルもありません。 したがって、WEPを使用することは強くお勧めしません。
802.11iプロトコル
このプロトコルでは、多数の強力な形式の暗号化が可能です。 弱いWEPスキームを置き換えるために開発されました。 キー配布メカニズムを提供します。 ステーションごとに1つのキーをサポートし、すべてに同じキーを使用するわけではありません。 アクセスポイントとは別の認証サーバーを使用します。
IEEE802.11iでは、CBC-MACプロトコル(CCMP)を備えたカウンターモードというプロトコルの使用が義務付けられています。 CCMPは、転送されるデータの機密性と整合性、および送信者の信頼性を提供します。 これは、Advanced Encryption Standard(AES)ブロック暗号に基づいています。
IEEE802.11iプロトコルには4つの動作フェーズがあります。
- STAとAPは通信し、サポートされているアルゴリズムなどの相互セキュリティ機能を発見します。
- STAとASは相互に認証し、一緒にマスターキー(MK)を生成します。 APは「パススルー」として機能します。
- STAは、ペアワイズマスターキー(PMK)を導出します。 ASは同じPMKを取得し、APに送信します。
- STA、APはPMKを使用して、メッセージの暗号化とデータの整合性に使用される一時キー(TK)を導出します。
その他の規格
- Wi-Fi Protected Access (WPA)-このプロトコルは、IEEE 802.11i標準の大部分を実装しています。 IEEE 802.11iより前に存在し、暗号化にRC4アルゴリズムを使用します。 2つの動作モードがあります。 「エンタープライズ」モードでは、WPAは認証プロトコル802.1xを使用して認証サーバーと通信するため、プリマスターキー(PMK)はクライアントステーションに固有です。 「パーソナル」モードでは、802.1xは使用されません。PMKは、スモールオフィスホームオフィス(SOHO)ワイヤレスLAN環境で使用される事前共有キーに置き換えられます。 + WPAには、WEP標準で使用されていた巡回冗長検査(CRC)に代わるサウンドメッセージ整合性検査も含まれています。
- WPA2 -WPA2はWPAを置き換えました。 WPA2は、IEEE 802.11iスキームのすべての必須要素を実装しています。 特に、強力なセキュリティを備えたAESベースの暗号化モードであるCCMPの必須サポートが含まれています。 したがって、攻撃に関する限り、WPA2/IEEE802.11iは、WEPの弱点、中間者攻撃、偽造パケット偽造、およびリプレイ攻撃を防ぐための適切なソリューションを提供します。 ただし、DoS攻撃は適切に対処されておらず、基本的にそのような攻撃は周波数帯域を妨害するような物理層を標的とするため、そのような攻撃を阻止する強固なプロトコルはありません。
概要
この章では、IPを実行するスイッチドイーサネットネットワークを想定した攻撃と軽減の手法について検討しました。 ネットワークがレイヤー2プロトコルとしてイーサネットを使用していない場合、これらの攻撃の一部は適用できない可能性がありますが、そのようなネットワークはさまざまな種類の攻撃に対して脆弱である可能性があります。
セキュリティは、最も弱いリンクと同じくらい強力です。 ネットワーキングに関しては、レイヤー2は非常に弱いリンクになる可能性があります。 この章で説明するレイヤー2のセキュリティ対策は、多くの種類の攻撃からネットワークを保護するのに役立ちます。
ネットワークセキュリティ-アクセス制御
ネットワークアクセス制御は、ネットワークリソースの可用性を組織のセキュリティポリシーに準拠するエンドポイントデバイスに制限することにより、組織のプライベートネットワークのセキュリティを強化する方法です。 典型的なネットワークアクセス制御スキームは、制限付きアクセスやネットワーク境界保護などの2つの主要なコンポーネントで構成されています。
ネットワークデバイスへのアクセス制限は、ネットワークシステムに対するさまざまなユーザーの識別と認証を行うユーザー認証と承認制御によって実現されます。 承認は、保護されたリソースへの特定のアクセス許可を付与または拒否するプロセスです。
- ネットワーク境界保護*は、ネットワークの内外への論理的な接続を制御します。 たとえば、複数のファイアウォールを展開して、ネットワークシステムへの不正アクセスを防止できます。 また、侵入検知および防止技術を展開して、インターネットからの攻撃を防御できます。
この章では、さまざまな種類のファイアウォールと侵入検知システムが続くネットワークアクセスのユーザー識別と認証の方法について説明します。
ネットワークデバイスへのアクセスの保護
ネットワーク上のデバイスへのアクセスを制限することは、ネットワークを保護するための非常に重要な手順です。 ネットワークデバイスは通信とコンピューティング機器で構成されているため、これらのセキュリティを侵害すると、ネットワーク全体とそのリソースがダウンする可能性があります。
逆説的に、多くの組織はサーバーとアプリケーションの優れたセキュリティを確保していますが、ネットワークデバイスの通信には基本的なセキュリティを残しています。
ネットワークデバイスセキュリティの重要な側面は、アクセス制御と承認です。 これらの2つの要件に対処し、ネットワークセキュリティをより高いレベルに強化するために、多くのプロトコルが開発されています。
ユーザー認証と承認
ユーザー認証は、ネットワークシステム、特にネットワークインフラストラクチャデバイスへのアクセスを制御するために必要です。 認証には、一般アクセス認証と機能許可の2つの側面があります。
一般アクセス認証は、特定のユーザーが接続しようとしているシステムへの「任意の」タイプのアクセス権を持っているかどうかを制御する方法です。 通常、この種のアクセスは、そのシステムに「アカウント」を持っているユーザーに関連付けられています。 承認は、個々のユーザーの「権利」を扱います。 たとえば、ユーザーが認証されると何ができるかを決定します。ユーザーは、デバイスの構成またはデータの表示のみを許可される場合があります。
ユーザー認証は、自分が知っているもの(パスワード)、持っているもの(暗号化トークン)、または自分のもの(生体認証)を含む要因に依存します。 識別と認証に複数の要素を使用すると、多要素認証の基礎が提供されます。
パスワードベースの認証
最低でも、すべてのネットワークデバイスにユーザー名とパスワードの認証が必要です。 パスワードは重要なものでなければなりません(少なくとも10文字、アルファベット、数字、記号が混在している)。
ユーザーによるリモートアクセスの場合、ネットワークを介してユーザー名とパスワードが平文で渡されないようにする方法を使用する必要があります。 また、パスワードもある程度の頻度で変更する必要があります。
集中認証方法
個々のデバイスベースの認証システムは、基本的なアクセス制御手段を提供します。 ただし、ネットワークに多数のデバイスがあり、これらのデバイスに多数のユーザーがアクセスしている場合、集中認証方式はより効果的かつ効率的であると見なされます。
従来、集中型認証は、リモートネットワークアクセスで直面する問題を解決するために使用されていました。 リモートアクセスシステム(RAS)では、ネットワークデバイス上のユーザーの管理は実用的ではありません。 すべてのデバイスにすべてのユーザー情報を配置し、その情報を最新の状態に保つことは、管理上の悪夢です。
RADIUSやKerberosなどの一元化された認証システムは、この問題を解決します。 これらの一元化された方法により、ユーザー情報を1か所に保存および管理できます。 これらのシステムは通常、MicrosoftのActive DirectoryやLDAPディレクトリなどの他のユーザーアカウント管理スキームとシームレスに統合できます。 ほとんどのRADIUSサーバーは、通常のRADIUSプロトコルで他のネットワークデバイスと通信し、ディレクトリに保存されているアカウント情報に安全にアクセスできます。
たとえば、Microsoftのインターネット認証サーバー(IAS)は、RADIUSとActive Directoryをブリッジして、デバイスのユーザーに集中認証を提供します。 また、ユーザーアカウント情報がMicrosoftドメインアカウントと統合されるようにします。 上記の図は、Active Directoryドメインへの認証を行うネットワーク要素のActive DirectoryサーバーとRADIUSサーバーの両方として動作するWindowsドメインコントローラを示しています。
アクセス制御リスト
多くのネットワークデバイスには、アクセスリストを設定できます。 これらのリストは、デバイスへのアクセスが許可されているホスト名またはIPアドレスを定義します。 たとえば、ネットワーク管理者以外のIPからネットワーク機器へのアクセスを制限するのが一般的です。
これにより、不正なアクセスの種類から保護されます。 これらのタイプのアクセスリストは、重要な最後の防御として機能し、アクセスプロトコルごとに異なるルールを持つ一部のデバイスでは非常に強力です。
ネットワークセキュリティ-ファイアウォール
ほとんどすべての中規模および大規模組織はインターネット上に存在し、それに接続された組織ネットワークを持っています。 外部インターネットと内部ネットワークの境界でのネットワークパーティションは、ネットワークセキュリティにとって不可欠です。 内部ネットワーク(イントラネット)は「信頼される」側と呼ばれ、外部インターネットは「信頼されない」側と呼ばれることがあります。
ファイアウォールの種類
ファイアウォールは、組織の内部ネットワークを大規模な外部ネットワーク/インターネットから隔離するネットワークデバイスです。 内部ネットワークへの、または内部ネットワークからの不正アクセスを防止するハードウェア、ソフトウェア、または複合システムにすることができます。
内部ネットワークに出入りするすべてのデータパケットはファイアウォールを通過します。ファイアウォールは各パケットを検査し、指定されたセキュリティ基準を満たさないパケットをブロックします。
ネットワーク境界にファイアウォールを展開することは、単一のポイントでセキュリティを集約するようなものです。 これは、必ずしも各ドアでなくても、入り口でアパートをロックすることに似ています。
ファイアウォールは、次の理由でネットワークセキュリティを実現するために不可欠な要素と見なされます-
- 内部ネットワークとホストが適切に保護されることはほとんどありません。
- インターネットは、犯罪者、競合企業のユーザー、不満を抱いた元従業員、非友好国のスパイ、破壊者などがいる危険な場所です。
- 攻撃者がネットワークリソースに対してサービス拒否攻撃を仕掛けることを防ぐため。
- 外部の攻撃者による内部データへの不正な変更/アクセスを防ぐため。
ファイアウォールは3つの基本的なタイプに分類されます-
- パケットフィルター(ステートレスおよびステートフル)
- アプリケーションレベルのゲートウェイ
- 回線レベルのゲートウェイ
ただし、これら3つのカテゴリは相互に排他的ではありません。 最近のファイアウォールには、3つのカテゴリのうち2つ以上に分類される可能性のある機能が混在しています。
ステートレスおよびステートフルパケットフィルタリングファイアウォール
このタイプのファイアウォールの展開では、内部ネットワークはルーターファイアウォールを介して外部ネットワーク/インターネットに接続されます。 ファイアウォールは、パケットごとにデータを検査およびフィルタリングします。
- パケットフィルタリングファイアウォール*は、主に送信元および/または宛先IPアドレス、プロトコル、送信元および/または宛先ポート番号、およびIPヘッダー内の他のさまざまなパラメータなどの基準に基づいてパケットを許可またはブロックします。
決定は、ICMPメッセージタイプ、TCP SYN、ACKビットなど、IPヘッダーフィールド以外の要因に基づいて行うことができます。
パケットフィルタルールには2つの部分があります-
- 選択基準-意思決定の条件およびパターンマッチングとして使用されます。
- アクションフィールド-この部分は、IPパケットが選択基準を満たす場合に実行するアクションを指定します。 アクションは、ファイアウォールを通過するパケットのブロック(拒否)または許可(許可)のいずれかです。
通常、パケットフィルタリングは、ルーターまたはスイッチでアクセス制御リスト(ACL)を構成することによって実現されます。 ACLは、パケットフィルタルールの表です。
トラフィックがインターフェイスに出入りするとき、ファイアウォールは各着信パケットに上から下へACLを適用し、一致基準を見つけて個々のパケットを許可または拒否します。
- ステートレスファイアウォール*は一種の厳格なツールです。 パケットを調べて、確立された進行中の通信の一部ではない場合でも、基準を満たしている場合は許可します。
そのため、このようなファイアウォールは、最新のネットワークでは「ステートフルファイアウォール」に置き換えられています。 このタイプのファイアウォールは、ステートレスファイアウォールの唯一のACLベースのパケット検査方法よりも詳細な検査方法を提供します。
ステートフルファイアウォールは、接続のセットアップとティアダウンプロセスを監視して、TCP/IPレベルで接続のチェックを続けます。 これにより、接続状態を追跡し、特定の時点でどのホストがオープンで許可された接続を持っているかを判断できます。
新しい接続が要求された場合にのみ、ルールベースを参照します。 既存の接続に属するパケットは、ファイアウォールの開いている接続の状態テーブルと比較され、許可またはブロックの決定が行われます。 このプロセスは時間を節約し、同様に追加のセキュリティを提供します。 既に確立された接続に属していない限り、パケットはファイアウォールを侵害できません。 ファイアウォールで非アクティブな接続をタイムアウトした後、その接続のパケットを許可しなくなります。
アプリケーションゲートウェイ
アプリケーションレベルのゲートウェイは、アプリケーションレベルのトラフィックの中継ノードとして機能します。 送受信パケットをインターセプトし、ゲートウェイを介して情報をコピーおよび転送するプロキシを実行し、 _ proxy server_ として機能して、信頼できるサーバーまたはクライアントと信頼できないホスト間の直接接続を防ぎます。
プロキシはアプリケーション固有です。 OSIモデルのアプリケーション層でパケットをフィルタリングできます。
アプリケーション固有のプロキシ
アプリケーション固有のプロキシは、コピー、転送、およびフィルタリングするように設計されている特定のアプリケーションによってのみ生成されたパケットを受け入れます。 たとえば、TelnetプロキシのみがTelnetトラフィックをコピー、転送、およびフィルタリングできます。
ネットワークがアプリケーションレベルのゲートウェイのみに依存している場合、着信パケットと発信パケットは、プロキシが構成されていないサービスにアクセスできません。 たとえば、ゲートウェイがFTPおよびTelnetプロキシを実行している場合、これらのサービスによって生成されたパケットのみがファイアウォールを通過できます。 他のすべてのサービスはブロックされます。
アプリケーションレベルのフィルタリング
アプリケーションレベルのプロキシゲートウェイは、単純にパケットをコピーしてゲートウェイを介して盲目的に転送するのではなく、個々のパケットを検査してフィルタリングします。 アプリケーション固有のプロキシは、ゲートウェイを通過する各パケットをチェックし、パケットの内容がアプリケーション層を介して確認されます。 これらのプロキシは、アプリケーションプロトコルの特定の種類のコマンドまたは情報をフィルタリングできます。
アプリケーションゲートウェイは、特定のアクションの実行を制限できます。 たとえば、ユーザーが「FTP put」コマンドを実行できないようにゲートウェイを構成できます。 これにより、攻撃者によってサーバーに保存された情報が変更されるのを防ぐことができます。
トランスペアレント
アプリケーションレベルのゲートウェイは透過的である場合がありますが、多くの実装では、ユーザーが信頼できないネットワークにアクセスする前にユーザー認証が必要です。これは、真の透過性を低下させるプロセスです。 ユーザーが内部ネットワークまたはインターネットからのものである場合、認証は異なる場合があります。 内部ネットワークの場合、IPアドレスの単純なリストが外部アプリケーションへの接続を許可されます。 ただし、インターネット側からは強力な認証を実装する必要があります。
アプリケーションゲートウェイは、実際には2つの方向の2つのTCP接続間でTCPセグメントを中継します(クライアント↔プロキシ↔サーバー)。
アウトバウンドパケットの場合、ゲートウェイは送信元IPアドレスを独自のIPアドレスで置き換えることがあります。 このプロセスは、ネットワークアドレス変換(NAT)と呼ばれます。 内部IPアドレスがインターネットに公開されないようにします。
回線レベルのゲートウェイ
回線レベルゲートウェイは、パケットフィルターとアプリケーションゲートウェイの間の中間ソリューションです。 トランスポート層で実行されるため、あらゆるアプリケーションのプロキシとして機能できます。
アプリケーションゲートウェイと同様に、回線レベルゲートウェイも、ゲートウェイを介したエンドツーエンドTCP接続を許可しません。 2つのTCP接続をセットアップし、TCPセグメントを1つのネットワークから他のネットワークに中継します。 ただし、アプリケーションゲートウェイのようなアプリケーションデータは調べません。 したがって、「パイププロキシ」と呼ばれることもあります。
靴下
SOCKS(RFC 1928)は、回線レベルのゲートウェイを指します。 SOCKSサーバーの一方のホストが、直接IP到達可能性を必要とせずに他方のホストに完全にアクセスできるようにするネットワーキングプロキシメカニズムです。 クライアントはファイアウォールでSOCKSサーバーに接続します。 次に、クライアントは使用する認証方法のネゴシエーションを入力し、選択した方法で認証します。
クライアントは、目的の宛先IPアドレスとトランスポートポートを含む接続リレー要求をSOCKSサーバーに送信します。 サーバーは、クライアントが基本的なフィルタリング基準を満たしていることを確認した後、リクエストを受け入れます。 次に、クライアントに代わって、ゲートウェイは要求された信頼できないホストへの接続を開き、その後に続くTCPハンドシェイクを厳密に監視します。
SOCKSサーバーはクライアントに通知し、成功した場合、2つの接続間でデータの中継を開始します。 回路レベルのゲートウェイは、組織が内部ユーザーを信頼しており、インターネットで送信されたコンテンツやアプリケーションデータを検査したくない場合に使用されます。
DMZを使用したファイアウォールの展開
ファイアウォールは、組織の内部ネットワークの「内外」へのネットワークトラフィックを制御するために使用されるメカニズムです。 ほとんどの場合、これらのシステムには、インターネットなどの外部ネットワーク用と内部側用の2つのネットワークインターフェイスがあります。
ファイアウォールプロセスは、一方から他方への通過を許可するものを厳密に制御できます。 Webサーバーへの外部アクセスを提供する組織は、ポート80(標準のhttpポート)を期待してファイアウォールに到達するすべてのトラフィックを制限できます。 メールトラフィック、FTP、SNMPなどの他のすべてのトラフィックは、ファイアウォールを越えて内部ネットワークに入ることはできません。 次の図に、単純なファイアウォールの例を示します。
上記の単純な展開では、外部からの他のすべてのアクセスはブロックされますが、攻撃者はWebサーバーだけでなく、偶然または別の方法でポート80を開いたままにした内部ネットワーク上の他のホストに接続することができます。
したがって、ほとんどの組織が直面する問題は、内部ネットワークの厳しいセキュリティを維持しながら、Web、FTP、電子メールなどの公共サービスへの正当なアクセスを可能にする方法です。 典型的なアプローチは、ファイアウォールを配備して、ネットワークに非武装地帯(DMZ)を提供することです。
このセットアップ(次の図に示す)では、2つのファイアウォールが展開されています。 1つは外部ネットワークとDMZの間、もう1つはDMZと内部ネットワークの間です。 すべてのパブリックサーバーはDMZに配置されます。
この設定では、パブリックサーバーへのパブリックアクセスを許可するファイアウォールルールを設定できますが、内部ファイアウォールはすべての着信接続を制限できます。 DMZを使用することにより、パブリックサーバーは外部ネットワークに直接配置される代わりに、適切な保護が提供されます。
侵入検知/防止システム
パケットフィルタリングファイアウォールは、TCP/UDP/IPヘッダーのみが関係するルールに基づいて動作します。 異なるセッション間で相関チェックを確立しようとはしません。
侵入検知/防止システム(IDS/IPS)は、パケットの内容を調べることにより、Deep Packet Inspection(DPI)を実行します。 たとえば、パケット内の文字列を既知のウイルスのデータベース、攻撃文字列と照合します。
アプリケーションゲートウェイはパケットの内容を確認しますが、特定のアプリケーションのみを確認します。 パケット内の疑わしいデータを探しません。 IDS/IPSは、パケットに含まれる疑わしいデータを探し、複数のパケット間の相関を調べて、ポートスキャン、ネットワークマッピング、サービス拒否などの攻撃を特定しようとします。
IDSとIPSの違い
IDSとIPSは、ネットワークの異常の検出において類似しています。 IDSは「可視性」ツールですが、IPSは「制御」ツールと見なされます。
侵入検知システムは、多くの異なるポイントでトラフィックを監視し、ネットワークの側面に配置され、ネットワークのセキュリティ状態の可視性を提供します。 IDSによる異常の報告の場合、修正アクションはネットワーク管理者またはネットワーク上の他のデバイスによって開始されます。
侵入防止システムはファイアウォールに似ており、2つのネットワークの間にインラインで配置され、それらを通過するトラフィックを制御します。 ネットワークトラフィックの異常の検出に指定されたポリシーを適用します。 通常、すべてのパケットをドロップし、管理者が異常に対処するまで異常に気付くとネットワークトラフィック全体をブロックします。
IDSの種類
IDSには2つの基本的なタイプがあります。
- *署名ベースのIDS *
- 既知の攻撃とその署名のデータベースが必要です。
- 署名は、特定の攻撃を特徴付けるパケットのタイプと順序によって定義されます。
- このタイプのIDSの制限は、既知の攻撃のみを検出できることです。 このIDSは、誤ったアラームをスローすることもあります。 通常のパケットストリームが攻撃の署名と一致する場合、誤報が発生する可能性があります。
- 有名なオープンソースの公開IDSの例は、「Snort」IDSです。
- *異常ベースのIDS *
- このタイプのIDSは、通常のネットワーク操作のトラフィックパターンを作成します。
- IDSモードでは、統計的に異常なトラフィックパターンを調べます。 たとえば、ICMPの異常な負荷、ポートスキャンの急激な増加など。
- 異常なトラフィックパターンを検出すると、アラームが生成されます。
- このタイプのIDS展開で直面する主な課題は、通常のトラフィックと異常なトラフィックを区別するのが難しいことです。
概要
この章では、ネットワークアクセス制御に使用されるさまざまなメカニズムについて説明しました。 アクセス制御を介したネットワークセキュリティへのアプローチは、このチュートリアルの前の章で説明した異なるネットワークレイヤーでセキュリティ制御を実装することとは技術的に異なります。 ただし、実装のアプローチは異なりますが、互いに補完的です。
ネットワークアクセス制御は、ユーザー認証とネットワーク境界保護という2つの主要コンポーネントで構成されています。 RADIUSは、ネットワークで中央認証を提供するための一般的なメカニズムです。
ファイアウォールは、内部ネットワークをパブリックインターネットから分離することにより、ネットワーク境界保護を提供します。 ファイアウォールは、ネットワークプロトコルのさまざまな層で機能できます。 IDS/IPSでは、ネットワークトラフィックの異常を監視して攻撃を検出し、攻撃に対する予防措置を講じることができます。
ネットワークセキュリティ-重大な必要性
情報と効率的なコミュニケーションは、すべてのビジネスの成功にとって最も重要な戦略的問題の2つです。 コミュニケーションとストレージの電子的手段の出現により、ますます多くの企業がデータネットワークを使用して情報の通信、保管、およびリソースの取得に移行しています。 ビジネスの実行に使用されるネットワークインフラストラクチャには、さまざまなタイプとレベルがあります。
現代の世界では、ネットワーク化されたコンピューターほどビジネスに大きな影響を与えるものはなかったと言えます。 しかし、ネットワークにはセキュリティ上の脅威が伴います。これを軽減すると、ネットワークの利点がリスクを上回ります。
ビジネスにおけるネットワークの役割
今日、コンピューターネットワークは、ほぼすべての企業にとってリソースと見なされています。 このリソースにより、収益性に不可欠な情報を収集、分析、整理、および配布できます。 ほとんどの企業は、競争力を維持するためにネットワークを設置しています。
コンピュータネットワーキングの最も明らかな役割は、組織がほぼすべての種類の情報を中央の場所に保存し、ネットワークを通じて目的の場所で取得できることです。
ネットワークの利点
コンピュータネットワーキングにより、人々は情報やアイデアを簡単に共有できるため、より効率的かつ生産的に作業できます。 ネットワークは、購入、販売、顧客サービスなどの活動を改善します。 ネットワーキングは、従来のビジネスプロセスをより効率的で管理しやすく、安価にします。
ビジネスがコンピュータネットワークから引き出す主な利点は次のとおりです-
- リソース共有-ビジネスは、ネットワークに接続されたコンポーネントと周辺機器を共有することにより、ハードウェアに費やす金額を削減できます。
- 合理化されたビジネスプロセス-コンピューターネットワークにより、企業は社内のビジネスプロセスを合理化できます。
- 部門間のコラボレーション-2つ以上の部門がネットワークの選択された部分を接続する場合、通常、膨大な時間と労力を要し、生産性の向上に困難をもたらすビジネスプロセスを合理化できます。
- 改善された顧客関係-ネットワークは、ビジネスを行う際の利便性、迅速なサービス対応など、多くの利点を顧客に提供します。
ネットワークから生じる他の多くのビジネス固有の利点があります。 このような利点により、あらゆる種類の企業がコンピューターネットワーキングを採用することが不可欠になりました。
ネットワークセキュリティの必要性
有線または無線ネットワーク上の脅威は、コンピューターネットワークの容量の増大に伴う最新の技術の進歩により大幅に増加しています。 今日の世界では、さまざまなビジネストランザクションのためにインターネットが圧倒的に使用されているため、情報の盗難やビジネスの知的資産に対するその他の攻撃の課題が生じています。
現在の時代では、ほとんどのビジネスはネットワークアプリケーションを介して行われているため、すべてのネットワークが攻撃を受けるリスクがあります。 ビジネスネットワークに対する最も一般的なセキュリティの脅威は、データの傍受と盗難、および個人情報の盗難です。
ネットワークセキュリティは、このような脅威を阻止し、ビジネスのコンピューターネットワーキングインフラストラクチャの使いやすさ、信頼性、整合性、および安全性の保護を提供する専門分野です。
ビジネス向けネットワークセキュリティの重要性
- ビジネス資産の保護-これは、ネットワークセキュリティの主要な目標です。 資産とは、コンピューターネットワークに保存されている情報のことです。 情報は、会社の他の有形資産と同じくらい重要で価値があります。 ネットワークセキュリティは、機密情報の整合性、保護、および安全なアクセスに関係しています。
- 規制要件の順守-ネットワークセキュリティ対策は、企業が情報セキュリティに関する政府および業界固有の規制を遵守するのに役立ちます。
- Secure Collaborative Working -ネットワークセキュリティは、同僚とのコラボレーションを促進し、安全なネットワークアクセスを提供することにより、クライアントやサプライヤーとのコミュニケーションを促進します。 クライアントと消費者の機密情報が保護されているという自信を高めます。
- リスクの低減-ネットワークセキュリティの採用により、中小企業を破産させる可能性のある法的措置を含む、セキュリティ侵害の影響が軽減されます。
- 競争優位性の獲得-ネットワークに効果的なセキュリティシステムを開発することは、組織に競争力をもたらします。 インターネット金融サービスおよび電子商取引の分野では、ネットワークセキュリティが最も重要です。