⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draft-day-svrloc-exclusion-03.nr.txt

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 TXT
📖 第 1 页 / 共 2 页
字号:
request message. DAs and SAs MUST ignore Exclusion Directives thatare erroneously included in unicast request messages..KSIf the SA or DA supports the Exclusion Directive, it MUST perform thefollowing steps when processing an SLP v2 Request message..nr PI 5.RS.nr step 1 1.IP \n[step]. 3If the request message is unicast or if the receiving agent does notrecognize the Exclusion Directive, go to step 6 below..IP \n+[step].If the incoming request does not have an Exclusion Directive,proceed to step 6..IP \n+[step].Extract the Exclusion Directive from the request. Search theDirective's Exclusion Entries list for the receiving agent's IPaddress. If not found, proceed to step 6..IP \n+[step].Extract the source address and port from the UDP header and theExclusion XID and nonce from the Exclusion Directive. The receivingagent MUST ensure that its EDST contains a record for this directive,creating a new EDST record if necessary. (This step is also aconvenient time to delete expired entries from the EDST.).IP \n+[step].Extract the source address and port from the incoming request's UDPheader. Extract the XID from the request's SLP v2 header. Extract the nonce from the Exclusion directive. Search the EDST for an entry containing matching values for these data(Optionally ignoring the nonce from the EDST entry if the incomingrequest does not contain an exclusion directive). Upon finding amatching EDST entry, silently discard the request. Otherwise continue..IP \n+[step].If the SA or DA has not discarded the request up to this point,evaluate the request normally as outlined in [1]..RE.KE.in 3It is worth repeating that the Exclusion Directive only applies toSLP v2 request messages that have the R (Request Multicast) flagturned on in the SLP v2 header. Agents MUST NOT silently discardunicast request messages regardless of exclusion directives or EDSTentries.Note that additional steps may be necessary if the Exclusiondirective contains one or more authentication blocks. Thesesteps are outlined in section 4..KS .HDR_2 Dummy\ Service\ Request\ Message\ with\ Exclusion\ Directive A "dummy" request message is one that has zero-length fieldsfor the entire request body, exclusive of the SLP v2 header and theExclusion directive.Using a dummy SLP request message for the sole purpose of transportingan Exclusion Directive may be helpful in two cases:.nr PI 5.RS.nr step 1 1.IP \n[step]. 3The Exclusion Directive is too large to fit within a single requestdatagram alongside the SLP header, service type, predicate, and other requestdata. However, it will fit in a datagram with just itself and the SLPheader. .IP \n+[step].The Exclusion Directive is larger than the sum of the network MTUand the SLP Header. The agent can divide the Exclusion Entries listacross two or more Exclusion Directives and transport those Directiveswithin a corresponding number of dummy SLP request messages.This method can support Exclusion Entry lists that contain thousandsof addresses. .RE.in 3.sp 1When an SA or DA receives a dummy SLP request that contains anExclusion Directive, the receiving agent MUST extract the ExclusionDirective from the dummy request and ensure that the local EDSTcontains a record corresponding to the Exclusion Directive. This isdescribed in section 3, step 4 above. A Dummy request message MUST have the R (Request Multicast) flagturned on in the SLP v2 header. This causes SLP v2 SAs and DAs thatare unaware of the Exclusion Directive to silently discard dummyrequest messages due to a parsing error (instead of responding to thesending agent with an error code)..KE .KS.HDR_3 Format\ of\ Dummy\ Service\ Request.DS L   0                   1                   2                   3   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   | Service Location Header (R flag on) (function = SrvRqst = 1)  |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |    length of <PRList> = 0     | length of <service-type> = 0  |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |   length of <scope-list> = 0  |   length of <predicate> = 0   |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |    length of <SLP SPI > = 0   |   Extension ID = Exclusion    |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |         Next Extension Offset                 |     size      |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |     Exclusion XID             |   Nonce                       |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |          Nonce, cont'd.       |       Exclusion Interval      |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |        Number of Entries      |          Exclusion Entries    \\   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   \\ # auth blocks                 |  authentication block (if any)\\   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.DE.KE.HDR_3 Processing\ the\ Dummy\ Service\ RequestDummy Service Request messages MUST be processed as outlined insection 3 above. The result is that the receiving agents which supportthe Exclusion Directive will process the Directive, while all otheragents will silently discard the message due to a parsing error.After processing the Exclusion Directive, the receiving agent willproduce a parse error. Because the service request has the multicastflag set, the receiving agent will not send an error response to theoriginating agent.Note that if the Exclusion Directive contains an authenticationblock, the SA or DA SHOULD validate the signature of the ExclusionDirective. Authentication of Exclusion Directives is covered insection 4..KS.HDR_3 Using\ the\ Exclusion\ Directive\ and\ PR\ List\ TogetherThe steps below show how to use theExclusion Directive in combination with the SLP PR list to performmulticast discovery (substitute actual XIDs in real usage):.nr PI 5.RS.nr step 1 1.IP \n[step]. 3Send a new Service Request with no PR list and no Exclusion Directive;process the replies and remember the respondents as RL1. .IP \n+[step].Build an exclusion list and remember it as list EL1..IP \n+[step].Immediately re-transmit the Service Request from (1) with no PR listbut with an Exclusion Directive that contains Exclusion List EL1;process the replies and remember the respondents as RL2..IP \n+[step].The intersection of EL1 and RL2 are agents that do not support theExclusion Directive. Create PRL1 = EL1 n RL2. Build EL2 = RL2 - PRL1..IP \n+[step].Immediately re-transmit the Service Request from (3) including PRL1 inthe SLP header and substituting EL2 for EL1 in the ExclusionDirective. If no responses the discovery cycle is complete. .IP \n+[step].Repeat the previous thre steps n times using ELn-1, RLn, PRLn-1, and ELn until theUA receives no responses for the configured timeout period. .RE.in 3.sp 1In steps 1 - 6 above, it is important that each Service Request (steps1, 3, and 5) have the same XID in the SLP Header ; and equally thateach Exclusion Directive also has the same value in the XID field..KE.KS.RETURN_HDR_1 Authenticating\ Exclusion\ DirectivesTo prevent denial of service attacks against UAs, all agents thatrecognize the Exclusion Directive SHOULD support authentication ofthe Exclusion Directive.Authenticating Exclusion Directives places the additional burden uponthe User Agent of signing data. In standard SLP v2, UAs only need toverify signatures. The additional ability to generate signaturesmeans that UAs must be issued private key material..HDR_2 The\ Exclusion\ Directive\ Authentication\ BlockThe format of the Exclusion Directive Authentication Block is the sameas that used by SLP v2 [1]..DS L   0                   1                   2                     3   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |  Block Structure Descriptor   |  Authentication Block Length  |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |                           Timestamp                           |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |     SLP SPI String Length     |         SLP SPI String        \\   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   \\                Structured Authentication Block...            \\   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.DE.KE.KS.HDR_2 Exclusion\ Directive\ Authentication\ RulesTo sign or verify the signature of an Exclusion Directive, the SLPagent MUST use the following components of the Exclusion Directive asif they were a single continuous byte-aligned buffer:.nr PI 5.RS.IP \[bu] 3 16-bit Exclusion XID.IP \[bu] 32-bit Nonce.IP \[bu] 16-bit Exclusion Interval.IP \[bu] 8-bit Exclusion Entry size.IP \[bu] 16-bit Number of Entries.IP \[bu] Variable-length Exclusion Entries..RE.KE.RETURN_HDR_1 Using\ the\ NONCE\ Value\ to\ Prevent\ Replay\ AttacksDespite the use of signatures to authenticate Exclusion Directives,UAs may still be vulnerable to a replay denial of service attack.  Toprevent this possibility, SLP Agents that recognize the Exclusiondirective SHOULD make use of the nonce value as described in thissection.Every Exclusion Directive contains a 128-bit nonce field, which MUSTcontain a 128-bit cryptographicly random value or be filled withzeros. If the nonce is filled with zeroes, the UA is open to adenial-of service attack. Because the nonce field is included in signature generation andvalidation, each signed Exclusion Directive can be cryptographicallyunique. Unsigned Exclusion Directives can also be cryptographicallyunique but their source can be spoofed..KSBy using the nonce correctly, Exclusion Directives can be specificto:.nr PI 5.RS.nr step 1 1.IP \n[step]. 3The source address and port of the requesting UA..IP \n+[step].The XID of the request..IP \n+[step].A cryptographically unique value for each and every request. To makethis work, SAs and DAs MUST include the nonce value, along with the UAsource address and the request XID when deciding whether or not anExclusion Directive applies to a request message.  .RE .KE .HDR_2 UA\ Use\ of\ the\ Nonce\ to\ Prevent\ Denial\ of\ Service\ AttackThe UA is the SLP component vulnerable to a denial of service attackso it is responsible for using an appropriate algorithm to generate anonce with the requisite random characteristics. .KSFor each Exclusion Directive:.nr PI 5.RS.nr step 1 1.IP \n[step]. 3Generate a random 128-bit integer to use as the nonce..IP \n+[step].Initialize an Exclusion Directive, including the XID of therequest that is subject to response suppression..IP \n+[step].Insert the nonce value from (1) into the Exclusion Directive..IP \n+[step].Optionally sign the Exclusion Directive as outlined in the section onAuthentication above. .IP \n+[step].Use a Exclusion Directive containing the nonce in allrequests and dummy Service Requests for the XID in step (2)..IP \n+[step].IMPORTANT - use a DIFFERENT, cryptographically generated noncefor each request XID for which you are issuing an Exclusiondirective..RE.KE.KS.HDR_2 DA\ and\ SA\ Use\ of\ the\ NonceSA's DAs that recognize the Exclusion Directive MUST use the noncevalue to initialize EDST entries and to evaluate Exclusion Directivesin request messages. .HDR_3 Zero-filled\ NonceUAs that don't have the ability to generate uniquenonce values MUST fill the nonce field of the Exclusion Directivewith zeros. This opens the agent up to a denial of service attack,however. (See below)..RETURN_HDR_2 Theory\ Behind\ the\ Nonce The nonce is a simple mechanism to make it as difficult as possiblefor an attacker to predict the composition of SLP servicerequests that a particular UA may issue in the near future. Most UA's use the XID field in the SLP 2 header as a sequentialcounter. Hence an attacker that has a copy of a recent SLP request canguess the XID of the next request the agent will make. Using theExclusion Directive, an attacker can cause DA's and SA's not torespond to subsequent SLP requests made by the attacked agent. However, the inclusion of the nonce value in the Exclusion Directivemakes it infeasible for an attacker to guess the composition of futurerequests made by the UA. This is true because the nonce, unlike theXID, is a random value. Also, the nonce is large enough to makeguessing its value in the next request too difficult for the attacker..KE.RETURN_HDR_1 Security\ ConsiderationsImplementing the Exclusion Directive without using the nonce valueopens SLP v2 UAs up to a trivial denial of service attack, which wouldnullify the ability of the UA to perform discovery.Implementing the Exclusion Directive with authentication but withoutusing the nonce value may leave the UA open to a more sophisticatedreplay attack using previously signed and multicast request messages.UAs that support the Exclusion Directive SHOULD authenticate theirrequests as outlined in section 4 and SHOULD include the nonce valuein all Exclusion Directives.SAs and DAs that support the Exclusion Directive SHOULD be able toverify signed Exclusion Directives and MUST store the nonce value inthe EDST entry for that directive.Nonce values generated by UAs MUST  be cryptographically unique andrandom values if they are to provide any safeguard against a replayattack..HDR_1 AcknowledgementsErik Guttman has provided a great deal of feedback and improvementsto this document. The srvloc working group also contributed to thedevelopment of this document, especialy Kevin Arnold, James Kempf,Ira McDonald, Evan Hughes, Terry Lambert, and others. Thomas Nartenrecommended some important changes during the review process..KS.HDR_1 References.nr PI 5.RS.nr step 1 1.IP \n[step]. 3 Guttman, E., Perkins, C., Veizades, J., and M. Day, "ServiceLocation Protocol Version 2", RFC 2608, June 1999..IP \n+[step].Bradner, S,. "Key Words for Use in RFCs to Indicate RequirementsLevels", BCP 14, RFC 2119, March 1997.RE.KE.KS.HDR_1 Author's\ Contact\ InformationMichael DayIBM3039 Cornwallis RoadResearch Triangle Park, NC 27709Phone:  919 543-4283Email:  mdday@us.ibm.com.KE.KS.HDR_1 Full\ Copyright\ StatementCopyright (C) The Internet Society (2000-2002).  All Rights Reserved.This document and translations of it may be copied and furnished toothers, and derivative works that comment on or otherwise explain itor assist in its implementation may be prepared, copied, published anddistributed, in whole or in part, without restriction of any kind,provided that the above copyright notice and this paragraph areincluded on all such copies and derivative works.  However, thisdocument itself may not be modified in any way, such as by removingthe copyright notice or references to the Internet Society or otherInternet organizations, except as needed for the purpose of developingInternet standards in which case the procedures for copyrights definedin the Internet Standards process must be followed, or as required totranslate it into languages other than English.The limited permissions granted above are perpetual and will not berevoked by the Internet Society or its successors or assigns.This document and the information contained herein is provided on an"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERINGTASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUTNOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREINWILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OFMERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.".KE.TC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -