Skip to main content

A Simple Secure Addressing Scheme for IPv6 AutoConfiguration (SSAS)
draft-rafiee-6man-ssas-05

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Hosnieh Rafiee , Christoph Meinel
Last updated 2013-07-15
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-rafiee-6man-ssas-05
IPv6 maintenance Working Group (6man)                         H. Rafiee
INTERNET-DRAFT                                                C. Meinel
Updates RFC 3971                               Hasso Plattner Institute
(if approved)                                                           
Intended status: Proposed Standard                                      
Expires: January 15, 2014                                  July 15, 2013

      A Simple Secure Addressing Scheme for IPv6 AutoConfiguration 
                                   (SSAS) 
                     <draft-rafiee-6man-ssas-05.txt>

Abstract

   The default method for IPv6 address generation uses an 
   Organizationally Unique Identifier (OUI) assigned by the IEEE 
   Standards Association and an Extension Identifier assigned to the 
   hardware manufacturer [1] (section 2.5.1 RFC-4291) [RFC4291]. This 
   fact thus means that a node will always have the same Interface ID 
   (IID) whenever it connects to a new network. Because the node's IP 
   address does not change, the node will be vulnerable to privacy 
   related attacks. Currently this problem is addressed by the use of 
   two mechanisms that do not make use of the MAC address, or other 
   unique values that can be used for ID generation, for randomizing the 
   IID; Cryptographically Generated Addresses (CGA) [RFC3972] and 
   Privacy Extension [RFC4941]. The problem with the former approach is 
   the computational cost involved for the IID generation and in the 
   verification process. The problem with the latter approach is that it 
   lacks necessary security mechanisms and provides the node with only 
   partial protection against privacy related attacks. This document 
   proposes the use of a new algorithm for use in the generation of the 
   IID while, at the same time, securing the node against some types of 
   attack, like IP spoofing. These attacks are prevented by the addition 
   of a signature to messages sent over the network and by finding a 
   binding with the nodes' IP address and its public key. The use of 
   theResource Public Key Infrastructure (RPKI), introduced in this 
   document, is based on the centralized version explained in RFC 6494 
   and RFC 6495. 

Status of this Memo

   This Internet-Draft is submitted in full conformance with the 
   provisions of BCP 78 and BCP 79. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF). Note that other groups may also distribute working 
   documents as Internet-Drafts. The list of current Internet-Drafts is 
   at http://datatracker.ietf.org/drafts/current. 

