• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dnsse cv9
 

Dnsse cv9

on

  • 626 views

DNSSECv9

DNSSECv9

Statistics

Views

Total Views
626
Views on SlideShare
626
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Dnsse cv9 Dnsse cv9 Presentation Transcript

    • DNSSEC 實做班TWNIC 技術組2011 03 月份
    • DNS簡介 Domain Name System:一個分散、可靠、快速、 Client/Server架構、可大量佈建、分層負責的 資料庫查詢系統 全球上億部的DNS運作中,成為Internet最重要 的基礎 新的社交網站導致大量的DNS查詢  一個單一的MySpace頁面就可能產生200到300次 DNS查詢  一個帶有廣告的新聞網站可能產生10到15次DNS查 詢
    • 正常的DNS查詢 www.twnic.tw IP? Root DNS Server www.twnic.tw IP:End-user 210.17.9.228 Cache DNS Server .TW DNS Server TWNIC.TW DNS Server
    • DNS弱點 僅用ID作為交易認證 (0-65535)  DNS cache poisoning  新版的 DNS 只是將 ID 亂數化 假的DNS server  Men in the middle attack Domain hijacking  DNS指向被竄改
    • DNS cache poisoning www.twnic.tw IP? www.twnic.tw IP:End-user 1.1.1.1 Cache DNS Server TWNIC.TW DNS Server
    • 駭客入侵修改DNS紀錄 www.twnic.tw IP? www.twnic.tw IP:End-user 1.1.1.1 Authority 系統入侵、竄改DNS資料 Server
    • DNS 運作 .(root) NS/A NS/A ????? ????? tw. tw. NS/A ????? NS/A NS/A ????? ????? A/MX/CNAME....edu.tw. edu.tw. NS/A ??????????????? DNS ????? Server (recursive yes) (Cache Server) A/MX/CNAME.... ??????????????? Client
    • 入侵事件 主要受害單 時間 可能原因 攻擊方式 影響 位 1.百度 DNS Server遭 社交工程取得 1.連線至百度時,會 2.Register.com 受入侵後,非 帳號密碼進行 被轉向到一個位於 法竄改DNS 非法修改 荷蘭的IP地址,2010/01/12 Record 百度旗下所有子域 名均無法正常連線 2.百度網站被嫁接至 雅虎網站 Twitter Twitter員工的 盜用帳戶進行 Twitter網站被嫁接至 電腦被駭客入 非法修改 惡意網站2009/12/18 侵,進而非法 竄改DNS Record
    • 為何要DNSSEC 原本DNS的協定就沒有注重在安全上的問題, 僅有簡單的安全機制,例如DNS spoofing是很 容易的事 DNS協定因先天存在缺失,導致DNS資料正確 性受到嚴重威脅 2001年起IETF開始制定DNSSEC標準來解決這 個問題
    • DNS 與 DNSSEC DNSSEC( DNS Security Extensions )  DNS 的資料安全認證機制。  並非不同的軟體,更應該說是一起運作的。 DNSSEC 是透過一種延伸的方法來達成目的, 並非修改現有 DNS 的運作模式。 任何DNS的 查詢/回覆/錯誤/流程 沒有任何改 變,只是在每一種模式下額外提供資料驗證機 制。
    • 非對稱金鑰 透過數學產生兩把有相關的密鑰,稱為公開/ 私有密鑰 用私有密鑰加密,只有公有密鑰可以打開,亦 反之 用電腦A的公開密鑰解密文件,若順利解密, 表示資料來源是正確的由電腦A(的私有密鑰) 發出
    • 非對稱金鑰 主機 A Public key xjciaRce27a client (加密訊息) Msg Private key Msg
    • Hash 雜湊 雜湊具有獨一無二的特性,適合用在資料編碼, 編碼後的資料具有獨一無二的特信 即使變動一個位元,也會有完全不同的雜湊值 產生 若有兩筆資料經過雜湊後有相同的雜湊值,稱 為碰撞,雜湊演算法應盡量避免碰撞的情況發 生 雜湊可將多筆資料整合為一筆(多對一)的特性
    • DNSSEC 簡介 DNS + 數位簽章 數位簽章簡介 key1 (Private key) Digital signature key2 (Public key)
    • DNSSEC .(root) NS/A NS/A 數位簽章 數位簽章 tw. tw. NS/A 數位簽章 NS/A NS/A數位簽章 數位簽章 A/MX/CNAME....edu.tw. edu.tw. NS/A 數位簽章 DNS 數位簽章 Server (recursive yes) (Cache Server) A/MX/CNAME.... 數位簽章 Client
    • DNSSEC 運作方式 Root Name Registrars Servers Cache Registry .TW Database Name Name servers Servers Users computer Registrant Stub Name Servers Browser or Resolver other (Part of application O/S)
    • DNSSEC Chain .(root) DNSSEC DNS(不安全) 未知(不安全) tw. tw. tw. net.tw net.tw com.tw edu.tw edu.tw ………………………………….......................
    • DNSSEC 新增RRs Public Key  DNSKEY Public key,用來驗證RRSIG Private Key  非公開鑰匙,用來簽署網域資料 Digital signature  RRSIG 使用Private key對現有RRs所作的簽章  DS Delegation Signer; 上層與下層的簽章 負面回應  NSEC/NSEC3 在zone中的下一個域名
    • DNSSEC 運作原理
    • 回應範例twnic3.net.tw. 10 IN NS ns1.twnic3.net.tw. 原始資料twnic3.net.tw. 10 IN RRSIG NS 7 3 10 20101024073555 20100924073555 12077twnic3.net.tw. Bm+kWjrsjQSqXo01vujd/cqJzulAesLAzaI1i9ddDRVqZEwfZoo62Rd5mb3RwggsWwAeAEtctfS0jGb38NKbr0e3V3P3t0ExKyyeXZ7Ukj+fxJ5qzmmoQ48bS9O+rHCHtmNhqJ3a/9Rj36if+ilbuph/egYFzVuZtG7PGNU3 eRE= 數位簽章twnic3.net.tw. 10 IN DNSKEY 257 3 7AwEAAcc/WzchRUkO4u0Vg1skHsRem4wm3wAlDmD4YCjbtRT4c5AteiuhbzwigMsH4gBG/FjocS+x4L3/0CkK/jwpPZ4mD6ZIc4cttza6seMK0+fOXBJNWNlxXKeMxFxLPtXQocGQD0JVaQR1KtgnNQTV3FjsVUhwjIjymQvbyLiAYpvArl17J1PjoQliAiH2fL1XtXfx2ooSGc0xGEcDSjJVt7rP50rrOd71ahZYd0Tph8BV8grQwVlk/xIOh/3GtU2b8HLTsG4VFOecX/6UKh17n9FwAhAMclKp7I7GWZ6CNFEi0lLOkw7iALyR93u86kyF6DP0UfJ4q2Mp SMFEllS8C4U= 公開鎖匙
    • RFC 4033 defined DNSSEC requires support EDNS0  EDNS0 allow UDP message as long as 4,096 bytes  EDNS0 由 client 決定大小  New EDNS0 flag(DO) for DNSSEC OK New header bit  Authenticated Data(AD) bit  Checking Disable(CD) bit
    • EDNS0 DNSSEC 封包大於原 UDP 512 bytes 的限制, 故採用 EDNS0 的方法擴展封包到 4096 bytes EDNS0 的支援由 Client 發起,在發送查詢時 於Additional區段放入”OPT資訊” Server收到”OPT資訊”,便知道Client支援 EDNS0,於回覆封包也放入相同OPT資訊 DNSSEC 查詢 Additional 區段總數 + 1
    • AD & CD bit AD = 1 Cache Server Client 驗證資料 Resolver CD = 0 AD = 0 Cache Server Client 不驗證資料 Resolver CD = 1
    • AD & CD bit AD = 0 Data Response Cache Server Client 驗證資料錯誤 Resolver CD = 1 No Response RCODE 2 Cache Server Client 驗證資料錯誤 Resolver CD = 0
    • English Domain Name Registration Number .com.tw .org.tw .net.tw .idv.tw .game.tw .club.tw .ebiz.tw .gov.tw .edu.tw ASCII.tw 214,113 225,533 0 207,931 211,498 209,465 218,716 ,0 0 205,217 206,823 207,137 194,716 199,348 202,538250 206,275 208,124 210,307 211,567 212,379 215,193 221,333 197,195 203,687 207,571 192,888 200,858 0 ,0 0200 0 ,0 0150 0 ,0 0100 0 ,00 50 0 1 2 3 4 5 6 7 8 9 0 1 2 1 2 3 4 5 6 7 8 9 0 1 2 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.1 6.1 6.1 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.1 7.1 7.1 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200By: 2007.12.31
    • Chinese Domain Name Registration Number .商業 .tw .組織 .tw .網路 .tw IDN.tw 127,875 130,651 140,000 120,304 121,298 123,994 123,999 123,115 124,885 124,920 124,728 125,319 125,895 126,747 129,530 123,774 123,222 123,659 125,421 125,523 123,845 125,967 120,125 120,846121,876 120,000 100,000 80,000 60,000 40,000 20,000 0 1 2 3 4 5 6 7 8 9 0 1 2 1 2 3 4 5 6 7 8 9 0 1 2 .0 .0 .0 .0 .0 .0 .0 .0 .0 .1 .1 .1 .0 .0 .0 .0 .0 .0 .0 .0 .0 .1 .1 .1 06 006 006 006 006 006 006 006 006 006 006 006 007 007 007 007 007 007 007 007 007 007 007 007 20 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2By: 2007.12.31
    •  DNSSEC Resource Record 介紹  RRSIG  DS  DNSKEY  NSEC  NSEC3  NSEC3PARAM
    • RRSIG 同樣的FQDN/TYPE只要簽署一個RRSIG  twnic.net.tw. 10 IN NS ns2.twnic.net.tw.  twnic.net.tw. 10 IN NS ns1.twnic.net.tw.  twnic.net.tw. 10 IN RRSIG NS 7 3 10 20101028013419 20100928013419 46895 twnic.net.tw. W9gP/qjP2WpbLIc2ToMZZalWTdV0Q3VStuPZ9p2aTpRZnkEdRrTF23ky qUcqWg5lV4FOdle9MxucfJpugym58TUFwKFhckzq72mFObtodWHtx1sD VvDbgXwz6dWwTA0qUsJ9NQc2Gx70ee3LN9r69psVOltt5OxHILKYfgYV 2as= RRSIG 本身不需簽章,避免無限迴圈 Resolver/Cache取得RRSIG後,會再取得DNSKEY來對 RRSIG解密取得hash,再將RR做hash,兩者hash相同表示 資料正確。 Subdomain 之 NS (Name Server) 不需進行簽章 External Host 不需進行簽章
    • RRSIG 同 FQDN/Type 只需一筆? www.twnic.net.tw IN A 2.2.2.2 www.twnic.net.tw IN A 3.3.3.3 www.twnic.net.tw IN A 7.7.7.7 www.twnic.net.tw IN RRSIG A ………. 同樣的 FQDN/Type 在每次回應的時候可視為 一筆資料,並不會因為不同的 Client 只回應兩 筆或一筆,所以不需要簽署三筆 RRSIG
    • DS  Resolver取得DNSKEY時會向上曾取得DS,來驗 證DNSKEY是否正確。  如果重新產生DNSKEY,則必須再次向上層更新 DS。  DS 如同第二把放在其他(.tw) 地方的 Key 。 tw. DS (Name server)DNSKEY更新 net.tw. Resolver (Name server) DNSKEY RRSIG
    • DS更新問題 DNSKEY需遞交給上層產生DS資料  DS更新採用人工或其他方式認證,因避免系統的自 動化更新 若DNSKEY更換時間為一個月一次,則更新次 數會過於頻繁;若更換時間太長,容易被計算 出KEY值 需透過 兩把 KEY來解決此問題
    • DNSKEY 單一 KEY 簽署網域資料  用 KSK 簽署網域資料  用 KSK 向上更新DS 兩把 KEY 簽署網域資料  ZSK: Zone sign key  下層zone使用ZSK對RRs簽章  KSK: Key sign key  上一層zone使用DS指向下層zone的KSK  下層zone使用KSK對ZSK簽章
    • 單一 KEY簽署 當只有一把鑰匙簽署zone時,若更換鑰匙,則 需立即向上更新DS資料 DNSKEY tw. DS net.tw. KSK DNSKEY DNS Public key Server Private key RRSIG zone
    • 兩把KEY簽署 兩把以上的KEY,則可用ZSK與KSK。 tw. DNSKEY DS net.tw. KSK KSK DNSKEY Public key ZSK Private key DNSPublic key Server ZSKPrivate key DNSKEY zone RRSIG
    • Key rollover 所有的Key都必需定期更換,如果被破解時需 立即更換 但如果Client端cache的DNSKEY是舊版,zone file中的RRSIG是新的KEY簽章驗證失效 在無法得知Client端cache的資料是新or舊版時, 不可冒然移除任何Key或是修改RRSIG ,因遵 照 rollover 階段更換 新/舊 Key
    • Key rollover Name Cache Client Name Cache Client Server Server Resolver Server Server ResolverKey1 Key1Key2 Key1+ Key2 Key1 Key1 Key2 Key2
    • NSEC DNSSEC中處理負面快取的方式 傳統DNS中負面回應使用NXDOMAIN錯誤訊 息表示網域名稱不存在,但這樣無法簽署 RRSIG簽章來驗證資料 NSEC回應不存在網域的上一個與下一個來表 示該網域不存在 DNSSEC在簽署網域的同時會將所有網域排序 的動作
    • NSEC 排序準則 從右到左排序 不存在的優先  net.tw  0.net.tw  twnic.net.tw  w3.twnic.net.tw
    • NSEC回應 查詢www.twnic.net.tw(以上述列表假設不存在)  w3.twnic.net.tw NSEC net.tw A RRSIG  w3.twnic.net.tw 表示上一筆  net.tw 表示下一筆, 最後一筆則回頭第一筆  A RRSIG 表示 w3.twnic.net.tw 有 A RRSIG 可查詢
    • NSEC 缺點 因NSEC會將網域中所有資料排序,在負面快 取時送出存在的網域資料(前/後各一筆),透過 不斷查訊不存在網域,則可將整個 Zone file dump 出來。  Zone enumeration 透過NSEC3來解決此問題
    • NSEC3 NSEC 3 將原本 NSEC 的排序方式改用 hash 的 方式加密後再排序  Hash(a.tw)= S4FIQ35I96BC3JM6EDLGIJANQI4UJT1K.tw  Hash(b.tw)= GILI5SMBMU2IH4L4150SAUTCPLG3SIVF.tw  Hash(c.tw)= HT811HULUBD01F1F1T5DAVM91IS7SJI9.tw  NSEC  A.tw. NSEC b.tw.  B.tw. NSEC c.tw  NSEC3  GILI5SMBMU2IH4L4150SAUTCPLG3SIVF.tw. NSEC3 HT811HULUBD01F1F1T5DAVM91IS7SJI9.tw.  HT811HULUBD01F1F1T5DAVM91IS7SJI9.tw. NSEC3 S4FIQ35I96BC3JM6EDLGIJANQI4UJT1K.tw.
    • NSEC3 名詞解釋 Empty non-terminal  一個 domain 本身沒有RR但有其他 sub-domain Secure delegation  有DS的delegation Insecure delegation  無DS的delegation Original owner name  原網域名稱
    • NSEC3 名詞解釋(Cont.) Hashed owner name  做過 hash 後的名稱 Hash order  hashed owner name 排序後的結果
    • NSEC3 Opt-Out Opt-Out = 0  所有authoritative RR 皆會列入 NSEC3 chain Opt-Out = 1  不會把 Insecure delegation 列入NSEC3 chain  減尐 sort 增加簽署效率
    • NSEC3 Match  twnic3.net.tw = twnic3.net.tw  g.twnic3.net.tw “match” twnic3.net.tw Cover  H(A) = RRMHB956GDFPJQ46FCHA1OVNCSIQBTPE  H(C) = T1DHLMPAFQ7TIF1DV1IO21UADPC9KE8G  H(g.twnic3.net.tw) = T0E3G1MOR9P2LGBLV253DHN4HD1KEK23  H(A) < H(g.twnic3.net.tw) < H(C)
    • NSEC3 回應方式 假設查詢 twnic3.net.tw 中不存在網域 g.twnic3.net.tw  第一筆表示該網域存在 twnic3.net.tw (match)  5ULNROCAATPPCK4OUMVPQ6NOJDP9PP13.twnic3.net.tw. 300 IN NSEC3 1 0 10 17597502 6RK5TEL9AP1AFQ4UUBTAVR7GSQRFQ4UD NS SOA RRSIG DNSKEY NSEC3PARAM  第二筆表示查詢的網域g.twnic3.net.tw不存在 (cover)  RRMHB956GDFPJQ46FCHA1OVNCSIQBTPE.twnic3.net.tw. 300 IN NSEC3 1 0 10 17597502 T1DHLMPAFQ7TIF1DV1IO21UADPC9KE8G A RRSIG  第三筆表示 *.twnic3.net.tw 不存在 (cover)  0O225CEN5G82HKH6K7ETIF1C6TMA9QDG.twnic3.net.tw. 300 IN NSEC3 1 0 10 17597502 36032I7MDDBH3A3KK0T2JI7RVQQJ9CKD NS
    • Cache/Resolver 怎麼區分 NSEC/NSEC3 NSEC 回應資料上下筆網域是存在的 NSEC3 回應的網域資料上下筆是不存在的 aaa.twnic.net.tw NSEC bbb.twnic.net.tw DNSKEY alg: 5 (RSASHA1) Client 權威主機 aaa.twnic.net.tw Cache Server 1.1.1.1 BIND bbb.twnic.net.tw 9.4.x abc.twnic.net.tw 不存在 7.7.7.7 Query:bbb.twnic.net.tw Answer : 7.7.7.7
    • NSEC3 負面回應 jcsiAurcExc.twnic.net.tw NSEC3 s7HCuwDJCI.twnic.net.tw Client 權威主機 aaa.twnic.net.tw Cache Server 1.1.1.1 BIND bbb.twnic.net.tw 9.4.x abc.twnic.net.tw 7.7.7.7 Query:s7HCuwDJCI.twnic.net.tw Answer : NSEC3
    • jcsiAurcExc.twnic.net.tw NSEC3 s7HCuwDJCI.twnic.net.tw DNSKEY alg : 7 (NSEC3RSASHA1) Client 權威主機aaa.twnic.net.tw Cache Server 1.1.1.1 BINDbbb.twnic.net.tw 9.4.x abc.twnic.net.tw 7.7.7.7 不存在 不會進行資料驗證
    • NSEC 與 NSEC3 相容性 指對NSEC之相容性,而非對non DNSSEC aware之相容性 避免NSEC aware但NSEC3 unaware的resolver去 驗證NSEC3 zone,故新增兩個algorithm  Algorithm 6=原本的Algorithm 3 (DSA/SHA1)  Algorithm 7=原本的Algorithm 5 (RSA/SHA1) NSEC/NSEC3 無法混合,只能擇一實做
    • NSEC3PARAM 與NSEC3 RR前半段欄位一樣 (但Flags=0) 同一個zone中的NSEC3PARAM及NSEC3 RR之 參數值需一致(除了Flags) 權威伺服器用來計算NSEC3回應內容用,並非 驗證用
    •  DNSSEC Resource Record 封包格式
    • DNSKEY封包格式 DNSKEY flags Bits 說明 參考資料 0-6 Unassigned RFC 3755 RFC 4034 7 ZONE KEY (ZSK) RFC 3755 RFC 4034 8 REVOKE,Trust Anchors Revoke,值為385 RFC 5011 9-14 Unassigned RFC 3755 RFC 4034 15 Secure Entry Point (SEP),即 KSK RFC 3757 RFC 4034
    • DNSKEY封包格式 DNSKEY 值 說明 protocol 0 NONE 1 TLS 2 EMAIL 3 DNSSEC 4 IPSEC 255 ALL
    • DNSKEY封包格式 DNSKEY 值 說明 Algorithm 3 DSA/SHA1  列舉常用 5 RSA/SHA-1 6 DSA-NSEC3-SHA1 7 RSASHA1-NSEC3-SHA1 8 RSA/SHA-256 10 RSA/SHA-512
    • DNSKEY 格式 KSKtwnic.net.tw. 86400 DNSKEY 257 3 5 ( AwEAAa/KVVdwmvrpdIP650gGoFqbx/W76h+APAJyxfpx YIuT3AJqXy+6reUNzaTC89O6UBmFMPKFoLP9iavAcfgc QnmI50XoCWRCnCF30CIIaIOMJ5ze4s8QIT0MPHDHM5l5 vBo87Bu6CUNn3FrmiC0LJd9fqvwvI3P4Z4GQ+xb06w3a h3NOxUaqhizoDcqsFERY8QGYmiFb33cOIseYJNkufomf PLkVeTC2R6CU6zNdFXbeNOqv7pTW1/jftlsH5L6mJEdk 71VHg4+Y2q/VuR7+s/Ju/VpVELS5ggcyjK2O0Ei5kPKg m9zpOjSw4wJWhbp7PVTxX3PnvyxuRlOJs2ksdcE= ) ; key id = 12319 ZSKtwnic.net.tw. 86400 DNSKEY 256 3 5 (AwEAAb3XBYRGuJJIWSoMsCvT2dkbuHbW6Bzd 7q1/DWPtkw6bcPXciM5weRq8mVnEaqJ5ob4J FuWe7r8HM7XFpNgVHLTu5e5HQwY2MafskMNf xc3jPhc1KbBTZE1y8r+j+8BQoke+yu0fXAb9 mUpEygkEqnFaT8WiAX95+KsFo0iLp0mkFmG7 l+lvXmxns5sn0CApE474u2q0Y0DUxzzX5ntF 8fmKkxBfEPUi4GZX1ncFZfW+twsSTNv3qaYj u7g76KV67FnGSOe/bQ0bJ0tyRvzkdQ46Eds/ s9Fb7aR3/Ra2ZFD4R4favnQDXUB3w/QJ2rJR uGOEDsI/pyloqy9LQyD/+28= ) ; key id = 54855
    • RRSIG封包格式 RRSIG
    • RRSIG封包格式 Type Covered  原本的型態:MX, A, NS, TXT等 Algorithm 加密演算法 Labels  twnic.net.tw = 3  mail.twnic.net.tw = 4  *.twnic.net.tw = 3
    • RRSIG封包格式 Original TTL  原本的 TTL 值 Signature Expiration  Expiration RRSIG有效時間  Inception RRSIG簽署時間 Key Tag  標示加密的 DNSKEY
    • RRSIG 封包格式 Signer‟s Name  網域名稱  ex: www.twnic.net.tw signer‟s name: twnic.net.tw Signature  簽章資料
    • RRSIG 格式 mail.twnic.net.tw. 0 IN RRSIG A 5 4 0 20100806080433 20100707080433 40446 twnic.net.tw. pMz+H02NtEL2QILFE14++xgZyabtqvhqNmJwAHuSrZbaIzZyXYEI1bks xtfTiVrs9iVH3jeOiBnr+VTwoEBT7vf8Cj5DWFCnHlOzWBFha22cMxCP AbS5JW9gMsIt7BBpsuJuC4VrwVwCSDiMkWn3MRaU2gOZ7B2sIkJ08ZID BteGZGCqc1wFyPcazSr8cPIia0TkmRUVQYqK5Y0Wdd0TtOOkpf+8d/xO I6/TLCz9j8AMfJD0IrF5rVE4JBUmVeI7WAYD6pa3lGAS+2pU0l/NHYXT o8U73wVDZqDG0E5wrXAnfq9WbhN30Jj2tLNjDFyJU15/Y7R4+KdM//29 eANbIQ==
    • DS 封包格式 Key Tag  標示與DNSKEY同樣的Key Tag Algorithm  DNSKEY 使用的演算法 Digest Type  Digest 的加密演算法: SHA-1(1) , SHA-256(2)
    • DS格式
    • NSEC 封包格式 Next Domain Name  下一筆網域名稱 Type Bit Maps  可查詢的種類(A MX RRSIG DNSKEY…等)
    • NSEC 格式 w3.twnic.net.tw NSEC net.tw A RRSIG
    • NSEC3 封包格式 Hash Algorithm  0 reserved  1 SHA-1
    • NSEC3 封包格式 Flags  可支援8種Flags,目前僅支援Opt-Out Flag
    • NSEC3 封包格式 Iterations  Hash function執行的次數
    • NSEC3 封包格式 Salt Length: 種子長度 (0-255) Salt: 種子,當長度為0時填入”-”
    • NSEC3 封包格式 Hash Length: 1-255 Next Hashed Owner Name: Hash Order下一個 Type Bit Maps: 與NSEC相同
    • NSEC3 格式 h9p7u7tr2u91d0v0ljs9l1gidnp90u3h.org. 900 IN NSEC3 1 1 1 D399EAAB H9RSFB7FPF2L8HG35CMPC765TDK23RP6 NS SOA RRSIG DNSKEY NSEC3PARAM
    • NSEC3PARAM 格式 與NSEC3 RR前半段欄位一樣 (但Flags=0) org. 900 IN NSEC3PARAM 1 0 1 D399EAAB
    • DNSSEC實做
    • dig 指令介紹 dig [option] domain [type]  option  @IP - 指定DNS伺服器  dig @168.95.1.1 www.twnic.net.tw  +dnssec - 使用 DNSSEC 模式  dig +dnssec se. ns  +tcp - 使用 tcp 模式查詢  dig +tcp www.twnic.net.tw  +trace - 追蹤模式  dig +trace www.twnic.net.tw
    • DNSSEC指令 dnssec-keygen  產生DNSKEY與Private key dnssec-signzone  簽署網域 dnssec-dsfromkey  由DNSKEY產生DS dnssec-keyfromlabel  由其他加密設備產生DNSKEY dnssec-revoke  註銷DNSKEY dnssec-settime  調整 KEY 的有效使間
    • 安裝BIND yum install named yum install caching-nameserver BIND 9.7.2-P2 ( 2010-12-1 最新版 )  http://ftp.isc.org/isc/bind9/9.7.2-P2/bind-9.7.2-P2.tar.gz tar –zxf bind-9.7.2-P2.tar.gz cd bind-9.7.2-P2 ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-threads --enable-ipv6 make make install
    • 基礎環境建置 取得 root.cache  dig @a.root-servers.net . ns > /var/named/named.cache
    • 修改 /etc/named.caching-nameserver.confoptions { listen-on port 53 { any; }; directory "/var/named"; ……. …… recursion yes; dnssec-enable yes;};include "/etc/named.rfc1912.zones";;路徑部份請依實際路徑調整
    • 修改 /etc/named.rfc1912.confzone “example.tw” { type master; file “example.tw.db”;};
    • 建立 /var/named/example.tw.db$TTL 0$ORIGIN example.tw.@ IN SOA ns1 root ( 1 ; serial (d. adams) 1H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimumexample.tw. IN NS ns1.example.tw.ns1 IN A 1.1.1.1www IN A 2.2.2.2mail IN A 3.3.3.3@ IN MX 10 mail
    • DNSSEC 簽署(sign zone)步驟 產生DNSKEY  ZSK  KSK 將DNSKEY加入Zone file 簽署網域 修改/etc/named.rfc1912.zones 啟動 named 檢查log
    • Key status in zone file Publish : 公開 Activate : 啟用 Revoke : 廢止 Inactivate : 不啟用 Delete : 終止
    • Key rollover 時間表 ZSK3 ActivateKSK1 Activate ZSK2 Activate ZSK2 InactivateZSK1 Activate ZSK1 Inactivate KSK1 KSK1 KSK1 ZSK1 ZSK2 ZSK3 ZSK2 Publish ZSK1 Delete ZSK2 Delete ZKS3 Publish KSK3 Activate KSK2 Publish KSK3 Publish ZSK4 Activate ZKS4 Publish KSK2 Inactivate ZSK3 Inactivate KSK1 KSK2 KSK3 ZSK3 ZSK3 ZSK4 KSK2 Delete KSK2 Activate KSK1 Delete ZSK3 Delete KSK1 Inactivate
    • 產生DNSKEY 建立放置目錄  mkdir /root/dnskey; cd /root/dnskey 產生ZSK  dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 - n ZONE example.tw 產生KSK  dnssec-keygen -r /dev/urandom -f KSK -a RSASHA1 - b 2048 -n ZONE example.tw 檔案名稱格式  K(domain)+(演算法)+(Key id).[private, key]
    • 將DNSKEY加入Zone file Publish Key 加入DNSKEY之前可先用 cp 保留檔案 加入DNSKEY  cat K*.key >> /var/named/example.tw.db  請注意使用附加( >> )  使用 cat 表示把 key 放入 zone 內,表示要 Publish Key
    • 簽署網域 dnssec-signzone 指令格式  dnssec-signzone -o (網域名稱) -k (KSK) (Zone file 位置) (ZSK)  dnssec-signzone -o example.tw –k Kexample.tw.+005+53428.key example.tw.db Kexample.tw.+003+48252.key  被指定的 Key 表示要 Activate  若 Key 已經被放入(cat) Zone 內,卻沒被 dnssec-signzone 指定,表示為 Publish 或是 Inactivate Key 簽署後會產生新檔案 example.tw.db.signed 指定 RRSIG 有效時間  dnssec-signzone -s (RRSIG 起始時間) -e (RRSIG 有效時間)  YYYYMMDDHHMMSS  +offset ( from 起始時間 )  “now”+offset ( from now )  預設時間為 now + 30 天
    • 後續動作 修改 /etc/named.rfc1912.zoneszone “example.tw” { type master; file “example.tw.db.signed”;}; 重新啟動 named 查看 /var/log/message 會有以下紀錄  Jul 19 15:31:37 asus-srv4 named[15575]: zone example.tw./IN: loaded serial 1 (DNSSEC signed)
    • 驗證 alias dig=„dig +dnssec @localhost‟ dig example.tw ns dig mail.example.tw mx dig www.example.tw a NSEC  dig 不存在網域  dig 存在的網域 不存在的type
    • DNSKEY向上更新DS 透過註冊商傳遞 DNSKEY 或 DS(dsset-*) 給上 層簽署 DS 資料。
    • key rollover ZSK實做 假設 ZSK 已快過期 產生第二把 ZSK  加入新 ZSK 簽署網域  cat K*.key >> zonefile  dnssec-signzone -o (網域名稱) -k (KSK) (Zone file 位置) (舊ZSK) (新ZSK)  舊ZSK不可移除,需等 RRSIG 有效時間過後再移除  移除時直接修改example.tw移除舊的DNSKEY  可在此時加入下次要更換的新ZSK  再次簽署網域  此時舊的DNSKEY被移除  DNSKEY已被更換  新的DNSKEY已加入完成
    • key rollover KSK實做 步驟與ZSK方式相同,指令替換如下  dnssec-signzone -o (網域名稱) -k (KSK) -k (新KSK) (Zone file 位置) (ZSK) KSK更新後需對上層更新DS紀錄
    • 利用設定時間達成 Key Rollover 在建立 Key 的時候便設定五個參數  -P date/+offset  此時間後, 加入 Zone 內, 但不簽署  -A date/+offset  此時間後, 加入 Zone 內, 並且簽署  -R date/+offset ( KSK only )  此時間後, Revoke Key, 加入 Zone 內, 並且簽署  -I date/+offset  此時間後, 加入 Zone 內, 但不簽署  -D date/+offset  此時間後, 不加入 Zone 內
    • 依照不同的 Key 時間自動簽署 dnssec-signzone 指令可依照不同的時間設定自 動抓取 Key 來簽署網域 dnssec-signzone -S -o (domain) -K (key path) (zone file)  dnssec-signzone -S -o example.tw -K /root/dnskey example.tw.db
    • 調整 Key 時間 dnssec-settime 可調整已產生之 Key 個別時間, 參數如同 -P/-A/-R/-I/-D
    • Key 時間與 RRSIG 有效時間 Key 本身是沒有時間,在 DNSSEC 使用上才 把時間納入 RRSIG 未指定的情況下有效時間預設為 30 天  Key rollover : +90d  RRSIG : +30d  +30d ~ + 90d 驗證無效 RRSIG 的有效時間與 Key 的時間沒有任何關 係,dnssec-signzone 也不會幫你調整
    • NSEC3 實做 產生 DNSKEY  dnssec-keygen -r /dev/urandom -a NSEC3RSASHA1 -f KSK -3 -b 1024 -n ZONE example.tw NSEC3 簽署  dnssec-signzone -3 17597502 -H 10 -A -o example.tw –k Kexample.tw.+005+53428.key example.tw.db Kexample.tw.+003+48252.key  -3 slat  -H hash 次數  -A opt-out
    • DNSKEY Revoke 無法經由正常 Key rollover 更換鑰匙  DNSKEY被破解需要立即更換  測試階段轉移成正式階段 dnssec-revoke  更換ZSK直接由KSK簽署即可,故ZSK不需Revoke  會產生新的key file, DNSKEY flags = 385 New key2 b.twnic.net.tw key1 revoke authority cache client server key1 a.twnic.net.tw
    • 子網域簽署 若下層傳遞DNSKEY則需使用dnssec- dsfromkey產生dsset-(domain)資料 若下層傳遞 DS 於上層,可放於目錄內,以下 列指令簽署即可  DS 檔案格式必須為 dsset-(domain) 簽署指令  dnssec-signzone -g -d (dsset-*存放路徑) -o domain …  簽署時會自動尋找相關 NS/DS 授權
    • Dynamic update 在 nsupdate 更新時,需告訴 named 存放鑰匙 的目錄,目錄需存在private key  Kdomain+alg+keyid.[key,private] 不可被更改為其他 格式,會出現無法找到鑰匙的錯誤訊息。 options { ........ key-directory “/keypath”; }; nsupdate 的用法如同以往
    • Slave Server 在 optione 中開啟 DNSSEC 即可 Option{ …… dnssec-enable yes; }
    • DNSSEC過渡期 DNSSEC的驗證過程是由最 .(root)開始的, 若其 中一層未支援DNSSEC, 則DNSSEC的驗證無法 保證其正確性 DNSSEC的驗證主要在stub resolver(cache server)完成, 除此之外AP本身也應要能支援 DNSSEC的驗證  cache server 需開啟 options 選項  dnssec-enable yes;
    • DNSSEC 驗證 提供 Recursive 的主機應將 .(root) DNSKEY 加 入 trust-key 內。  需注意 .(root) DNSKEY 的更換 若上層尚未支援DNSSEC, 則須將受信任的權 威主機DNSKEY加入trust內 dig +dnssec @149.20.64.20 iis.se  ad bit set https://www.dnssec-tools.org/wiki/index.php/Tutorials
    • Application DNSSEC 驗證 若 AP 可自行支援 DNSSEC 驗證方式, 則可將 CD bit 設定為 1 , 讓 Cache Server 不需驗證資 料 安裝 firefox DNSSEC外掛  https://addons.mozilla.org/en-US/firefox/addon/dnssec- validator/versions/1.1.4
    • DNSSEC 其他 Key 長度  RFC 4641  we come to the following recommendations about KSK sizes: 1024 bits for low-value domains, 1300 bits for medium-value domains, and 2048 bits for high-value domains.
    • DNSSEC key 長度 ICANN  KSK 2048  ZSK 1024 TWNIC  KSK: 2048  ZSK: 1024 其他TLD參考數據  .ORG 2048/1024  .GOV 2048/2048  .SE 2048/1024
    • Key lifecycle  ICANN  Zone file size: < 300 Domain names  TTL: 2 days  ZSK: 90 days  KSK: change if necessary  TWNIC  Zone file size: > 100K Domain names  TTL: 1 day  ZSK: 30 days  KSK: 1 years  There are 8 zones in TWNIC, rollover 1 ZSK every 3 or 4 days
    • DNSSEC 效率 DNSSEC with With DNSSEC Without DNSSEC Key rolloverCreate 40min20sec 21min42sec 2minzone filesZone file 176M 97M 20MsizeQuery - 6.02 ms 3.47 mstimeStart 39.1s 24.6s 6.3snamed 108
    • DNSKEY 的保存 DNSKEY 為簽署 zonefile 的重要鑰匙 應保存備份並注意權限  drwx------ root root 保存目錄  如有使用動態更新需注意權限調整 若駭客取得 DNSKEY則可竄改資料並重新發 佈,妥善保存則可避免此問題。
    • 更換 DNSSEC SOP 在 master 停止 DNS 服務, 讓流量導向 slave  即使轉換錯誤也不會導致查詢錯誤 保存 zone file 簽署 DNSSEC 與測試 重新啟動 master DNS 服務
    • 基礎 KEY 管理 產生 Key  透過 dnssec-keygen 的五個時間參數產生鑰匙 簽署網域  dnssec-signzone -S smart 模式簽署自動判別 key 的 使用 移除舊 key  使用 find -ctime 來清除產生很久的 key
    • DNSSEC-ToolsKey 管理工具介紹
    • DNSSEC-Tools http://www.dnssec-tools.org  zonesinger - 網域簽署工具  rollerd - 自動 Key rollover 更換工具  rollctl - 控制 rollerd 前端工具  donuts - zone file check  mapper - 網域繪圖工具  trustman - trust key 管理工具 113
    • PowerDNS DNSSEC http://wiki.powerdns.com/trac/wiki/PDNSSEC
    • Windows DNSSEC Windows 2008 R2
    • DNSKEY 開啟命令提示字元 產生 DNSKEY  KSK  DnsCmd /OfflineSign /GenKey /Alg rsasha1 /Flags KSK /Length 2048 /Zone example.tw /SSCert /FriendlyName KSK- example.tw  ZSK  DnsCmd /OfflineSign /GenKey /Alg rsasha1 /Length 1024 /Zone example.tw /SSCert /FriendlyName KSK-example.tw
    • Backup your DNSKEY 開啟命令提示字元,鍵入:mmc 檔案-> 新增或移除嵌入式管理單元  憑證 -> 新增  電腦帳戶 -> 本機電腦 -> 確定 左側 Tree  MS-DNSSEC -> 憑證  點選憑證 -> 右鍵 -> 所有工作 -> 匯出
    • 簽署網域 網域存放路徑  cd %windir%System32DNS 匯出網域  dnscmd /zoneexport example.tw example.tw.org 簽署網域  dnscmd /offlinesign /signzone /input example.tw.org /output example.tw.signed /zone example.tw /signkey /cert /friendlyname ksk-rsync.tw /signkey /cert /friendlyname zsk-rsync.tw
    • 重新載入 Zone dnscmd /zonedelete example.tw /f dnscmd /zoneadd example.tw /primary /file example.tw.signed /load
    • 同時簽署多把KEY 增加Key但不簽署  dnscmd /offlinesign /signzone /input example.tw.org /output example.tw.signed /zone example.tw /signkey /cert /friendlyname ksk-rsync.tw /signkey /cert /friendlyname zsk- rsync.tw /addkey /cert /friendlyname key1 /addkey /cert /friendlyname key2 增加key並且簽署  dnscmd /offlinesign /signzone /input example.tw.org /output example.tw.signed /zone example.tw /signkey /cert /friendlyname ksk-rsync.tw /signkey /cert /friendlyname zsk- rsync.tw /signkey /cert /friendlyname key1 /signkey /cert /friendlyname key2
    • Windows DNSSEC NSEC3 版本  Windows 2008 R2  不支援 NSEC3  因為其 DNSKEY 無法產生 NSEC3 的 DNSKEY。
    • 參考資料 RFC 1034, 1035  DNS RFC 4033, 4034, 4035  DNSSEC RFC 5155  NSEC3
    •  Q&A