IPsec
このESPはもともとISOのネットワーク層セキュリティプロトコル(NLSP)ではなく、アメリカ国防総省のSP3Dプロトコルから派生したものだった。SP3Dプロトコルの仕様はNISTにより公開されたが、アメリカ国防総省のセキュアデータ・ネットワークシステム・プロジェクトにより設計されたものだった。セキュリティ認証ヘッダ(AH)の一部は、以前のSimple Network Management Protocol(SNMP)バージョン2の認証のためのIETF標準策定作業から派生したものである。
1995年、IETFのIPsec作業部会はオープンかつ自由に利用できるバージョンのプロトコル作成を開始、セキュアデータ・ネットワークシステム(SDNS)プロジェクトに関するアメリカ国家安全保障局の契約の下で開発された。SDNSプロジェクトが定義したセキュリティプロトコル・レイヤー3(SP3)はNISTによって公開され、ISOのネットワーク層セキュリティ・プロトコル(NLSP)の基礎にもなった。SP3の鍵管理は鍵管理プロトコル(KMP)によって提供され、これらに続くIPsec委員会の作業のベースラインを提供した。
IPsecは公式にはインターネット・エンジニアリング・タスクフォース(IETF)のRequest for Comments(RFC)の一連の文書として標準化され、さまざまなコンポーネントや拡張に対応している。その文書でプロトコルの名称はIPsecと表記すると定められている。
IPsecは、2つのピアの間にSA (Security Association)という単方向コネクションを確立することで、ピア間にセキュアな通信を確立する(詳細後述)。なお、SAは、単方向であるため、双方向通信を行う場合には、上りと下りの2つのSAを確立する必要がある。
ピアは、ホストとセキュリティ・ゲートウェイの二種類に分類できる。前者は、個人端末やサーバのようなIP通信の端点に相当する機器である。後者は、ルータのようなIP通信の中継を担う機器である。
IPsecは、原理的にはピアがどちらのタイプであるのかを問わない。したがって、ホストからホストまでの通信全体を直接1つのSAで保護することもできるし、2つの中継地点間毎に別々のSAを確立して通信を保護するリレー形態の運用も可能である。しかし後述するように、ピアがどちらのタイプであるかによって推奨される通信モードが存在する。
IPsecの各ピアは、SPD(security policy database)、SAD(security association database)という2つのデータベースを管理する。
SPDは、IPアドレス、プロトコル(TCP/UDP/ICMP等)、TCPポートといった情報に応じて、パケットを破棄(discard)するのか、IPsecを使わずに送信(bypass IPsec)するのか、IPsecを使って送信(apply IPsec)するのかを決めるセキュリティポリシーのデータベースである。
一方、SADは、各ピアとSAを確立する際に用いるパラメータのデータベースである。