Rafiee, et al.     Expires January 15, 2014                     [Page 1]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   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." 

   This Internet-Draft will expire on January 15, 2013. 

   

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the 
   document authors. All rights reserved. This document is subject to 
   BCP 78 and the IETF Trust's Legal Provisions Relating to IETF 
   Documents (http://trustee.ietf.org/license-info) in effect on the 
   date of publication of this document. Please review these documents 
   carefully, as they describe your rights and restrictions with respect 
   to this document. Code Components extracted from this document must 
   include Simplified BSD License text as described in Section 4.e of 
   the Trust Legal Provisions and are provided without warranty as 
   described in the Simplified BSD License. 

Table of Contents

   1.  Introduction   . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Conventions used in this document  . . . . . . . . . . . . . .  4
   3.  Problem Statement  . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  SSAS Applications  . . . . . . . . . . . . . . . . . . . .  6
       3.1.1.  Preventing Attacks   . . . . . . . . . . . . . . . . .  6
         3.1.1.1.  Replay attack  . . . . . . . . . . . . . . . . . .  6
         3.1.1.2.  IP spoofing  . . . . . . . . . . . . . . . . . . .  6
         3.1.1.3.  Denial of Service (DoS) attacks  . . . . . . . . .  7
         3.1.1.4.  Spoofed Redirect Message   . . . . . . . . . . . .  7
       3.1.2.  Nodes with limited resources   . . . . . . . . . . . .  7
       3.1.3.  Other Applications   . . . . . . . . . . . . . . . . .  8
   4.  Algorithms Overview  . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  SSAS First Algorithm (SSAS v1)   . . . . . . . . . . . . .  8
       4.1.1.  Interface ID (IID) Generation  . . . . . . . . . . . .  8
       4.1.2.  Signature Generation   . . . . . . . . . . . . . . . .  9
       4.1.3.  Generation of NDP Messages   . . . . . . . . . . . . . 10
         4.1.3.1.  SSAS signature data field  . . . . . . . . . . . . 10
       4.1.4.  SSAS v1 verification process   . . . . . . . . . . . . 11
     4.2.  SSAS Second Algorithm (SSAS v2)  . . . . . . . . . . . . . 12
       4.2.1.  Interface ID (IID) Generation  . . . . . . . . . . . . 13
       4.2.2.  SSAS v2 verification process   . . . . . . . . . . . . 13
     4.3.  Resource Public key Infrastructure (RPKI)  . . . . . . . . 13
       4.3.1.  Generation of RPK and SPK  . . . . . . . . . . . . . . 14
       4.3.2.  Process of RPK and SPK.  . . . . . . . . . . . . . . . 15

Rafiee, et al.     Expires January 15, 2014                     [Page 2]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 16
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 16
   7.  Conclusions  . . . . . . . . . . . . . . . . . . . . . . . . . 17
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
     8.1.  Normative  . . . . . . . . . . . . . . . . . . . . . . . . 17
     8.2.  Informative  . . . . . . . . . . . . . . . . . . . . . . . 18
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19

Rafiee, et al.     Expires January 15, 2014                     [Page 3]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

1.  Introduction 

   IPv6 addresses consist of two parts; the subnet prefix, which is the 
   64 leftmost bits of the IPv6 address, and the Interface ID (IID), 
   which is the 64 rightmost bits of the IPv6 address. The IEEE 
   Standards Association [1] (section 2.5.1 RFC-4291) [RFC4291] offered 
   a standard for the generation of IPv6 Interface IDs (IID) called the 
   Extended Unique Identifier (EUI-64). EUI-64s are generated by the 
   concatenation of an Organizationally Unique Identifier (OUI), 
   assigned by the IEEE Registration Authority (IEEE RA), with the 
   Extension Identifier assigned by the hardware manufacturer. For 
   example, if a manufacturer's OUI-36 hexadecimal value is 
   00-5A-D1-02-3, and the manufacture hexadecimal value, for the 
   Extension Identifier for a given component is 4-42-61-71, then the 
   EUI-64 value generated from these two numbers will be 
   00-5A-D1-02-34-42-61-71. If the OUI is 24 bits and the extension 
   identifier is also 24 bits (this constitutes the MAC address), then 
   to form the 64-bit EUI address, the OUI portion of the MAC address is 
   inserted into the leftmost 24 bits of the EUI-64 8 byte field and the 
   Extension Identifier is inserted into the rightmost 24 bits of the 
   EUI-64 8 byte field. A value of 0xFFFE is then inserted between these 
   two 24-bit items. IEEE has chosen 0xFFFE as a reserved value which 
   can only appear in an EUI-64 which is generated from an EUI-48 MAC 
   address. Bit 7 (u bit) in the OUI portion of the address is used to 
   indicate either global or local uniqueness. Globally unique addresses 
   assigned by the IEEE set this bit to zero, by default,indicating 
   global uniqueness.The bit is set to 1 for locally created addresses, 
   such as those used for virtual interfaces or a MAC address manually 
   configured by an administrator. 

   There are currently some mechanisms used to generate a randomized IID 
   that do not make use of a MAC address; CGA [RFC3972], Privacy 
   Extension (generation of temporary addresses) [RFC4941], etc. In this 
   document we discuss the problem inherent with using the current 
   mechanisms and then we explain our solution to the problem, which is 
   to randomize the IID observing privacy, while, at the same time, 
   providing security to Neighbor Discovery Protocol (NDP) messages of 
   nodes in the IP layer. DHCPv6 [RFC3315] can also benefit from this 
   approach for the generation of a random IID or for authentication 
   purposes. 

2.  Conventions used in this document 

   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]. 

   In this document, these words will appear with that interpretation 
   only when in ALL CAPS. Lower case uses of these words are not to be 

Rafiee, et al.     Expires January 15, 2014                     [Page 4]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   interpreted as carrying RFC-2119 significance. 

   In this document the use of || indicates the concatenation of the 
   values on either side of the sign. 

