EPP-DNSSEC的擴展(RFC5910翻譯)

1. 引言

本文檔中描述的EPP映射指定了在共享的中央存儲庫中配置和管理DNS安全擴展的機制。通過該映射交換的信息可以從存儲庫中提取出來,並用於發佈RFC4034 [RFC4034]中描述的DNSSEC委託簽名者(DS,Delegation Signer)資源記錄(RRs,resource records)。

本文件廢止RFC4310 [RFC4310];因此,本文檔中定義的secDNS-1.1與secDNS-1.0 [RFC4310]不一致。淘汰RFC4310 [RFC4310]的動機包括:

  • 解決了基於非唯一的<secDNS:keyTag>元素刪除DS數據的問題。客戶機應該顯式地指定要刪除的DS數據,方法是使用所有四個保證惟一的<secDNS:dsData>元素。
  • 在單個命令中添加和刪除<secDNS:dsData>元素的功能。這使得它與RFC5731 [RFC5731]一致。
  • 澄清和糾正<secDNS:chg>元素的用法。RFC4310 [RFC4310]定義了<secDNS:chg>元素作爲DS數據的替換。這與RFC5731 [RFC5731]不一致,其中<domain:chg>元素用於更改域屬性的值。
  • 增加對4.2節中描述的“厚”DNSSEC服務器的關鍵數據接口的支持,這些服務器只接受關鍵數據並生成相關的DS數據。

1.1 本文檔中的約定

secDNS-1.0是urn:ietf:params:xml:ns:secDNS-1.0的縮寫,secDNS-1.1是urn:ietf:params:xml:ns:secDNS-1.1的縮寫。

2. 從RFC4310中遷移

本節包括客戶端和服務器在從secdn -1.0 [RFC4310]遷移到secdn -1.1時使用的實現建議。

由於本文檔反對RFC4310 [RFC4310],如果服務器在EPP問詢中同時宣佈支持secDNS-1.0 [RFC4310]和secDNS-1.1,那麼支持這兩個版本的客戶端應該更喜歡secDNS-1.1。

服務器應該執行以下操作來幫助客戶端從secdn -1.0 [RFC4310]遷移到本文檔中定義的secdn -1.1。

  1. 服務器從secDNS-1.0 [RFC4310]遷移到secDNS-1.1應該支持兩個版本(即, secDNS-1.0和secDNS-1.1)。
  2. 服務器在響應<domain:info>響應時返回的<secDNS:infData>元素的版本應該依賴於使用以下映射的EPP <login>命令中包含的客戶端<extURI>元素(指示secDNS擴展):
    • 如果urn:ietf:params:xml:ns:secDNS-1.1作爲一個元素包含在EPP命令中,而不管urn:ietf:params:xml:ns:secDNS-1.0是否也作爲一個<extURI>元素包含在EPP <login>命令中。
    • 如果urn:ietf:params:xml:ns: secdn -1.0,而不是urn:ietf:params:xml:ns: secdn -1.1,則返回<secDNS:infData>元素的secdn -1.0版本。
    • 如果urn:ietf:params:xml:ns: secdn -1.0和urn:ietf:params:xml:ns: secdn -1.1都沒有作爲<extURI>元素包含在EPP <login>命令中,那麼不要返回<secDNS:infData>元素。

3. 對象屬性

該擴展爲EPP域名映射添加了額外的元素[RFC5731]。這裏只描述那些新元素。

3.1 授權簽名者信息

DS信息由DNS服務器發佈,以指示子區域是數字簽名的,並且父區域將所指示的密鑰識別爲子區域的有效區域密鑰。DS資源記錄(RR)包含四個字段:一個key tag字段、一個八字節組的key algorithm number、一個識別摘要算法的八字節組的和一個digest字段。具體字段格式見RFC4034 [RFC4034]。

3.1.1 公鑰信息

客戶端提供的公鑰信息映射到RFC4034 [RFC4034]第2.2節中描述的DNSKEY RR表示字段格式。一個DNSKEY RR包含四個字段:flags、一個八字節組協議、一個算法數字八字節組和一個公鑰。

