AH は、認証アルゴリズムを使用してデータの整合性を確保します。パケットの暗号化は行いません。
ESP は通常、暗号化アルゴリズムでパケットを保護し、認証アルゴリズムでデータの整合性を確保します。AES GCM のような一部の暗号化アルゴリズムは、暗号化と認証の両方を提供します。
AH プロトコルはネットワークアドレス変換 (NAT) では使用できません。
authentication headerは、IP パケットに対するデータ認証、強力な整合性、およびリプレー保護を提供します。AH では大部分の IP パケットを保護します。次の図に示されているように、AH は IP ヘッダーとトランスポートヘッダーの間に挿入されます。
トランスポートヘッダーは、TCP、UDP、SCTP、または ICMP のいずれかです。tunnelを使用している場合は、トランスポートヘッダーがこれ以外の IP ヘッダーである場合もあります。
encapsulating security payload (ESP) プロトコルは、ESP がカプセル化する対象の機密性を守ります。また、AH が提供するサービスも提供します。ただし、ESP は外側の IP ヘッダーは保護しません。ESP は、保護されたパケットの整合性を保証するオプションの認証サービスを提供します。ESP は暗号化対応技術を使用するため、ESP を提供するシステムは輸出入管理法の対象となります。
ESP ヘッダーとトレーラが IP ペイロードをカプセル化します。暗号化と ESP を一緒に使用すると、次の図に示すように、暗号化は IP ペイロードデータにのみ適用されます。
TCP パケットでは、ESP ヘッダーが認証され、そのヘッダーが TCP ヘッダーおよびそのデータをカプセル化します。パケットが IP 内 IP パケットの場合、ESP は内部 IP パケットを保護します。ソケット別ポリシーでは、「自己カプセル化」ができるため、ESP は必要に応じて IP オプションをカプセル化できます。
自己カプセル化は、setsockopt() システムコールを使用するプログラムを記述することで使用できます。自己カプセル化が設定されている場合は、IP 内 IP パケットを構築するために IP ヘッダーのコピーが作成されます。たとえば、TCP ソケットに自己カプセル化が設定されていない場合、パケットは次の形式で送信されます。
[ IP(a -> b) options + TCP + data ]
TCP ソケットに自己カプセル化が設定されている場合、パケットは次の形式で送信されます。
[ IP(a -> b) + ESP [ IP(a -> b) options + TCP + data ] ]
さらに詳しくは、IPsec のトランスポートモードとトンネルモードを参照してください。
次の表では、AH が提供する保護と ESP が提供する保護を比較します。
|
IPsec セキュリティーでは、認証と暗号化という 2 種類のアルゴリズムを使用します。AH プロトコルは認証アルゴリズムを使用します。ESP プロトコルは、暗号化アルゴリズムと認証アルゴリズムを使用できます。ipsecalgs コマンドを使用すると、システムのアルゴリズムとそれらのプロパティーの一覧を取得できます。詳細は、ipsecalgs(1M) のマニュアルページを参照してください。getipsecalgbyname(3NSL) のマニュアルページで説明されている機能を使用して、アルゴリズムのプロパティーを検索することもできます。
IPsec は暗号化フレームワークを使用して暗号化と認証を実行します。暗号化フレームワークによって、IPsec はハードウェアがサポートしているハードウェアアクセラレーションを利用できます。