3.  Problem Statement 

   The drawback to using IIDs that do not change over time is one of 
   privacy. The node will generate the same IID whenever it joins a new 
   network thus making it easy for an attacker to track that node when 
   it moves to different networks. 

   The main problem with the privacy extension mechanism, when using the 
   first approach as explained in section 3.2.1 RFC-4941 [RFC4941], 
   i.e., using stable storage, is the lack of a provision for the use of 
   a security mechanism and also the need to generate public addresses 
   based on MAC addresses. The Privacy Extension RFC partially prevents 
   attacks related to privacy issues, but it cannot prevent attacks 
   related to security issues. For example, it cannot prevent IP 
   spoofing attacks and it cannot provide proof of IP address ownership 
   for a node. If one wants to use a secure method, with the privacy 
   extension, then one needs to use CGA. The problem with using CGA is 
   in the computational overhead necessary to compute it when higher sec 
   values are used and the time that is needed to perform the 
   verification process. This time is based on the reverse of the steps 
   required for the CGA regeneration during the verification process 
   along with the additional time needed for signature verification. 

   The first problem with CGA is the apparent lack of a defense against 
   Denial of Service (DoS) types of attack that are performed against 
   verifier nodes. In the CGA RFC there is no explanation as to how to 
   prevent these types of attacks. This means that an attacker can 
   overwhelm the verifier node with false CGA values thus rendering it 
   unable to process further messages.This document also proposes a 
   solution to this type of attack. The other problem with CGA sec value 
   higher than 0 is unnecessary making busy the CPU and other resources 
   in a node for unlimited period of time. It is because there is no 
   guarantee that the 16 by sec value equal to zero condition will ever 
   be met. So the use of the CGA algorithm, which is compute intensive, 
   is thus not ideal for use with nodes having limited resources or with 
   nodes wanting to change their IID frequently for the purpose of 
   protecting their privacy. 

   In order to overcome the problem with using the other mechanisms, the 
   time needed for IP address generation and verification needs to be 
   reduced and avoid unnecessary usage of CPU while at the same not 
   scarifying user's security. We propose the use of the SSAS algorithm, 
   along with the SSAS signature, to provide a node with the protection 
   it needs to protect it against IP spoofing and other spoofing types 
   of attack in the IP layer. Our experimental results [2] show that 
   SSAS is more secure and faster than CGA when using a sec value of 0 

Rafiee, et al.     Expires January 15, 2014                     [Page 5]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   (uses 62 bits (when using first SSAS algorithm) while CGA uses 59 
   bits) and much faster than CGA when using a sec value of 1. The 
   security of SSAS, when using second algorithm, is about the same as 
   the security of the whole public key while in CGA it depends on the 
   sec value. It is not also ideal to use CGA with sec value higher than 
   1 when using the current hardware resources. This is because it will 
   take hours to years to generate an IP address. 

   Note: It is not the intent of this document to obsolete CGA but to 
   propose a simpler, faster and high security addressing mechanism for 
   use in providing nodes with network layer privacy and security. This 
   is accomplished by providing a node with two algorithms to be used to 
   randomize the IID while at the same time providing nodes protection 
   against the types of attack explained below. 

3.1.  SSAS Applications 

3.1.1.  Preventing Attacks 

   The following sections detail some types of attack that SSAS can 
   prevent. 

3.1.1.1.  Replay attack 

   In this type of attack, an attacker will sniff the Neighbor Discovery 
   Protocol enabled network (NDP) messages to find, and then copy, a 
   legitimate signature and public key to his own NDP message which he 
   will then send to the original sender. But with the use of the SSAS 
   algorithm (Including the timestamp in the signature) and using RPKI 
   introduced in this document, this can be prevented. The use of a 
   timestamp works because the timestamp will be valid for only a short 
   period of time. (this accounts for clock skews.) 

3.1.1.2.  IP spoofing 

   This is a well-known type of attack in NDP. This type of attack is 
   used against the Duplicate Address Detection process. In this attack, 
   when a node joins the network and generates a new IP address, the 
   node sends a Neighbor Solicitation (NS) message to check for address 
   collisions in the network. The attacker, in this scenario, spoofs the 
   IP address and responds back to the node with a Neighbor 
   Advertisement (NA) message claiming ownership of this IP address. 
   While the SSAS algorithm does allow this node to verify other nodes 
   in the network, an attacker will not have the private key associated 
   with this node which is needed for SSAS signature generation, so the 

Rafiee, et al.     Expires January 15, 2014                     [Page 6]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   verification process will fail. 

3.1.1.3.  Denial of Service (DoS) attacks 

   An attacker might send many NDP messages, using invalid signatures, 
   to a victim's node which then forces the node to busy itself with the 
   verification process. To mitigate this attack, a node SHOULD set a 
   limit on the number of messages (x) that should be verified within a 
   certain period of time. Implementations MUST provide a conservative 
   default and SHOULD provide a means for detecting when this limit is 
   reached. 

3.1.1.4.  Spoofed Redirect Message 

   Redirect messages, imitating the end host needing redirection, can be 
   sent from any router on the same broadcast segment. The attacker uses 
   the link-local address of the current first-hop router in order to 
   send a Redirect message to a legitimate node. Since that node 
   identifies the message as coming from its first hop router, by use of 
   the link-local address, it accepts the Redirect. The Redirect will 
   remain in effect as long as the attacker responds to the Neighbor 
   Unreachability Detection probes sent to the link-layer address. To 
   preclude this from occurring, the address ownership of the first-hop 
   router should be verified. The use of the SSAS verification process 
   along with RPKI will prevent such an attack. 