3.2 布爾運算

布爾值必須用W3C XML Schema建議書第2部分中描述的XML模式格式表示。

3.3 簽名最長使用期

最大簽名生命期(maxSigLife)是一個可選的子選項,用於生成簽名後的秒數,此時子節點提供的DS信息上的父節點簽名將過期(最大簽名生命期(maxSigLife)是一個可選的子選項,用於記錄生成簽名後,父節點在子節點提供的DS信息上的簽名距離過期的秒數)。maxSigLife值應用於DS RRset上的RRSIG資源記錄(RR)。有關RRSIG資源記錄(RR)的信息,請參閱RFC4034 [RFC4034]的第3節。

最大簽名生命週期使用<secDNS: maxSigLife>元素表示。maxSigLife值必須以爲單位表示,使用擴展的XML模式“int”格式。允許負數的基本“int”格式在W3C XML Schema建議[W3C. rec-xmlschema -2-20010502]的第2部分中進行了描述。此格式進一步限制爲強制最小值爲1

如果客戶端不提供maxSigLife,或者服務器不支持客戶端指定的maxSigLife值,則應用服務器操作符的默認簽名過期策略(使用帶外機制確定)。

4. DS數據接口和Key數據接口

本文檔描述了客戶端可以爲域名創建、添加和刪除DS信息或關鍵數據信息的操作場景。服務器可以支持兩種不同形式的接口。第一個稱爲“DS數據接口”,其中客戶端負責創建DS信息,並在執行添加和刪除操作時需要傳遞DS信息。服務器需要傳遞<domain:info>響應的DS信息。第二個是“key數據接口”,客戶端負責在執行添加和刪除操作時傳遞關鍵數據信息。服務器負責傳遞<domain:info>響應的key數據信息。

服務器必須在單個命令或響應中支持一種形式的接口,其中<secDNS:dsData>和<secDNS:keyData>不能混合使用,除非<secDNS:keyData>是<secDNS:dsData>的子元素,用於服務器驗證。服務器必須支持在所有<secDNS:create>、<secDNS:update>和<secDNS:infData>元素之間只使用一種形式的接口,除非在過渡期間(transition period),在此期間服務器可能同時支持這兩種接口。例如,在過渡期間,服務器可能在每個域的基礎上支持DS數據接口或關鍵數據接口,並允許客戶端遷移到目標接口。客戶端可以替代使用的接口利用 < secDNS: rem > < secDNS:all>true< / secDNS:all> < / secDNS: rem >元素刪除舊接口的所有數據,並利用< secDNS:add>添加數據使用新接口(< secDNS: dsData > DS數據接口和< secDNS: keyData >key數據接口)。如果服務器接收到使用不受支持的接口的命令,則服務器必須返回一個EPP錯誤結果代碼2306。

4.1 DS數據接口

DS數據接口依賴於使用<secDNS:dsData>元素來創建、添加、刪除和<domain:info> 響應。與DS信息相關的密鑰數據可以由客戶端提供,但是服務器沒有義務使用密鑰數據。服務器操作員也可以發出帶外(out-of-band)DNS查詢來從註冊域的頂點檢索關鍵數據,以評估接收到的DS信息。建議子區域操作符在DNS樹中在線保存此關鍵數據,以便允許父區域管理員根據需要驗證數據。關鍵數據應具有RFC3757 [RFC3757]和RFC4034 [RFC4034]中描述的安全入口點(SEP)位。

