基于dhcp的dns服務(wù)器公鑰分發(fā)機制的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種基于DHCP的DNS服務(wù)器公鑰分發(fā)機制。
【背景技術(shù)】
[0002]DNS (Domain Name System,域名系統(tǒng)),提供域名到地址相互映射,是用戶訪問互聯(lián)網(wǎng)的關(guān)鍵服務(wù)之一。用戶與DNS服務(wù)器之間通過發(fā)送DNS請求和回復(fù)消息,進行地址查詢。然而,DNS消息中攜帶的域名信息會暴露用戶的個人隱私。因此,為了防止攻擊者對DNS消息的竊聽,需要對DNS消息內(nèi)容進行加密。
[0003]用戶在發(fā)送DNS請求時,會先將請求消息發(fā)到本地的DNS服務(wù)器。本地DNS服務(wù)器先去詢問根域名服務(wù)器,再一級級向下查詢,直到得到查詢結(jié)果返回給用戶。本地DNS服務(wù)器發(fā)送DNS請求時使用的是自己的IP地址作為源地址,所以可以一定程度上隱藏實際的請求用戶。用戶與本地DNS服務(wù)器之間的通信使用的是用戶自己的IP地址,同時它們之間的通信是不受域名緩存限制的,所以這段路徑是攻擊者竊聽的理想目標(biāo)。為了保護隱私,需要將用戶與本地DNS服務(wù)器之間的DNS消息內(nèi)容進行加密。這意味著用戶與DNS服務(wù)器之間需要某種方式安全地共享加密和解密的密鑰。
[0004]基于公鑰體制的密鑰分配是實現(xiàn)密鑰安全發(fā)送的一種有效途徑。假設(shè)通信雙方為A和B,A通過一定方式獲得B的公鑰。然后A隨機產(chǎn)生一個對稱密鑰k,并用B的公鑰加密對稱密鑰K發(fā)送給B。B接收到加密的密鑰后,用自己的私鑰解密,得到密鑰k。為了實現(xiàn)用戶與DNS服務(wù)器之間的密鑰分配,需要某種方式對DNS服務(wù)器的公鑰進行分發(fā),讓用戶能夠得到。
[0005]如今很多時候用戶主機上配置的本地DNS服務(wù)器地址都是由DHCP服務(wù)器下發(fā)的。這類DNS服務(wù)器一般都是由用戶所在網(wǎng)絡(luò)的ISP提供的。這為本發(fā)明提供了可行性基礎(chǔ)。
【發(fā)明內(nèi)容】
[0006]為了克服上述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種基于DHCP的DNS服務(wù)器公鑰分發(fā)機制,ISP為每一個DNS服務(wù)器配置唯一的公鑰和私鑰,將公鑰記錄存在DHCP服務(wù)器中;如果用戶需要ISP為自己的DNS查詢過程提供加密措施(增值業(yè)務(wù)),ISP可以在通過DHCP給用戶配置本地DNS服務(wù)器地址的時候?qū)NS服務(wù)器的公鑰發(fā)給用戶,用戶用這個公鑰實現(xiàn)對稱密鑰的安全發(fā)送,然后用對稱密鑰加密用戶與DNS服務(wù)器之間的DNS通信。
[0007]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
[0008]基于DHCP的DNS服務(wù)器公鑰分發(fā)機制,包括:
[0009]ISP為每一個DNS服務(wù)器配置唯一的公鑰和私鑰,私鑰由各個DNS服務(wù)器自己保管,公鑰均存放于DHCP服務(wù)器上;DHCP服務(wù)器上存有每一個DNS服務(wù)器的公鑰記錄。
[0010]DHCP服務(wù)器通過將包含DNS服務(wù)器公鑰的公鑰選項加在DHCP消息中發(fā)給用戶,為用戶配置DNS服務(wù)器的公鑰。
[0011]公鑰選項為一個用于發(fā)送DNS服務(wù)器公鑰的DHCP選項。
[0012]其中,DHCP服務(wù)器中維護著一個DNS服務(wù)器IP地址/DNS服務(wù)器公鑰的綁定表,在DHCP服務(wù)器為用戶配置IP地址時將與DNS服務(wù)器IP地址綁定的公鑰同時發(fā)給用戶,或者,在用戶請求DNS服務(wù)器配置參數(shù)時,DHCP服務(wù)器將與DNS服務(wù)器IP地址綁定的公鑰發(fā)給用戶。
[0013]用戶主機上維護著DNS服務(wù)器IP地址/DNS服務(wù)器公鑰/用于加密DNS消息的密鑰的綁定表,用于區(qū)別不同DNS服務(wù)器的公鑰,以及向不同DNS服務(wù)器發(fā)送DNS消息時使用的加密密鑰。
[0014]在DHCP場景下:
[0015]有兩種情況DHCP服務(wù)器會為用戶配置DNS服務(wù)器地址。第一種是當(dāng)DHCP服務(wù)器在給用戶配置IP地址時,用戶在DHCPDISCOVER消息的Parameter Request List選項中包含了 Domain Name Server字段。在DHCP服務(wù)器返回的DHCPACK消息中就會包含DomainName Server Opt1n選項。第二種情況是當(dāng)用戶發(fā)送DHCPINFORM消息請求DNS服務(wù)器配置參數(shù)時,用戶在DHCPINFORM消息的Parameter Request List選項中包含了 Domain NameServer 字段。
[0016]DHCP服務(wù)器在為用戶配置DNS服務(wù)器地址時,如果要為用戶提供DNS消息的加密服務(wù),則將包含DNS服務(wù)器公鑰的選項加在DHCPACK消息中,且選項中的公鑰要與DomainName Server Opt1n選項中的DNS服務(wù)器IP地址相對應(yīng)。
[0017]在DHCPv6 場景下:
[0018]有三種情況DHCPv6服務(wù)器會為用戶配置DNS服務(wù)器地址。第一種是當(dāng)DHCPv6服務(wù)器在給用戶配置IPv6地址時,用戶在SOLICIT消息的Opt1n Request Opt1n選項中包含了 DNS Recursive Name Server字段。在DHCPv6服務(wù)器返回的REPLY消息中就會包含DNS Recursive Name Server opt1n選項。第二種是當(dāng)用戶發(fā)送RENEW或者REBIND消息更新配置參數(shù)時,會請求DNS服務(wù)器地址。第三種情況是當(dāng)用戶發(fā)送INFORMAT1N-QUEST消息請求配置DNS服務(wù)器地址時,用戶在INFORMAT1N-QUEST消息的Opt1n Request Opt1n選項中包含了 DNS Recursive Name Server 字段。
[0019]DHCPv6服務(wù)器在為用戶配置DNS服務(wù)器地址時,如果要為用戶提供DNS消息的加密服務(wù),則將包含DNS服務(wù)器公鑰的選項加在DHCPREPLY消息中且選項中的公鑰要與DNSRecursive Name Server opt1n選項中的DNS服務(wù)器IP地址相對應(yīng)。
[0020]DHCPv6服務(wù)器通過REC0NFI⑶RE消息通知用戶DHCPv6服務(wù)器有新的配置參數(shù),觸發(fā)用戶發(fā)送RENEW或INFORMAT1N-RQUEST消息更新配置參數(shù)。
[0021]出于安全考慮,所述DNS服務(wù)器的公鑰和私鑰可設(shè)定一個有效期,當(dāng)DNS服務(wù)器的公鑰和私鑰更新時,DHCPv6服務(wù)器發(fā)送REC0NFI⑶RE消息通知用戶,為用戶配置新的DNS服務(wù)器公鑰。
[0022]本發(fā)明的加密流程如下:
[0023]3.加密流程:
[0024]I) DHCP將DNS服務(wù)器對應(yīng)的公鑰發(fā)給用戶。
[0025]2)用戶主機上存有唯一的對稱密鑰,這個對稱密鑰可以是隨機生成的或手動配置的,但對每個用戶是唯一的。用戶在自己主機上維護一個DNS服務(wù)器IP地址/DNS服務(wù)器公鑰/對稱密