3.1.2.  Nodes with limited resources 

   SSAS can be used in nodes where limited computational resources are 
   available. It can provide protection to these nodes against the types 
   of attack stated above. Sensor networks are a prime example of nodes 
   with limited resources (such as battery, CPU, and etc); see RFC-4919 
   [RFC4919] for use in IPv6 networks. Because currently, as explained 
   in section 4. RFC-6775, the generation of the IID is based on EUI-64 
   which makes these nodes vulnerable to privacy and security attacks. 
   One of these types of attack can occur during the Duplicate Address 
   Detection (DAD) process. 

   Another example for the use of SSAS would be in mobile networks 
   during the generation of IP addresses, as explained in section 4.4 
   RFC-6275 [RFC6275]. The current problem with the addressing mechanism 
   in a mobile node is that no privacy is observed when a node moves to 
   another network while usually keeping its Home Address. If there were 
   a fast and secure mechanism available, then it would be possible to 
   set this Home Address and change it and re-register it to the Home 
   network. Another possible use for SSAS in mobile nodes could be as a 
   security mechanism during the configuration of Care of Address (CoA); 

Rafiee, et al.     Expires January 15, 2014                     [Page 7]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   see section 3. RFC-5213 [RFC5213]. In that RFC, home proxy plays the 
   role of a home agent for mobile nodes and mobile nodes set their CoA 
   by the use of either stateful or stateless autoconfiguration. 
   Currently they MUST use IPsec in order to secure this process. 
   Section 4 of that RFC discusses the possibility of using another 
   algorithm in order to secure mobile nodes. 

3.1.3.  Other Applications 

   With the wide usage of IP addresses in different types of devices and 
   by the use of autoconfiguration mechanisms to configure these IP 
   addresses, the need for the use of a security algorithm is increased. 
   One type of application would for use in vehicular networks or car by 
   car networks. There is currently some work in progress that makes use 
   of Neighbor Discovery. SSAS could also be a solution for enabling 
   fast protection against ND attacks. 

4.  Algorithms Overview 

   As explained earlier, one of the problems with using the current IID 
   generation approach is the compute intensive processing that is 
   needed for the IID algorithm generation. Another concern is for the 
   lack of security. Since we assume that a node will need to generate 
   and keep its address for a short period of time, we have tried to 
   keep the IID generation process to a minimum. We have also tried to 
   remain within the confines of NDP protocol. Here we offer two 
   algorithms. The first algorithm is used where the purpose is a fast 
   algorithm with the security higher than CGA sec value 0. The second 
   algorithm addresses the problem with the security level and tries to 
   use the security of the whole public key. 

4.1.  SSAS First Algorithm (SSAS v1) 

4.1.1.  Interface ID (IID) Generation 

   To generate the IID a node will need to execute the following steps. 

   1. Generate key pairs (public/private keys) using ECC (RFC 6090) or 
   other available algorithms. ECC is the default algorithm, but any 
   algorithm capable of generating a small key size in a short amount of 
   time is viable. It is best to have the key pairs generated, on the 
   fly, during the start-up phase of the algorithm generation. These 
   keys SHOULD be valid for only a certain period of time which depends 
   on network policy. When the time expires for the use of these key 
   pairs, the node will generate new key pairs. It then uses this new 

Rafiee, et al.     Expires January 15, 2014                     [Page 8]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   value for the generation of the IP address and signature. Comparing 
   the use of ECC to that of RSA shows that an ECC with a 192 bit key is 
   equivalent to a RSA with a 7680 bit key (according to US National 
   Security Agency) In this case the packet size would be decreased by a 
   factor 11 times smaller than that when using RSA. 

   2. Divide the public key array of bytes into two half byte arrays 
   (see figure 1). Obtain the first 4 bytes from the first half byte 
   array and call it the partial IID1. Obtain the first 4 bytes of the 
   second half byte array and call this the partial IID2. 

   3. Concatenate partial IID1 with partial IID2 and call this the IID. 
   Set bits u and g to one. 

   4. Concatenate the IID with the local subnet prefix to set the local 
   IP address 

   5. Concatenate the IID with the router subnet prefix (Global subnet 
   prefix), obtained from the Router Advertisement (RA) message, and set 
   it as a tentative public IP address. This IP address will become 
   permanent after Duplicate Address Detection (DAD) processing. (for 
   more information about DAD refer to section 4.1.3. ) 

    +-------------+---------+  +-------------+---------+
 |partial IID1 |         |  |Partial IID2 |         |
 +-------------+         |  +-------------+         |
 |                       |  |                       |
 +-----------------------+  +-----------------------+
    Figure  1  Public key divided into two halves 
 

4.1.2.  Signature Generation 

   The SSAS signature is added to NDP messages in order to protect them 
   from IP spoofing and spoofing types of attack. SSAS will provide 
   proof of IP address ownership, as does the CGA generation algorithm, 
   but by using fewer steps. To generate the SSAS signature, the node 
   needs to execute the following steps: 

   1. Concatenate the timestamp with the MAC address, collision count, 
   algorithm type and the global (public) IP address. (see figure 2) 

   