<secDNS:dsData>元素包含以下子元素 :

  • 一個<secDNS:keyTag>元素,它包含一個key tag值,如RFC4034 [RFC4034]的5.1.1節所述。<secDNS:keyTag> 元素用unsignedShort類型表示[W3C.REC-xmlschema-2-20010502]。
  • 一個<secDNS:alg>元素,它包含RFC4034 [RFC4034]的5.1.2節中描述的算法值。
  • 一個<secDNS:digestType>元素,它包含一個摘要類型值,如RFC4034 [RFC4034]的5.1.3節所述。
  • 一個<secDNS:digest>元素,它包含RFC4034 [RFC4034]的5.1.4節中描述的摘要值。<secDNS: digest>元素表示爲一個hexBinary [W3C.REC-xmlschema-2-20010502]。
  • 一個可選的<secDNS:keyData>元素,它描述了用於服務器驗證的DS哈希計算中作爲輸入的關鍵數據。元素包含4.2節中定義的子元素。

4.2 Key數據接口

Key Data接口依賴於使用<secDNS:keyData>元素來創建、添加、刪除和<domain:info>響應。DS信息不是由客戶機提供的,而是由服務器生成的。用於DS生成的屬性基於服務器策略,其中只有key數據在客戶機和服務器之間傳遞。

<secDNS:keyData>元素包含以下子元素:

  • 一個<secDNS:flags>元素,它包含RFC4034 [RFC4034]的2.1.1節中描述的一個flags字段值。
  • 一個<secDNS:protocol>元素,它包含一個協議字段值,如RFC4034 [RFC4034]的2.1.2節所述。
  • 一個<secDNS:alg>元素,它包含RFC4034 [RFC4034]的2.1.3節中描述的算法編號字段值。
  • 一個<secDNS:pubKey>元素,它包含一個已編碼的公鑰字段值,如RFC4034 [RFC4034]的2.1.4節所述。<secDNS:pubKey>元素表示爲base64Binary [W3C]。rect -xmlschema-2-20010502],最小長度爲1。

4.3 DS數據接口和Key數據接口示例

使用secdn -1.1 DS數據接口創建的示例:

   <secDNS:dsData>
     <secDNS:keyTag>12345</secDNS:keyTag>
     <secDNS:alg>3</secDNS:alg>
     <secDNS:digestType>1</secDNS:digestType>
     <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
   </secDNS:dsData>

   Example use of secDNS-1.1 DS Data Interface with option key data for
   a create:

   <secDNS:dsData>
     <secDNS:keyTag>12345</secDNS:keyTag>
     <secDNS:alg>3</secDNS:alg>
     <secDNS:digestType>1</secDNS:digestType>
     <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
     <secDNS:keyData>
       <secDNS:flags>257</secDNS:flags>
       <secDNS:protocol>3</secDNS:protocol>
       <secDNS:alg>1</secDNS:alg>
       <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
     </secDNS:keyData>
    </secDNS:dsData>

使用secdn -1.1密鑰數據接口創建的示例:

    <secDNS:keyData>
      <secDNS:flags>257</secDNS:flags>
      <secDNS:protocol>3</secDNS:protocol>
      <secDNS:alg>1</secDNS:alg>
      <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
    </secDNS:keyData>

5 EPP命令映射

5.1 EPP查詢(Query)命令

5.1.1 < check >

此擴展不向EPP <check>命令或EPP域映射[RFC5731]中描述的<check>響應添加任何元素。

5.1.2 < info >

該擴展沒有向EPP域映射[RFC5731]中描述的EPP <info>命令添加任何元素。但是,爲<info>響應定義了其他元素。

當<info>命令被成功處理時,EPP <resData>元素必須包含EPP域映射[RFC5731]中描述的子元素。此外,EPP <extension>元素應該包含一個子元素<secDNS:infData>元素,如果域對象具有與此擴展關聯的數據並基於服務器策略,則該元素將標識擴展名稱空間。<secDNS:infData>元素包含以下子元素:

  • 一個可選的<secDNS:maxSigLife>元素,它指示子元素在簽名生成之後的秒數的首選項,此時子元素提供的DS信息上的父元素簽名將過期。maxSigLife在第3.3節中進行了描述。
  • 一個或多個<secDNS:dsData>元素或<secDNS:keyData>元素,但不是兩個,如第4節中定義的那樣。dsData>元素描述了客戶端爲域提供的委託簽名者(DS)數據。<secDNS:keyData>元素描述了客戶端爲域提供的密鑰數據。dsData>元素的子元素在4.1節中進行了描述。在4.2節中描述了<secDNS:keyData>元素的子元素。

