IP セキュリティアーキテクチャ (IPsec) は、IPv4 および IPv6 ネットワークパケットで IP データグラムを暗号化して保護します。この保護には、機密性、データ完全性、データ認証、および部分的なシーケンスの完全性があります。部分的なシーケンスの完全性は再実行保護と呼ばれることもあります。
IPsec は、IP モジュール内部で実行されます。IPsec は、インターネットアプリケーションの知識の有無に関係なく運用できます。正しく使用すれば、IPsec は、ネットワークトラフィックの保護に有効なツールとなります。
この章では、以下の内容について説明します。
ネットワークに IPsec を実装する手順については、第 2 章「IPsec の管理 (手順)」を参照してください。
IPsec では、IP 内に安全なデータグラム認証と暗号化の機構を含むセキュリティアソシエーション (SA) を提供します。IPsec を呼び出すと、IPsec グローバルポリシーファイルで有効にしておいた IP データグラムにセキュリティ機構が適用されます。アプリケーションで IPsec を呼び出すと、ソケット単位レベルで IP データグラムにセキュリティ機構が適用されます。
図 1–1 は、IPsec をアウトバウンドパケットで呼び出したときに、IP アドレス指定パケットが IP データグラム の一部として処理される様子を示します。フロー図からわかるように、認証ヘッダー (AH) とカプセル化されたセキュリティペイロード (ESP) エンティティをパケットに適用できます。そのあとの節では、認証アルゴリズムと暗号化アルゴリズムとともに、これらのエンティティを適用する手順を説明します。
図 1–2 は、IPsec インバウンドプロセスを示したものです。
IPsec セキュリティアソシエーション (SA) では、ホスト間の通信で認識されるセキュリティ属性を指定します。一般的に、ホスト間で安全に通信するには、2 つの SA が必要です。1 つの SA は、1 方向のデータを保護します。つまり、1 つのホストかグループ (マルチキャスト) アドレスのどちらかです。ほとんどの通信は、ピアツーピアまたはクライアントとサーバー間で行われるため、両方向のトラフィックを保護するには、2 つの SA が必要です。
セキュリティプロトコル (AH または ESP) 、宛先 IP アドレス、およびセキュリティパラメータインデックス (SPI) は、IPsec SA を識別します。任意の 32 ビット値の SPI は、AH パケットまたは ESP パケットで転送されます。AH および ESP によって保護される範囲については、ipsecah(7P) と ipsecesp(7P) のマニュアルページを参照してください。完全性チェックサム値を使用して、パケットを認証します。認証が失敗すると、パケットがドロップされます。
SA は、SA データベースに格納されます。ソケットベースの管理エンジン pf_key インタフェースにより、特権をもつアプリケーションでそのデータベースを管理できます。in.iked デーモンにより、自動キー管理が可能になります。pf_key(7P) と in.iked(1M) のマニュアルページを参照してください。
SA には次の情報が含まれます。
暗号化や認証に必要なキー情報
使用できるアルゴリズム
エンドポイントの識別情報
システムによって使用されるその他のパラメータ
SA では、認証や暗号化のためのキー情報が必要です。認証と暗号化に必要な SA のキー情報の管理をキー管理といいます。IKE (インターネットキー交換) プロトコルにより、キー管理が自動的に行われます。また、ipseckey コマンドを指定して、キー管理を手動で行うこともできます。IPv4 および IPv6 パケットの SA は自動キー管理を使用できます。
暗号キーを IKE で自動的に管理する方法については、IKE の概要を参照してください。ipseckey コマンドを指定して、暗号キーを手動で管理する方法については、キーユーティリティを参照してください。コマンドオプションの詳しい説明については、ipseckey(1M) のマニュアルページを参照してください。
IPsec にはデータ保護機構が 2 つあります。
認証ヘッダー (AH)
セキュリティペイロードのカプセル化 (ESP)
どちらの機構にも独自のセキュリティアソシエーションデータベース (SADB) があります。
認証ヘッダーは、IP データグラムに対するデータ認証、強力な完全性、再送保護を備えています。AH では大部分の IP データグラムを保護します。送信者と受信者の間で不定的に変更されるフィールドは AH では保護できません。たとえば、IP TTL フィールドの変更は予測できないので AH では保護できません。AH は IP ヘッダーとトランスポートヘッダーの間に挿入されます。トランスポートヘッダーの種類としては、TCP、UDP、ICMP、あるいは、トンネルが使用されている場合、もう 1 つ別の IP ヘッダーがあります。トンネルの詳細については、tun(7M) のマニュアルページを参照してください。
IPsec による実装では、AH は IP の先頭に自動的にプッシュされるモジュールです。/dev/ipsecah エントリでは、ndd コマンドで AH を調整します。将来の認証アルゴリズムが AH の先頭にロードできます。現在の認証アルゴリズムには、HMAC-MD5 と HMAC-SHA-1 があります。どちらの認証アルゴリズムにも、それぞれのキーサイズ属性とキーフォーマット属性が用意されています。詳細については、authmd5h(7M) と authsha1(7M) のマニュアルページを参照してください。IP 設定パラメータの調整方法については、ndd(1M) のマニュアルページを参照してください。
再送保護を有効にしておかないと、再送時攻撃が AH をおびやかす原因になります。AH では盗聴行為には対応できません。AH で保護されたデータであっても、見ようとすれば見ることができます。
AH によるサービス同様に、セキュリティペイロードのカプセル化 (ESP) ヘッダーでもカプセル化したデータの機密が守られます。ただし、保護される対象は、データグラムのうち ESP がカプセル化した部分だけです。ESP の認証サービスはオプションです。これらのサービスでは、冗長になることなく ESP と AH を同じデータグラムで同時に使用できます。ESP は暗号対応技術を使用するため、アメリカ合衆国輸出管理法が適用されます。
ESP はデータをカプセル化するため、データグラム内でその先頭に続くデータだけを保護します。TCP パケットでは、ESP は TCP ヘッダーとそのデータだけをカプセル化します。パケットが IP 内 IP データグラムの場合、ESP は内部 IP データグラムを保護します。ソケット別ポリシーでは、自己カプセル化ができるため、必要に応じて ESP では IP オプションをカプセル化できます。認証ヘッダー (AH) と異なり、ESP では複数のデータグラム保護が可能です。1 形式だけのデータグラム保護ではデータグラムを守ることはできません。たとえば、ESP で機密だけを守っても、再送時攻撃とカットアンドペースト攻撃には無防備です。同じく、ESP で完全性だけを保護しても、その保護能力は AH より弱くなります。そのようなデータグラムは盗聴には無防備です。
IPsec ESP による実装では、ESP は IP の先頭にプッシュされるモジュールです。 /dev/ipsecesp エントリでは、ndd コマンドで ESP を調整します。AH で使用する認証アルゴリズムに加えて、ESP では暗号化アルゴリズムをその先頭にプッシュできます。暗号化アルゴリズムには、Data Encryption Standard (DES)、Triple-DES (3DES)、Blowfish、および AES があります。どの暗号化アルゴリズムにも、それぞれのキーサイズ属性とキーフォーマット属性があります。アメリカ合衆国輸出管理法および各国の輸入管理法の適用を受けるので、すべての暗号化アルゴリズムをアメリカ合衆国外で使用できるわけではありません。IP 設定パラメータの調整方法については、ndd(1M) のマニュアルページを参照してください。
認証なしで ESP を使用した場合、カットアンドペースト暗号化攻撃および再送時攻撃に対しては無防備です。機密保護なしで ESP を使用した場合、盗聴に対しては AH の場合と同じく無防備です。
IPsec では、認証と暗号化の 2 種類のアルゴリズムを使用します。認証アルゴリズムと DES 暗号化アルゴリズムは、Solaris インストールの主要部分になります。IPsec にサポートされるその他のアルゴリズムを使用する場合には、 Solaris Encryption Kit (データ暗号化サプリメント CD) をインストールする必要があります。Solaris Encryption Kit は CD の形で提供されています。
認証アルゴリズムでは、データとキーに基づいて、完全性のチェックサム値すなわちダイジェストが生成されます。認証アルゴリズムのマニュアルページに、ダイジェストとキーのサイズの説明があります。次の表は、Solaris オペレーティング環境でサポートされる認証アルゴリズムを示します。また、IPsec ユーティリティのセキュリティオプションとして認証アルゴリズムを使用する場合のアルゴリズムの形式とそのマニュアルページも示しています。
表 1–1 サポートされる認証アルゴリズム
アルゴリズムの名前 |
セキュリティオプションの形式 |
マニュアルページ |
---|---|---|
authmd5h(7M) |
||
HMAC-SHA-1 |
authsha1(7M) |
暗号化アルゴリズムでは、キーでデータを暗号化します。暗号化アルゴリズムでは、ブロックサイズごとにデータを処理します。暗号化アルゴリズムのマニュアルページに、各アルゴリズムのブロックサイズとキーサイズの説明があります。デフォルトでは、DES–CBC アルゴリズムと3DES-CBC アルゴリズムがインストールされます。
IPsec で AES アルゴリズムと Blowfish アルゴリズムを有効にするには、Solaris Encryption Kit をインストールする必要があります。このキットは、Solaris 9 インストールボックスには含まれていない別の CD から入手できます。『Solaris 9 Encryption Kit Installation Guide』に、Solaris Encryption Kit のインストール方法が説明されています。
次の表に、Solaris オペレーティング環境でサポートされる暗号化アルゴリズムを示します。IPsec ユーティリティのセキュリティオプションとして暗号化アルゴリズムを使用する場合のアルゴリズムの形式、そのマニュアルページ、およびそのアルゴリズムが含まれるパッケージも示しています。
表 1–2 サポートされる暗号化アルゴリズム
アルゴリズムの名前 |
セキュリティオプションの形式 |
マニュアルページ |
パッケージ |
---|---|---|---|
DES-CBC |
des、des-cbc |
encrdes(7M) |
SUNWcsr、SUNWcarx.u |
3DES–CBC または Triple-DES |
3des、3des-cbc |
encr3des(7M) |
SUNWcsr、SUNWcarx.u |
blowfish、blowfish-cbc |
encrbfsh(7M) |
SUNWcryr、SUNWcryrx |
|
AES-CBC |
aes、aes-cbc |
encraes(7M) |
SUNWcryr、SUNWcryrx |
IPsec では、保護ポリシー機構と実施機構を分けています。IPsec ポリシーは、次の範囲で適用できます。
システム規模レベル
ソケット単位レベル
ipsecconf コマンドは、システム規模ポリシーの設定に使用します。ipsecconf(1M) のマニュアルページを参照してください。
IPsec は、システム規模ポリシーを入力データグラムと出力データグラムに適用します。システムで認識されるデータがあるため、出力データグラムにはその他の規則も適用できます。インバウンドデータグラムの処理は、受理されるか拒絶されるかのどちらかです。インバウンドデータグラムの受理か拒絶を決定する基準はいくつかありますが、場合によってはその基準が重複したり競合したりすることがあります。競合の解決に当たっては、どの規則の構文解析を最初に行うかが決定されます。ただし、ポリシーエントリでトラフィックが他のすべてのポリシーを省略するように指定されている場合は、自動的に受理されます。アウトバウンドデータグラムは、保護付きまたは保護なしで送信されます。保護が適用されると、特定アルゴリズムか汎用アルゴリズムのどちらかになります。
データグラムを保護する通常のポリシーを省略することもできます。それには、システム規模ポリシーに例外を指定するか、ソケット単位ポリシーで省略を要求します。イントラシステム内トラフィックの場合、ポリシーは実施されますが、実際のセキュリティ機構は適用されません。その代わりに、イントラシステム内パケットのアウトバウンドポリシーが、セキュリティ機能の適用されたインバウンドパケットになります。
IP ヘッダーの後に、ESP または AH を呼び出してデータグラムを保護するときに、トランスポートモードを使用します。たとえば、パケットが次のヘッダーで始まる場合です。
トランスポートモードでは、ESP は次のようにデータを保護します。
トランスポートモードでは、AH は次のようにデータを保護します。
AH は実際には、データグラムに出現する前のデータも保護します。その結果、 AH による保護は、トランスポートモードでも、IP ヘッダーの一部をカバーします。
データグラム全体が IPsec ヘッダーの保護下にあるとき、IPsec では、トンネルモードでデータグラムを保護しています。AH はその前にある IP ヘッダーの大部分を保護するため、トンネルモードは通常、ESP だけで実行します。先の例のデータグラムは、トンネルモードでは次のように保護されます。
トンネルモードでは、内部ヘッダーは保護されますが、外部 IP ヘッダーは保護されません。外部 IP ヘッダーのソースアドレスと宛先アドレスが、内部 IP ヘッダーのものと異なることがよくあります。それでも、IPsec を認識するネットワークプログラムで ESP の自己カプセル化を使用すれば、内部と外部の IP ヘッダーを一致させることができます。ESP の自己カプセル化により、IP ヘッダーオプションが保護されます。
IPsec のSolaris 実装は基本的にトランスポートモード IPsec 実装です。トンネルモードはトランスポートモードの特殊ケースとして実装されます。そのため、IP 内 IP トンネルを特殊なトランスポートプロバイダとして処理します。ifconfig 設定オプションを使用してトンネルを設定する場合、オプションは、ソケットのプログラミングでソケットごとの IPsec を使用可能にするときに使用するオプションとほぼ同じです。また、トンネルモードは、ソケットごとの IPsec で使用可能にできます。ソケットごとのトンネルモードでは、内部パケットの IP ヘッダーのアドレスが外部パケットの IP ヘッダーのアドレスと同じになります。ソケットごとのポリシーの詳細については、ipsec(7P) のマニュアルページを参照してください。トンネルの設定方法については、ifconfig(1M) のマニュアルページを参照してください。
設定したトンネルは、ポイントツーポイントインタフェースです。このトンネルで、IP パケットを IP パケット内にカプセル化できます。トンネルの設定には、トンネルソースとトンネル宛先が必要です。詳細については、tun(7M) のマニュアルページと、『Solaris のシステム管理 (IP サービス)』の「IPv6 の Solaris トンネルインタフェース」を参照してください。
トンネルでは、IP との見かけ上の物理インタフェースが作成されます。この物理的リンクの完全性は、基本になるセキュリティプロトコルによって異なります。セキュリティアソシエーションを確実に行えば、信頼性の高いトンネルになります。トンネルのデータパケットのソースはトンネル宛先で指定したピアでなければなりません。この信頼関係があるかぎり、インタフェース別 IP 送信を利用して仮想プライベートネットワークを作成できます。
IPsec を使用して、仮想プライベートネットワーク (VPN) を構築できます。IPsec を使用するためには、インターネットインフラストラクチャを使用してイントラネットを作成します。たとえば、それぞれのネットワークとともに独立したオフィスを持つ組織があって、オフィス間が VPN テクノロジで接続されている場合、IPsec を利用すれば、2 つのオフィス間でトラフィックを安全にやりとりできます。
図 1–3 は、ネットワークシステムに配置した IPsec で、2 つのオフィスがインターネットを利用して VPN を形成する方法を示します。
セットアップ手順については、仮想プライベートネットワーク (VPN) を構築する方法を参照してください。
この節では、IPsec を初期化する構成ファイルについて説明します。また、ネットワーク内で IPsec の管理を行うためのさまざまなコマンドについても説明します。ネットワーク内で IPsec を実装する方法については、IPsec の実装 (作業マップ)を参照してください。
表 1–3 選択される IPsec ファイルと IPsec コマンドのリスト
IPsec ファイルまたは IPsec コマンド |
説明 |
---|---|
/etc/inet/ipsecinit.conf ファイル | |
ipsecconf コマンド |
IPsec ポリシーコマンド。起動スクリプトは、ipsecconf を使って /etc/inet/ipsecinit.conf ファイルを読み込み、IPsec を起動する。現在の IPsec ポリシーの表示および変更や、テストを行うときに役立つ |
PF_KEY ソケットインタフェース | |
ipseckey コマンド |
IPsec SA 保守およびキーコマンド。ipseckey は、PF_KEY インタフェースに対するコマンド行フロントエンド。ipseckey では、セキュリティアソシエーションの作成、削除、または変更ができる |
/etc/inet/secret/ipseckeys ファイル |
IPsec SA のキー。ipsecinit.conf ファイルがある場合、ipseckeys ファイルはブート時に自動的に読み込まれる |
/etc/inet/ike/config ファイル |
IKE 構成およびポリシーファイル。このファイルがある場合、IKE デーモン in.iked は自動キー管理機能を提供する。/etc/inet/ike/config ファイル内の規則およびグローバルパラメータに基づいて管理が行われる。IKE ユーティリティおよび IKE ファイルを参照 |
ipsecconf コマンドを使用して、ホストの IPsec ポリシーを構成します。このコマンドを実行してポリシーを設定すると、ipsecpolicy.conf という名前の一時ファイルが作成されます。このファイルには、ipsecconf コマンドによってカーネルに設定された IPsec ポリシーエントリが格納されます。システムは、カーネル内 IPsec ポリシーエントリを使用して、すべてのアウトバウンドおよびインバウンド IP データグラムがポリシーに沿っているか検査します。転送されたデータグラムは、このコマンドで追加されたポリシー検査の対象外になります。転送されたパケットを保護する方法については、ifconfig(1M) と tun(7M) のマニュアルページを参照してください。IPsec ポリシーオプションについては、ipsecconf(1M) のマニュアルページを参照してください。
ipsecconf コマンドを呼び出すには、スーパーユーザーになるか、同等の役割を引き受ける必要があります。このコマンドは、両方向のトラフィックを保護するエントリ、および 1 方向のみのトラフィックを保護するエントリを受け入れます。
ローカルアドレスとリモートアドレスというパターンのポリシーエントリは、1 つのポリシーエントリで両方向のトラフィックを保護します。たとえば、指定されたホストに対して方向が指定されていない場合、laddr host1 と raddr host2 というパターンをもつエントリは、両方向のトラフィックを保護します。したがって、各ホストにポリシーエントリを 1 つだけ設定すれば済みます。ソースアドレスから宛先アドレスへというパターンのポリシーエントリは、1 方向のみのトラフィックを保護します。たとえば、saddr host1 daddr host2 というパターンのポリシーエントリは、インバウンドかアウトバウンドのどちらかのトラフィックのみを保護します。両方向ともは保護しません。したがって、両方向のトラフィックを保護するには、saddr host2 daddr host1 のようなエントリも ipsecconf コマンドに渡す必要があります。
引数を指定しないで ipsecconf コマンドを実行すると、システムに構成されているポリシーを確認できます。各エントリが、インデックスとその後に番号が付いて表示されます。-d オプションでインデックスを指定すると、システム内の指定されたポリシーが削除されます。このコマンドで表示されるエントリの順序はエントリが追加された順であり、必ずしもトラフィックを照合する順序ではありません。トラフィックの照合が行われる順序を確認するには、-l オプションを使用します。
ipsecpolicy.conf ファイルは、システムのシャットダウン時に削除されます。マシンのブート時に IPsec ポリシーを起動させるには、マシンのブート時に inetinit スクリプトによって読み込まれる IPsec ポリシーファイル /etc/inet/ipsecinit.conf を作成する必要があります。
Solaris オペレーティング環境を起動したときに IPsec セキュリティポリシーを呼び出すには、特定の IPsec ポリシーエントリを利用して、IPsec を初期化する構成ファイルを作成します。ファイルの名前は、/etc/inet/ipsecinit.conf とします。ポリシーエントリとその形式の詳細については、ipsecconf(1M) のマニュアルページを参照してください。ポリシーの構成後、ipsecconf コマンドを使用してポリシーを一時的に削除したり、既存の構成を表示したりすることができます。
Solaris ソフトウェアには、IPsec ポリシーファイルの例が含まれています。このサンプルファイルの名前は ipsecinit.sample です。このファイルをテンプレートとして独自の ipsecinit.conf ファイルを作成することができます。ipsecinit.sample ファイルには、次のエントリが含まれています。
# # For example, # # {rport 23} ipsec {encr_algs des encr_auth_algs md5} # # will protect the telnet traffic originating from the host with ESP using # DES and MD5. Also: # # {raddr 10.5.5.0/24} ipsec {auth_algs any} # # will protect traffic to or from the 10.5.5.0 subnet with AH # using any available algorithm. # # # To do basic filtering, a drop rule may be used. For example: # # {lport 23 dir in} drop {} # {lport 23 dir out} drop {} # # will disallow any remote system from telnetting in. |
たとえば、/etc/inet/ipsecinit.conf ファイルを、NFS マウントファイルシステムから送信すると、ファイル内のデータが不正に変更される可能性があります。また、設定ポリシーも変更される可能性があります。そのため、ipsecinit.conf ファイルのコピーをネットワークで送信しないでください。
TCP ソケットまたは UDP ソケットに対して、connect() または accept() 関数呼び出しが行われた場合、これらのソケットのポリシーを変更することはできません。ポリシーの変更ができないソケットを、ラッチされたソケットと呼びます。新しいポリシーエントリは、すでにラッチされたソケットを保護しません。connect(3SOCKET) と accept(3SOCKET) のマニュアルページを参照してください。
ポリシーは通信を開始する前にセットアップしてください。新しいポリシーエントリを追加すると既存の接続が影響を受けることがあるためです。同じ理由から、通信の途中ではポリシーを変更しないでください。
ネーミングシステムを保護してください。次の 2 つの条件に該当する場合、そのホスト名は信頼できません。
ソースアドレスが、ネットワークを介して参照できるホストである
ネーミングシステムの信頼性に問題がある
セキュリティの弱点の多くは、実際のツールではなく、ツールの使用方法にあります。ipsecconf コマンドを使用するときは注意が必要です。安全に操作するため、コンソールなどの、ハード接続の TTY を使用してください。
IPsec セキュリティサービスのキー情報は、セキュリティアソシエーションデータベース (SADB) に保存されます。 セキュリティアソシエーションは、インバウンドパケットとアウトバウンドパケットを保護します。ユーザープロセス (場合によってはマルチ連携プロセス) では、特殊なソケットからのメッセージを送信することで SADB を管理します。SADB を保守するこの方法は、 route(7P) のマニュアルページで説明している方法に類似しています。SADB にアクセスできるのは、スーパーユーザーか、同等の役割を引き受けた人だけです。
オペレーティングシステムは、外部イベントに対する応答としてメッセージを自動的に発信する場合があります。たとえば、システムがアウトバウンドデータグラムに対する新しい SA を要求したり、既存の SA の期限切れを報告する場合です。先に説明したソケットコールを使用して、SADB 制御メッセージを伝えるためのチャンネルを開いてください。システムごとに複数のキーソケットを開くことができます。
メッセージには、小さいベースヘッダーがあり、そのあとにいくつかの拡張メッセージが続きます。拡張メッセージの数はゼロの場合もあれば、1 以上の場合もあります。メッセージの中には、追加データが必要なものもあります。ベースメッセージと拡張メッセージのいずれも 8 バイト配列である必要があります。たとえば GET メッセージの場合、ベースヘッダー、SA 拡張メッセージ、ADDRESS_DST 拡張メッセージが必要です。詳細については、pf_key(7P) を参照してください。
IKE プロトコルは、IPv4 および IPv6 アドレスの自動キーユーティリティです。IKE の設定方法については、第 4 章「IKE の管理 (手順)」を参照してください。手動でキーを操作するキーユーティリティには、ipseckey コマンドがあります。ipseckey(1M) のマニュアルページを参照してください。
ipseckey コマンドを使用して、ipsecah と ipsecesp の保護機構で SA データベースを手動で操作できます。また、自動キー管理が無効な場合に、通信パーティ間の SA をセットアップするときも、ipseckey コマンドを使用します。
ipseckey コマンドには少数の一般オプションしかありませんが、多くのコマンド言語をサポートしています。マニュアルキー操作に固有のプログラムインタフェースで要求を配信するように指定することもできます。詳細については、pf_key(7P) のマニュアルページを参照してください。引数なしで ipseckey を呼び出すと、対話モードになり、エントリを入力できるプロンプトが表示されます。コマンドによっては、明示的なセキュリティアソシエーション (SA) タイプが必要ですが、それ以外は、ユーザーが SA を指定すれば、すべての SA タイプで動作します。
ipseckey コマンドを使用すると、特権ユーザーは微妙な暗号キー情報を入力できます。場合によっては、不正にこの情報にアクセスして IPsec トラフィックのセキュリティを損なうことも可能です。キー情報を扱う場合および ipseckey コマンドを使用する場合には、次のことに注意してください。
キー情報を更新しているかどうか。定期的にキーを更新することが、セキュリティの基本作業となります。キーを更新することで、アルゴリズムとキーの脆弱性が暴かれないように保護し、公開されたキーの侵害を制限します。
TTY がネットワークに接続されているか。ipseckey コマンドは対話モードで実行されているか。
対話モードの場合には、キー情報のセキュリティは、TTY のトラフィックに対応するネットワークパスのセキュリティになります。clear-text telnet や rlogin セッションでは、ipseckey コマンドを使用しないでください。
ローカルウィンドウでも、ウィンドウを読み取ることのできる隠密プログラムからの攻撃には無防備です。
ファイルはネットワークを介してアクセスされているか。ファイルは外部から読み取り可能か。-f オプションを使用しているか。
セキュリティの弱点の多くは、実際のツールではなく、ツールの使用方法にあります。ipseckey コマンドを使用するときには注意が必要です。安全に操作するため、コンソールなどの、ハード接続の TTY を使用してください。
ifconfig コマンドには、トンネルインタフェースで IPsec ポリシーを管理するオプションがあります。また、snoop コマンドを使用して AH ヘッダーと ESP ヘッダーを構文解析できます。
IPsec をサポートするため、ifconfig に次のオプションが追加されました。
1 回の呼び出しで、1 つのトンネルにすべての IPsec セキュリティオプションを指定する必要があります。たとえば、ESP だけを使ってトラフィックを保護する場合、次のように両方のセキュリティオプションを指定して、トンネル ip.tun0 を設定します。
# ifconfig ip.tun0 … encr_algs 3DES encr_auth_algs MD5 |
同様に、ipsecinit.conf エントリは、次のように両方のセキュリティオプションを指定して、トンネルを設定します。
# WAN トラフィックは 3DES および MD5 とともに ESP を使用します。 {} ipsec {encr_algs 3des encr_auth_algs md5} |
このオプションを設定すると、指定した認証アルゴリズムで、トンネルに IPsec AH を使用できます。auth_algs オプションの書式は次のとおりです。
auth_algs authentication-algorithm |
アルゴリズムには、番号またはアルゴリズム名を指定できます。特定のアルゴリズムが指定されないようにするパラメータ any も使用できます。トンネルセキュリティを無効にするには、次のオプションを指定します。
auth_algs none |
サポートされる認証アルゴリズムとその詳細を説明したマニュアルページのリストについては、表 1–1 を参照してください。
このオプションを設定すると、指定した認証アルゴリズムで、トンネルに IPsec ESP を使用できます。encr_auth_algs オプションの書式は次のとおりです。
encr_auth_algs authentication-algorithm |
アルゴリズムには、番号またはアルゴリズム名を指定できます。特定のアルゴリズムが指定されないようにするパラメータ any も使用できます。ESP 暗号化アルゴリズムを指定し、認証アルゴリズムを指定しない場合、ESP 認証アルゴリズム値はデフォルトのパラメータ any になります。
サポートされる認証アルゴリズムとそのアルゴリズムの詳細を説明したマニュアルページのリストについては、表 1–1 を参照してください。
このオプションを設定すると、指定した暗号化アルゴリズムで、トンネルに IPsec ESP を使用できます。encr_algs オプションの書式は次のとおりです。
encr_algs encryption-algorithm |
アルゴリズムには、番号またはアルゴリズム名を指定できます。トンネルセキュリティを無効にするには、次のオプションを指定します。
encr_algs none |
ESP 認証アルゴリズムを指定し、暗号化アルゴリズムを指定しない場合、ESP 暗号化アルゴリズム値はデフォルトのパラメータ null になります。
使用可能な暗号化アルゴリズムの一覧とアルゴリズムのマニュアルページへのポインタについては、ipsecesp(7P) のマニュアルページまたは 表 1–2 を参照してください。
snoop コマンドでも、AH ヘッダーと ESP ヘッダーを構文解析できるようになりました。ESP はそのデータを暗号化するので、snoop は ESP で暗号化されて保護されたヘッダーを読み取ることができませんが、AH ではデータは暗号化されないので、このコマンドでトラフィックを確認できます。パケットに AH が使用されている場合、snoop -V オプションで表示できます。詳細については、snoop(1M) のマニュアルページを参照してください。
保護されたパケットに対する snoop の冗長出力例については、パケットが保護されていることを確認する方法を参照してください。