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

📄 draft-ietf-dnsext-gss-tsig-06.txt

📁 bind-3.2.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
     BOOLEAN        mutual_state     INTEGER        minor_status     OBJECT IDENTIFIER mech_type     BOOLEAN        deleg_state     BOOLEAN        sequence_state     BOOLEAN        anon_state     BOOLEAN        trans_state     BOOLEAN        prot_ready_state     BOOLEAN        conf_avail     BOOLEAN        integ_avail     INTEGER        lifetime_recIf returned major_status is set to one of the following errors     GSS_S_DEFECTIVE_TOKEN     GSS_S_DEFECTIVE_CREDENTIAL     GSS_S_BAD_SIG (GSS_S_BAD_MIC)     GSS_S_NO_CRED     GSS_S_CREDENTIALS_EXPIRED     GSS_S_BAD_BINDINGS     GSS_S_OLD_TOKEN     GSS_S_DUPLICATE_TOKEN     GSS_S_NO_CONTEXT     GSS_S_BAD_NAMETYPE     GSS_S_BAD_NAME     GSS_S_BAD_MECH     GSS_S_FAILUREthen the the client MUST abandon the algorithm and MUST NOT use theGSS-TSIG algorithm to establish this security contex. This documentdoes not prescribe which other mechanism could be used to establisha security context. Next time when this client needs to establishsecurity context, the client MAY use GSS-TSIG algorithm.Success values of major_status are GSS_S_CONTINUE_NEEDED andGSS_S_COMPLETE. The exact success code is important during laterprocessing.Expires August 28, 2003                                       [Page 6]INTERNET-DRAFT                   GSS-TSIG            February 28, 2003The values of replay_det_state and mutual_state indicate if thesecurity package provides replay detection and mutual authentication,respectively. If returned major_status is GSS_S_COMPLETE AND one or bothof these values are FALSE, the client MUST abandon this algorithm.Client's behavior MAY depend on other OUTPUT parameters accordingto the policy local to the client.The handle output_context_handle is unique to this negotiation andis stored in the client's mapping table as the context_handle thatmaps to target_name.3.1.2 Send TKEY Query to ServerAn opaque output_token returned by GSS_Init_sec_context is transmittedto the server in a query request with QTYPE=TKEY.  The token itselfwill be placed in a Key Data field of the RDATA field in the TKEYresource record in the additional records section of the query. Theowner name of the TKEY resource record set queried for and the ownername of the supplied TKEY resource record in the additional recordssection MUST be the same. This name uniquely identifies the securitycontext to both the client and server, and thus the client SHOULD usea value which is globally unique as described in [RFC2930]. To achieveglobal uniqueness, the name MAY contain a UUID/GUID [ISO11578].   TKEY Record     NAME = client-generated globally unique domain name string            (as described in [RFC2930])     RDATA        Algorithm Name      = gss-tsig        Mode                = 3 (GSS-API negotiation - per [RFC2930])        Key Size            = size of output_token in octets        Key Data            = output_tokenThe remaining fields in the TKEY RDATA, i.e. Inception, Expiration,Error, Other Size and Data Fields, MUST be set according to [RFC2930].The query is transmitted to the server.Note: if the original client call to GSS_Init_sec_context returned anymajor_status other than GSS_S_CONTINUE_NEEDED or GSS_S_COMPLETE, thenthe client MUST NOT send TKEY query. Client's behavior in this case isdescribed above in Section 3.1.1.3.1.3 Receive TKEY Query-Response from ServerUpon the reception of the TKEY query DNS server MUST respond accordingto the description in Section 4. This Section specifies the behaviorof the client after it receives the matching response to its query.Expires August 28, 2003                                       [Page 7]INTERNET-DRAFT                   GSS-TSIG            February 28, 2003The next processing step depends on the value of major_status from themost recent call that client performed to GSS_Init_sec_context: eitherGSS_S_COMPLETE or GSS_S_CONTINUE.3.1.3.1 Value of major_status == GSS_S_COMPLETEIf the last call to GSS_Init_sec_context yielded a major_status valueof GSS_S_COMPLETE and a non-NULL output_token was sent to the server,then the client side component of the negotiation is complete and theclient is awaiting confirmation from the server.Confirmation is in the form of a query response with RCODE=NOERRORand with the last client supplied TKEY record in the answer sectionof the query.  The response MUST be signed with a TSIG record. Notethat server is allowed to sign a response to unsigned client's querydue to modification to the RFC 2845 specified in Section 2.2 above.The signature in the TSIG record MUST be verified using the proceduredetailed in section 5, Sending and Verifying Signed Messages. If theresponse is not signed, OR if the response is signed but signature isinvalid, then an attacker has tampered with the message in transit orhas attempted to send the client a false response. In this case theclient MAY continue waiting for a response to its last TKEY query untilthe time period since the client sent last TKEY query expires. Such atime period is specified by the policy local to the client. This is anew option that allows DNS client to accept multiple answers for onequery ID and select one (not necessarily the first one) based on somecriteria.If the signature is verified  the context state is advanced to ContextEstablished.  Proceed to section 3.2 for usage of the security context.3.1.3.2 Value of major_status == GSS_S_CONTINUEIf the last call to GSS_Init_sec_context yielded a major_status valueof GSS_S_CONTINUE, then the negotiation is not yet complete. The serverwill return to the client a query-response with a TKEY record in theAnswer section. If the DNS message error is not NO_ERROR or error fieldin the TKEY record is not 0 (i.e. no error), then the client MUSTabandon this negotiation sequence. The client MUST delete an activecontext by calling GSS_Delete_sec_context providing the associatedcontext_handle. The client MAY repeat the negotiation sequence startingwith the uninitialized state as described in section 3.1. To preventinfinite looping the number of attempts to establish a security contextMUST be limited to ten or less.If the DNS message error is NO_ERROR and error filed in the TKEY recordis 0 (i.e. no error), then the client MUST pass a token specified in theKey Data field in the TKEY resource record to GSS_Init_sec_contextusing the same parameters values as in previous call except values forCONTEXT HANDLE input_context_handle and OCTET STRING input_token asdescribed below:Expires August 28, 2003                                       [Page 8]INTERNET-DRAFT                   GSS-TSIG            February 28, 2003   INPUTS     CONTEXT HANDLE input_context_handle  = context_handle (this is the          context_handle corresponding to the key_name which is the          owner name of the TKEY record in the answer section in the          TKEY query response)     OCTET STRING   input_token           = token from Key field of                                            TKEY recordDepending on the following OUTPUT values of GSS_Init_sec_context     INTEGER        major_status     OCTET STRING   output_tokenthe client MUST take one of the following actions:If OUTPUT major_status is set to one of the following values     GSS_S_DEFECTIVE_TOKEN     GSS_S_DEFECTIVE_CREDENTIAL     GSS_S_BAD_SIG (GSS_S_BAD_MIC)     GSS_S_NO_CRED     GSS_S_CREDENTIALS_EXPIRED     GSS_S_BAD_BINDINGS     GSS_S_OLD_TOKEN     GSS_S_DUPLICATE_TOKEN     GSS_S_NO_CONTEXT     GSS_S_BAD_NAMETYPE     GSS_S_BAD_NAME     GSS_S_BAD_MECH     GSS_S_FAILUREthe client MUST abandon this negotiation sequence. This means that theclient MUST delete an active context by calling GSS_Delete_sec_contextproviding the associated context_handle. The client MAY repeat thenegotiation sequence starting with the uninitialized state as describedin section 3.1. To prevent infinite looping the number of attempts toestablish a security context MUST be limited to ten or less.If OUTPUT major_status is GSS_S_CONTINUE_NEEDED OR GSS_S_COMPLETE thenclient MUST act as described below.If the response from the server was signed, and the OUTPUT major_statusis GSS_S_COMPLETE,then the signature in the TSIG record MUST be verifiedusing the procedure detailed in section 5, Sending and Verifying SignedMessages. If the signature is invalid, then the client MUST abandon thisnegotiation sequence. This means that the client MUST delete an activecontext by calling GSS_Delete_sec_context providing the associatedcontext_handle. The client MAY repeat the negotiation sequence startingwith the uninitialized state as described in section 3.1. To preventinfinite looping the number of attempts to establish a security contextMUST be limited to ten or less.If major_status is GSS_S_CONTINUE_NEEDED the negotiation is not yetfinished.  The token output_token MUST be passed to the server in a TKEYrecord by repeating the negotiation sequence beginning with sectionExpires August 28, 2003                                       [Page 9]INTERNET-DRAFT                   GSS-TSIG            February 28, 20033.1.2.  The client MUST place a limit on the number of continuations ina context negotiation to prevent endless looping. Such limit SHOULD NOTexceed value of 10.If major_status is GSS_S_COMPLETE and output_token is non-NULL, theclient-side component of the negotiation is complete but the tokenoutput_token MUST be passed to the server by repeating the negotiationsequence beginning with section 3.1.2.If major_status is GSS_S_COMPLETE and output_token is NULL, contextnegotiation is complete.  The context state is advanced to ContextEstablished.  Proceed to section 3.2 for usage of the security context.3.2  Context EstablishedWhen context negotiation is complete, the handle context_handle MUST beused for the generation and verification of transaction signatures.The procedures for sending and receiving signed messages are describedin section 5, Sending and Verifying Signed Messages.3.2.1 Terminating a ContextWhen the client is not intended to continue using the establishedsecurity context, the client SHOULD delete an active context bycalling GSS_Delete_sec_context providing the associated context_handle,AND client SHOULD delete the established context on the DNS serverby using TKEY RR with the Mode field set to 5, i.e. "key deletion"[RFC2930].4.  Server Protocol DetailsAs on the client-side, the result of a successful context negotiationis a context handle used in future generation and verification of thetransaction signatures.A server MAY be managing several contexts with several clients.Clients identify their contexts by providing a key name in theirrequest.  The server maintains a mapping of key names to handles:     (key_name, context_handle)4.1 Negotiating ContextA server MUST recognize TKEY queries as security context negotiationmessages.Expires August 28, 2003                                      [Page 10]INTERNET-DRAFT                   GSS-TSIG            February 28, 20034.1.1 Receive TKEY Query from ClientUpon receiving a query with QTYPE = TKEY, the server MUST examinewhether the Mode and Algorithm Name fields of the TKEY record in theadditional records section of the message contain values of 3 andgss-tsig, respectively. If they do, then the (key_name, context_handle)mapping table is searched for the key_name matching the owner name ofthe TKEY record in the additional records section of the query. If thename is found in the table and the security context for this name isestablished and not expired, then the server MUST respond to the querywith BADNAME error in the TKEY error field.  If the name is found in thetable and the security context is not established, the correspondingcontext_handle is used in subsequent GSS operations. If the name isfound but the security context is expired, then the server deletes thissecurity context, as described in Section 4.2.1, and interprets thisquery as a start of new security context negotiation and performsoperations described in Section 4.1.2 and 4.1.3. If the name is notfound, then the server interprets this query as a start of new securitycontext negotiation and performs operations described in Section 4.1.2and 4.1.3.4.1.2 Call GSS_Accept_sec_contextThe server performs its side of a context negotiation by callingGSS_Accept_sec_context. The following input parameters MUST be used. Theoutcome of the call is indicated with the output values below.  ConsultSections 2.2.2 "GSS_Accept_sec_context call" of the RFC 2743[RFC2743]for syntax definitions.   INPUTS     CONTEXT HANDLE input_context_handle  = 0 if new negotiation,

⌨️ 快捷键说明

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