示例<info>響應,用於使用DS數據接口的安全委託:

   S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   S:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   S:  <response>
   S:    <result code="1000">
   S:      <msg>Command completed successfully</msg>
   S:    </result>
   S:    <resData>
   S:      <domain:infData
   S:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:        <domain:name>example.com</domain:name>
   S:        <domain:roid>EXAMPLE1-REP</domain:roid>
   S:        <domain:status s="ok"/>
   S:        <domain:registrant>jd1234</domain:registrant>
   S:        <domain:contact type="admin">sh8013</domain:contact>
   S:        <domain:contact type="tech">sh8013</domain:contact>
   S:        <domain:ns>
   S:          <domain:hostObj>ns1.example.com</domain:hostObj>
   S:          <domain:hostObj>ns2.example.com</domain:hostObj>
   S:        </domain:ns>
   S:        <domain:host>ns1.example.com</domain:host>
   S:        <domain:host>ns2.example.com</domain:host>
   S:        <domain:clID>ClientX</domain:clID>
   S:        <domain:crID>ClientY</domain:crID>
   S:        <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
   S:        <domain:upID>ClientX</domain:upID>
   S:        <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
   S:        <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
   S:        <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
   S:        <domain:authInfo>
   S:          <domain:pw>2fooBAR</domain:pw>
   S:        </domain:authInfo>
   S:      </domain:infData>
   S:    </resData>
   S:    <extension>
   S:      <secDNS:infData
   S:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   S:        <secDNS:dsData>
   S:          <secDNS:keyTag>12345</secDNS:keyTag>
   S:          <secDNS:alg>3</secDNS:alg>
   S:          <secDNS:digestType>1</secDNS:digestType>
   S:          <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
   S:        </secDNS:dsData>
   S:      </secDNS:infData>
   S:    </extension>
   S:    <trID>
   S:      <clTRID>ABC-12345</clTRID>
   S:      <svTRID>54322-XYZ</svTRID>
   S:    </trID>
   S:  </response>
   S:</epp>

示例<info>響應,用於使用DS數據接口和可選密鑰數據的安全委託:

   S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   S:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   S:  <response>
   S:    <result code="1000">
   S:      <msg>Command completed successfully</msg>
   S:    </result>
   S:    <resData>
   S:      <domain:infData
   S:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:        <domain:name>example.com</domain:name>
   S:        <domain:roid>EXAMPLE1-REP</domain:roid>
   S:        <domain:status s="ok"/>
   S:        <domain:registrant>jd1234</domain:registrant>
   S:        <domain:contact type="admin">sh8013</domain:contact>
   S:        <domain:contact type="tech">sh8013</domain:contact>
   S:        <domain:ns>
   S:          <domain:hostObj>ns1.example.com</domain:hostObj>
   S:          <domain:hostObj>ns2.example.com</domain:hostObj>
   S:        </domain:ns>
   S:        <domain:host>ns1.example.com</domain:host>
   S:        <domain:host>ns2.example.com</domain:host>
   S:        <domain:clID>ClientX</domain:clID>
   S:        <domain:crID>ClientY</domain:crID>
   S:        <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
   S:        <domain:upID>ClientX</domain:upID>
   S:        <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
   S:        <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
   S:        <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
   S:        <domain:authInfo>
   S:          <domain:pw>2fooBAR</domain:pw>
   S:        </domain:authInfo>
   S:      </domain:infData>
   S:    </resData>
   S:    <extension>
   S:      <secDNS:infData
   S:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   S:        <secDNS:maxSigLife>604800</secDNS:maxSigLife>
   S:        <secDNS:dsData>
   S:          <secDNS:keyTag>12345</secDNS:keyTag>
   S:          <secDNS:alg>3</secDNS:alg>
   S:          <secDNS:digestType>1</secDNS:digestType>
   S:          <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
   S:          <secDNS:keyData>
   S:            <secDNS:flags>257</secDNS:flags>
   S:            <secDNS:protocol>3</secDNS:protocol>
   S:            <secDNS:alg>1</secDNS:alg>
   S:            <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
   S:          </secDNS:keyData>
   S:        </secDNS:dsData>
   S:      </secDNS:infData>
   S:    </extension>
   S:    <trID>
   S:      <clTRID>ABC-12345</clTRID>
   S:      <svTRID>54322-XYZ</svTRID>
   S:    </trID>
   S:  </response>
   S:</epp>

