IPレイヤ(レイヤ3、ネットワーク層)でのセキュリティサービスを提供する機能。
VPNなどで利用されており、またイントラネットでもセキュリティを確保するために使われることがある。
IPsecの機能を実現するため、複数のプロトコルが組み合わされて利用されており、この総称がIPsecである。
具体的には、次の三種類のプロトコルが使われている。
IPsecでは(より正確にはESPでは)、どの場所で暗号化するかにより、二種類の方法が提供されている。
トランスポート・モードは、あらかじめ暗号化したデータを用意し、これをESPでカプセル化し、IPへッダを付けて送信をするものである。送信ホスト、受信ホストが共にIPsecに対応している場合は、これが最もシンプルな動作になる。
トンネル・モードは、途中に用意されたゲートウェイを利用するものである。送信ホストから発信されたIPパケットをゲートウェイが受けとり、IPパケット全体を暗号化してからESPでカプセル化し、新たにIPへッダを付けて送信をするものである。ゲートウェイ間は暗号化されたデータが流れ、これがいわゆるVPNである。
後者トンネル・モードでは、新たに付けられるIPヘッダは相手先のゲートウェイであり、真の受信先は内部に暗号化されているため、受信先も秘匿にできる。
IPsecは、慣用暗号方式(共通鍵暗号方式)が使われるため、暗号鍵は事前に設定しておくか、通信開始前のネゴシエーション時に動的に作成され、これを互いに交換する必要がある。
ネゴシエーション時に、相互に利用可能な暗号方式を交換し、互いが利用できる中で最も現実的なものが選択される。この、暗号方式決定と鍵交換のプロトコルに、IKEが使われる。
IKE中も盗聴されていることを想定し、IKEも二段階で鍵交換が行なわれている。
このように工夫することで、盗聴されていても、暗号鍵はおろか使用されているアルゴリズム自体が分からないようになっている。
ESPは暗号化されたデータを送るためのプロトコルである。
このプロトコルは、暗号化されたデータだけではなく、ネゴシエーションの結果作られ、暗号化アルゴリズムや暗号鍵等を判断する目印とする32ビットの整数値SPIや、シーケンス番号、認証データ(通信データとパスワードのハッシュ値)などを含む。
これによって、暗号文を単に送るだけではなく、途中の経路での改竄を防ぎ、確実な送信と認証を同時に行なうことができる。
IPsecの実装は、ホストもしくはセキュリティゲートウェイで機能する。
IPレイヤの実装に組み込む方式であるため、IPレイヤのソースコードを書き替える必要があるが、ホストにもセキュリティゲートウェイにも適用できる。
「Bump-in-the-stack」(BITS)方式は、既存のIPスタックとネットワークドライバの間に実装するもので、IPスタックを触る必要はない。通常、ホストに適用できる。
「Bump-in-the-wire」(BITW)方式は、外挿の暗号プロセッサを用いる。ホストにもセキュリティゲートウェイにも適用できる。IPsecコプロセッサなどが比較的安価に市販されており、またSuperHなど組み込み用CPUではハードウェアとして機能を内蔵しているものがある。