+---------+-----------+---------------+--------------+
|timestamp|Mac address|Collision Count|Algorithm type|
| 8 bytes |  6 bytes  |     3 bits    |    1 byte    |
+---------------------+---------------+--------------+
|Global IP address    | Other Options |
|    16 bytes         |    variable   |
+---------------------+---------------+

Rafiee, et al.     Expires January 15, 2014                     [Page 9]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

    Figure  2 SSAS Signature format
 

   2. Sign the resulting value from step 1, using the ECC private key, 
   and call the resulting output the SSAS signature. 

   If NDP messages contain other data that must be protected, such as 
   important routing information, then this data SHOULD also be included 
   in the signature. The signature is designed for the inclusion of any 
   data needing protection. If there is no data that needs protection, 
   then the signature will only contain the timestamp, MAC address, 
   Collision count and Global IP address (Router subnet prefix plus 
   IID). 

4.1.3.  Generation of NDP Messages 

   After a node generates its IP address, it should then process 
   Duplicate Address Detection in order to avoid address collisions in 
   the network. In order to do this the node needs to generate a 
   Neighbor Solicitation (NS) message. The SSAS signature is added to 
   the ICMPv6 options of NS messages. The SSAS signature data field is 
   an extended version of the standard format of the RSA signature 
   option of SeND [RFC3971]. The timestamp option is the same as that 
   used with SEND. In the SSAS signature, the data field contains the 
   following items: type, length, reserved, Other Len, algorithm type, 
   collision count, subnet prefix, other option and padding. 

4.1.3.1.  SSAS signature data field 

   

+------+-------+------------+---------+
| Type |Length |  Reserved  |Other len|
|1 byte|1 byte |  2 bytes   | 1 byte  |
+----------+---------+------+---------+
| Algorithm|Collision|Subnet| Other   |
|   type   |  count  |prefix|Options  |
|  1 byte  |  3 bits |8bytes|         |
+-------------------------------------+
|                                     |
|           SSAS Signature            |
|                                     |
+-------------------------------------+
|             padding                 |
+-------------------------------------+
   Figure 3  NDP Message Format with SSAS Signature Data Field
 

   - Type: This option is set to 15. This is the sequential number used 

Rafiee, et al.     Expires January 15, 2014                    [Page 10]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   in SeND to indicate a SSAS data field. 

   - Length: The length of the Signature Data field, including the Type, 
   Length, Reserved, Algorithm type, Signature and padding, must be a 
   multiple of eight. 

   - Reserved: A 2 byte field reserved for future use. The value must be 
   initialized to zero by the sender and should be ignored by the 
   receiver. 

   - Other Len: The length of other options in multiples of eight. The 
   length of this field is 1 byte. 

   - algorithm type: The algorithm used to generate key pairs and sign 
   the message. The length of this field is 1 byte. For ECC, this value 
   is 0. Future algorithms will start at one and increase from there. 

   - Collision count: When a collision occurs during the DAD, the node 
   will increment this value and store it in a file to be included in 
   the sent packets for as long as the current IP address is valid. This 
   value indicates to the node where it needs to start its check from, 
   i.e., the first or second or third bytes from the start of the half 
   byte array of the public key. 

   - Subnet Prefix: This is the router subnet prefix. 

   - Other Options. This variable-length field contains important data 
   that needs to be protected in the packet. The padding is used to 
   insure that the field is a multiple of eight in length. 

   - Padding. A variable-length field containing padding to insure that 
   the entire signature field is a multiple of eight in length. It thus 
   contains the number of blanks needed to make the entire signature 
   field end on a multiple of eight. 

   All NDP messages (except RS messages) SHOULD contain the SSAS 
   signature data field which allows receivers to verify senders. If a 
   node receives a solicited NA message in response to its NS message 
   showing that another node claims to own this address, then, after a 
   successful verification process, this node increments the collision 
   count by one and this value is used as explained in the "Collision 
   count" item above. It will start from that section of the public key 
   for the generation of a new IP address. If the node receives the same 
   claim three times in a row, then it will consider it as an attack and 
   it will use that IP address. 

   This document proposes an update to the RFC 3971 in order to include 
   the the SSAS signature data field as an additional field to SeND to 
   be used in place of RSA signature. 

4.1.4.  SSAS v1 verification process 