示例<info>響應,用於使用密鑰數據接口的安全委託:

   S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   S:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   S:  <response>
   S:    <result code="1000">
   S:      <msg>Command completed successfully</msg>
   S:    </result>
   S:    <resData>
   S:      <domain:infData
   S:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:        <domain:name>example.com</domain:name>
   S:        <domain:roid>EXAMPLE1-REP</domain:roid>
   S:        <domain:status s="ok"/>
   S:        <domain:registrant>jd1234</domain:registrant>
   S:        <domain:contact type="admin">sh8013</domain:contact>
   S:        <domain:contact type="tech">sh8013</domain:contact>
   S:        <domain:ns>
   S:          <domain:hostObj>ns1.example.com</domain:hostObj>
   S:          <domain:hostObj>ns2.example.com</domain:hostObj>
   S:        </domain:ns>
   S:        <domain:host>ns1.example.com</domain:host>
   S:        <domain:host>ns2.example.com</domain:host>
   S:        <domain:clID>ClientX</domain:clID>
   S:        <domain:crID>ClientY</domain:crID>
   S:        <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
   S:        <domain:upID>ClientX</domain:upID>
   S:        <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
   S:        <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
   S:        <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
   S:        <domain:authInfo>
   S:          <domain:pw>2fooBAR</domain:pw>
   S:        </domain:authInfo>
   S:      </domain:infData>
   S:    </resData>
   S:    <extension>
   S:      <secDNS:infData
   S:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   S:        <secDNS:keyData>
   S:          <secDNS:flags>257</secDNS:flags>
   S:          <secDNS:protocol>3</secDNS:protocol>
   S:          <secDNS:alg>1</secDNS:alg>
   S:          <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
   S:        </secDNS:keyData>
   S:      </secDNS:infData>
   S:    </extension>
   S:    <trID>
   S:      <clTRID>ABC-12345</clTRID>
   S:      <svTRID>54322-XYZ</svTRID>
   S:    </trID>
   S:  </response>
   S:</epp>

如果由於任何原因無法處理<info>命令,則必須返回一個EPP錯誤響應。

5.1.3 < transfer >

此擴展不向EPP <transfer>命令或EPP域映射[RFC5731]中描述的<transfer>響應添加任何元素。

5.2 EPP轉換(Transform)命令

5.2.1 < create >

該擴展爲EPP域映射[RFC5731]中描述的EPP <create>命令定義了額外的元素。沒有爲EPP <create>響應定義額外的元素。

EPP <create>命令提供了一個轉換操作,允許客戶端創建域對象。如果客戶端希望將此擴展中定義的數據關聯到域對象,除了EPP命令元素中描述EPP域映射(RFC5731),該命令必須包含一個<extension>元素,<extension>元素必須包含一個子元素<secDNS:create>用於標識擴展名稱空間。<secDNS:create>元素包含以下子元素:

  • 一個可選的<secDNS:maxSigLife>元素,它指示子元素在簽名生成之後的秒數的首選項,此時子元素提供的DS信息上的父元素簽名將過期。maxSigLife在第3.3節中進行了描述。如果服務器不支持<secDNS:maxSigLife>元素,則必須返回2102錯誤。
  • 0個或多個<secDNS:dsData>元素或<secDNS:keyData>元素,但不是兩個都有,如第4節中定義的那樣。<dsData>元素的子元素在4.1節中進行了描述。在4.2節中描述了<secDNS:keyData>元素的子元素。

