一種防止ip地址洩露的方法
2024-01-30 13:17:15
專利名稱:一種防止ip地址洩露的方法
技術領域:
本發明涉及國際網際網路(Internet)技術領域和接入網技術領域,具體 涉及一種防止IP位址洩露的方法。
絲絲
動態主機配置協議(DHCP, Dynamic Host Configuration Protocol) 是一種終端自動配置協議,RFC2131、 2132、 1542給出了其實現標準。 DHCP協議採用client-server方式實現,DHCP協議是基於UDP層之上 的應用,DHCP終端(也可稱為DHCP客戶端,DHCP client)採用知名端 口號68進行標識,DHCP伺服器(DHCP server)採用知名埠號67進行 標識。DHCP協議能夠支持多種終端設備,整個配置過程自動實現,終 端無需配置,能夠實現用戶開機就能上網的目標;所有配置信息由DHCP 伺服器統一管理,不僅能夠分配IP位址,還可以配置其他大量網絡配置 參數和系統配置信息;通過IP位址租期管理,實現IP位址分時復用, 節省有限的IP位址資源;採用廣播方式實現報文交互,報文一般不能跨 網段,若要跨網段,需要DHCP Relay (動態主機配置協議中繼設備)。
表l給出了DHCP報文的格式
5op
htype
hlen
hops
xid
S6CS
flags
ciaddr yiaddr
siaddr
giaddr
chaddr(16bytes)
sname(64bytes)
file(128bytes)
options (變長)
表l
DHCP報文作為整個IP報文的靜荷進行封裝。
op欄位表示當前報文是DHCP client的請求還是DHCP server的應答, 該欄位的值為1時表示是DHCP client的請求,為2時表示是DHCP server的應答。
htype欄位和hlen欄位hardware type、 hardware length,分另!J表示DHCP client的網絡硬體地址類型、長度,如htype欄位的值為1,表示DHCP client的網絡硬體是10MB的乙太網類型,hlen欄位的值為6,表示DHCP client的網絡硬體地址長度是6bytes(即乙太網類型的6bytes的MAC地 址)。
hops欄位表示當前的DHCP報文經過的DHCP Relay的數目,類似於 IP頭中的跳數欄位,但含義完全不同,DHCP client或DHCP server發出 DHCP報文時,此欄位都初始化為0,每經過一個DHCP Relay,此欄位 就會加1 ,此欄位的作用是限制DHCP報文不要經過太多的DHCP Relay, DHCP協議規定,當hops欄位的值大於4(現在也有規定為16)時,這個
6DHCP報文就不能再進行處理,而是丟棄。
ciaddr欄位client ip address,表示DHCP client自己的IP位址。可以是 DHCP server分配給DHCP client的IP位址,也可以是DHCP client己有 的IP位址。DHCP client能夠使用此IP位址接收IP報文,DHCP server 發現此欄位不為0時,可以直接將響應報文單播給DHCP client。 yiaddr欄位your ip address,表示DHCP server分配給DHCP client的 IP位址。當DHCP server響應DHCP client的DHCP請求時,將把分配 給DHCP client的IP位址填入此欄位。
giaddr欄位gateway ip address,記錄第一個DHCP Relay的IP位址。 當DHCP client發出DHCP請求報文後,如果網絡中存在DHCP Relay, 則第一個DHCP Relay轉發這個DHCP請求報文時,就會把自己的IP地 址填入此欄位(隨後的DHCP Relay將不再改寫此欄位,只是把hops欄位 的值加1)。 DHCP server將會根據此欄位為用戶分配IP位址,並把響應 報文轉發給此DHCP Relay,由DHCP Relay再轉發給DHCP client。 chaddr欄位client hardware address,記錄DHCP client的實際硬體地址 內容。當DHCP client發出DHCP請求報文時,將把自己的網卡硬體地 址填入此欄位,DHCP server —般都會使用此欄位來唯一標識一個DHCP client。而且此欄位與前面的htype、 hlen欄位必須一致,例如當htype、 hlen欄位的值分別為1和6時,此欄位必須填入6bytes的乙太網MAC 地址。
DHCP共有8種報文類型,是通過option 53 DHCP Message Type字 段來標識的。
1、 DHCP DISCOVER:此報文是DHCP client開始DHCP過程的第一個 報文;
2、 DHCP OFFER:此報文是DHCP server對DHCPDISCOVER報文的
響應3 、DHCP REQUEST:此報文是DHCP client開始DHCP過程中對DHCP server的DHCP OFFER報文的回應,或者是DHCP client續延IP位址租 期時發出的報文;
4、 DHCP DECLINE:當DHCP client發現DHCP server分配給它的IP 地址無法使用,如IP位址衝突時,將發出此報文,通知DHCP server禁 止使用IP位址;
5、 DHCP ACK: DHCP server對DHCP client的DHCPREQUEST報文的 確認響應報文,DHCP client收到此報文後,才真正獲得了IP位址和相 關的配置信息;
6、 DHCP NAK: DHCP server對DHCP client的DHCPREQUEST報文 的拒絕響應報文,DHCP client收到此報文後, 一般會重新開始新的
DHCP過程;
7、 DHCP RELEASE: DHCP client主動釋放server分配給它的IP位址 的報文,當DHCP server收到此報文後,就可以回收這個IP位址,能夠 分酉己給其他的DHCP client;
8、 DHCP INFORM: DHCP client已經獲得了 IP位址,發送此報文,只 是為了從DHCP server處獲取其他的一些網絡配置信息,如route IP、 DNSIP等,這種報文的應用非常少見。
DSLAM(Digital Subscriber Line Access Multiplexers,數字用戶線路 接入復用器)設備位於寬帶網絡邊緣接入層,主要提供xDSL接入,支持 VDSL、 ADSL、 G.SHDSL接入;在以xDSL接入為主的同時,也能夠 支持一定的Ethernet接入;同時還提供IP組播業務,具有豐富的寬帶 接入業務和良好的可運營、可管理功能。DSLAM的結構圖如
圖1所示。
由於DHCP報文都大多採用廣播方式,是無法穿越多個子網的,當 DHCP報文要穿越多個子網時,就要有DHCP Relay的存在。DHCP Relay 可以是路由器,也可以是一臺主機,總之,DHCP Relay要監聽UDP目的埠號為67的所有報文。當DHCP Relay收到一個這樣的報文時,會 首先判斷是否是用戶的請求報文,如果是,而且giaddr欄位的值為O, 則把自己的IP位址填入此欄位,並把此報文單播給真正的DHCP server, 以實現DHCP報文穿越多個子網的目的。當DHCP Relay發現這是DHCP server的響應報文吋,會根據flag欄位中的廣播標記來決定是廣播或單 播封裝好的報文。DSLAM接入設備完全可以承擔DHCP Relay的角色, 目前很多廠商的DSLAM設備都提供DHCP Relay服務。
DHCP協議一個比較大的問題就是安全性比較差,其中比較突出的 一點就是對於非法用戶盜取合法用戶的IP位址,或是非法用戶仿冒合法 用戶的MAC地址無法進行防範,後果是合法用戶無法正常上網。3N法 用戶獲取合法用戶IP位址和MAC地址的方法有很多,比較常見的一種 就是採用網絡嗅探工具竊聽DHCP client和DHCP server之間的DHCP 廣播報文,從DHCP報文中通過chaddr域獲取用戶的硬體地址,通過 ciaddr域獲取DHCP server向DHCP client分配的IP位址,然後進行仿 冒和攻擊。假如DHCP server或是DHCP Relay相應用戶的報文都可以 用單播報文的話,那麼在很大程度上可以防止用戶的IP位址以及硬體地 址被IP層同子網或是鏈路層同廣播域的仿冒攻擊者竊聽到。但是實際情 況是,DHCP協議為了兼顧各種類型的DHCP client,在DHCP報文的 flags欄位的最左的bit位設置了報文廣播標記,flags欄位的編碼格式如 圖2所示。如果客戶端在未分配到IP位址的情況下無法接受單播報文, 那麼就在發送報文中設置廣播標記為1,否則設置為O, DHCP server或 者DHCP Relay根據此廣播標記決定向用戶發送單播相應報文或是廣播 相應報文。目前DHCP server或者啟動了 DHCP Relay服務的路由器, 以及三層交換機或者具有三層功能的DSLAM設備對於用戶(DHCP client)的報文處理並不一樣,最簡化的處理就是在用戶IP位址未完全分 酉己到的情況下都用廣播報文進行響應,忽略用戶報文中的flags欄位中的廣播標記;比較規範的做法是對於廣播標記設置為1的DHCP client用 廣播響應,設置為0的用單播響應;兩種情況下都存在廣播響應的問題, 無法做到完全的單播響應,這就使得仿冒攻擊者偵測報文有了可趁之 機。
發明內容
本發明要解決的技術問題是提供一種防止IP位址洩露的方法,克服 現有技術單純使用廣播標記來確定DHCP Relay對DHCP報文的轉發方 式,從而造成DHCP伺服器分配的IP位址容易洩露的缺點。
本發明採用如下的技術方案
—種防止IP位址洩露的方法,包括步驟
Al、動態主機配置協議中繼設備捕獲動態主機配置協i義客戶端發送 的動態主機配置協議報文後,記錄發送該報文的用戶埠地 址;從該報文的客戶硬體地址欄位查找到動態主機配置協^C客 戶端的介質訪問控制地址,建立介質訪問控制地址和用戶端 口地址的對應關係;
A2、在接收到動態主機配置協議伺服器發送的響應報文後,動態主 機配置協議中繼設備根據該響應報文中的客戶硬體地址欄位, 查找到介質訪問控制地址;根據該介質訪問控制地址和用戶 埠地址的對應關係查找到相應的用戶埠地址;然後直接將 該響應報文發送到用戶埠地址確定的用戶埠上。
所述的防止IP位址洩露的方法,其中所述步驟Al包括步驟
Bl、動態主機配置協議客戶端發送動態主機配置協議發現報文,尋
找動態主機配置協議伺服器; B2、動態主機配置協議中繼設備捕獲該動態主機配置協議發現報文,從該報文的客戶硬體地址欄位査找到介質訪問控制地址,
記錄發送報文的用戶埠地址,並將該介質訪問控諱!l地址和用 戶埠地址填入對應關係表; B3、動態主機配置協議中繼設備根據配置選擇動態主機配置協議服 務器,將封裝動態主機配置協議發現報文的IP報文的目標IP 地址設置為選定的動態主機配置協議伺服器地址,然後發送該 動態主機配置協議發現報文。
所述的防止IP位址洩露的方法,其中所述步驟Al包括步驟 Cl、動態主機配置協議客戶端發送動態主機配置協議i青求報文; C2、動態主機配置協議中繼設備捕獲該動態主機配置協議請求報 文,從該報文的客戶硬體地址欄位査找到介質訪問控制地址, 記錄發送報文的用戶埠地址,並將該介質訪問控制地址和用 戶埠地址填入對應關係表; C3 、動態主機配置協議中繼設備根據配置選擇動態主機配置協議服 務器,將封裝動態主機配置協議請求報文的EP報文的目標IP 地址設置為選定的動態主機配置協議伺服器地址,然後發送該 動態主機酉己置協議請求報文。
所述的防止IP位址洩露的方法,其中所述步驟A2包括步驟 Dl、動態主機配置協議中繼設備接收動態主機配置協議伺服器的動
態主機配置協議響應發現報文; D2、動態主機配置協議中繼設備根據動態主機配置協議響應發現報
文的客戶硬體地址欄位査找到介質訪問控制地址,根據該介
質i方問控制地址查找對應關係表,得到用戶埠地址; D3、動態主機配置協議中繼設備重新生成動態主機配置協議響應發
現報文,不改變該報文中的廣播標記;直接將該報文發送到用戶埠地址確定的用戶埠上。
所述的防止IP位址洩露的方法,其中所述步驟A2包括步驟
El、動態主機配置協議中繼設備接收動態主機配置協議月艮務器發送
的動態主機配置協議響應請求報文; E2、動態主機配置協議中繼設備根據動態主機配置協i義響應請汆報
文的客戶硬體地址欄位査找到介質訪問控制地址,根據該介
質訪問控制地址查找對應關係表,得到用戶埠地址; E3、動態主機配置協議中繼設備重新生成動態主機配置協議響應請
求報文,不改變該報文中的廣播標記;直接將該報文發送到用
戶埠地址確定的用戶埠上。
所述的防止IP位址洩露的方法,其中動態主機配置協議中繼設備 為數字用戶線路接入復用器。
本發明的技術方案通過記錄DHCP client的MAC地址和埠地址, 建立MAC地址和埠地址的對應關係,保證所有經過DHCP Relay或 者DSLAM設備的DHCP伺服器響應報文都能只發送到發起請求的用 戶,不會造成報文廣播,有效防止了用戶竊聽,增加了DHCP協議應用 的安全性;同時減少了二層網絡的廣播報文發送,節省了網絡帶寬資源。
本發明包括如下附圖
圖1是現有技術DSLAM結構圖2是現有技術DHCP報文的flags欄位編碼格式;
圖3是本發明對DHCP報文進行處理的流程圖。
具體實灘方式
下面結合附圖和實施例對本發明作進一步詳細說明:本發明的要點是當DHCP client(動態主機配置協議客戶端)和DHCP server(動態主機配置協議伺服器)不在一個IP子網內,DHCP Relay (動 態主機配置協議中繼設備)或者啟動了DHCP Relay agent(動態主機配置 協議中繼代理)服務的DSLAM,根據DHCP client發送的DHCP DISCOVER/REQUEST報文記錄DHCP client的MAC地址,並在接收到
discover;requestip報文時記錄發送報文的用戶埠地址;然後建
立MAC地址和用戶埠地址的對應關係,在接收到DHCP server發送 的響應報文後,DHCP Relay或者DSLAM設備根據DHCP報文中的 chaddr欄位,査找到MAC地址;根據MAC地址和用戶埠地址的對 應關係査找到響應的用戶埠 ;然後直接將該DHCP報文發送到該用戶 埠上,不廣播到其它用戶埠;這樣就保證了 DHCP server分配給 DHCP client的IP位址和DHCP client的MAC地址不會被三層同子網、 二層同廣播域的其它用戶竊聽到。
本發明對DHCP報文的處理過程包括如圖3所示的步驟;下面通過 對圖3所示步驟的具體說明,闡述本發明的實現過程。
步驟1、 DHCP client(DHCP客戶端)發送DHCP DICORVERC動態主 機配置協議發現報文),尋找DHCP server(動態主機配置協議伺服器);
步驟2、 DHCP Relay (動態主機配置協議中繼設備)或者DSLAM設 備捕獲該DHCP DISCOVER報文,從DHCP DISCOVER報文的chaddr 欄位(客戶硬體地址欄位)査找到DHCP client的MAC (Media Access Control,介質訪問控制)地址,記錄發送報文的用戶埠地址,並將該 MAC地址和用戶埠地址填入對應關係表;
步驟3、根據在DHCP Relay或者DSLAM設備上配置的DHCP服 務器(可能的方式是固定配置、或者根據用戶入接口綁定S艮務器配置、根 據用戶的MAC地址段選擇伺服器,根據DHCP報文的OPTION60域選 擇伺服器),DHCP Relay或者DSLAM設備向DHCP server單播發送DHCP DISCOVER報文(封裝DHCP DISCOVER報文的IP報文的目標IP 地址設置為選定的DHCP伺服器地址);
步驟4、 DHCP Relay或者DSLAM設備接收DHCP server響應的 DHCP OFFER(動態主機配置協議響應發現報文);
步驟5、 DHCP Relay或者DSLAM設備根據DHCP OFFER報文的 chaddr欄位得到用戶的MAC地址,根據該MAC地址查找對應關係表, 得到用戶埠地址;
步驟6、 DHCP Relay或者DSLAM設備重新生成DHCP OFFER報 文,不改變DHCP OFFER報文中的廣播標記;只將DHCP OFFER報文 發送到步驟5中得到的用戶埠地址;
步驟7、 DHCP客戶端發送DHCP REQUEST報文(動態主機配置協 議請求報文);
步驟8、 DHCP Relay或者DSLAM設備捕獲該DHCP REQUEST報 文,從DHCP REQUEST報文的chaddr欄位査找到DHCP client的MAC 地址,將該MAC地址與對應關係表中的MAC地址進行比較,若對應 關係表中已有該MAC地址,則執行步驟9,否則將該MAC地址和相應 的用戶埠地址存入對應關係表;
步驟9、根據在DHCP Relay或者DSLAM設備上配置的DHCP服 務器,DHCP Relay或者DSLAM設備向DHCP server單播發送DHCP REQUEST報文(封裝DHCP REQUEST報文的IP報文的目標IP位址設 置為選定的DHCP server地址);
步驟10、 DHCP Relay或者DSLAM設備接收DHCP server發送的 DHCP ACK報文(動態主機配置協議響應請求報文);
步驟11、 DHCP Relay或者DSLAM設備根據DHCP ACK報文的 chaddr欄位得到用戶的MAC地址,根據用戶MAC地址查找對應關係 表,得到相應的用戶埠地址;
14步驟12、 DHCP Relay或者DSLAM設備重新生成DHCP ACK報 文,不改變DHCPACK報文中的廣播標記;只將DHCPACK報文發送 到步驟11中得到的用戶埠地址。
在上面的實施例中,DHCP Relay或者DSLAM設備上設置有報文 接收監控模塊,對每一個用戶埠進行實時監控,當有DHCP報文來時, 報文接收監控模塊就將DHCP報文和發送報文的用戶埠信息一起轉發 給主處理模塊,主處理模塊就會將用戶埠地址和從DHCP報文中査到 的相應的MAC地址一起存入對應關係表。
雖然通過參照本發明的優選實施例,已經對本發明進行了圖示和描 述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作 各種各樣的改變,而不偏離所附權利要求書所限定的本發明的精神和範 圍。
1權利要求
1、一種防止IP位址洩露的方法,其特徵在於,包括步驟A1、動態主機配置協議中繼設備捕獲動態主機配置協議客戶端發送的動態主機配置協議報文後,記錄發送該報文的用戶埠地址;從該報文的客戶硬體地址欄位查找到動態主機配置協議客戶端的介質訪問控制地址,建立介質訪問控制地址和用戶埠地址的對應關係;A2、在接收到動態主機配置協議伺服器發送的響應報文後,動態主機配置協議中繼設備根據該響應報文中的客戶硬體地址欄位,查找到介質訪問控制地址;根據該介質訪問控制地址和用戶埠地址的對應關係查找到相應的用戶埠地址;然後直接將該響應報文發送到用戶埠地址確定的用戶埠上。
2、 根據權利要求1所述的防止IP位址洩露的方法,其特徵在於, 所述步驟A1包括步驟Bl、動態主機配置協議客戶端發送動態主機配置協議發現報文,尋 找動態主機配置協議伺服器;B2、動態主機配置協議中繼設備捕獲該動態主機配置協議發現報 文,從該報文的客戶硬體地址欄位查找到介質訪問控制地址, 記錄發送報文的用戶埠地址,並將該介質訪問控制地址和用 戶埠地址填入對應關係表;B3、動態主機配置協議中繼設備根據配置選擇動態主機配置協議服 務器,將封裝動態主機配置協議發現報文的IP報文的目標IP 地址設置為選定的動態主機配置協議伺服器地址,然後發送該動態主機酉己置協議發現報文。
3、 根據權利要求1所述的防止IP位址洩露的方法,其特徵在於, 所述步驟Al包括步驟Cl、動態主機配置協議客戶端發送動態主機配置協議i青求報文; C2、動態主機配置協議中繼設備捕獲該動態主機配置協議請求報 文,從該報文的客戶硬體地址欄位査找到介質訪問控制地址, 記錄發送報文的用戶埠地址,並將該介質訪問控制地址和用 戶埠地址填入對應關係表; ' C3、動態主機配置協議中繼設備根據配置選擇動態主機配置協議服 務器,將封裝動態主機配置協議請求報文的IP報文的目標IP 地址設置為選定的動態主機配置協議伺服器地址,然後發送該 動態主機配置協議請求報文。
4、 根據權利要求2所述的防止IP位址洩露的方法,其特徵在於, 所述步驟A2包括步驟Dl、動態主機配置協議中繼設備接收動態主機配置協議伺服器的動 態主機配置協議響應發現報文;D2、動態主機配置協議中繼設備根據動態主機配置協議響應發現報 文的客戶硬體地址欄位査找到介質訪問控制地址,根裙該介 質i方問控制地址查找對應關係表,得到用戶埠地址;D3、動態主機配置協議中繼設備重新生成動態主機配置協議響應發 現報文,不改變該報文中的廣播標記;直接將該報文發送到用 戶埠地址確定的用戶埠上。
5、根據權利要求3所述的防止IP位址洩露的方法,其特徵在於, 所述步驟A2包括步驟El 、動態主機配置協議中繼設備接收動態主機配置協議伺服器發送的動態主機配置協議響應請求報文; E2、動態主機配置協議中繼設備根據動態主機配置協i義響應請求報文的客戶硬體地址欄位査找到介質訪問控制地址,根據該介質訪問控制地址査找對應關係表,得到用戶埠地址; E3、動態主機配置協議中繼設備重新生成動態主機配置協議響應請求報文,不改變該報文中的廣播標記;直接將該報文發送到用戶埠地址確定的用戶埠上。
6、根據權利要求1至5任一所述的防止IP位址洩露的方法,其特 徵在於動態主機配置協議中繼設備為數字用戶線路接入復用器。
全文摘要
本發明公開了一種防止IP位址洩露的方法,包括步驟DHCP Relay捕獲DHCP client發送的DHCP報文後,記錄發送該報文的用戶埠地址;從該報文的客戶硬體地址欄位查找到DHCP client的MAC地址,建立MAC地址和用戶埠地址的對應關係;在接收到DHCP server發送的響應報文後,DHCP Relay根據該響應報文中的客戶硬體地址欄位,查找到MAC地址;根據該MAC地址和用戶埠地址的對應關係查找到相應的用戶埠地址;然後直接將該響應報文發送到用戶埠地址確定的用戶埠上。本發明的技術方案有效防止了用戶竊聽,增加了DHCP協議應用的安全性;同時減少了二層網絡的廣播報文發送,節省了網絡帶寬資源。
文檔編號H04L29/12GK101471966SQ20081018966
公開日2009年7月1日 申請日期2006年7月6日 優先權日2006年7月6日
發明者遠 袁, 雄 鄧 申請人:華為技術有限公司