Rafiee, et al.     Expires January 15, 2014                    [Page 11]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   A node's verification process should start when it receives NDP 
   messages. 

   Following are the steps used in the verification process: 

   1. Obtain the timestamp from the NDP message and call this value t1. 

   2. Obtain the timestamp from the node's system, convert it to UTC, 
   and call this value t2. 

   3. If (t2- x) < = t1 < = (t2 + x) go to step 4. Otherwise, the 
   message SHOULD be discarded without further processing. The value of 
   x is dependent on network delays and network policy. The 
   implementations MUST choose a flexible value for x based on the delay 
   in this network. 

   4. Obtain the public key from the CN node or by checking its own 
   neighboring cache. (see section 4.3) 

   5. Compare this to its own public key. If it is not the same, go to 
   the next step. Otherwise, the message should be discarded without 
   further processing. (This step should be skipped when the node uses 
   the CN node to obtain the other nodes' public key.) 

   6. Divide the public key into two arrays of byes. Based on the 
   collision count, start from the first, second or third bytes of 
   public key and select 4 bytes from each half byte array and call them 
   partial IID 1 and 2. Concatenate partial IID 1 with partial IID2 and 
   set bits u and g to 1. Obtain the node's source IP address. Compare 
   this value with the node's IID source IP. If it is the same, go to 
   the next step. Otherwise, discard the message without further 
   processing. 

   7. Concatenate the timestamp with the MAC address, algorithm type, 
   collision count, sender's Global IP address (subnet prefix and IID), 
   and other options (if any) and call this entity the plain message. 

   8. Obtain the SSAS signature from the SSAS signature data field. 
   Obtain the Algorithm type from the message. 

   9. Verify the Signature using the public key and then enter the plain 
   message and the SSAS signature as an input to the verification 
   function. If the verification process is successful, process the 
   message. Otherwise, the message should be discarded without further 
   processing. 

4.2.  SSAS Second Algorithm (SSAS v2) 

Rafiee, et al.     Expires January 15, 2014                    [Page 12]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

4.2.1.  Interface ID (IID) Generation 

   1. The first step is the same as what is explained in section 4.1.1. 
   of this document and call the public key Pk 

   2. execute a function on the public key. 

   R= F_x(Pk) 

   F() is the root function which depends on the size of public key. x 
   is the root value. If ECC or Another short key size algorithm is 
   used, then it will be the square root (x=2). R is the IID obtained 
   from the public key. The value is comprised of a 64 bit floating 
   point number obtained from the leftmost bits that includes the 
   numbers before and after the digits in the floating point 
   representation. then the bits u and g are set to one and this will be 
   IID. The implementations SHOULD use the same way of calculating x for 
   the same public key size. This will avoid the need of sending x to 
   the verifier node. 

   3. Concatenate the IID with the local subnet prefix to set the local 
   IP address 

   4. Concatenate the IID with the router subnet prefix (Global subnet 
   prefix), obtained from the RA message, and set it as a tentative 
   global IP address. This IP address will become permanent after 
   Duplicate Address Detection (DAD) processing. 

4.2.2.  SSAS v2 verification process 

   The first 5 steps of SSAS verification process is the same as the 
   first 5 steps explained in section 4.1.4. 

   6- Execute F_x(Pk) and compare the resulting value to the nodes' IID 
   (bits u and g SHOULD be ignored). If there is a match the message 
   SHOULD be processed otherwise it SHOULD be considered as an attack 
   and the message SHOULD be discarded without further action. 

4.3.  Resource Public key Infrastructure (RPKI) 

   To verify the authorized router in the local network and to create a 
   partial trust within the network, we propose the use of a local 
   centralized Resource Public Key Infrastructure (RPKI) which is based 
   on the centralized version explained in RFC 6494 and RFC 6495. Figure 
   4 depicts the architecture of this new RPKI framework. In this 
   framework we propose the use of a Controller Node (CN) whereby 
   administrators will be able to manually store, in the database of 
   this node, the router's public key and MAC address. We are 
   introducing the use of two different NDP messages, Request Public Key 

Rafiee, et al.     Expires January 15, 2014                    [Page 13]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   (RPK) and Send Public Key (SPK), that can be used by nodes to request 
   the public key of the router or other nodes, and can be used to send 
   from the CN node the public key of the requested node. The CN node 
   has a fixed IP address and MAC address in the local link. It is a 
   reserved MAC address and IP address which is known to all nodes. One 
   possible way to implement CN is to use a new module in routers 
   capable of processing these two messages. In this case, one CN node 
   could be available in two different local networks when the same 
   router is available between these two networks. When a node first 
   sends a RPK message, the CN node will add its MAC address and public 
   key to its database. This gives other nodes the capability of 
   verifying this new node by asking for the public key of this node. 
   The CN node maintains this data for as long as it receives NS 
   messages from this node. Nodes frequently check neighbor reachability 
   and the CN node receives these messages passively. If the CN node 
   does not see a message from a node that has an entry in its database, 
   then it sends a NS message to that node. If it does not receive a 
   response from that node after a few minutes, it removes that node 
   from its database. Nodes that are added manually to the CN database 
   must be removed manually from the CN database. 

4.3.1.  Generation of RPK and SPK 

   Figure 4 shows the format of these two new NDP messages. The NDP 
   message type used for RPK is 140 and for SPK is 141. These are set in 
   the ICMPv6 header. There are two new types in these messages: type 16 
   and type 17. If a node wants to generate a change to its IP address 
   or generate a new one, it sends a type 16 RPK message which indicates 
   the use of its MAC address and timestamp signed by its old private 
   key. A Type 17 message indicates the use of a node's new public key 
   and the signature generated by signing the MAC address and timestamp 
   with the node's new private key. 

   When a CN node wants to generate the SPK, it adds the requested 
   public key to the type 16 section of the message and then includes 
   its own public key and generates a signature IID using its own 
   private key created from the concatenation of timestamp with its own 
   MAC address and the values of type 17. 

   

+--------+---------+---------------------------+
|  Type  |  Length |          Reserved         |
| 1 byte |  1 byte |          6 bytes          |
+----------------------------------------------+
|               timestamp                      |
+---------+--------+---------------------------+
|  Type=20| Length |        public key         |
|  1 byte | 1 byte |                           |
+---------+--------+-----------+---------------+
|  Type=21| Length |  pubkeylen|   CN public   |

Rafiee, et al.     Expires January 15, 2014                    [Page 14]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

|  1 byte | 1 byte |  1 byte   |      key      |
+------------------+---------------------------+
|  Algorithm type  |        Signature II       |
|      1 byte      |                           |
+----------------------------------------------+
|                   Padding                    |
+----------------------------------------------+
              
 SPK message

+--------+---------+---------------------------+
|  Type  |  Length |          Reserved         |
| 1 byte |  1 byte |          6 bytes          |
+----------------------------------------------+
|               timestamp                      |
+---------+--------+-------------+-------------+
|  Type=20| Length |  Algorithm  | Signature I |
|  1 byte | 1 byte | type(1 byte)|             |
+---------+--------+-------------+-------------+
|  Type=21| Length |  pubkeylen|   new public  |
|  1 byte | 1 byte |  1 byte   |      key      |
+------------------+---------------------------+
|  Algorithm type  |        Signature II       |
|      1 byte      |                           |
+----------------------------------------------+
|                   Padding                    |
+----------------------------------------------+
                   
 RPK message
Figure 4 Format of Request Public Key (RPK) and Send Public Key (SPK) 

4.3.2.  Process of RPK and SPK. 

   When a new node joins a network, it generates its local IP address 
   using the SSAS algorithm and then sends a Router Solicitation message 
   to obtain a router advertisement and to generate its global IP 
   address. This message does not need to include the SSAS data 
   structure. The router responds to the node with a Router 
   Advertisement (RA). The new node needs to obtain the public key for 
   this router from the CN node. It then generates a RPK. After 
   successful verification, the CN node checks whether or not this MAC 
   address already exists in its database. If it does, it checks to see 
   whether or not the public key is the same as that which is available 
   in its database. If it finds a match, it generates a SPK message and 
   sends it to the node. If the CN node finds a different public key 
   than that of this node, it sends the SPK setting the length of the 
   type 16 option to 1 and setting the one byte public key to 1. This 
   informs the new node that there is an existing MAC address with a 
   different public key. If this node is the owner of the old public key 
   that is available in the CN node, it includes its old public key as 
   shown in figure 5 and sends a new RPK. Otherwise it considers this an 

Rafiee, et al.     Expires January 15, 2014                    [Page 15]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   attack on his MAC address and sets the one byte of the old public key 
   to zero and the length of the type 16 option to one, and sends this 
   message. This message causes a flag to be added to the database to 
   inform the network administrator that something is wrong in this 
   network. 

   If the public key and MAC address of the new node are not available 
   in the CN, after receiving the RPK message it will add these values 
   to its database. 

   When the other nodes want to add a new node to their neighboring 
   caches, after receiving the neighbor advertisement message, they will 
   ask the CN node for the public key of this node. After successful 
   verification, they will add the public key, MAC address and IP 
   address of this node to their neighboring cache. The next time they 
   will not need to ask the CN node for any information to check the 
   reachability of the neighboring nodes in their cache. This decreases 
   the number of messages exchanged between the CN node and the other 
   nodes in this network. 

5.  Security Considerations

   As a security consideration what one might ask oneself is what are 
   the odds of an attacker being able to generate a public key having 
   two four sequential bytes (from two different halves of public key) 
   that are the same as 62 bits of that in public key If he could, he 
   could then generate the signature using his own private key and thus 
   break SSAS. 

   Mathematically it has been shown that the probability of matching 48 
   bits in the public key against 62 bits in the IID is about 
   pow(1/2,62) where pow is the power function, 2 is a base and 62 is an 
   exponent. in [2] the analysis of SSAS is explained and compared to 
   CGA. For CGA sec value 0, the attacker needs to do brute force 
   attacks against 59 bits. So SSAS v1 is more secure than CGA sec value 
   0. For SSAS v2, the attacker needs to do brute force attacks against 
   the whole public key. So the security of that is depends on the 
   security of public key algorithm and the key size. 

6.  IANA Considerations

   This document defines two new algorithm for the generation of an 
   Interface ID in IPv6 networks that provides IP layer privacy and 

Rafiee, et al.     Expires January 15, 2014                    [Page 16]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

   local link security. It also introduces a new, local RPKI based on 
   the centralized RPKI. 

7.  Conclusions

   Privacy has become a very important issue in recent years. A solution 
   for preventing a node from being tracked by an attacker is to change 
   the node's IP address frequently and by generating a random IID each 
   time a node wants to generate a new IP address. This document 
   introduced two new algorithms as a solution for providing privacy by 
   randomizing the IID and for providing security with the addition of a 
   SSAS signature to the NDP message and finding a binding between the 
   public key and the IP address. In SSAS v1, a node directly uses the 
   public key for IID generation. This algorithm is faster than CGA with 
   sec value higher than 1 and more secure than CGA with sec value 0.In 
   SSAS v2, a node uses a root function (depends on the public key) to 
   make use of about the whole security of the public key. This will 
   increase the security of SSAS to the whole public key while at the 
   same time decrease the time require for generation of IID. 

   

8.  References

8.1.  Normative References 

   [RFC2119] Bradner, S., "Key words for use in RFCs to 
             Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [RFC4291] Hinden, R., Deering, S., "IP Version 6 Addressing 
             Architecture," RFC 4291, February 2006. 

   [RFC3972] Aura, T., "Cryptographically Generated Addresses 
             (CGA)," RFC 3972, March 2005. 

   [RFC4941] Narten, T., Draves, R., Krishnan, S., "Privacy 
             Extensions for Stateless Address Autoconfiguration in 
             IPv6", RFC 4941, September 2007. 

   [RFC3971] Arkko, J., Kempf, J., Zill, B., and Nikander, P., 
             "SEcure Neighbor Discovery (SEND)", RFC 3971, March 2005. 

   [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., 
             Perkins, C., Carney, M. , " Dynamic Host Configuration 
             Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003. 

   [RFC4919] Kushalnagar, N., Montenegro, G., Schumacher, C.," 
             IPv6 over Low-Power Wireless Personal Area Networks 
             (6LoWPANs): Overview, Assumptions, Problem Statement, and 

Rafiee, et al.     Expires January 15, 2014                    [Page 17]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

             Goals", RFC 4919, August 2007. 

   [RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., 
             Bormann, C. , " Neighbor Discovery Optimization for IPv6 
             over Low-Power Wireless Personal Area Networks (6LoWPANs)", 
             RFC 6775, November 2012. 

   [RFC6275] Perkins, C., Johnson, D., Arkko, J., "Mobility 
             Support in IPv6", RFC 6275, July 2011. 

   [RFC6543] Gundavell, S., "Reserved IPv6 Interface 
             Identifier for Proxy Mobile IPv6", RFC 6543, May 2012. 

   [RFC6090] McGrew, D., Igoe, K., Salter, M., "Fundamental 
             Elliptic Curve Cryptography Algorithms", RFC 6090, February 
             2012. 

8.2.  Informative References 

   [1] IEEE Standards Association, 
       http://standards.ieee.org/develop/regauth/tut/eui64.pdf, 2012 

   [2] Rafiee, H., Meinel, C., "'SSAS: a Simple Secure Addressing 
       Scheme for IPv6 AutoConfiguration". In Proceedings of the 11th 
       IEEE International Conference on Privacy, Security and Trust 
       (PST), IEEE Catalog number: CFP1304F-ART, ISBN: 
       978-1-4673-5839-2. 

Rafiee, et al.     Expires January 15, 2014                    [Page 18]
INTERNET DRAFT       SSAS for Autoconfiguration            July 15, 2013

Authors' Addresses

      Hosnieh Rafiee
      Hasso-Plattner-Institute
      Prof.-Dr.-Helmert-Str. 2-3
      Potsdam, Germany
      Phone: +49 (0)331-5509-546
      Email: ietf@rozanak.com

      Dr. Christoph Meinel
      (Professor)
      Hasso-Plattner-Institute
      Prof.-Dr.-Helmert-Str. 2-3
      Potsdam, Germany
      Email: meinel@hpi.uni-potsdam.de

Rafiee, et al.     Expires January 15, 2014                    [Page 19]