使用DS數據接口用於安全委託的<create>命令

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <create>
   C:      <domain:create
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:        <domain:period unit="y">2</domain:period>
   C:        <domain:ns>
   C:          <domain:hostObj>ns1.example.com</domain:hostObj>
   C:          <domain:hostObj>ns2.example.com</domain:hostObj>
   C:        </domain:ns>
   C:        <domain:registrant>jd1234</domain:registrant>
   C:        <domain:contact type="admin">sh8013</domain:contact>
   C:        <domain:contact type="tech">sh8013</domain:contact>
   C:        <domain:authInfo>
   C:          <domain:pw>2fooBAR</domain:pw>
   C:        </domain:authInfo>
   C:      </domain:create>
   C:    </create>
   C:    <extension>
   C:      <secDNS:create
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:maxSigLife>604800</secDNS:maxSigLife>
   C:        <secDNS:dsData>
   C:          <secDNS:keyTag>12345</secDNS:keyTag>
   C:          <secDNS:alg>3</secDNS:alg>
   C:          <secDNS:digestType>1</secDNS:digestType>
   C:          <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
   C:        </secDNS:dsData>
   C:      </secDNS:create>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用DS數據接口和可選密鑰數據用於安全委託的<create>命令示例:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <create>
   C:      <domain:create
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:        <domain:period unit="y">2</domain:period>
   C:        <domain:ns>
   C:          <domain:hostObj>ns1.example.com</domain:hostObj>
   C:          <domain:hostObj>ns2.example.com</domain:hostObj>
   C:        </domain:ns>
   C:        <domain:registrant>jd1234</domain:registrant>
   C:        <domain:contact type="admin">sh8013</domain:contact>
   C:        <domain:contact type="tech">sh8013</domain:contact>
   C:        <domain:authInfo>
   C:          <domain:pw>2fooBAR</domain:pw>
   C:        </domain:authInfo>
   C:      </domain:create>
   C:    </create>
   C:    <extension>
   C:      <secDNS:create
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:maxSigLife>604800</secDNS:maxSigLife>
   C:        <secDNS:dsData>
   C:          <secDNS:keyTag>12345</secDNS:keyTag>
   C:          <secDNS:alg>3</secDNS:alg>
   C:          <secDNS:digestType>1</secDNS:digestType>
   C:          <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
   C:          <secDNS:keyData>
   C:            <secDNS:flags>257</secDNS:flags>
   C:            <secDNS:protocol>3</secDNS:protocol>
   C:            <secDNS:alg>1</secDNS:alg>
   C:            <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
   C:          </secDNS:keyData>
   C:        </secDNS:dsData>
   C:      </secDNS:create>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用密鑰數據接口,用於安全委託<create>命令示例:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <create>
   C:      <domain:create
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:        <domain:period unit="y">2</domain:period>
   C:        <domain:ns>
   C:          <domain:hostObj>ns1.example.com</domain:hostObj>
   C:          <domain:hostObj>ns2.example.com</domain:hostObj>
   C:        </domain:ns>
   C:        <domain:registrant>jd1234</domain:registrant>
   C:        <domain:contact type="admin">sh8013</domain:contact>
   C:        <domain:contact type="tech">sh8013</domain:contact>
   C:        <domain:authInfo>
   C:          <domain:pw>2fooBAR</domain:pw>
   C:        </domain:authInfo>
   C:      </domain:create>
   C:    </create>
   C:    <extension>
   C:      <secDNS:create
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:keyData>
   C:          <secDNS:flags>257</secDNS:flags>
   C:          <secDNS:protocol>3</secDNS:protocol>
   C:          <secDNS:alg>1</secDNS:alg>
   C:          <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
   C:        </secDNS:keyData>
   C:      </secDNS:create>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

當<create>命令被成功處理後,EPP響應將在EPP域映射[RFC5731]中描述。

5.2.2 < delete >

此擴展不向EPP\ 命令或EPP域映射[RFC5731]中描述的<delete>響應添加任何元素。

