DNSSECДокументи:
Інтерфейс роботи з розширенням secDNS дозволяє виконувати наступні операції:
Зміна в переліку розширень сервісів, що підтримуються реєстромУ блоці <svcMenu> XML-документа <greeting> ("вітання"),
яке видається клієнту після встановлення з'єднання з EPP-сервером або після отримання запиту <svcMenu> <version>1.0</version> <lang>en</lang> <lang>ru</lang> <lang>ua</lang> <objURI>urn:ietf:params:xml:ns:epp-1.0</objURI> <objURI>http://eunic.net.ua/epp/contact-1.1</objURI> <objURI>http://eunic.net.ua/epp/domain-1.1</objURI> <objURI>http://eunic.net.ua/epp/host-1.1</objURI> <svcExtension> <extURI>http://eunic.net.ua/epp/rgp-1.1</extURI> <extURI>http://eunic.net.ua/epp/uaepp-1.1</extURI> <extURI>http://eunic.net.ua/epp/balance-1.0</extURI> <extURI>http://eunic.net.ua/epp/secDNS-1.1</extURI> </svcExtension> </svcMenu> Для коректної роботи з розширенням secDNS у блоці <svcs> команди клієнта <login> необхідно додати опис розширення secDNS: <svcs> <objURI>urn:ietf:params:xml:ns:epp-1.0</objURI> <objURI>http://eunic.net.ua/epp/contact-1.1</objURI> <objURI>http://eunic.net.ua/epp/domain-1.1</objURI> <objURI>http://eunic.net.ua/epp/host-1.1</objURI> <svcExtension> <extURI>http://eunic.net.ua/epp/rgp-1.1</extURI> <extURI>http://eunic.net.ua/epp/uaepp-1.1</extURI> <extURI>http://eunic.net.ua/epp/balance-1.0</extURI> <extURI>http://eunic.net.ua/epp/secDNS-1.1</extURI> </svcExtension> </svcs> Зміни в командах EPPДля роботи з розширенням secDNS використовуються команди EPP:
Клієнт передає інформацію розширення secDNS у блоці <extension> після блоків <create> або <update> domain: C:<extension> C: <secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> C: (елементи secDNS) C: </secDNS:create> C:</extension> C:<extension> C: <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> C: (елементи secDNS) C: </secDNS:update> C:</extension> Сервер виводить інформацію розширення secDNS після виводу блоку <resData> у відповідь на команду <info> domain : S:<extension> S: <secDNS:infData xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> S: (поля secDNS) S: </secDNS:infData> S:<extension> Інтерфейс роботи з розширенням secDNS. Опис елементівІнтерфейс роботи з розширенням secDNS працює тільки із записами DS. Для опису створених та видалених записів використовується елемент <secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> </secDNS:dsData>
За необхідності додаткової перевірки коректності DS-запису елемент <secDNS:dsData> може бути доповнений блоком <secDNS:keyData>, дані якого повинні відповідати запису DNSKEY 257 в доменній зоні. Формат запису описаний в RFC 4034 <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>13</secDNS:alg> <secDNS:pubKey>x0I6K8UuEs9nIG1/QMgSD7DKtLio+Kzq+5ajegu6QkH8JRSLMvb04A==</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> Опис елементів блоку <secDNS:keyData> :
Отримання інформації про DS-записи в доменіДля отримання інформації про домен та зареєстровані в ньому DS-записи використовується команда EPP <info> domain Запит команди <info> domain не змінюється. Якщо в домені є зареєстрований DS-запис, відповідь сервера буде містити розширення secDNS з блоками даних dsData для кожного DS-запису. Приклад відповіді сервера на команду <info> domain з розширенням secDNS<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <response> <result code="1000"> <msg lang="en">Command completed successfully</msg> </result> <resData> <domain:infData xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> <domain:roid>D0000725560-CO</domain:roid> <domain:status s="ok"/> <domain:registrant>ex123</domain:registrant> <domain:contact type="admin">ex11</domain:contact> <domain:contact type="tech">ex11</domain:contact> <domain:ns> <domain:hostObj>ns1.example.epp.ua</domain:hostObj> <domain:hostObj>ns2.example.epp.ua</domain:hostObj> </domain:ns> <domain:host>ns1.example1.epp.ua</domain:host> <domain:clID>co.eunic</domain:clID> <domain:crID>co.eunic</domain:crID> <domain:crDate>2010-06-10T15:03:12+03:00</domain:crDate> <domain:upID>co.eunic</domain:upID> <domain:upDate>2010-06-11T13:20:26+03:00</domain:upDate> <domain:exDate>2012-06-10T15:03:12+03:00</domain:exDate> <domain:authInfo> <domain:pw>r87Lhja76Y8mFo</domain:pw> </domain:authInfo> </domain:infData> </resData> <extension> <secDNS:infData xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> </secDNS:dsData> </secDNS:infData> </extension> <trID> <clTRID>USER-1276595352</clTRID> <svTRID>CO-20100615124912-988397-00002</svTRID> </trID> </response> </epp> Створення домену з DS-записамиДля створення домену з DS-записами використовується команда EPP <create> domain з розширенням secDNS. Запит команди <create> domain, крім обов’язкових даних, що описані в документациї щодо команди, повинен містити розширення secDNS з блоками даних dsData для кожного нового DS-запису. Відповідь сервера на команду не змінюється. При прийомі команди <create> domain з DS-записами проводяться наступні додаткові перевірки:
Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом<?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <create> <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> <domain:period unit="y">2</domain:period> <domain:ns> <domain:hostObj>ns1.domain.epp.ua</domain:hostObj> <domain:hostObj>ns2.domain.epp.ua</domain:hostObj> </domain:ns> <domain:registrant>ex123</domain:registrant> <domain:contact type="admin">ex11</domain:contact> <domain:contact type="tech">ex11</domain:contact> </domain:create> </create> <extension> <secDNS:create xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> </secDNS:dsData> </secDNS:create> </extension> <clTRID>USER-1276171392</clTRID> </command> </epp> Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом та публічним ключем<?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <create> <domain:create xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> <domain:period unit="y">2</domain:period> <domain:ns> <domain:hostObj>ns1.domain.epp.ua</domain:hostObj> <domain:hostObj>ns2.domain.epp.ua</domain:hostObj> </domain:ns> <domain:registrant>ex123</domain:registrant> <domain:contact type="admin">ex11</domain:contact> <domain:contact type="tech">ex11</domain:contact> </domain:create> </create> <extension> <secDNS:create xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>13</secDNS:alg> <secDNS:pubKey>x0I6K8UuEs9nIG1/tbn64zS6LmjQ+Kzq+5ajegu6QkH8JRSLMvb04A==</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:create> </extension> <clTRID>USER-1276171392</clTRID> </command> </epp> Додавання DS-записів до раніше делегованого доменуДля додавання DS-запису до раніше делегованого домену використовується команда EPP <update> domain Команда <update> domain повинна містити розширення secDNS з блоком даних <secDNS:add>, в якому в блоках <secDNS:dsData> розміщені дані про кожен новий DS-запис. Відповідь сервера на команду <update> не змінюється При прийомі команди <update> domain з додаванням DS-записів виконуються наступні додаткові перевірки:
Приклад запиту <update> domain з розширенням secDNS для додавання одного DS-запису в раніше делегований домен<?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <update> <domain:update xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> </domain:update> </update> <extension> <secDNS:update xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:add> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> </secDNS:dsData> </secDNS:add> </secDNS:update> </extension> <clTRID>USER-1276251625</clTRID> </command> </epp> Видалення DS-записів у доменіДля видалення DS-запису в раніше делегованому домені використовується команда EPP <update> domain Команда <update> domain повинна містити розширення secDNS з блоком даних <secDNS:rem>, в якому в блоках <secDNS:dsData> розміщені дані про кожен з DS-записів, що видаляються. Відповідь сервера на команду не змінюється При прийомі команди <update> domain з додаванням DS-записів виконуються наступні додаткові перевірки:
Також можливо видалити одночасно всі DS-записи домену без перевірок, зазначивши блок: <secDNS:rem> <secDNS:all>true</secDNS:all> </secDNS:rem> Приклад запиту <update> domain з розширенням secDNS для видалення одного DS-запису домена<?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <update> <domain:update xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> </domain:update> </update> <extension> <secDNS:update xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:rem> <secDNS:dsData> <secDNS:keyTag>29040</secDNS:keyTag> <secDNS:alg>13</secDNS:alg> <secDNS:digestType>2</secDNS:digestType> <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest> </secDNS:dsData> </secDNS:rem> </secDNS:update> </extension> <clTRID>USER-1276251625</clTRID> </command> </epp> Приклад запиту <update> domain з розширенням secDNS для видалення всіх DS-записів домена<?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <update> <domain:update xmlns:domain="http://eunic.net.ua/epp/domain-1.1"> <domain:name>example1.epp.ua</domain:name> </domain:update> </update> <extension> <secDNS:update xmlns:secDNS="http://eunic.net.ua/epp/secDNS-1.1"> <secDNS:rem> <secDNS:all>true</secDNS:all> </secDNS:rem> </secDNS:update> </extension> <clTRID>USER-1276251625</clTRID> </command> </epp> Перевірки відповідності даних в DS-записах даним з публічного ключа в доменній зоніПісля додавання DS-запису в реестр виконується перевірка відповідності даних DS-запису даним їх публічного ключа, що розміщений в доменній зоні. Для цього на всіх NS-серверах домену вибираються дані про RR DNSKEY 257 (KSK-ключ), по ньому генерується дайджест та перевіряється відповідність згенерованих даних та даних, що були передані реєстратором. Якщо дані не співпадають, на технічний контакт реєстратора направляється попередження про невідповідність даних між ключем DNSKEY та DS-записом. Якщо перевірку неможливо виконати за технічних причин (наприклад, сервери не відповідають), про це також буде направлено попередженння на технічний контакт реєстратора. |
|