idnits 2.17.00 (12 Aug 2021) /tmp/idnits59809/draft-ietf-sidr-rpsl-sig-11.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). (Using the creation date from RFC2622, updated by this document, for RFC5378 checks: 1998-11-19) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (May 16, 2016) is 2196 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) -- Looks like a reference, but probably isn't: '6' on line 496 ** Obsolete normative reference: RFC 6485 (Obsoleted by RFC 7935) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIDR R. Kisteleki 3 Internet-Draft RIPE NCC 4 Updates: 2622, 4012 (if approved) B. Haberman 5 Intended status: Standards Track JHU APL 6 Expires: November 17, 2016 May 16, 2016 8 Securing RPSL Objects with RPKI Signatures 9 draft-ietf-sidr-rpsl-sig-11.txt 11 Abstract 13 This document describes a method to allow parties to electronically 14 sign Routing Policy Specification Language objects and validate such 15 electronic signatures. This allows relying parties to detect 16 accidental or malicious modifications on such objects. It also 17 allows parties who run Internet Routing Registries or similar 18 databases, but do not yet have Routing Policy System Security-based 19 authentication of the maintainers of certain objects, to verify that 20 the additions or modifications of such database objects are done by 21 the legitimate holder(s) of the Internet resources mentioned in those 22 objects. This document updates RFC 2622 and RFC 4012 to add the 23 signature attribute to supported RPSL objects. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on November 17, 2016. 42 Copyright Notice 44 Copyright (c) 2016 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Signature Syntax and Semantics . . . . . . . . . . . . . . . 3 61 2.1. General Attributes, Meta Information . . . . . . . . . . 3 62 2.2. Signed Attributes . . . . . . . . . . . . . . . . . . . . 4 63 2.3. Storage of the Signature Data . . . . . . . . . . . . . . 5 64 2.4. Number Resource Coverage . . . . . . . . . . . . . . . . 5 65 2.5. Validity Time of the Signature . . . . . . . . . . . . . 6 66 3. Signature Creation and Validation Steps . . . . . . . . . . . 6 67 3.1. Canonicalization . . . . . . . . . . . . . . . . . . . . 6 68 3.2. Signature Creation . . . . . . . . . . . . . . . . . . . 8 69 3.3. Signature Validation . . . . . . . . . . . . . . . . . . 9 70 4. Signed Object Types, Set of Signed Attributes . . . . . . . . 10 71 5. Keys and Certificates used for Signature and Verification . . 12 72 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 73 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 74 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 75 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 76 9.1. Normative References . . . . . . . . . . . . . . . . . . 13 77 9.2. Informative References . . . . . . . . . . . . . . . . . 14 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 80 1. Introduction 82 Objects stored in resource databases, like the RIPE DB, are generally 83 protected by an authentication mechanism: anyone creating or 84 modifying an object in the database has to have proper authorization 85 to do so, and therefore has to go through an authentication procedure 86 (provide a password, certificate, e-mail signature, etc.) However, 87 for objects transferred between resource databases, the 88 authentication is not guaranteed. This means that when a Routing 89 Policy Specification Language (RPSL) object is downloaded from a 90 database, the consumer can reasonably claim that the object is 91 authentic if it was locally created, but cannot make the same claim 92 for an object imported from a different database. Also, once such an 93 object is downloaded from the database, it becomes a simple (but 94 still structured) text file with no integrity protection. More 95 importantly, the authentication and integrity guarantees associated 96 with these objects do not always ensure that the entity that 97 generated them is authorized to make the assertions implied by the 98 data contained in the objects. 100 A potential use for resource certificates [RFC6487] is to use them to 101 secure such (both imported and downloaded) database objects, by 102 applying a digital signature over the object contents in lieu of 103 methods such as Routing Policy System Security [RFC2725]. The signer 104 of such signed database objects MUST possess a relevant resource 105 certificate, which shows him/her as the legitimate holder of an 106 Internet number resource. This mechanism allows the users of such 107 database objects to verify that the contents are in fact produced by 108 the legitimate holder(s) of the Internet resources mentioned in those 109 objects. It also allows the signatures to cover whole RPSL objects, 110 or just selected attributes of them. In other words, a digital 111 signature created using the private key associated with a resource 112 certificate can offer object security in addition to the channel 113 security already present in most of such databases. Object security 114 in turn allows such objects to be hosted in different databases and 115 still be independently verifiable. 117 The capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL", 118 "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and 119 "OPTIONAL" in this document are to be interpreted as described in 120 [RFC2119]. 122 2. Signature Syntax and Semantics 124 When signing an RPSL object [RFC2622][RFC4012], the input for the 125 signature process is transformed into a sequence of strings of 126 (ASCII) data. The approach is similar to the one used in DKIM 127 (Domain Key Identified Mail) [RFC6376]. In the case of RPSL, the 128 object-to-be-signed closely resembles an SMTP header, so it seems 129 reasonable to adapt DKIM's relevant features. 131 2.1. General Attributes, Meta Information 133 The digital signature associated with an RPSL object is itself a new 134 attribute named "signature". It consists of mandatory and optional 135 fields. These fields are structured in a sequence of name and value 136 pairs, separated by a semicolon ";" and a white space. Collectively 137 these fields make up the value for the new "signature" attribute. 138 The "name" part of such a component is always a single ASCII 139 character that serves as an identifier; the value is an ASCII string 140 the contents of which depend on the field type. Mandatory fields 141 MUST appear exactly once, whereas optional fields MUST appear at most 142 once. 144 Mandatory fields of the "signature" attribute: 146 o Version of the signature (field "v"). This field MUST be set to 147 "rpkiv1" and MAY be the first field of the signature attribute to 148 simplify the parsing of the attributes' fields. The signature 149 format described in this document applies when the version field 150 is set to "rpkiv1". All the rest of the signature attributes are 151 defined by the value of version field. 153 o Reference to the certificate corresponding to the private key used 154 to sign this object (field "c"). The value of this field MUST be 155 a URL of type "rsync" or "http(s)" that points to a specific 156 resource certificate in an RPKI repository [RFC6481]. Any non 157 URL-safe characters (including semicolon ";" and plus "+") must be 158 URL encoded. 160 o Signature method (field "m"): what hash and signature algorithms 161 were used to create the signature. This specification follows th 162 algorithms defined in RFC 6485 [RFC6485]. The algorithms are 163 referenced witin the signature attribute by the ASCII names of the 164 algorithms. 166 o Time of signing (field "t"). The format of the value of this 167 field MUST be in the Internet Date/Time format [RFC3339]. All 168 times MUST be converted to Universal Coordinated Time (UTC) 170 o The signed attributes (field "a"). This is a list of attribute 171 names, separated by an ASCII "+" character (if more than one 172 attribute is enumerated). The list must include any attribute at 173 most once. 175 o The signature itself (field "b"). This MUST be the last field in 176 the list. The signature is the output of the signature algorithm 177 using the appropriate private key and the calculated hash value of 178 the object as inputs. The value of this field is the digital 179 signature in base64 encoding [RFC4648]. 181 Optional fields of the "signature" attribute: 183 o Signature expiration time (field "x"). The format of the value of 184 this field MUST be in the Internet Date/Time format [RFC3339]. 185 All times MUST be represented in UTC. 187 2.2. Signed Attributes 189 One can look at an RPSL object as an (ordered) set of attributes, 190 each having a "key: value" syntax. Understanding this structure can 191 help in developing more flexible methods for applying digital 192 signatures. 194 Some of these attributes are automatically added by the database, 195 some are database-dependent, yet others do not carry operationally 196 important information. This specification allows the maintainer of 197 such an object to decide which attributes are important (signed) and 198 which are not (not signed), from among all the attributes of the 199 object; in other words, we define a way of including important 200 attributes while excluding irrelevant ones. Allowing the maintainer 201 of an object to select the attributes that are covered by the digital 202 signature achieves the goals established in Section 1. 204 The type of the object determines the minimum set of attributes that 205 MUST be signed. The signer MAY choose to sign additional attributes, 206 in order to provide integrity protection for those attributes too. 208 When verifying the signature of an object, the verifier has to check 209 whether the signature itself is valid, and whether all the specified 210 attributes are referenced in the signature. If not, the verifier 211 MUST reject the signature and threat the object as a regular, non- 212 signed RPSL object. 214 2.3. Storage of the Signature Data 216 The result of applying the signature mechanism once is exactly one 217 new attribute for the object. As an illustration, the structure of a 218 signed RPSL object is as follows: 220 attribute1: value1 221 attribute2: value2 222 attribute3: value3 223 ... 224 signature: v=rpkiv1; c=rsync://.....; m=sha256WithRSAEncryption; 225 t=2014-12-31T23:59:60Z; 226 a=attribute1+attribute2+attribute3+...; 227 b= 229 2.4. Number Resource Coverage 231 Even if the signature over the object is valid according to the 232 signature validation rules, they may not be relevant to the object; 233 they also need to cover the relevant Internet number resources 234 mentioned in the object. 236 Therefore the Internet number resources present in [RFC3779] 237 extensions of the certificate referred to in the "c" field of the 238 signature MUST cover the resources in the primary key of the object 239 (e.g., value of the "aut-num:" attribute of an aut-num object, value 240 of the "inetnum:" attribute of an inetnum object, values of "route:" 241 and "origin:" attributes of a route object, etc.). 243 2.5. Validity Time of the Signature 245 The validity time interval of a signature is the intersection of the 246 validity time of the certificate used to verify the signature, the 247 "not before" time specified by the "t" field of the signature, and 248 the optional "not after" time specified by the "x" field of the 249 signature. 251 When checking multiple signatures, these checks are applied to each 252 signature, individually. 254 3. Signature Creation and Validation Steps 256 3.1. Canonicalization 258 The notion of canonicalization is essential to digital signature 259 generation and validation whenever data representations may change 260 between a signer and one or more signature verifiers. 261 Canonicalization defines how one transforms a representation of data 262 into a series of bits for signature generation and verification. The 263 task of canonicalization is to make irrelevant differences in 264 representations of the same object, which would otherwise cause 265 signature verification to fail. Examples of this could be: 267 o data transformations applied by the databases that host these 268 objects (such as notational changes for IPv4/IPv6 prefixes, 269 automatic addition/modification of "changed" attributes, etc.) 271 o the difference of line terminators across different systems. 273 This means that the destination database might change parts of the 274 submitted data after it was signed, which would cause signature 275 verification to fail. This document specifies strict 276 canonicalization rules to overcome this problem. 278 The following steps MUST be applied in order to achieve canonicalized 279 representation of an object, before the actual signature 280 (verification) process can begin: 282 1. Comments (anything beginning with a "#") MUST be omitted. 284 2. Any trailing white space MUST be omitted. 286 3. A multi-line attribute MUST be converted into its single-line 287 equivalent. This is accomplished by: 289 * Converting all line endings to a single blank space. 291 * Concatenating all lines into a single line. 293 * Replacing the trailing blank space with a single new line 294 ("\n"). 296 4. Numerical fields MUST be converted to canonical representations. 297 These include: 299 * Date and time fields MUST be converted to UTC and MUST be 300 represented in the Internet Date/Time format [RFC3339]. 302 * AS numbers MUST be converted to ASPLAIN syntax [RFC5396]. 304 * IPv6 addresses MUST be canonicalized as defined in [RFC5952]. 306 * IPv4 addresses MUST be represented as the ipv4-address type 307 defined by RPSL [RFC2622] 309 * All IP prefixes (IPv4 and IPv6) MUST be represented in CIDR 310 notation [RFC4632]. 312 5. All ranges, lists, or sets of numerical fields are represented 313 using the appropriate RPSL attribute and each numerical element 314 contained within those attributes MUST conform to the 315 canonicalization rules in this document. The ordering of values 316 within such fields MUST be maintained during database transfers. 318 6. The name of each attribute MUST be converted into lower case, and 319 MUST be kept as part of the attribute line. 321 7. Tab characters ("\t") MUST be converted to spaces. 323 8. Multiple whitespaces MUST be collapsed into a single space (" ") 324 character. 326 9. All line endings MUST be converted to a singe new line ("\n") 327 character (thus avoiding CR vs. CRLF differences). 329 3.2. Signature Creation 331 Given an RPSL object, in order to create the digital signature, the 332 following steps MUST be performed: 334 1. For each signature, a new public/private key pair and certificate 335 SHOULD be used. Therefore the signer SHOULD create a single-use 336 key pair and end-entity resource certificate (see [RFC6487]). 337 The private key is used for signing this object this time. 339 2. Create a list of attribute names referring to the attributes that 340 will be signed (contents of the "a" field). The minimum set of 341 these attributes is determined by the object type; the signer MAY 342 select additional attributes. 344 3. Arrange the selected attributes according to the selection 345 sequence specified in the "a" field as above, omitting all 346 attributes that will not be signed. 348 4. Construct the new "signature" attribute, with all its fields, 349 leaving the value of the "b" field empty. 351 5. Apply canonicalization rules to the result (including the 352 "signature" attribute). 354 6. Create the signature over the results of the canonicalization 355 process (according to the signature and hash algorithms specified 356 in the "m" field of the signature attribute). 358 7. Insert the base64 encoded value of the signature as the value of 359 the "b" field. 361 8. Append the resulting "signature" attribute to the original 362 object. 364 3.3. Signature Validation 366 In order to validate a signature over such an object, the following 367 steps MUST be performed: 369 1. Verify the syntax of the "signature" attribute (i.e., whether it 370 contains the mandatory and optional components and the syntax of 371 these fields matches the specification as described in section 372 2.1.) 374 2. Fetch the certificate referred to in the "c" field of the 375 "signature" attribute, and check its validity using the steps 376 described in [RFC6487]. 378 3. Extract the list of attributes that were signed using the signer 379 from the "a" field of the "signature" attribute. 381 4. Verify that the list of signed attributes includes the minimum 382 set of attributes for that object type. 384 5. Arrange the selected attributes according to the selection 385 sequence provided in the value of the "a" field, omitting all 386 non-signed attributes. 388 6. Replace the value of the signature field "b" of the "signature" 389 attribute with an empty string. 391 7. Apply the canonicalization procedure to the selected attributes 392 (including the "signature" attribute). 394 8. Check the validity of the signature using the signature algorithm 395 specified in the "m" field of the signature attribute, the public 396 key contained in the certificate mentioned in the "c" field of 397 the signature, the signature value specified in the "b" field of 398 the signature attribute, and the output of the canonicalization 399 process. 401 4. Signed Object Types, Set of Signed Attributes 403 This section describes a list of object types that MAY signed using 404 this approach. For each object type, the set of attributes that MUST 405 be signed for these object types (the minimum set noted in 406 Section Section 3.3 is enumerated. 408 This list generally excludes attributes that are used to maintain 409 referential integrity in the databases that carry these objects, 410 since these usually make sense only within the context of such a 411 database, whereas the scope of the signatures is only one specific 412 object. Since the attributes in the referred object (such as mnt-by, 413 admin-c, tech-c, ...) can change without any modifications to the 414 signed object, signing such attributes could lead to false sense of 415 security in terms of the contents of the signed data; therefore 416 including such attributes should only be done in order to provide 417 full integrity protection of the object itself. 419 The newly constructed "signature" attribute is always included in the 420 list. The signature under construction MUST NOT include signature 421 attributes that are already present in the object. 423 as-block: 425 * as-block 427 * signature 429 aut-num: 431 * aut-num 433 * as-name 435 * member-of 437 * import 439 * mp-import 441 * export 443 * mp-export 445 * default 447 * mp-default 448 * signature 450 inet[6]num: 452 * inet[6]num 454 * netname 456 * country 458 * status 460 * signature 462 route[6]: 464 * route[6] 466 * origin 468 * holes 470 * member-of 472 * signature 474 It should be noted that the approach defined in this document has a 475 limitation in signing route[6] objects. This document only supports 476 a single signature per object. This means that it is not possible to 477 properly sign route[6] objects where one resource holder possesses 478 the ASN and another resource holder possesses the referenced prefix. 479 A future version of this specification may rsolve this limitation. 481 For each signature, the RFC3779 extension appearing in the 482 certificate used to verify the signature MUST include a resource 483 entry that is equivalent to, or covers ("less specific" than) the 484 following resources mentioned in the object the signature is attached 485 to: 487 o For the as-block object type: the resource in the "as-block" 488 attribute. 490 o For the aut-num object type: the resource in the "aut-num" 491 attribute. 493 o For the inet[6]num object type: the resource in the "inet[6]num" 494 attribute. 496 o For the route[6] object type: the resource in the "route[6]" or 497 "origin" (or both) attributes. 499 5. Keys and Certificates used for Signature and Verification 501 The certificate that is referred to in the signature (in the "c" 502 field): 504 o MUST be an end-entity (ie. non-CA) certificate 506 o MUST conform to the X.509 PKIX Resource Certificate profile 507 [RFC6487] 509 o MUST have an RFC 3779 extension that covers the Internet number 510 resource included in a signed attribute [RFC3779] 512 o SHOULD NOT be used to sign more than one signed object (ie. should 513 be a "single-use" EE certificate, as defined in [RFC6487]). 515 The certificate generated will omit the Subject Information Access 516 (SIA) extension mandated by RFC 6487 as that extension requires an 517 rsync URI for the accessLocation form and RPSL currently does not 518 support database access via rsync. 520 6. Security Considerations 522 RPSL objects stored in the IRR databases are public, and as such 523 there is no need for confidentiality. Each signed RPSL object can 524 have its integrity and authenticity verified using the supplied 525 digital signature and the referenced certificate. 527 Since the RPSL signature approach leverages X.509 extensions, the 528 security considerations in [RFC3779] apply here as well. 529 Additionally, implementers MUST follow the certificate validation 530 steps described in RFC 6487. 532 The maintainer of an object has the ability to include attributes in 533 the signature that are not included in the resource certificate used 534 to create the signature. Potentially, a maintainer may include 535 attributes that reference resources the maintainer is not authorized 536 to use. 538 7. IANA Considerations 540 [Note to IANA, to be removed prior to publication: there are no IANA 541 considerations stated in this version of the document.] 543 8. Acknowledgements 545 The authors would like to acknowledge the valued contributions from 546 Jos Boumans, Tom Harrison, Steve Kent, Sandra Murphy, Magnus Nystrom, 547 Alvaro Retana, Sean Turner, Geoff Huston, and Stephen Farrell in 548 preparation of this document. 550 9. References 552 9.1. Normative References 554 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 555 Requirement Levels", BCP 14, RFC 2119, 556 DOI 10.17487/RFC2119, March 1997, 557 . 559 [RFC2622] Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., 560 Meyer, D., Bates, T., Karrenberg, D., and M. Terpstra, 561 "Routing Policy Specification Language (RPSL)", RFC 2622, 562 DOI 10.17487/RFC2622, June 1999, 563 . 565 [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: 566 Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, 567 . 569 [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP 570 Addresses and AS Identifiers", RFC 3779, 571 DOI 10.17487/RFC3779, June 2004, 572 . 574 [RFC4012] Blunk, L., Damas, J., Parent, F., and A. Robachevsky, 575 "Routing Policy Specification Language next generation 576 (RPSLng)", RFC 4012, DOI 10.17487/RFC4012, March 2005, 577 . 579 [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing 580 (CIDR): The Internet Address Assignment and Aggregation 581 Plan", BCP 122, RFC 4632, DOI 10.17487/RFC4632, August 582 2006, . 584 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data 585 Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, 586 . 588 [RFC5396] Huston, G. and G. Michaelson, "Textual Representation of 589 Autonomous System (AS) Numbers", RFC 5396, 590 DOI 10.17487/RFC5396, December 2008, 591 . 593 [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 594 Address Text Representation", RFC 5952, 595 DOI 10.17487/RFC5952, August 2010, 596 . 598 [RFC6481] Huston, G., Loomans, R., and G. Michaelson, "A Profile for 599 Resource Certificate Repository Structure", RFC 6481, 600 DOI 10.17487/RFC6481, February 2012, 601 . 603 [RFC6485] Huston, G., "The Profile for Algorithms and Key Sizes for 604 Use in the Resource Public Key Infrastructure (RPKI)", 605 RFC 6485, DOI 10.17487/RFC6485, February 2012, 606 . 608 [RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for 609 X.509 PKIX Resource Certificates", RFC 6487, 610 DOI 10.17487/RFC6487, February 2012, 611 . 613 9.2. Informative References 615 [RFC2725] Villamizar, C., Alaettinoglu, C., Meyer, D., and S. 616 Murphy, "Routing Policy System Security", RFC 2725, 617 DOI 10.17487/RFC2725, December 1999, 618 . 620 [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., 621 "DomainKeys Identified Mail (DKIM) Signatures", STD 76, 622 RFC 6376, DOI 10.17487/RFC6376, September 2011, 623 . 625 Authors' Addresses 627 Robert Kisteleki 629 Email: robert@ripe.net 630 URI: http://www.ripe.net 631 Brian Haberman 632 Johns Hopkins University Applied Physics Lab 634 Email: brian@innovationslab.net