5.2.3 < renew >

此擴展不向EPP <renew>命令或EPP域映射[RFC5731]中描述的<renew>響應添加任何元素。

5.2.4 < transfer >

此擴展不向EPP <transfer>命令或EPP域映射[RFC5731]中描述的<transfer>響應添加任何元素。

5.2.5 < update >

該擴展爲EPP域映射[RFC5731]中描述的EPP<update>命令定義了額外的元素。沒有爲EPP <update>響應定義額外的元素。

EPP <update>命令提供了一個轉換操作,允許客戶端修改域對象的屬性。除了EPP命令元素中描述EPP域映射,該命令必須包含一個<extension>元素,和<extension>元素必須包含一個孩子<secDNS:update>元素標識擴展名稱空間如果客戶機想要更新這個擴展中定義的域對象的數據。<secDNS:update>元素包含一個<secDNS:add>元素,用於向委託添加安全信息;<secDNS:rem>元素,用於從委託中刪除安全信息;或者<secDNS:chg>元素,用於更改現有的安全信息。必須提供至少一個<secDNS:add>, <secDNS:rem>,或<secDNS:chg>元素。<secDNS:rem>和<secDNS:add> elements的順序很重要,在添加新元素之前,服務器必須先刪除現有元素。

<secDNS:update>元素還包含一個可選的“urgent”屬性,客戶機可以使用該屬性要求服務器操作員完成並實現高優先級的更新請求。該屬性接受第3.2節中描述的布爾值;默認值爲boolean false。“High priority”相對於使用帶外機制確定的標準服務器操作員策略。如果“urgent”屬性指定爲boolean true值,而服務器不支持它,則服務器必須返回一個EPP錯誤結果代碼2102。如果服務器支持“加急”屬性,並且不能高優先級完成緊急更新(以布爾值true的“urgent”屬性表示),則服務器必須返回2306的EPP錯誤結果代碼。

<secDNS:update>元素包含以下子元素:

  • 一個可選的<secDNS:rem>元素,它包含一個<secDNS:all>元素,或一個或多個<secDNS:dsData>元素或<secDNS:keyData>元素,這些元素用於從委託中刪除安全數據。

    <secDNS:all>元素用於刪除所有值爲boolean true的DS和鍵數據。布爾值false將不起任何作用。刪除所有DS信息可能會使父節點失去將委託委託給子節點區域的能力。

    <secDNS:dsData>元素是DS數據接口的一部分,用於唯一地定義要刪除的DS記錄,方法是使用所有四個元素——保證唯一的<secDNS:keyTag>、<secDNS:alg>、<secDNS:digestType>和<secDNS:digest>。

    <secDNS:keyData>元素是密鑰數據接口的一部分,用於惟一地定義要刪除的密鑰數據,方法是使用保證惟一的四個元素——<secDNS:flags>、<secDNS:protocol>、<secDNS:alg>和<secDNS:pubKey>。可以爲每個鍵創建多個DS記錄,因此刪除一個鍵可以刪除多個DS記錄。

  • 一個可選的<secDNS:add>元素,用於向現有集合添加安全信息。<secDNS:add>元素必須包含一個或多個<secDNS:dsData>或<secDNS:keyData>元素。dsData>元素的子元素在4.1節中進行了描述。在4.2節中描述了<secDNS:keyData>元素的子元素。

  • 一個可選的<secDNS:chg>元素,其中包含要更改的安全信息。一個<secDNS:chg>元素包含下面的子元素:

    • 一個可選的<secDNS:maxSigLife>元素,它指示子元素在簽名生成之後的秒數的首選項,此時子元素提供的DS信息上的父元素簽名將過期。maxSigLife在第3.3節中進行了描述。如果服務器不支持<secDNS:maxSigLife>元素,則必須返回2102錯誤。

