One document matched: draft-bi-savi-csa-00.txt
Network Working Group J. Bi
Internet-Draft J. Wu
Intended status: Experimental G. Yao
Expires: January 28, 2009 CERNET
July 27, 2008
A CGA based Source Address Authorization and Authentication (CSA)
Mechanism for First IPv6 Layer-3 Hop
draft-bi-savi-csa-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 28, 2009.
Bi, et al. Expires January 28, 2009 [Page 1]
Internet-Draft draft-bi-savi-csa-00 July 2008
Abstract
This document describes a method to authorize and authenticate the
address of a node in an IPv6 network. Except for "Host Change", this
method satisfies all the requirements in the Charter of SAVI. The
modification on a host can be regarded as the extension of SEND and
IPSec.
Table of Contents
1. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Address Authorization . . . . . . . . . . . . . . . . . . . . 5
3.1. Address Preparation . . . . . . . . . . . . . . . . . . . 5
3.2. Identifier Generation . . . . . . . . . . . . . . . . . . 7
3.3. Address Request . . . . . . . . . . . . . . . . . . . . . 8
3.4. Gateway Authorizing Address . . . . . . . . . . . . . . . 10
3.5. Address Assignment . . . . . . . . . . . . . . . . . . . . 13
4. Address Authentication . . . . . . . . . . . . . . . . . . . . 14
4.1. Signature Generation . . . . . . . . . . . . . . . . . . . 14
4.2. Signature Addition . . . . . . . . . . . . . . . . . . . . 14
4.3. Sending packet . . . . . . . . . . . . . . . . . . . . . . 15
4.4. Packet Checking by the Router . . . . . . . . . . . . . . 15
4.5. Router Transmitting Packet . . . . . . . . . . . . . . . . 15
5. Some Consideration . . . . . . . . . . . . . . . . . . . . . . 16
5.1. Refresh of the mapping table . . . . . . . . . . . . . . . 16
5.2. Cooperating with SEND . . . . . . . . . . . . . . . . . . 16
5.3. Deployment not on first-hop router . . . . . . . . . . . . 16
5.4. Spoofing Prevention Functionality . . . . . . . . . . . . 16
5.5. Keep-alive . . . . . . . . . . . . . . . . . . . . . . . . 17
5.6. Other Considerations . . . . . . . . . . . . . . . . . . . 17
6. Comparision with Charter . . . . . . . . . . . . . . . . . . . 18
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22
Intellectual Property and Copyright Statements . . . . . . . . . . 23
Bi, et al. Expires January 28, 2009 [Page 2]
Internet-Draft draft-bi-savi-csa-00 July 2008
1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Bi, et al. Expires January 28, 2009 [Page 3]
Internet-Draft draft-bi-savi-csa-00 July 2008
2. Introduction
In this method, a node must request the right to use an IPv6 address
from the first-hop gateway(either a layer 2 gateway or a layer 3
gateway). The first-hop gateway makes a decision on whether the
address can be used by the node, according to the current address
allocation method. Following an affirmative decision, a secret is
exchanged between the node and the gateway. Whenever the node wants
to send a packet via the gateway, a signature MUST be added into the
packet if required by the gateway. The signature is generated using
the shared secret and both the gateway and the node know the
generating algorithm. The gateway checks the signature to confirm
that the packet is from the owner of the source address. An
identifier called "CGA identifier" is used to help in the address
ownership determination.
When a host is connected to a monopolized port of a switch, the
switch can enable filtering at the port to prevent spoofing packets
from the host easily. However, it may comes that there is no switch
between the host and the router, or more than one hosts share a port
through a hub, or not all the switches in the network can be updated/
replaced to enable filtering. This method is designed to suit in the
situation where it is not possible to perform filtering on the port
of switch. Though it is relatively more complex and the overhead is
higher, this method has good flexibility since it is independent of
the interconnection medium. And generally it is more economical
since it doesn't require replacing all the switches in a network.
This mechanism comprises of two main parts: The address authorization
process and the address authentication process.
Bi, et al. Expires January 28, 2009 [Page 4]
Internet-Draft draft-bi-savi-csa-00 July 2008
3. Address Authorization
This process is shown in the Fig.1.
Node Gateway
| |
| Request Addr A |
Address |---------------->|
Request | Identifier=IA |
| Pub Key=Pk |
| |
| |
| |Address Use Right Check,
| |Binding(IA,Pk,A,Seed)
| |
Address | Comfirm Addr A |
Assignment |<----------------|
| Signature Seed |
| Encypted by Pk |
| |
Figure 1: Address authorization process
3.1. Address Preparation
We emphasize the manner of address assignement since we define IP
spoofing to be taking place when a user/host/interface uses one or
more addresses which are not assigned to it by the appointed
allocation method, or the configuration of an allocated address is
incorrect. IP spoofing caused by erroneous configuration is
generally not malicious and can be corrected easily once the error is
detected. Moreover, if the allocation mechanism is misconfigured,
the spoof filtering mechanism has no way to run correctly since the
information used in filtering will also be incorrect. Thus we only
deal with the use of addresses not allocated to the user/host/
interface by the allocation method.
In this stage, if the node is a host, it MUST prepare an address.
The address MUST be got according to current address allocation
method. In IPv6, this means:
Manually: the address MUST be got from the network administrator.
This means the address is allocated to the host/user/interface by the
administrator.
DHCP(either stateless or stateful): the address MUST be got from the
Bi, et al. Expires January 28, 2009 [Page 5]
Internet-Draft draft-bi-savi-csa-00 July 2008
DHCP server[DHCP,stateful,stateless]. To help affirm which host gets
the ownership of the address returned by the DHCP server, the request
message must be changed to contain an unspoofable host identifier.
We chose CGA[CGA] to play the role of the identifier in preference to
PKI. The procedure of DHCP allocation is changed as follows: The
node MUST use a CGA address as the source address to request an
address from the DHCP server. The CGA address MUST be generated
using the procedure described in [CGA]. The corresponding CGA option
and signature MUST be contained in the packet. The request packet
MUST contain a random nonce to prevent replay attack. The first-hop
layer-3 gateway MUST have the ability of obtaining the request
message and the response message of the DHCP server. The DHCP server
MAY be placed outside of the local network and so the gateway will
forward both kinds of message. Alternatively, these packets MAY be
changed to multicast packets to reach the gateway, or yet other
methods may be chosen here. The gateway MUST check the correctness
of signature and address portion of the request packet, and discard
invalid packets. The gateway MUST record the CGA address in the
validated request packet, and wait for the response packet from the
DHCP server. Once a response message arrives, the gateway will check
which address is allocated to the applicant and bind the CGA address
of the applicant to the allocated address. The advertised address in
the response packet is the address allocated to the host. If there
is any DHCP relay point, the source address of the request packet
MUST be unchanged before it reaches the gateway.
Stateless Autoconfiguration: the address MUST be got using NDP and
there MUST be no duplication[SAC].
Privacy: the address MUST be got using NDP and there MUST be no
duplication[Privacy]. This mechanism doesn't guarantee the privacy
requirement of node. The node MUST use its own policy to achieve
privacy. [Privacy].
CGA: the address MUST be generated according to CGA generation
algorithm[CGA]. The Sec value is decided according to the
requirement of administrator.
An arbitrarily generated address will not be regarded as an illegal
address unless it is forbidden under the rules of the appointed
address allocation method. For example, in the manual configuration
case, if a node uses any address other than its allocated address, it
is spoofing. However, if in the SAC situation, a host can use other
addresses as long as they are not being used by other hosts, even if
no DAD has been performed.
The address preparation stage MAY be combined with the other stages
to simplify the procedure. For example, the DHCP address MAY be
Bi, et al. Expires January 28, 2009 [Page 6]
Internet-Draft draft-bi-savi-csa-00 July 2008
obtained together with the signature seed described in the next
section.
If the node is a NAT gateway, it will prepare one or more addresses.
In all cases, the addresses will be allocated by administrator
manually.
If the node is a DHCP-PD router, it prepares one or more prefixes
instead of one address. The prefixes are obtained using the DHCP-PD
protocol. In all cases these prefixes will be previously configured
by the administrator.
If the node is an IPv4 node, the only different case is DHCP. The
node cannot use a CGA address to send a DHCP solicitation. This can
be solved by using the address as an identifier, but not as a
locator. The CGA address in contained in the packet as an option,
and the host id of the IPv4 address is the hash of the CGA address.
The signature is computed on the whole packet.
Other than for DHCP, there is nothing different from normal address
allocation method in this stage. In manual allocation, we already
know which address has been allocated to whom. Thus the validation
of the ownership of the address must be based on some existing and
fixed knowledge, but not a stateless CGA identifier. In SAC and
similar mechanisms, since there is actually no "allocation"
procedure, a node can get ownership of any address not being used.
We don't care who is using the address. In some case we do care who
is using an address, but this problem is actually out of the scope of
preventing IP spoofing. The solution of tracing the user of an
address requires modification of the SAC protocol.
3.2. Identifier Generation
After preparing an address, a node must request the right to use the
address from the first-hop layer-3 gateway. It tells the gateway
"who I am, and which address I want to use". So there must be a
field in the request packet to show the identity of the applicant,
and the value of the field must be unspoofable. Again we choose CGA
to help generate an identifier of the applicant. In DHCP and SAC
cases, CGA works well. However, in the manual configuration case,
the identifier must be stateful and contain fixed information about
the applicant, because the applicant must tell the gateway that it is
the very person/host that owns the address, but not some random
person/host. In this case stateless CGA generation is not
appropriate. We choose using a shared secret to authenticate the
identity of a node in all manual configuration cases. This means if
one knows a correct shared secret, it will get ownership of the
corresponding address. Thus the shared secret must be protected in
Bi, et al. Expires January 28, 2009 [Page 7]
Internet-Draft draft-bi-savi-csa-00 July 2008
the message exchchange and replay attack must be avoided. Adding
state into CGA generation is one possible way of solving this
problem. For example, the shared secret between the applicant and
the gateway could be combined with the public key and a random nonce
to generate an address. Then the shared secret would not be leaked,
and the gateway can recompute the address to ascertain the
correctness of the secret.
Using CGA as an identifer actually wastes the left-most 64 bits.
However, the form of a CGA address is kept and it can be used for
other purposes. For example, this mechanism can cooperate with the
SEND protocol using the CGA identifier.
The procedure of identifier generation is described as follows:
The node MUST generate an identifier. The identifier is a CGA
address whose left-most 64 bits is the network prefix and the right-
most 64 bits is generated according to [CGA] except for any address
allocation method using manual configuration.
In the case where the address is configured manually, a shared secret
MUST be previously allocated between the node and the gateway. The
shared secret is a bit-string longer than 256 bits(this number is to
be decided in the future). The node MUST generate a random number of
128 bits as a nonce. Then the right-most 64 bits of the identifier
is computed by combining the public key, the shared secret, the nonce
and auxiliary parameters. The shared secret MUST be allocated
manually, but not using any key exchange protocol, since the source
address of the applicant has not yet been authorized.
If a node wants to use another address, it CAN use another public key
and identifier or an existing identifer.
The security of the identifier MUST be guaranteed by the node itself,
which means the public key pair MUST not be leaked. IP spoofing
caused by a deliberate leak will not be stopped by this mechanism.
There MUST be no public key duplication in the same network. The
uniqueness will be checked by the gateway. Once a duplicate public
key is found to generate an identifier, the gateway will return an
error and ask the applicant to use another public key.
3.3. Address Request
After preparing the address and the identifier, a node MUST send a
request packet to the gateway. This packet is an ICMP packet, named
Seed Solicitation. Its format is shown in Fig.2.
Bi, et al. Expires January 28, 2009 [Page 8]
Internet-Draft draft-bi-savi-csa-00 July 2008
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Address Allocation Method | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Nonce |
+ +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ CGA Identifier +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. CGA Option .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. RSA Signature Option .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: The format of the Seed Solicitation message
IP Fields:
Source Address: The address prepared in the first stage.
Destination Address: This portion MUST be filled with the IP address
of the first-hop layer-3 gateway.
Hop Limit: 1 or more. Generally 1 is enough, but there may be some
extension in the future. For example, the gateway is not one hop
Bi, et al. Expires January 28, 2009 [Page 9]
Internet-Draft draft-bi-savi-csa-00 July 2008
away from the node, but several hops.
ICMP Fields:
Type: TBD
Code: TBD
Checksum: The ICMP checksum.
Address Allocation Method:
Index of address allocation method, which shows by which method the
applicant gets the address. Now: 1: Manually 2: DHCP 3: SAC 4: CGA
5: NAT 6: DHCP-PD
Prefix Length: Only used in DHCP-PD case. It helps to get the
request prefix.
Nonce: A random number that is used to prevent replay attacks.
CGA Identifier: The identifier generated in the phase of "Identifier
Generation".
Options:
CGA Option: Described in [SeND].
RSA Signature Option: Described in [SeND]. Used to anthenticate the
whole message.
The destination address in the packet is obtained through the RA
message from the router. If the RA message is forged by some other
node deliberately, the node will be deceived. This may cause
information leak and the node may be unable to send packets. Hence
the security of NDP SHOULD be protected. However, even SeND cannot
ensure that the sender of a RA message is actually a router.
However, we think the first-hop gateway has enough information to
know the address of the first-hop router, and it SHOULD filter forged
RA message and prevent forged RA message from reaching any node on
local link.
3.4. Gateway Authorizing Address
In this phase, the gateway checks whether the applicant has the right
to use the requested address. This validation is based on the
knowledge of address allocation. If the address is able to be used
by the applicant, a bit string named "signature seed" will be
Bi, et al. Expires January 28, 2009 [Page 10]
Internet-Draft draft-bi-savi-csa-00 July 2008
returned to he applicant.
Whenever the gateway receives a SS packet, firstly it performs
following checks:
o Check if the CGA identifier of the packet is a valid CGA
identifier corresponding to the CGA option. If not, discard it.
If the address allocation method is manually configuration, the
gateway obtains the shared secret of the request address, and
recomputes the identifier to check whether it is correct.
o Check if the signature in RSA signature option is correct. If
not, discard it.
o Check if either the public key or the CGA identifier duplicates
any already registered public key or CGA identifier. If only the
public key is duplicate, return an ICMP message to ask the
applicant to generate another key pair. If both are duplicate,
check if the nonce is different from the previous entry. If yes,
discard the packet; if no, this may happen for a multi-homing
node, or a node requesting a former address. This situation will
be discussed later.
Then the gateway will check whether the applicant has the right to
use the requested address. Depending on the address allocation
method, the gateway will check different things.
o Manual allocation: Once the packet passes the former check on the
CGA identifier, the shared secret has already been validated. So
no further check is required here.
o DHCP: The address MUST be the one that the DHCP server has
allocated to the applicant owning the same CGA identifier in the
packet. This means the gateway has to perform DHCP snooping to
know the association of address and identifier. This knowledge
has been in the first phase.
o Stateless Auto Configuration: The address MUST not have been
registered in the gateway. This means no one has the right to use
this address yet.
o Privacy: The address MUST have not been registered in the gateway.
o CGA: The address MUST be unique and generated following the
algorithm in [CGA]. If there are other restrictions on generating
a CGA, e.g. the Sec value, they MUST be satisfied.
Once the address is found to be able to be used by the applicant, the
Bi, et al. Expires January 28, 2009 [Page 11]
Internet-Draft draft-bi-savi-csa-00 July 2008
gateway will generate a random number called "signature seed". It is
a bit string of 384 bits and MUST not be the same as any former
signature seed. Then the gateway SHOULD keep an entry in a record
table, which has following elements: Address, signature seed, CGA
identifier, public key, Sec value, nonce. The "signature seed" is
used to perform a lightweight authentication in the future.
Then, a packet will be returned to the applicant. This packet is
called Seed Advertisement(SA) message, and has following format.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
. .
. Signature Seed .
. .
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ CGA Identifier +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. CGA Option .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. RSA Signature Option .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: The format of Seed Advertisement message
Bi, et al. Expires January 28, 2009 [Page 12]
Internet-Draft draft-bi-savi-csa-00 July 2008
IP Fields:
Source Address: The address of the router.
Destination Address: The address requested by the node.
Hop Limit: 1 or more.
ICMP Fields:
Type: TBD
Code: TBD
Checksum: The ICMP checksum.
Signature Seed: The signature seed generated by the gateway. This
seed MUST be encrypted by the public key of the request node.
CGA identifier: The CGA identifier of the gateway.
Options:
CGA Option: Described in [SeND].
RSA Signature Option: Described in [SeND]. Used to anthenticate the
message.
3.5. Address Assignment
A node MUST receive any Seed Advertisement packet whose destination
is the address which it has requested, though the address is not
being used by the node.
When a node receives a Seed Advertisement message, firstly it checks
whether the CGA identifier and the RSA signature are correct. If
either of them is incorrect, discard the packet. Once the node gets
a valid Seed Advertisement message from the gateway, it can use the
request address.
Then the node decrypts the signature seed field to get the signature
seed, using its private key generated in the phase of "identifier
generation".
Bi, et al. Expires January 28, 2009 [Page 13]
Internet-Draft draft-bi-savi-csa-00 July 2008
4. Address Authentication
In the previous stage, a node obtains authorization to use an address
and a shared secret "signature seed" has been exchanged between the
gateway and the node. Then normal packet communication will start.
To authenticate normal packets, a signature must be added into the
packets, and the gateway checks the signature.
After the node gets the signature seed for the requested address, all
the a signature MUST be added to all transmitted and this signature
MUST be checked by the gateway.
4.1. Signature Generation
The host generates signatures from the signature seed to sign
packets. Here we propose three candidate method to generate a
signature.
o HMAC
o Pseudo Random Number Generation
HMAC is a mature algorithm and has been tested in many authentication
mechanisms, such as IPSec. HMAC is robust since it is stateless, but
it is computed across the entirety of each packet, which will limit
the forwarding performance of the router.
Though there have been some commercial products which use Pseudo-
Random Number Generation to generate one-time keys, the dependability
of this algorithm used in packet authentication must be tested
generally. Since it is stateful, it it is impacted by out-of-order
packets and dropped packets. But in perfect network condition, it is
more effective than HMAC as it isn!_t computed on the contents of
packets and the signatures can be generated in advance.
Other signature generation methods can also be used here. The only
requirement is that the signature must change with each packet, to
prevent sniffer and replay attack.
NAT and DHCP-PD routers MUST generate a signature for any packets
they transmit.
4.2. Signature Addition
The signature can be added into the packet in three ways:
1 IPSec Authentication Header: It is mature but may conflict with an
existing AH.
Bi, et al. Expires January 28, 2009 [Page 14]
Internet-Draft draft-bi-savi-csa-00 July 2008
2 A new option header: The signature is added as a new destination
option header, or a new hop-by-hop option header. We have done
similar work when implementing a prototype of SPM.
3 Address Rewrite: This is a new method that we have proposed
recently and its value is still untested. In this method, the
signature is not added into the packet as an IP extension header, but
used to mark the source IP address field. We proposed this method
because we found that the overhead of signature addition and removal
is the bottleneck of the authentication method. These two operations
require memory copy which is computationally expensive. Moreover,
the location of the signature iscostly because the IPv6 header is
chaining- structured. Changing some fixed bits costs less. Because
any field of an IP header has a defined meaning, the safest way is to
change the source address, since it is only used when the receiver
wants to reply. The gateway can set up an inverse index table which
maps signature to address, and if the signature contained in source
address field is exists in the table, it rewrites the source address
into the packet. The rationality of this method is based on a
spatial and dynamic signature space.
NAT and DHCP-PD router MUST add the signature for any packets they
transmit.
4.3. Sending packet
After inserting the signature extension header, the node sends it out
via the link between the gateway and itself.
4.4. Packet Checking by the Router
Whenever the router gets a packet, it will check whether the source
address has been applied for and whether the signature is correct.
Because the router keeps a mapping table from the address to the
seed, it is easy to verify the signature.
4.5. Router Transmitting Packet
If the signature in the packet is found to be correct, the router
will remove the Access Network Authentication Header from the packet
and then transmit it. If the signature is inserted by rewriting the
source address, it will replace the signature with the corresponding
address.
Bi, et al. Expires January 28, 2009 [Page 15]
Internet-Draft draft-bi-savi-csa-00 July 2008
5. Some Consideration
5.1. Refresh of the mapping table
The mapping table of address and signature-seed should be refreshed
periodically to prevent brute-force attack. The router should
periodically send a notification to the host to ask them to update
the signature-seed and generate new signatures. Older signature can
pass the validation for a short period, after which only the new
signature is accepted. In APPA, refresh is not needed, because no
brute-force attack can be effective, and also it is hard to keep
synchronization of the signature if the signature-seed changes.
5.2. Cooperating with SEND
SEND is of great importance to maintain a trust between the host and
the router. Without SEND, the host and the router could be deceived
at the very beginning of the process and all the ensuing steps would
not be insecure. Moreover, the seed exchange process can be designed
as an extension of SEND.
5.3. Deployment not on first-hop router
It happens that some first-hop routers can not be upgraded to perform
this validation. This mechanism can also be deployed on a distant
gateway. The host should know the address of the gateway first, and
then use the same method to get a signature-seed from the gateway.
The basic mechanism is much the same. However, some details need to
be thought through here. For example, the snooping of DHCP messages
may not be possible on a distant gateway may be not possible, and the
gateway must communicate with the DHCP server.
5.4. Spoofing Prevention Functionality
The basic functionality of the method described is that an attacker
can not use any address that has been successfully applied for by
others. This address can be allocated by any method.
This mechanism cannot prevent a host from using a lot of "reasonable"
addresses, Because this behaviour does not differ much from normal
behaviour. But we can limit the frequency with which a single link-
layer address can be associated with applications to reserve an
address.
This method does not address or support the traceing of ahost using a
known source address. Other mechanisms may be added to enhance the
traceability. For example a log of link layer address of the Seed
Bi, et al. Expires January 28, 2009 [Page 16]
Internet-Draft draft-bi-savi-csa-00 July 2008
Solicitation message could be kept in router. Since link layer
address can also be forged, we have yet to design a totally effective
mechanism.
5.5. Keep-alive
The router MUST send keep-alive message to ensure that the address is
still in use. If the address is not used by any host, the entry in
the mapping table will be cleared. This message can be authenticated
by using the seed already exchanged. Details will be designed in a
future document.
5.6. Other Considerations
Another problem in an access network is that a host can contrive to
receive packets destined for other hosts. There are two situations.
The first of these is the case where bothhosts are in a single
collision domain, and a host can sniff packets sent to the other.
Encrypting the packet to the host is the only way to prevent such
sniffing and our mechanism provides good basics for such encrypting.
Because the worst behaviour of an attacker is sniffing, stopping
sniffing is necessary and sufficient.
The other situation is thatthe hosts are in different collision
domains. An attacker can send spoofed ND message to the router in
order to get packets addressed to another host. Using SEND is a good
choice to prevent such attacks. Attacks in such situation are more
serious because the victim cannot communicate normally and its IP
could be used by others without it being aware.
Bi, et al. Expires January 28, 2009 [Page 17]
Internet-Draft draft-bi-savi-csa-00 July 2008
6. Comparision with Charter
This mechanism is mostly consistent with the charter. Though we only
showed the mechanism satisfied all address allocation method, it can
be used in other situations described in the charter, too. This
document doesn't explain the applicability in all the situations,
since actually it's very obvious.
The gap from this mechanism to the requirement of the charter is
"host change". Although the phase of address authorization can be
regarded as the extension of SEND and the phase of address
authentication can be regarded as the extension of IPSec, the charter
also prohibits "externsions of current protocols". We will discuss
the necessity of "host change" below.
We extend the concept of packet to be all the infomation the
checkpoint gets with the packet, for example, the switch port is also
thought to be the content of the packet.It is obvious that there can
be no perfect filtering mechanism if any two nodes can send the same
packets to the checkpoint. The "perfect filtering" means any packet
can be determined to be valid or not correctly. Though a node can
set the content of the packet above physical layer arbitrarily, it
can not determine the port from which the packet is received by the
switch. Thus the switch port can be used to distinguish packets.
However, if more than one nodes share a port, they have the ability
of spoofing each other's addresses. Only a strict one-one mapping
from port to node can be used to achieve perfect filtering. Actually
switch port and interface of router are the only two elements that
are unspoofable(if other element is found, there will be a new
filtering mechanism). The number of router interface is too rare to
achieve a fine granularity filtering. The switch port is actually
the only information can be used to achieve a fine granularity
filtering. So once there is no strict one-one mapping from port to
node, a host level perfect filtering is impossible.
There is another kind of filtering we call "probability perfect
filtering". In a probability perfect filtering mechanism, a node
still has the ability of generating a "valid" forged packet, but the
probability is very low. A signature-verification mechanism is a
typical probability perfect filtering mechanism. In a probability
perfect filtering mechanism, the sender must have the knowledge of
how to make the space of its valid packets to be very sparse to avoid
spoofing attack, so the sending node must be modified. Though there
is a mechanism that doesn't modify the host end to enable
filtering[hop count filtering], the knowledge used in filtering(the
ttl value) is not secure and the mechanism is very vulnerable.
Therefore, we think the limitation in the charter should be relaxed
Bi, et al. Expires January 28, 2009 [Page 18]
Internet-Draft draft-bi-savi-csa-00 July 2008
to accept other mechanisms not based on filtering at switch port.
Bi, et al. Expires January 28, 2009 [Page 19]
Internet-Draft draft-bi-savi-csa-00 July 2008
7. Acknowledgements
The authors would like to acknowledge the contributors who provided
helpful inputs on earlier versions of this document and Mark Williams
who provided editorial support.
The author gratefully acknowledges the contributions of Fred Baker,
Jari Arkko, Christian Vogt, Xing Li, Pekka Savola, Lixia Zhang, Yan
Shen, Lizhong Xie.
Bi, et al. Expires January 28, 2009 [Page 20]
Internet-Draft draft-bi-savi-csa-00 July 2008
8. References
[CGA] "RFC 3972: Crystographically Generated Addresses(CGA)",
March 2005.
[Privacy] IBM, "RFC 3041: Privacy Extensions for Stateless Address
Autoconfiguration in IPv6", January 2001.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[SAC] "RFC 2462: IP Address Autoconfiguration", December 1999.
[SEND] Ericsson, "RFC 3971: SEcure Neighbor Discovery",
March 2005.
[Stateful DHCP]
Cisco, "RFC 3315: Dynamic Host Configuration for IPv6",
2003.
[Stateless DHCP]
Cisco, "RFC 3716: Stateless Dynamic Host Configuration
Protocol(DHCP) service for IPv6", 2004.
Bi, et al. Expires January 28, 2009 [Page 21]
Internet-Draft draft-bi-savi-csa-00 July 2008
Authors' Addresses
Jun Bi
CERNET
Network Research Center, Tsinghua University
Beijing 100084
China
Email: junbi@cernet.edu.cn
Jianping Wu
CERNET
Network Research Center, Tsinghua University
Beijing 100084
China
Email: jianping@cernet.edu.cn
Guang Yao
CERNET
Network Research Center, Tsinghua University
Beijing 100084
China
Email: yaog@netarchlab.tsinghua.edu.cn
Bi, et al. Expires January 28, 2009 [Page 22]
Internet-Draft draft-bi-savi-csa-00 July 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Bi, et al. Expires January 28, 2009 [Page 23]
| PAFTECH AB 2003-2026 | 2026-04-24 04:15:39 |