H I P-Host_Identity-Protocol

HIP Host Identity Protocol

draft-moskowitz-hip-arch-05.txt

http://www.ietf.org/internet-drafts/draft-moskowitz-hip-arch-05.txt

この文書では Host IdentifyとHIPのnon-cryptographic な形態について述べる。

cryptographicについては、draft-moskowitz-hip-08を参照かな。

関連ドキュメント

用語集

HIP (Host Identity Protocol)

Host Identityに関するプロトコル

Identity

そのentityを識別するもの

Host Identifier (HI)

IdentifierはIdentityを表す単なるbit patternである。

HIT (Host Identity tag)

HIPでは、HIをそのまま使うのではなく、HITを利用する。現在HIを126bitにhash したもの+2bitのHeaderをつけて、128bitで扱う。

LSI (Local Scope Identifier)

目的

背景

現在、IPアドレスとDomain Nameという二つの名前空間が別々に存在している。 これをつなぐのがDNSであるが、そもそも、別々の名前空間が存在していること は混乱の元である。

また、三つの問題点も存在する。

Host Identity

Host Identityとは、そのentityを識別するものである。これは、Network stack やkernelを意味する。

物理的に一つの計算機が複数の論理的なエンドポイントを持つこともある。二枚 ざしとか。そういう場合、それらのendpointは、個別のHost Identityを持つ。

また、複数の計算機に、同じHost Identityをつけることで、クライアントにな にも変更すること無しにclusterなサービスを提供することができる。

二種類のIDentityがある。

これらのIDentityは自分でassertionするか、第三者によって証明されてもいい。 (may)

Host Identifiersは最初はDNSSECで認証されるし、全ての実装は最低限DNSSECを サポートする。

IdentityとIdentifierの違い

IdentityはそのentityをIdentするもの

IdentifierはIdentityを表す単なるbit patternである。

Host Identifierにはpublic key pairが最適である。

Host Identifiers

Host Identityは公開鍵と定義されているので、Host Identifierも公開鍵となる。

秘密鍵持っているということが、Host Identity自体を示すことになる。もしも、 秘密鍵を複数のノードが使うならば、分散系となる。

Host Identity自体はInternet上では使われない。Identifierが、DNSやLDAPディ レクトリなどに蓄積され、使われる。

HIP 以外のprotocolを使う場合、Host Identity Tag(HIT)として、Identityを扱 う。

ちなみに、もちろんHost Identifierとして、公開鍵を使わないことも考えられ るけれども、この文書は公開鍵を使う場合だけに限定される。

Host Identity Tag (HIT)

HITはHost IdentifierをHashした128bitのbit列である。

固定長を使うことでプロトコル的に楽になり、パケットサイズも小さくなるのと、 Hashなので、どんなIdentifierを使ってもいいってことがいいところ。

通常はHIであるところのpublic_keyそのものではなく、このHITを使って通信を 行う。

万が一、128bitなhash値ががいっしょになったら、public_keyで判断かな。

Local Scope Identifier (LSI)

32-bitなLocal Identifier。これは、既存プロトコルとAPIから扱うのを楽にす るために使われるけど、Localでしか使えないよ。

これは例えばFTPコマンドのアドレスや、ソケットコールのアドレスなどに使わ れたりする。

HIP Architecture

 Process ------ Socket
                   |
                   |
 Endpoint ----- Host Identity
                   |
                   |
 Location ----- IP address

End-Host Mobility and Multi-Homing

HIPはIPアドレスが変更されても関係ないからmobilityを提供できる。

また、複数のIPアドレスを持っていたとしても、HIは一つであるため、 multi-homingにも対応できる。

Rendezvous server

mobile nodeにつなごうとするとき、どうやってIPアドレスを知ればいいのか問 題。Dynamic DNSもあるけれども、HIP Rendezvous serverというのを考えている。 そこにBU(Binding Update)っぽいパケットを送り続ける。

なんかHA、あるいはMAみたいだ。でも、MIPやLIN6がreferされていないなぁ。

Protection against Flooding Attacks

移動した先のIPアドレスは信頼がおけないから、ちゃんとそのアドレスが有効か どうか一回確かめてから通信する。

これで、spoofingされたDoSとかも防げるかな。

RRとか考えてるのかな?

HIP and IPSec

実際のデータはIPSecで保護される。具体的にはEncapsulated Security Payload(ESP)。

HIP and NATs

NATやIPv4v6変換などを行うとヘッダが書き換わる。

HIPを前提にすると、IPアドレスがどんなに変わっても別に関係ないことになる。

HIP Policies

HIPの実装は、最低二種類のHIをサポートしなければならない。

Security Considerations

HITSs used in ACLs

HIPでの通信が始まったら、FirewallはHITsやSPIやIPaddressの対を学習して、 firewallでの安全性を高めることができる。

Non-security Considerations

HIは公開鍵ではなく、例えばFQDNみたいな、暗号系ではないものも使用できる。 しかし、このようなものはプライバシや認証機構として使えないので、HIPは公 開鍵で実装すること。

Tempolary memo

HIP パケットは公開鍵で署名され、man-in-the-middle attackを防ぐ。

DoSを防ぐために、Diffie-Hellman exchangeが使用される。

Host IdentifierはDNS上に保持される。そのRR TypeはIPSECKEYと似たかたちで これから定義されるだろう。HIは他にPKIを利用して保持されることもあるだろ うね。