Network Working Group S. Imadali Internet-Draft A. Petrescu Intended status: Informational C. Janneteau Expires: August 19, 2013 CEA February 15, 2013 Vehicle Identification Number-Based Unique Local IPv6 Unicast Addresses (VULA) draft-imadali-its-vinipv6-vula-00.txt Abstract The Vehicle Identification Number (VIN) is standardized in ISO-3779 and ISO-3780. The VIN is made of 17 alphanumeric characters code that uniquely identifies a vehicle worldwide. Some public information related to a vehicle can be obtained knowing its VIN code. This code may also be used to enable novel vehicular networking communications. RFC 4193 introduces a globally unique IPv6 unicast address format intended for local communications, usually inside of a site. These addresses (ULA) are not expected to be routable on the global Internet. This document introduces a method to build a VIN-based IPv6 Prefix that is intended for local communications involving more than one hop (VULA). The VIN-based generated prefix is assured to be unique among other VIN-based generated prefixes. Typically, in a scenario involving several vehicles, each single vehicle (in which one Mobile Router is in charge) is capable of generating its own unique infrastructure-independent globally-scoped VIN-based IPv6 prefix. This document also describes some use cases where VULA could be exploited. 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/. 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." Imadali, et al. Expires August 19, 2013 [Page 1] Internet-Draft VIN-based ULA prefixes February 2013 This Internet-Draft will expire on August 19, 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. Imadali, et al. Expires August 19, 2013 [Page 2] Internet-Draft VIN-based ULA prefixes February 2013 Table of Contents 1. Introduction and Problem . . . . . . . . . . . . . . . . . . . 4 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.2. Abbreviations Used . . . . . . . . . . . . . . . . . . . . 5 2. VIN Overview . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1. WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2. VDS . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3. VIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Mapping method . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1. Initial assumption . . . . . . . . . . . . . . . . . . . . 9 3.2. Detailed algorithm . . . . . . . . . . . . . . . . . . . . 10 3.3. Examples of use . . . . . . . . . . . . . . . . . . . . . 11 4. VIN-based Unique Local IPv6 Unicast Addresses . . . . . . . . 12 4.1. Method 1: RFC 4193 compliant Unique Local IPv6 Unicast Address generation . . . . . . . . . . . . . . . . 12 4.2. Method 2: VIN-based Unique Local IPv6 Unicast Address generation . . . . . . . . . . . . . . . . . . . . . . . . 13 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 8.2. Informative References . . . . . . . . . . . . . . . . . . 15 Appendix A. Base-VIN Numeral System Specification . . . . . . . . 15 A.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 15 A.2. Conversion from decimal to Base-VIN . . . . . . . . . . . 15 A.3. Conversion from Base-VIN to decimal . . . . . . . . . . . 16 A.4. Number of positions . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 Imadali, et al. Expires August 19, 2013 [Page 3] Internet-Draft VIN-based ULA prefixes February 2013 1. Introduction and Problem There exist currently several scenarios and requirements for IP in Intelligent Transportation systems (its). A number of such scenarios are described in [I-D.petrescu-its-scenarios-reqs]. Depending on the typical topology where the communication happen, the draft groups the communications into 4 categories: Intra-Vehicular communications (V), Vehicle-to-Infrastructure (V2I), Vehicle-to-Vehicle (V2V) and Vehicle-to-Vehicle-to-Infrastructure communications (V2V2I). For example, in order to realize IP communications within a vehicle (V), it is necessary to configure a distinct IP address on each IP- enabled device deployed within a vehicle. This includes, and is not limited to: passenger entertainment devices, navigation assistance devices and, not least important, computers dedicated to electronics control and safety messaging. As another example, for Vehicle-to-Vehicle communications, it is necessary to configure addresses on the devices within the two vehicles in such a manner that it is possible to exchange IP packets with a source address of a device in one vehicle and the destination address a device in the other vehicle. Finally, for Vehicle-to-Infrastructure communications (to Internet), it is necessary that an address in one vehicle be globally unique and topologically correct at the current point of attachment to the Internet. Whereas the last case is relatively solved with existing methods of address auto-configuration (e.g. DHCPv6 or Stateless Address Auto- configuration) the first two cases are more difficult. This difficulty lies in the lack of authority of IP addressing in an inherently distributed system formed by the vehicles. For example, a DHCPv6 Server pre-configured with a pool of addresses to distribute in one vehicle will allow for intra-vehicular communications (V). But these addresses will be topologically incorrect with respect to the current point of attachment to the Internet. This point of attachment changes when a handover is performed re-connecting the vehicle from GSM to WiFi access. In addition, these addresses will be topologically incorrect with respect to the addresses of nearby vehicles (the vehicle vicinity is highly dynamic). The Mobile IP protocol could be employed to alleviate the problem of topological correctness change upon inter-technology handovers; yet this protocol has its inconvenients as well, such as the multi- angular routing and the necessity of the presence of a Home Agent in the infrastructure. Imadali, et al. Expires August 19, 2013 [Page 4] Internet-Draft VIN-based ULA prefixes February 2013 The prefix exchanges between moving networks could be implemented to avoid the IP topological incorectness between vehicles. For these reasons, several approaches exist to realize the address auto-configuration without the help of a centralized management scheme (DHCP nor ND no Mobile IP). Some approaches propose the use of hardwired IP addresses in vehicles - at vehicle manufacturing time, a number of addresses are hard-wired within a vehicle; in other approaches the geographical coordinates may be used to form IP addresses. Finally, certain approaches propose the use of the vehicle's Vehicular Identification Number (VIN) in order to generate IPv6 addresses related to the vehicle. It is along the lines of these proposals that the current draft presents a method of forming a ULA starting from the VIN ('VULA'). 1.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]. 1.2. Abbreviations Used VIN - Vehicle Identification Number WMI - World Manufacturer Identifier VDS - Vehicle Description Section VIS - Vehicle Identification Section 2. VIN Overview The VIN is a 17 characters alphanumeric code that uniquely identifies a vehicle worldwide. Involved standard documents include : o ISO 3833:1977, "Road vehicles -- Types -- Terms and definitions". This document defines terms relating to some types of road vehicles designated according to certain design and technical characteristics. It Applies to all vehicles designated for road circulation (with exception of agricultural tractors). o ISO 4030:1983, "Road vehicles -- Vehicle identification number (VIN) -- Location and attachment". This document Specifies the requirements for the location and marking of the VIN on motor vehicles, trailers, motorcycles and mopeds as defined in ISO 3833. Imadali, et al. Expires August 19, 2013 [Page 5] Internet-Draft VIN-based ULA prefixes February 2013 o ISO 3779:2009, "Road vehicles -- Vehicle identification number (VIN) -- Content and structure". It specifies the content and structure of a VIN in order to establish, on a world-wide basis, a uniform identification numbering system for road vehicles. This document applies to motor vehicles, towed vehicles, motorcycles and mopeds as defined in ISO 3833. o ISO 3780:2009, "Road vehicles -- World manufacturer identifier (WMI) code". It specifies the content and structure of an identifier in order to establish, on a world-wide basis, the identification of road vehicle manufacturers. The WMI constitutes the first section of the VIN described in ISO 3779. ISO 3780:2009 applies to motor vehicles, towed vehicles, motorcycles and mopeds as defined in ISO 3833. The VIN is used to uniquely identify a vehicle and therefore must appear on each vehicle. Some public information related to a vehicle can be obtained knowing its VIN code. This possibility is used in thefts prevention by assisting law enforcement authorities in tracing and recovering parts from stolen motor vehicles, or reporting vehicle history to sell/buy a used car. The VIN is written in 17 alphanumeric characters with a combination of the 10 Arabic numbers and 23 capital letters of the Latin alphabet. Excluded letters are I(i), O(o) and Q(q). This is to avoid confusion between these characters and the numbers 0 and 1. | 1 2 3 4 5 6 7 8 9 0 | |A B C D E F G H J K L M N P R S T U V W X Y Z| Figure 1: Alphabet for the generation of VIN codes Although the definition of the code differs from USA, where the National Highway Traffic Safety Administration (NHTSA) definition is used, and Europe where the ISO is used, both VIN codes are compliant and do not cause confusion. There are some other implementations of the same code, for example within the Society of Automotive Engineers (SAE) and Australian Design Rules (ADR) which are also compliant with the European ISO format of the VIN. The VIN code contains three sections. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | WMI | VDS | VIS | +--------+-----------------+-----------------------+ Figure 2: VIN code sections Imadali, et al. Expires August 19, 2013 [Page 6] Internet-Draft VIN-based ULA prefixes February 2013 2.1. WMI The WMI is 3 digits long and uniquely designates the manufacturer's continent, country, and the unique national identifier. The 3 digit codes are defined within ISO-3780 and the database is maintained by the SAE. A WMI code can be revoked but cannot be used to designate another manufacturer for 30 years after its revocation date. ISO-3780 standard specifies the use of each bit in the WMI code. From the left to the right, the first bit value designates the region of the car manufacturer. Values [A-C] are reserved for Africa, [1-5] for North America, [8-9] for South America, [J-R] for Asia, [S-Z] for Europe and [6] for Oceania. Multiple alphanumeric values can be assigned for the same region, depending on the needs. Some values are reserved for future use. Second bit indicates a country in the region designated by the first bit. Multiple values are possible for the same country if needed. For example, if the first bit is V (in Europe) and the second bit is one the letters (F to R), then the designated country is France. Unique identity of a country is assured by the combination of these two values. The assigned codes by country are maintained by SAE and listed in ISO-3780. Third character of this section designates a national unique value for the car manufacturer, maintained by national authorities. It is possible to assign more than one value to the manufacturer if needed. Thus, a unique identification of the car manufacturer can be obtained by the combination of the three values. ISO-3780 distinguishes manufacturers building more or less than 500 cars per year. If less, 3rd digit of WMI is set to '9' and positions 12 to 14 (included) form an extended unique manufacturer identifier that identifies all the manufacturers that build less than 500 cars a year in the same country. If the manufacturer builds more than 500 cars a year, it has one or more identification number(s) depending on the needs. For example, "1FA" and "3FA" identifies Ford in USA and Mexico, respectively. "VF3" is one of the WMI codes of French manufacturer Peugeot. 2.2. VDS The VDS is the second part of the VIN code. It is 6 characters long and gives more information about the vehicle. The description of the vehicle is not unique and each manufacturer has its own mapping table for this section; that is, a same character may have different meanings depending on the manufacturer, and sometimes differ upon the vehicle model. Imadali, et al. Expires August 19, 2013 [Page 7] Internet-Draft VIN-based ULA prefixes February 2013 The information given by this section may relate to the vehicle weight, the model, the engine type, the body style or the engine power, for example. It is also possible for the manufacturer to fill this section with "dummy" information if it does not want to use it, as spaces (blanks) are not allowed. Therefore, the manufacturer may not rely on this section to complete the unique identification of a vehicle. Last position of this section (9th digit) is called the check digit. Like the TCP checksum, the check digit is the result of a standard algorithm where the values of other positions are used to generate this value. Possible values for the check digit are numbers 0 to 9 and the letter X [CHECK]. 2.3. VIS The VIS is the third section of the VIN code. It is 8 characters long and, combined with the VDS section, uniquely identifies a vehicle within a car manufacturer for 30 years. The combination of the VIS and the WMI section allows to uniquely identify a vehicle worldwide. This section goes from the 10th digit to the 17th. Digit number 10 designates the year model. It is the year during which the vehicle has been manufactured, or the vehicle model year depending on the manufacturer choice. For this digit, the allowed values are 1 to 9 (0 forbidden) and uppercase Latin alphabet letters except I, O, Q, U and Z. Years from 1980 to 2000 are coded with letters from A to Y; years from 2001 to 2009 are represented with digits from 1 to 9; year 2010 and later are represented with letters from A to Y. This representation gives a cycle of 30 years during which a VIS code is guaranteed to be unique. 11th digit of the VIN designates the plant of the manufacturer where the vehicle has been assembled. For example, 'E' refers to 'Kentucky Truck' plant (Jefferson county, Kentucky) and 'T' refers to 'Otosan Kocaeli Assembly' plant (Kocaeli, Turkey), both plants belong to the manufacturer 'Ford'. The same value may represent different plants depending on the manufacturer. Positions 12 to 17 represent the sequential identification part which is unique on the production line and assigned by the car manufacturer. Digits from 12 to 14 (if digit 3 of WMI is '9') represent the rest of the WMI code of the car manufacturer that produces less than 500 cars a year. Otherwise (general case), positions 12 to 17 are considered as a whole and generally considered as a sequential number. ISO-3779:2009 specifies that the last 4 positions must be numeric, which is applied in Europe. In North America (Canada and USA), the last 5 digits must be numeric for some Imadali, et al. Expires August 19, 2013 [Page 8] Internet-Draft VIN-based ULA prefixes February 2013 kind of vehicles and only the last 4 digits for the rest. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +------+-+-+-+-+-+-+-+--+-----+-----+-----+---+---+----+---+---+--+ | ISO | | | | | | 3779 | WMI | VDS | | VIS | +------+-----+----------+-----+-----+-----+-----------------------+ | >500 | | Vehicle |Check|Model|Plant| | |cars a| WMI |Attributes|digit|Year |Code | Sequential Number | | year | | | | | | | +------+-----+----------+-----+-----+-----+------------+----------+ | <500 | | Vehicle |Check|Model|Plant|Manufacturer|Sequential| |cars a| WMI |Attributes|digit|Year |Code | IDentifier | Number | | year | | | | | | | | +------+-----+----------+-----+-----+-----+------------+----------+ Figure 3: Summary of VIN code, sections definition and use 3. Mapping method The VIN code can be split into 3 parts: WMI, VDS, and VIS. Each part gives a partial description of one vehicle's attributes: manufacturer ID, vehicle's description and vehicle's serial ID. This section specifies the algorithm to perform in order to set an IPv6 [RFC4291] Unique Local Unicast Address out of a VIN code (VULA). ULA addresses [RFC4193] are specified for local communications. The method used is based on two short and powerful assumptions that allow for the compression of a maximum number of VIN digits in a minimum number of bits. The generation method conserves the uniqueness property of VIN codes hence the uniqueness of generated prefixes. This collision-free derivation method is also infrastructure-less, and allows for up to 32 subnets (5 bits) with the same VULA prefix. 3.1. Initial assumption The unique identity of a vehicle is set through two sections of the VIN: the WMI (digits 1 to 3, included) and VIS (digits 12 to 17, included). According to ISO 3779:2009, this information may not be enough, but it is certainly mandatory. Specifically, the cases where dummy values are filled in the VDS section (allowed by ISO 3779:2009) makes these two sections the only relevant information known about the vehicle in order to have its unique identity . Imadali, et al. Expires August 19, 2013 [Page 9] Internet-Draft VIN-based ULA prefixes February 2013 The VDS section can be recovered in the cases when WMI and VIS sections are known, using a multi-key query on a local database owned by the manufacturer. A reasonable assumption statement (Assumption 1) based on the previous arguments is summarized as follows: Assumption 1: WMI and VIS sections of a VIN code uniquely identify a vehicle 3.2. Detailed algorithm In order to convert the alphanumeric VIN into a binary ULA, an initial and straightforward two-steps approach consists in following the operation of mapping (transliteration) by the operation of conversion. The VIN alphabet previously described, leaves 33 possible values for every single VIN digit. The mapping operation consists in representing a VIN digit in decimal and the conversion phase consists in converting this decimal to a binary number. Each resulting binary is 6 bits long in order to cover all the possibilities. This initial method is highly inefficient regarding the number of digits converted versus the number of bits used (which is limited to 64 for ULA). For instance, converting WMI and VIS sections (a total of 11 digits) would require 66 bits (6*11) which would not fit in the ULA address format. The current proposal specifies the use of a VIN-specific numeral system (cf. Appendix) using only allowed values; that is Arabic numerals (0 to 9) and Latin letters (A to Z) excluding the exceptions (I, O, and Q) in order to generate Base-VIN numbers. As a comparison, Base-36 (radix 36) contains numerals (0-9) and letters (A-Z). Numbers of this system can be converted to other bases (Hex, decimal, octal and binary). Digits are ordered as follows: 0 < 1 ... < 9 < A ... < Y < Z. Base-VIN can be considered as Base-36 system tailored for VIN-related uses. From this proposal derives the below work hypothesis (Assumption 2) that allows us to convert more than a single VIN digit at a time. Assumption 2: VIN codes are numbers written in the Base-VIN system. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | A | B | C| D| E | F | +--------+--------------+--+--+--------+-----------+ Figure 4: Redesign of the VIN code according to sections definitions Imadali, et al. Expires August 19, 2013 [Page 10] Internet-Draft VIN-based ULA prefixes February 2013 The compression gain is achieved by converting a value read in Base- VIN to the binary base, rather than mapping/converting separate digits. The restricted set of allowed values for VIN sections helps reducing the number of bits besides preserving the VIN uniqueness property. Sections A, D, E, and F are extracted from the VIN code and converted accordingly. Sections A and E are read in Base-VIN while sections D and F in decimal. The resulting number of bits after conversion is 51 (over 66 with the previous method). Using ULA bitmap, 51 bits (40 + 11 bits) would require using the 40 global ID section and 11 extra bits from the subnet ID. The new prefix ID is 5 bits long which leaves up to 32 distinct subnets with the initial VIN-extracted Global ID. | 7 bits |1| 51 bits |5 bits| 64 bits | +--------+-+------------------------+------+-----------------------+ | Prefix |L| VIN-based Global ID | ID | Interface ID | +--------+-+------------------------+------+-----------------------+ Figure 5: VIN-based ULA bitmap In details, section A (WMI) after conversion is 16 bits long (log2 (33^3)); section D (year model) is 5 bits long (log2(30)); section E (first alphanumeric part of the VIS) is 16 bits long (log2 (33^3 )); and section F (second numeric part of the VIS) is 14 bits long (log2(10^4)). This algorithm is reversible: from the converted values (binary), it is possible to compute the initial coded sections (VMI and VIS). This property is the result of the bijectiveness of used operations for conversion between different numeral systems. Useful scenarios are discussed below and privacy consequences are addressed in the security considerations section. 3.3. Examples of use The Mobile Router (MR) that executes the previous algorithm, is capable of announcing the generated prefix on one or several internal interfaces and configure one or several external interfaces, depending on the scenario. For instance, under some conditions, knowing the VIN code of a vehicle, one can deduce the internally advertised prefix and remotely access a well-known internal device (with a certain MAC address). This access might be possible for vehicle manufacturers in order to perform remote diagnostic, or other car rental companies depending on the application. Using the vehicle's VIN and the above method, the MR can deduce the same VULA prefix and advertise it internally or use it to configure its own external interfaces. The use of MIPv6/NEMO protocol [RFC3963] on the MR in order to guarantee the use of the same home Imadali, et al. Expires August 19, 2013 [Page 11] Internet-Draft VIN-based ULA prefixes February 2013 prefix is no longer necessary and the remote access to internal devices might be addressed using other techniques. Possible use cases involve classical vehicular IPv6 networking scenarios: in-vehicle communications (Machine-type), and inter- vehicles communications (distributed games, social communications enabler). In order to enable vehicle-to-Infrastructure communications using VULA (remote monitoring), which is not in the initial scope of ULA addresses, a special IANA request should be made about reserving a special code for VULA prefixes, or the (re)definition of the L bit in the current ULA bitmap format [RFC4193]. 4. VIN-based Unique Local IPv6 Unicast Addresses ULA addresses are used interchangeably with globally-scoped IPv6 addresses and communication between a limited set of sites is possible. In particular, RFC 4193 defines the functionality of a border router that prevents packets with ULA destination to cross towards the global Internet. In a vehicular setting, a border router could be the MR if provided with access to the Infrastructure. Known limitations of RFC 4193 are due to the pseudo-random generation method of these addresses. Depending on the algorithm, a collision is highly unlikely but theoretically possible with a low probability. In the VIN-based scenario, a ULA prefix is generated at the MR level (independently from the ISP/RIR) and advertised inside the vehicular network, to allow in-vehicle network to network communications if the necessary routes are installed in respective MRs (border routers). 4.1. Method 1: RFC 4193 compliant Unique Local IPv6 Unicast Address generation The VIN is, according to section 3.2.2 of RFC 4193, a suitably unique identifier that could be used locally to the MR for the generation of an IPv6 ULA prefix and can thus be used in the algorithm described in the same section. Basically, step 2 of the aforementioned algorithm is transformed in order to take the local VIN code as input. The resulting ULA prefix is advertised on MR's ingress interface, or used to configure any other local interface. Since RFC 4193 algorithm relies on a pseudo-random generation method for the ULA prefix, and introduces, for example, the timestamp at the moment of the execution, two different instances of the same algorithm given the same VIN code, will result in two different prefixes. When this method has obvious benefits for privacy concerns or collision avoidance, it fails in the requirements described in Imadali, et al. Expires August 19, 2013 [Page 12] Internet-Draft VIN-based ULA prefixes February 2013 Section 3.3. In particular, in-vehicle advertised prefix changes with the timestamp, which makes our remote access scenario based on the knowledge of a vehicle's VIN almost impossible to realize without MIPv6/NEMO running on the MR. Also, the VIN code is hashed and partly present in the Global ID, which makes it impossible to guess from a given ULA prefix. A similar RFC4193-compliant approach for the prefix generation has been presented at IETF-83 (Paris, France) [BLESS]. This method employs the VIS (or VIN7) part only of the VIN in a pseudo-random generation algorithm. It can also be used to derive an IPv6 address more deterministically, and yet preserve privacy. 4.2. Method 2: VIN-based Unique Local IPv6 Unicast Address generation The conversion method described in Section 3.2 defines a new VULA prefix format (as depicted in Figure 5) which is guaranteed unique amongst the VIN-based generated prefixes. Knowing a VIN code, it is possible to derive the related ULA prefix and use this information for a remote access. This subtype of ULA prefixes which has enhanced uniqueness guarantees may be defined in a separate category that requests specific /8 prefix (for example) that are expected to be globally routed. Another solution might be the (re)definition of the value 0 of the bit L illustrated in the ULA prefix bitmap. There are obvious privacy and security concerns if the method 2 is used. Some of these considerations are discussed in Section 7. 5. Acknowledgements This work has been performed in the framework of the ICT project ICT- 5-258512 EXALTED, which is partly funded by the European Union. The organisations on the source list [CEA] would like to acknowledge the contributions of their colleagues to the project, although the views expressed in this contribution are those of the authors and do not necessarily represent the project. Roland Bless provided useful comments helping to clarify the presentation. 6. IANA Considerations This memo includes no request to IANA. Imadali, et al. Expires August 19, 2013 [Page 13] Internet-Draft VIN-based ULA prefixes February 2013 7. Security Considerations Collision happens if at least two interfaces try to set the same IPv6 address in the same subnet. The 5 remaining bits using our method can then be used to fix the collision by pulling another adjacent prefix (32 possibilities). The proposed mapping/conversion method strictly applied to ISO-3779 definitions makes a collision highly unlikely but theoretically possible with the use of revoked or forged VIN codes. We recommend the collision avoidance using the 5 remaining bits to complete assumption 1 (uniqueness conservation) in order to use a vehicle's VIN to generate VULA even in these rare exceptions. If VIN codes cannot be forged (using tamper-proof devices for example) the 5 bits could be used for subnets inside a VIN identified vehicle. Privacy is an important requirement for in-vehicle network-to-network communications. State of the art vehicular applications proposals usually disclose accurate information about geographical position, velocity and identity in safety beacons. Even if these advertisements are signed according to IEEE 1609.2, the above VULA proposal does not fit in this category and does not provide mechanisms to protect the in-vehicle network privacy. The focus of this work is to enable in-vehicle networks to exchange packets with VIN-based IPv6 addresses. Uniqueness and collision-avoidance are thus top list requirements for this objective. In order not to exacerbate privacy concerns, VIN-based IPv6 communications should take precautions in advance. For instance, a Caesar ciphering method would map into Base-VIN with substituted values, before VULA generation. A compromise between collisions and privacy expectations should be made in this case. 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. [RFC3963] Devarapalli, V., Wakikawa, R., Petrescu, A., and P. Thubert, "Network Mobility (NEMO) Basic Support Protocol", RFC 3963, January 2005. [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, October 2005. [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006. Imadali, et al. Expires August 19, 2013 [Page 14] Internet-Draft VIN-based ULA prefixes February 2013 8.2. Informative References [BLESS] Bless, R., "A Secure IPv6-based Architecture for Internal Automotive Networks", March 2012, . [CHECK] US Code of Federal Regulations, "PART 565--VEHICLE IDENTIFICATION NUMBER REQUIREMENTS", June 1996, . [I-D.petrescu-its-scenarios-reqs] Petrescu, A., Janneteau, C., Boc, M., and W. Klaudel, "Scenarios and Requirements for IP in Intelligent Transportation Systems", draft-petrescu-its-scenarios-reqs-01 (work in progress), July 2012. Appendix A. Base-VIN Numeral System Specification A.1. Definitions The Base-VIN is the numeral system where all VIN codes belong. A number in Base-VIN is convertible in other numeral systems (decimal, binary, hexadecimal, etc) by simple multiplication operations and vice-versa, with simple division operations. The Base-VIN numeral system contains 33 different ordered digits. Their value in the decimal system goes from 0 to 32, and the symbols used are those defined in the VIN description: One of the letters in the set [ABCDEFGHJKLMNPRSTUVWXYZ] or a numeral in the set [0123456789]. The ordered set of Base-VIN numerals is defined below. [ Decimal|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17] [Base-VIN|0|1|2|3|4|5|6|7|8|9| A| B| C| D| E| F| G| H] [ Decimal|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32] [Base-VIN| J| K| L| M| N| P| R| S| T| U| V| W| X| Y| Z] Figure 6: Base-VIN ordered numbering A.2. Conversion from decimal to Base-VIN A decimal number can be written in the Base-VIN following simple rules using simple division operations. The algorithm is similar to conversion from decimal to other numeral systems (binary for example) and it is defined as an extension of it. Here are the necessary Imadali, et al. Expires August 19, 2013 [Page 15] Internet-Draft VIN-based ULA prefixes February 2013 steps: Suppose we have to convert X from decimal system to VIN system. The resulting number is Y 1) Divide X by 33 while the quotient is greater than 33 2) Write the remainder in the Base-VIN numeral system 3) Stop division when the quotient is less than 33 and write it in Base-VIN 4) Read Y backwards from last quotient to first remainder, putting the last quotient in the most significant bit (MSB) and the first remainder in the least significant bit (LSB). Y is now in the Base-VIN numeral system Example: Let us convert 1200 from decimal system to VIN system. o 1200/33 = 36 + 12[33] ---> 12 is the first remainder. It is C in Base-VIN o 36 is greater than 33, so we shall continue o 36/33 = 1 + 3[33] ---> 3 is the second remainder. It is 3 in Base-VIN o 1 is less than 33, so this is the end of our algorithm. 1 is 1 in Base-VIN o The result of the conversion is '13C' A.3. Conversion from Base-VIN to decimal A Base-VIN number can be written in the decimal system following simple rules using simple multiplication and power operations. The algorithm is similar to conversion from other numeral systems to decimal (binary for example) and it defined as an extension of it. Here are the necessary steps: Suppose we have to convert 'X' from Base-VIN numeral system to decimal. The resulting number is 'Y'. Let 'n' be the number of positions in X and X(i) the Base-VIN digit of X in ieth position starting from 1, reading the number from the right (LSB) and converted to decimal (from the table above). Then: Y = 0; for (i = n-1; i == 0; i--) Imadali, et al. Expires August 19, 2013 [Page 16] Internet-Draft VIN-based ULA prefixes February 2013 Y+=X(i+1)*(33^i); Example: Let us reconvert the result from the previous example, from Base-VIN to decimal. X = 13C, n = 3, LSB = C and MSB = 1. Y = 1*(33^2) + 3*(33^1) + C*(33^0) = 1*(1089) + 3* (33) + 12*(1) = 1200 A.4. Number of positions It is possible to know how many positions are necessary to write a number in the Base-VIN numeral system before doing the conversion from decimal. It is necessary for that to have the immediate power of 33 that is greater than or equal to the decimal number to convert. The number of necessary positions is this power of 33. For example, suppose that you have to convert 1200 from decimal numeral system to Base-VIN. 1200 is immediately less than 33^3 and greater than 33^2. So 1200 will be written in 3 Base-VIN positions after conversion (We saw above that 1200 is actually '13C' in Base-VIN). Authors' Addresses Sofiane Imadali CEA CEA, LIST, Communicating Systems Laboratory, Point Courrier 173 Gif-sur-Yvette, Essonne F-91191 France Phone: +33 0169080727 Email: sofiane.imadali@cea.fr Alexandru Petrescu CEA CEA, LIST, Communicating Systems Laboratory, Point Courrier 173 Gif-sur-Yvette, Essonne F-91191 France Phone: +33 0169089223 Email: alexandru.petrescu@cea.fr Imadali, et al. Expires August 19, 2013 [Page 17] Internet-Draft VIN-based ULA prefixes February 2013 Christophe Janneteau CEA CEA, LIST, Communicating Systems Laboratory, Point Courrier 173 Gif-sur-Yvette, Essonne F-91191 France Phone: +33 0169089182 Email: christophe.janneteau@cea.fr Imadali, et al. Expires August 19, 2013 [Page 18]