使用DS數據接口添加和刪除DS數據的<update>命令示例:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:rem>
   C:          <secDNS:dsData>
   C:            <secDNS:keyTag>12345</secDNS:keyTag>
   C:            <secDNS:alg>3</secDNS:alg>
   C:            <secDNS:digestType>1</secDNS:digestType>
   C:            <secDNS:digest>38EC35D5B3A34B33C99B</secDNS:digest>
   C:          </secDNS:dsData>
   C:        </secDNS:rem>
   C:        <secDNS:add>
   C:          <secDNS:dsData>
   C:            <secDNS:keyTag>12346</secDNS:keyTag>
   C:            <secDNS:alg>3</secDNS:alg>
   C:            <secDNS:digestType>1</secDNS:digestType>
   C:            <secDNS:digest>38EC35D5B3A34B44C39B</secDNS:digest>
   C:          </secDNS:dsData>
   C:        </secDNS:add>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

更新最大簽名時間(maxSigLife)的<update>命令:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:chg>
   C:          <secDNS:maxSigLife>605900</secDNS:maxSigLife>
   C:        </secDNS:chg>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用密鑰數據接口添加和刪除密鑰數據,並設置maxSigLife的<update>命令:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:rem>
   C:          <secDNS:keyData>
   C:            <secDNS:flags>257</secDNS:flags>
   C:            <secDNS:protocol>3</secDNS:protocol>
   C:            <secDNS:alg>1</secDNS:alg>
   C:            <secDNS:pubKey>AQPJ////4QQQ</secDNS:pubKey>
   C:          </secDNS:keyData>
   C:        </secDNS:rem>
   C:        <secDNS:add>
   C:          <secDNS:keyData>
   C:            <secDNS:flags>257</secDNS:flags>
   C:            <secDNS:protocol>3</secDNS:protocol>
   C:            <secDNS:alg>1</secDNS:alg>
   C:            <secDNS:pubKey>AQPJ////4Q==</secDNS:pubKey>
   C:          </secDNS:keyData>
   C:        </secDNS:add>
   C:        <secDNS:chg>
   C:          <secDNS:maxSigLife>605900</secDNS:maxSigLife>
   C:        </secDNS:chg>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用DS數據接口刪除具有<secDNS:dsData>的DS數據的<update>命令示例:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:rem>
   C:          <secDNS:dsData>
   C:            <secDNS:keyTag>12346</secDNS:keyTag>
   C:            <secDNS:alg>3</secDNS:alg>
   C:            <secDNS:digestType>1</secDNS:digestType>
   C:            <secDNS:digest>38EC35D5B3A34B44C39B</secDNS:digest>
   C:          </secDNS:dsData>
   C:        </secDNS:rem>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用<secDNS:rem>和<secDNS:all>刪除所有DS和關鍵數據的 <update>命令示例:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update urgent="true"
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0">
   C:        <secDNS:rem>
   C:          <secDNS:all>true</secDNS:all>
   C:        </secDNS:rem>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

使用DS數據接口替換所有DS數據的<update>命令:

   C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
   C:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   C:  <command>
   C:    <update>
   C:      <domain:update
   C:       xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:        <domain:name>example.com</domain:name>
   C:      </domain:update>
   C:    </update>
   C:    <extension>
   C:      <secDNS:update urgent="true"
   C:       xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
   C:        <secDNS:rem>
   C:          <secDNS:all>true</secDNS:all>
   C:        </secDNS:rem>
   C:        <secDNS:add>
   C:          <secDNS:dsData>
   C:            <secDNS:keyTag>12346</secDNS:keyTag>
   C:            <secDNS:alg>3</secDNS:alg>
   C:            <secDNS:digestType>1</secDNS:digestType>
   C:            <secDNS:digest>38EC35D5B3A34B44C39B</secDNS:digest>
   C:          </secDNS:dsData>
   C:        </secDNS:add>
   C:      </secDNS:update>
   C:    </extension>
   C:    <clTRID>ABC-12345</clTRID>
   C:  </command>
   C:</epp>

當擴展的<update>命令被成功處理後,EPP響應將在EPP域映射[RFC5731]中描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章