実はIPsec実装もできるんじゃないか企画
IPsecは、鍵の交換と暗号化そのものが明確に分離されているアーキテクチャで、IKEは既存の実装を流用しつつ、暗号化(とIP)だけ自前で実装するという方向性が行けそうな気もする。
IPsec的には暗号化キーと、各エンドポイントのアドレスをSA(Security Association)としてIPスタック側に持たせている。IPスタックにSAを突っ込むためにはPF_KEYを使う。
- http://tools.ietf.org/html/rfc2367 - PF_KEYのAPI
PF_KEYそのものはSOCK_RAWなソケットで、それをユーザモードから横取りするのはあまり容易でないので、racoon2を元にrcpfkを置き換えるという方向性が良いように思える。
これがエクスポートしているものを全部置き換えれば。。