idnits 2.17.1 draft-ietf-ecrit-lost-planned-changes-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 'Updates: ' line in the draft header should list only the _numbers_ of the RFCs which will be updated by this document (if approved); it should not include the word 'RFC' in the list. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 26, 2019) is 1820 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: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ecrit B. Rosen 3 Internet-Draft April 26, 2019 4 Updates: RFC5222 (if approved) 5 Intended status: Standards Track 6 Expires: October 28, 2019 8 Validation of Locations Around a Planned Change 9 draft-ietf-ecrit-lost-planned-changes-03 11 Abstract 13 This document defines an extension to LoST (RFC5222) that allows a 14 planned change to the data in the LoST server to occur. Records that 15 previously were valid will become invalid at a date in the future, 16 and new locations will become valid after the date. The extension 17 adds two elements to the request: A URI to be used to 18 inform the LIS that previously valid locations will be invalid after 19 the planned change date, and add a date which requests the server to 20 perform validation as of the date specified. It also adds an 21 optional Time-To-Live element to the response, which informs clients 22 about the current expected lifetime of the validation. This document 23 also provides a conventional XML schema for LoST, as backwards 24 compatible alternative to the RelaxNG schema in RFC5222 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on October 28, 2019. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Conventions used in this document . . . . . . . . . . . . . . 4 62 3. element . . . . . . . . . . . . . . . . . . . 4 63 4. object . . . . . . . . . . . . . . . . 4 64 5. URI Not Stored Warning . . . . . . . . . . . . . . . . . . . 5 65 6. Time-To-Live (TTL) in Response . . . . . . . . . . . . . . . 5 66 7. Replacement XML schema . . . . . . . . . . . . . . . . . . . 6 67 8. Extension XML Schema . . . . . . . . . . . . . . . . . . . . 14 68 9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 69 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 70 10.1. Replacement XML Schema Registration . . . . . . . . . . 16 71 10.2. Extension XML Schema Registration . . . . . . . . . . . 16 72 10.3. LoST Namespace Registration . . . . . . . . . . . . . . 16 73 11. Normative References . . . . . . . . . . . . . . . . . . . . 17 74 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 76 1. Introduction 78 This document describes an update to the LoST protocol + which allows 79 a request to optionally add a URI and a date to be used 80 with planned changes to the underlying location information in the 81 server. The URI is retained by the LoST server, associated with the 82 data record that was validated, and used to notify the LIS (the LoST 83 client) when a location which was previously valid will become 84 invalid. The date is used by the client to ask the server to perform 85 validation as of a future date. In addition to this mechanism, the 86 is also extended to provide a Time-To-Live 87 (TTL) for validation, after which the client should revalidate the 88 location. 90 Validation of civic locations involves dealing with data that changes 91 over time. A typical example is a portion of a county or province 92 that was not part of a municipality is "annexed" to a municipality. 93 Prior to the change, the content of the PIDF-LO A3 element would be 94 blank, or represent some other value and after the change would be 95 the municipality that annexed that part of the county/province. This 96 kind of annexation has an effective date and time (typically 00:00 on 97 the first or last day of a month). 99 Records in a LIS must change around these kinds of events. The old 100 record must be discarded, and a new, validated record must be loaded 101 into the LIS. It is often difficult for the LIS operator to know 102 that records must be changed around such events. There are other 103 circumstances where locations that were previously valid become 104 invalid, such as a street renaming or renumbering event. As RFC5222 105 defines validation, the only way for a LIS to discover such changes 106 was to periodically revalidate its entire database. Of course, this 107 would not facilitate timely changes, is not coordinated with the 108 actual change event, and also adds significant load to the LoST 109 server. Even if re-validation is contemplated, the server has no 110 mechanism to control, or even suggest the time period for 111 revalidation 113 This extension allows the client to provide a stable URI that is 114 retained by the server associated with the location information used 115 in the request. In the event of a planned change, or any other 116 circumstance where the location becomes invalid, the server sends a 117 notification to the URI informing it of a change. The notification 118 contains the date and time when the location becomes invalid. 120 Ideally, following such a notification, the LIS will prepare a new 121 record to be inserted in its active database, that becomes active at 122 the precise planned event date and time, at which point it would also 123 delete the old record. However, the new record has to be valid, and 124 the LIS would like to validate it prior to the planned change event. 125 If it requests validation before the planned event, the server 126 (without this extension) would inform the client that the location 127 was invalid. This extension includes an optional "as of" date and 128 time in the request that allows the LoST server to provide validation 129 as of the date and time specified, as opposed to the "as of now" 130 implied in the current LoST protocol. 132 When it is not practical or advisable for the LIS to maintain stable 133 URIs for all of its records, periodic revalidation can be still used 134 to maintain the data in the LIS. However, the server should be able 135 to control the rate of such revalidation. For this purpose, a new 136 TTL element is included in the which provides 137 advice from the server to the LIS of when validation is suggested. 139 There are quite a few implementations of LoST. Experience with these 140 implementations indicates that the RelaxNG schema is very difficult 141 to deal with, because the tools that the implementors use don't 142 support it, and their staff is unfamiliar with it. Alternative 143 schemas have been circulated, which is undesirable, as they may not 144 be in conformance to the RelaxNG schema in [RFC5222]. This document 145 provides an XML schema that replaces the RelaxNG schema. It can be 146 used by any implementation interchangeably with the RelaxNG schema. 148 2. Conventions used in this document 150 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 151 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 152 document are to be interpreted as described in [RFC2119]. 154 "Server" in this document refers to the LoST server and "Client" is 155 the LoST client, even when the server is performing an operation on 156 the client. 158 3. element 160 This document defines a new element to called 161 "plannedChange". This element contains two attributes: 'uri' and 162 'asOf'. The 'uri' attribute MUST be a URI with a scheme of HTTPS. 163 The URI will be stored by the server against the location in the 164 request for subsequent use with the notification function defined 165 below. To minimize storage requirements of at the server, the length 166 of the URI MUST be 256 bytes or less. Each client of the server may 167 only store one URI against a location, where "location" is defined by 168 policy at the server, since a given unique location may have many 169 combinations of location elements that resolve to the same location. 170 If the server receives a 'uri' for the same location from the same 171 client, the URI in the request replaces the URI it previously 172 retained. Policy at the server may limit how many URIs it retains 173 for a given location. A new warning is defined below to be used to 174 indicate that the URI has not been stored. If the location in the 175 request is invalid, the URI will not be stored and the warning will 176 be returned. 178 The 'asOf' attribute contains a date and time. The server will 179 validate the location in the request as of the date specified, taking 180 into account planned changes. This allows the client to verify that 181 it can make changes in the LIS commensurate with changes in the LoST 182 server by validating locations in advance of a change. 184 4. object 186 When the server needs to invalidate a location where the client 187 provided a URI in , the server executes an HTTPS POST 188 containing to the URI previously provided. 189 This is the notice from the server to the client that the location 190 may be invalid and should be revalidated. 191 contains an 'invalidAsOf' attribute that specifies when the location 192 may become invalid. If the date/time in 'invalidAsOf' is earlier 193 than the time the was sent, the location may 194 already be invalid and the LIS should take immediate action. If the 195 POST operation fails, the server MAY retry the operation immediately, 196 and if it fails again, retry the operation at a later time. 198 5. URI Not Stored Warning 200 A new warning is added to the exceptionContainer, 'uriNotStored'. 201 This warning MUST NOT be returned unless the element 202 was found in the corresponding request. The warning is returned when 203 the server decides not to store the URI found in the 204 element. As discussed above, this may occur because, among other 205 reasons, the policy at the server limits how many URIs will be stored 206 against a specific location, the URI is not well formed or the policy 207 at the server has some other restriction on the feature. 209 6. Time-To-Live (TTL) in Response 211 A new element is added to the . The 212 element contains a date and time after which the client may wish to 213 revalidate the location at the server. This element MAY be added by 214 the server if validation is requested in the response. The form of 215 the element is the 'expires' attribute pattern, which allows explicit 216 'NO CACHE' and 'NO EXPIRATION' values to be returned in the 217 element. 'NO CACHE' has no meaning and MUST NOT be returned in TTL. 218 'NO EXPIRATION' means the server does not have any suggested 219 revalidation period. 221 Selecting a revalidation interval is a complex balancing of 222 timeliness, server load, stability of the underlying data, and policy 223 of the LoST server. Too short, and load on the server may overwhelm 224 it. Too long and invalid data may persist in the server for too 225 long. The URI mechanism provides timely notice to coordinate 226 changes, but even with it, it is often advisable to revalidate data 227 eventually. 229 In areas that have little change in data, such as fully built out, 230 stable communities already part of a municipality, it may be 231 reasonable to set revalidation periods of 6 months or longer, 232 especially if the URI mechanism is widely deployed at both the server 233 and the clients. In areas that are quickly growing, 20-30 day 234 revalidation may be more appropriate even though such revalidation 235 would be the majority of the traffic on the LoST server. 237 When a planned change is made, typically the TTL value for the 238 affected records is lowered, so that revalidation is forced soon 239 after the change is implemented. It is not advisable to set the 240 expiration precisely at the planned change time if a large number of 241 records will be changed, since that would cause a large spike in 242 traffic at the change time. Rather, the expiration time should have 243 a random additional time added to it to spread out the load. 245 7. Replacement XML schema 247 The Relax NG schema in [RFC5222] is replaced with the following XML 248 schema: 250 251 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 275 276 277 278 279 281 282 283 284 285 286 287 289 290 292 293 294 295 296 297 299 300 301 302 303 304 305 306 307 308 310 311 312 313 314 315 316 317 319 320 321 322 323 324 325 326 327 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 345 346 347 348 349 350 351 353 354 355 356 357 359 360 361 362 363 364 365 366 367 369 370 371 372 374 375 376 377 378 380 382 383 384 385 386 387 388 390 391 392 394 395 396 397 398 399 400 402 403 404 405 406 407 409 410 411 412 413 415 416 417 418 419 421 422 423 424 425 426 427 428 429 430 431 432 434 435 436 437 438 439 441 442 443 445 446 447 448 450 451 452 453 454 455 457 458 459 460 461 463 464 466 467 468 470 471 472 473 474 475 476 477 478 480 481 482 483 484 485 486 487 489 490 491 492 493 494 495 496 497 498 500 502 504 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 527 528 530 531 532 533 Exception pattern. 534 535 536 537 538 540 542 544 546 548 550 552 554 556 558 560 562 565 566 567 568 569 571 572 573 574 575 576 577 578 580 581 582 583 585 586 587 588 590 591 592 593 594 596 598 599 600 601 602 604 605 606 608 609 610 611 612 614 615 616 617 Any element not in the LoST namespace. 618 619 620 621 622 624 625 627 628 629 630 A wildcard pattern for including any element 631 from any other namespace. 632 633 634 635 637 638 640 641 642 643 A wildcard pattern for including any element 644 from any other namespace. 645 646 647 648 650 651 652 653 A point where future extensions 654 (elements from other namespaces) 655 can be added. 656 657 658 659 661 662 664 666 8. Extension XML Schema 668 This schema provides the extension to the prior section schema for 669 planned changes: 671 672 676 677 678 680 xs:group ref="plannedChange" minOccurs="1"/> 682 683 684 685 686 687 689 690 692 694 695 697 698 699 700 702 704 9. Security Considerations 706 As an extension to LoST, this document inherits the security issues 707 raised in [RFC5222]. The server could be tricked into storing a 708 malicious URI which, when sent the locationInvalidated object could 709 trigger something untoward. The server MUST NOT accept any data from 710 the client in response to POSTing the locationInvalidated. 712 The server is subject to abuse by clients because it is being asked 713 to store something and may need to send data to an uncontrolled URI. 714 Clients could request many URIs for the same location for example. 715 The server MUST have policy that limits use of this mechanism by a 716 given client. If the policy is exceeded, the server returns the 717 'uriNotStored' warning. The server MUST validate that the content of 718 the 'uri' attribute sent is syntactically valid and meets the 256 719 bytes limit. When sending the locationInvalidated object to the URI 720 stored, the server MUST protect itself against common HTTP 721 vulnerabilities. 723 The mutual authentication between client and server is RECOMMENDED 724 for both the initial operation that requests storing 725 the URI and the sending of the 'locationInvalidated' object. The 726 server should be well known to the client, and its credential should 727 be learned in a reliable way. For example, a public safety system 728 operating the LoST server may have a credential traceable to a well 729 known Certificate Authority known to provide credentials for public 730 safety agencies. Many of the clients will be operated by local ISPs 731 or other service providers where the server operator can reasonably 732 obtain a good credential to use for the URI. Where the server does 733 not recognize the client, its policy MAY limit the use of this 734 feature beyond what it would limit a client it recognized. 736 10. IANA Considerations 738 10.1. Replacement XML Schema Registration 740 URI: urn:ietf:params:xml:schema:lost3 741 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 742 (br@brianrosen.net). 744 The XML Schema is found in Section 7. 746 10.2. Extension XML Schema Registration 748 URI: urn:ietf:params:xml:schema:lostPlannedChange1 749 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 750 (br@brianrosen.net). 752 The XML Schema is found in Section 8. 754 10.3. LoST Namespace Registration 755 URI: urn:ietf:params:xml:ns:lost-plannedChange1 757 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 758 (br@brianrosen.net). 760 XML: 762 BEGIN 763 764 766 767 768 770 LoST Planned Change Namespace 771 772 773

Namespace for LoST Planned Change extension

774

urn:ietf:params:xml:ns:lost-plannedChange1

775

See 776 RFC????.

777 778 779 END 781 11. Normative References 783 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 784 Requirement Levels", BCP 14, RFC 2119, 785 DOI 10.17487/RFC2119, March 1997, 786 . 788 [RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. 789 Tschofenig, "LoST: A Location-to-Service Translation 790 Protocol", RFC 5222, DOI 10.17487/RFC5222, August 2008, 791 . 793 Author's Address 795 Brian Rosen 796 470 Conrad Dr 797 Mars, PA 16046 798 US 800 EMail: br@brianrosen.net