idnits 2.17.1 draft-korhonen-dime-e2e-security-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([RFC2119]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 255 has weird spacing: '...28 bits e...' -- The document date (February 29, 2016) is 2980 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DIME J. Korhonen 3 Internet-Draft Broadcom Ltd. 4 Intended status: Standards Track H. Tschofenig 5 Expires: September 1, 2016 ARM Ltd. 6 February 29, 2016 8 Diameter AVP Level Security: Keyed Message Digests, Digital Signatures, 9 and Encryption 10 draft-korhonen-dime-e2e-security-03.txt 12 Abstract 14 This document defines an extension for end to end authentication, 15 integrity and confidentiality protection of Diameter Attribute Value 16 Pairs. The solutions focuses on protecting Diameter Attribute Value 17 Pairs and leaves the key distribution solution to a separate 18 specification. The integrity protection can be introduced in a 19 backward compatible manner to existing application. The 20 confidentiality protection requires an explicit support from an 21 application, thus is applicable only for newly defined applications. 23 Terminology 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 27 document are to be interpreted as described in RFC 2119 [RFC2119]. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at http://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on September 1, 2016. 46 Copyright Notice 48 Copyright (c) 2016 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (http://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 64 2. Solution description . . . . . . . . . . . . . . . . . . . . 4 65 2.1. Integrity protection of AVPs . . . . . . . . . . . . . . 4 66 2.2. Confidentiality protection of AVPs . . . . . . . . . . . 7 67 2.3. Definition of the 'End Point' . . . . . . . . . . . . . . 8 68 3. AVP Encoding . . . . . . . . . . . . . . . . . . . . . . . . 8 69 3.1. Signed-Data AVP . . . . . . . . . . . . . . . . . . . . . 8 70 3.2. JWS-Header AVP . . . . . . . . . . . . . . . . . . . . . 8 71 3.3. Header-Parameters AVP . . . . . . . . . . . . . . . . . . 8 72 3.4. JWS-AVP-Payload AVP . . . . . . . . . . . . . . . . . . . 9 73 3.5. JWS-Signature AVP . . . . . . . . . . . . . . . . . . . . 9 74 3.6. Encrypted-Data AVP . . . . . . . . . . . . . . . . . . . 9 75 3.7. JWE-Header AVP . . . . . . . . . . . . . . . . . . . . . 9 76 3.8. JWE-Enc-Key AVP . . . . . . . . . . . . . . . . . . . . . 10 77 3.9. JWE-Init-Vec AVP . . . . . . . . . . . . . . . . . . . . 10 78 3.10. JWE-AVP-Ciphertext AVP . . . . . . . . . . . . . . . . . 10 79 4. Result-Code AVP Values . . . . . . . . . . . . . . . . . . . 10 80 4.1. Transient Failures . . . . . . . . . . . . . . . . . . . 10 81 4.2. Permanent Failures . . . . . . . . . . . . . . . . . . . 11 82 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 83 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 84 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 85 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 86 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 87 8.2. Informational References . . . . . . . . . . . . . . . . 12 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 90 1. Introduction 92 The Diameter base protocol [RFC6733] leverages IPsec and TLS for 93 mutual authentication between neighboring Diameter nodes and for 94 channel security offering data origin authentication, integrity and 95 confidentiality protection. The Diameter base protocol, however, 96 also defines Diameter agents, namely Relay Agents, Proxy Agents, 97 Redirect Agents, and Translation Agents. 99 Relay Agents are Diameter agents that accept requests and route 100 messages to other Diameter nodes based on information found in the 101 messages. Since Relays do not perform any application level 102 processing, they provide relaying services for all Diameter 103 applications. 105 Similarly to Relays, Proxy Agents route Diameter messages using the 106 Diameter routing table. However, they differ since they modify 107 messages to implement policy enforcement. 109 Redirect Agents do not relay messages, and only return an answer with 110 the information necessary for Diameter agents to communicate 111 directly, they do not modify messages. Redirect Agents do not have 112 negative impacts on end-to-end security and are therefore not 113 considered in this document. 115 A Translation Agent is a device that provides translation between two 116 protocols. To offer end-to-end security across different protocol 117 requires the ability to convey and process the AVPs defined in this 118 document by both end points. Since such support is very likely not 119 available this document does not cover this functionality. 121 The Diameter extension defined in this document specifies how AVP 122 authentication, integrity and confidentiality protection can be 123 offered using either symmetric or asymmetric cryptography. As a 124 solution mechanism is derived form Javascript Object Signing and 125 Encryption (JOSE). JOSE offers a simple encoding with small set of 126 features ideal for the purpose of Diameter. This document further 127 defines a binary efficient coding of JOSE objects. 129 This document focuses on protecting Diameter AVP and leaves the key 130 distribution solution to a separate specification, which most likely 131 is going to be a specific key exchange application. To offer the 132 functionality two grouped AVPs are defined: Signed-Data and 133 Encrypted-Data. The respective JOSE objects are transported within 134 these two AVPs. 136 2. Solution description 138 2.1. Integrity protection of AVPs 140 JWS represents digitally signed or HMACed content using JSON data 141 structures. The representation in [I-D.ietf-jose-json-web-signature] 142 consists of three parts: the JWS Header, the JWS Payload, and the JWS 143 Signature. The three parts are represented as the concatenation of 144 the encoded strings in that order, with the three strings being 145 separated by period ('.') characters. For the JWS Payload one would 146 define a new JSON object that contains an array of AVP code number 147 and a hash of AVP pairs. The JWS Signature then covers the all APVs 148 to be signed or HMACed. Both JWS Payload and signature MUST use the 149 same hash algorithm of the cryptographic algorithm indicated in the 150 JWS Header. 152 Although the solution relies on the JSON, the encoding into Diameter 153 AVPs differ from the text based encoding of the JSON objects. 154 Specifically, none of of the JWS Header, JWS Payload or JWS Signature 155 are not BASE64 encoded but are processed in their plaintext or binary 156 representation formats. For example, the JWS Header is encoded in 157 its plaintext format into the Header-Parameters AVP: 159 { "typ":"JWT", 160 "alg":"HS256", 161 "kid":"abc123" 162 } 164 The JWS Payload and the JWS Signature hashes and AVP Code values are 165 encoded in their binary format as octets, not in textual or BASE64 166 encoded formats. Sections 3.4 and 3.5 describe the encodings of the 167 needed AVPs. 169 To package a set of AVPs for signing, each AVP octet representation 170 to be protected are first individually hashed and encoded into the 171 "JSON object" with its four octets AVP code number. The entire AVP 172 MUST be input to the hash calculation, from the first byte of the AVP 173 code to the last byte of the AVP data, including all other fields, 174 length, reserved/flags, and optional vendor IDs, and padding. The 175 AVP MUST be input to the hash calculation in network byte order. 177 The JWS Signature is calculated over the entire JWS Payloads and then 178 the all three JWS parts are placed in the Signed-Data AVP. There can 179 be multiple Signed-Data AVPs in a Diameter message. The AVP code in 180 the JWS Payload is to indicate which AVP this hash possibly refers 181 to. If there are multiple instances of the same AVP in the Diameter 182 message, there is no other way than make the verification against all 183 of those. It is possible that the message sender only hashed one AVP 184 of the same type and, therefore, the receiver MUST verify the hash 185 against all occurrences of the AVP of the same code number. Such 186 flexibility is added there to allow reordering of the AVPs and 187 addition or deletion of new AVPs by intermediating agents. 189 If a receiver detects errors with the processing of the Signed-Data 190 AVP it MAY return one of the errors defined in Section 4. If a 191 receiver does not find any AVP the Signed-Data AVP has a signature 192 for, it MAY also return one of the errors defined in Section 4. 194 When AVPs are to be both encrypted and signed, the Encrypted-Data AVP 195 MUST be created first. This means that signing is "outside" 196 encryption. 198 Here is an example: Imagine the following AVPs from the QoS-Resources 199 AVP in the QoS-Install Request (defined in RFC 5866 [RFC5866] message 200 shall be signed. The resulting example message has the following 201 structure: 203 ::= < Diameter Header: 327, REQ, PXY > 204 < Session-Id > 205 { Auth-Application-Id } 206 { Origin-Host } 207 { Origin-Realm } 208 { Destination-Realm } 209 { Auth-Request-Type } 210 [ Signed-Data ] 211 * [ QoS-Resources ] 212 ... 214 Example Diameter Message with Signed-Data AVP 216 The Signed-Data AVP in this example may contain a JWS Header that 217 indicates the use of the HMAC SHA-256 algorithm with the key id 218 'abc123'. The protected AVPs are Session-Id, Origin-Host and Origin- 219 Realm. The calculated HMAC SHA-256 values are for example purposes 220 only (i.e., are not real): 222 JWS Header encoded as such in JWS-Header AVP: 224 {"typ":"JWT", 225 "alg":"HS256", 226 "kid":"abc123" 227 } 229 0x00000xxx // JWS-Header code 'xxx' 230 0x00000034 // Flags=0, Length=52 231 '{"typ":"JWT","alg":"HS256","kid":"abc123"}' // 41 232 0x00,0x00,0x00 // 3 octets padding 234 JWS Payload encoded into three JWS-AVP-Payload AVPs: 236 0x00000zzz // JWS-AVP-Payload code 'zzz' <--+ 237 0x0000001c // Flags=0, Length=28 | 238 0x00000107 // 263, Session-Id, 4 octets s 239 0x9d0e0495 // hash of Session-Id, 128 bits i 240 0xba8c0312 g 241 0xb6274c52 n 242 0x7d51a048 a 243 t 244 0x00000zzz // JWS-AVP-Payload code 'zzz' u 245 0x0000001c // Flags=0, Length=28 r 246 0x00000108 // 264, Origin-Host, 4 octets e 247 0x39ca88ff // hash of Origin-Host, 128 bits | 248 0xaa5a6ff9 c 249 0x029ed95b o 250 0xa534e028 v 251 e 252 0x00000zzz // JWS-AVP-Payload code 'zzz' r 253 0x0000001c // Flags=0, Length=28 a 254 0x00000128 // 296, Origin-Realm, 4 octets g 255 0x202730ac // hash of Origin-Realm, 128 bits e 256 0xa6e3a180 | 257 0x2f44a633 | 258 0xf250f6fe <--+ 260 JWS Signature encoded into the JWS-Signature AVP: 262 0x00000yyy // JWS-Signature code 'yyy' 263 0x00000018 // Flags=0, Length=24 264 0xaabbccdd,0xddeeff00,0x11223344,0x55667788 266 Example JWS Header, Payload and Signature 268 2.2. Confidentiality protection of AVPs 270 The Encrypted-Data AVP (AVP Code TBD) is of type OctetString and 271 contains the JSON Web Encryption (JWE) 272 [I-D.ietf-jose-json-web-encryption] data structure and consists of 273 four parts: the JWE Header, the JWE Encrypted Key, the JWE 274 Initialization Vector and the JWE Ciphertext. The four parts are 275 represented as the concatenation of the encoded strings in that 276 order, with the three strings being separated by period ('.') 277 characters. JWE does not add a content integrity check if not 278 provided by the underlying encryption algorithm. 280 Although the solution relies on the JSON, the encoding into Diameter 281 AVPs differ from the text based encoding of the JSON objects. 282 Specifically, none of of the the JWE Header, the JWE Encrypted Key, 283 the JWE Initialization Vector and the JWE Ciphertext are not BASE64 284 encoded but are processed in their plaintext or binary representation 285 formats. The concept follows what was already described in 286 Section 2.1. 288 A single AVP or an entire list of AVPs MUST be input to the 289 encryption process, from the first byte of the AVP code to the last 290 byte of the AVP data, including all other fields, length, reserved/ 291 flags, and optional vendor IDs, and padding. The AVP MUST be input 292 to the encryption process in network byte order, and the encryptor is 293 free to order AVPs whatever way it chooses. When AVPs are to be both 294 encrypted and authenticated, the Encrypted-Data AVP MUST be created 295 first. 297 Note that the usage of the Encrypted-Data AVP requires explicit 298 support by the Diameter application since a receiving Diameter node 299 must first decrypt the content of the Encrypted-Data AVP in order to 300 evaluate the AVPs carried in the message. In case that a Diameter 301 node is unable to understand the Encrypted-Data AVP and ignores the 302 AVP then two possible outcomes are possible: First, if the encrypted 303 AVPs are optional then their content is not considered by the 304 receiving Diameter server without any indication to the sender that 305 they have not been processes. Worse, in the second case when the 306 encrypted AVPs are mandatory to be processed then the receiving 307 Diameter node will return an error that may not inform the sender 308 about the failure to decrypt the Encrypted-Data AVP. Consequently, 309 the usage of the Encrypted-Data AVP may require changes to the ABNF 310 definition of a Diameter application. 312 If a receiver detects that the contents of the Encrypted-Data AVP is 313 invalid, it SHOULD return the new Result-Code AVP value defined in 314 Section 4. 316 2.3. Definition of the 'End Point' 318 Although this specification claims to introduce the end-to-end 319 security into Diameter, the definition who actually is the 'end 320 point' is not obvious. The 'end point' does not need to be the 321 original Diameter request or answer originator but the Diameter node 322 that inserts the Signed-Data or the Encrypted-Data AVPs into the 323 Diameter message. The node can be the request or answer originator 324 or a proxy agent. Use of proxy agents doing the 'end-to-end' 325 security on behalf of other nodes mimics the deployments where site- 326 to-site VPNs are used. 328 3. AVP Encoding 330 3.1. Signed-Data AVP 332 The Signed-Data AVP (AVP Code TBD1) is of type Grouped and utilizes 333 the JSON Web signature (JWS) mechanism defined in 334 [I-D.ietf-jose-json-web-signature]. The JWS payload is then encoded 335 into the Signed-Data AVP: 337 Signed-Data ::= < AVP Header: TBD1 > 338 { JWS-Header } 339 * { JWS-AVP-Payload } 340 { JWS-Signature } 341 * [ AVP ] 343 3.2. JWS-Header AVP 345 The JWS-Header AVP (AVP Code TBD2) is of type UTF8String and contains 346 the JSON Web Signature Header. The contents of the AVP follow the 347 rules for the header found in [I-D.ietf-jose-json-web-signature], 348 which implies the required IANA registries are also defined by JSON 349 documents. 351 JWS-Header ::= < AVP Header: TBD2 > 352 { Header-Parameters } 353 * [ AVP ] 355 The "alg" is the only REQUIRED Header Parameter for the signature 356 purposes. The "typ" and "kid" Header Parameters are also 357 RECOMMENDED. 359 3.3. Header-Parameters AVP 361 The Header-Parameters AVP (AVP Code TBD3) is of type UTF8String and 362 contains the JSON Header Parameter Name and its value as described in 363 [I-D.ietf-jose-json-web-signature]. The encoding (textual) also 364 follows [I-D.ietf-jose-json-web-signature]. Differing from the JSON 365 specifications the parameter names and values are not BASE64 encoded 366 but in their original UTF-8 representation format. 368 3.4. JWS-AVP-Payload AVP 370 The JWS-AVP-Payload AVP (AVP Code TBD4) is of type OctetString and 371 contains both an AVP Code and a hash of the entire AVP identified by 372 the AVP Code. The first four octets contain the AVP Code in a 373 network byte order followed by the hash octets. The length of the 374 hash octets depends on the used hash algorithm. 376 3.5. JWS-Signature AVP 378 The JWS-Signature AVP (AVP Code TBD5) is of type OctetString and 379 contains the signature calculated over the array of complete JWS-AVP- 380 Payload AVPs (including AVP header fields etc) in the order they 381 appear in the Signed-Data AVP. The length of the signature octets 382 depends on the used signature algorithm. 384 3.6. Encrypted-Data AVP 386 The Encrypted-Data AVP (AVP Code TBD6) is of type Grouped and 387 utilizes the JSON Web Encryption (JWE) mechanism defined in 388 [I-D.ietf-jose-json-web-encryption]. The JWE payload is then encoded 389 into the Encrypted-Data AVP: 391 Encrypted-Data ::= < AVP Header: TBD1 > 392 { JWE-Header } 393 { JWE-Enc-Key } 394 [ JWE-Init-Vec ] 395 { JWE-AVP-Ciphertext } 396 * [ AVP ] 398 3.7. JWE-Header AVP 400 The JWE-Header AVP (AVP Code TBD7) is of type UTF8String and contains 401 the JSON Web Encryption Header. The contents of the AVP follow the 402 rules for the header found in [I-D.ietf-jose-json-web-encryption], 403 which implies the required IANA registries are also defined by JSON 404 documents. 406 JWE-Header ::= < AVP Header: TBD7 > 407 { Header-Parameters } 408 * [ AVP ] 410 The "alg" and "enc" are the REQUIRED Header Parameter for the 411 encryption purposes. The "typ" and "kid" Header Parameters are also 412 RECOMMENDED. 414 3.8. JWE-Enc-Key AVP 416 The JWE-Enc-Key AVP (AVP Code TBD8) is of type OctetString and 417 contains the JWE Encrypted Key in its binary format. 419 3.9. JWE-Init-Vec AVP 421 The JWE-Init-Vec AVP (AVP Code TBD9) is of type OctetString and 422 contains the JWE Initialization Vector in its binary format. 424 3.10. JWE-AVP-Ciphertext AVP 426 The JWE-AVP-Ciphertext AVP (AVP Code TBD10) is of type OctetString 427 and contains the encrypted AVPs. The encrypted AVPs are first 428 concatenated into one large plaintext octet blob and then encrypted 429 as a whole. The length of the ciphertext depends on the used 430 algorithm and encrypted AVPs. The plaintext to be encrypted is never 431 BASE64 encoded but MAY be compressed if a "zip" parameter was 432 included in the JWE Header. 434 4. Result-Code AVP Values 436 This section defines new Diameter result code values for usage with 437 Diameter applications. 439 4.1. Transient Failures 441 Errors that fall within the transient failures category are used to 442 inform a peer that the request could not be satisfied at the time it 443 was received, but MAY be able to satisfy the request in the future. 445 DIAMETER_KEY_UNKNOWN (TBD11) 447 This error code is returned when a Signed-Data or an Encrypted- 448 Data AVP is received that was generated using a key that cannot be 449 found in the key store. This error may, for example, be caused if 450 one of the endpoints of an end-to-end security association lost a 451 previously agreed upon key, perhaps as a result of a reboot. To 452 recover a new end-to-end key establishment procedure may need to 453 be invoked. 455 DIAMETER_HEADER_NAME_ERROR (TBD12) 456 This error code is returned when a Header Parameter Name is not 457 understood in the JWS-Header AVP or in the JWE-Header AVP. 459 4.2. Permanent Failures 461 Errors that fall within the permanent failures category are used to 462 inform the peer that the request failed, and should not be attempted 463 again. 465 DIAMETER_DECRYPTION_ERROR (TBD13) 467 This error code is returned when an Encrypted-Data AVP is received 468 and the decryption fails for an unknown reason. 470 DIAMETER_SIGNATURE_ERROR (TBD14) 472 This error code is returned when a Signed-Data AVP is received and 473 the verification fails for an unknown reason. 475 5. IANA Considerations 477 IANA is requested to allocate AVP codes for the following AVPs: 479 +------------------------------------------------------------------+ 480 | AVP Section | 481 |AVP Name Code Defined Data Type | 482 +------------------------------------------------------------------+ 483 |Signed-Data TBD1 3.1 Grouped | 484 |JWS-Header TBD2 3.x Grouped | 485 |JWS-AVP-Paylaod TBD3 3.x OctetString | 486 |JSW-Signature TBD4 3.x OctetString | 487 |Header-Parameters TBD5 3.x UTF8String | 488 |Encrypted-Data TBD6 3.x Grouped | 489 |JWE-Header TBD7 3.x Grouped | 490 |JWE-Enc-Key TBD8 3.x OctetString | 491 |JWE-Init-Vec TBD9 3.x OctetString | 492 |JWE-AVP-Ciphertext TBD10 3.x OctetString | 493 +------------------------------------------------------------------+ 495 This specification additionally defines a few Result-Code AVP values, 496 see Section 4. 498 6. Security Considerations 500 The purpose of this document is to offer end-to-end security 501 mechanisms for calculating keyed message digest, for signing, and for 502 encryption of Diameter AVPs. 504 An intermediate Diameter agent that for a reason or other reorders 505 the AVPs within the Signed-Data AVP may cause the signature 506 verification fail even if no AVP was actually tampered. 508 7. Acknowledgements 510 We would like to thank the authors of [I-D.ietf-aaa-diameter-e2e-sec] 511 for their work on CMS end-to-end security for Diameter. Their 512 document inspired us. 514 8. References 516 8.1. Normative References 518 [I-D.ietf-jose-json-web-encryption] 519 Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", 520 draft-ietf-jose-json-web-encryption-40 (work in progress), 521 January 2015. 523 [I-D.ietf-jose-json-web-signature] 524 Jones, M., Bradley, J., and N. Sakimura, "JSON Web 525 Signature (JWS)", draft-ietf-jose-json-web-signature-41 526 (work in progress), January 2015. 528 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 529 Requirement Levels", BCP 14, RFC 2119, 530 DOI 10.17487/RFC2119, March 1997, 531 . 533 [RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn, 534 Ed., "Diameter Base Protocol", RFC 6733, 535 DOI 10.17487/RFC6733, October 2012, 536 . 538 8.2. Informational References 540 [I-D.ietf-aaa-diameter-e2e-sec] 541 Calhoun, P., "Diameter End-2-End Security Extension", 542 2001. 544 [RFC5866] Sun, D., Ed., McCann, P., Tschofenig, H., Tsou, T., Doria, 545 A., and G. Zorn, Ed., "Diameter Quality-of-Service 546 Application", RFC 5866, DOI 10.17487/RFC5866, May 2010, 547 . 549 Authors' Addresses 551 Jouni Korhonen 552 Broadcom Ltd. 553 3151 Zanker Road 554 CA 95134 555 US 557 Email: jouni.nospam@gmail.com 559 Hannes Tschofenig 560 ARM Ltd. 562 Email: Hannes.Tschofenig@gmx.de 563 URI: http://www.tschofenig.priv.at