999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NDIS中間層驅動的SSLVPN實現

2011-03-14 06:44:56趙春平劉文麗
網絡安全技術與應用 2011年2期
關鍵詞:用戶

趙春平 劉文麗

江南計算技術研究所 江蘇 214083

0 前言

在SSLVPN中,實現網絡訪問的通用做法是采用虛擬網卡。Openvpn是這種技術的開源實現,它通過實現一個虛擬網卡將 IP或鏈路層數據傳輸到應用層,在應用層通過 SSL隧道通信,以達到安全目的。

本文提出了一種基于Windows NDIS來實現SSLVPN網絡訪問功能的一種方法,與虛擬網卡SSLVPN不同的是,本方法不需要虛擬IP地址,也不需生成虛擬網卡,它使用真實的物理IP地址進行通信。

本方法借鑒了虛擬網卡方式SSLVPN的思想:實現一個SSLVPN,開發人員需要通過各種手段來截獲通信數據,然后將通信數據在SSL隧道中傳輸。Windows平臺下,虛擬網卡工作方式的SSLVPN從根本上講是將Windows內核態協議棧中的網絡數據通過IO控制傳遞到用戶態的SSL隧道中進行傳輸,它的實現手段是操作系統路由和虛擬網卡。本文介紹的方法通過IO控制將Windows的NDIS層數據傳遞到用戶態進行安全傳輸。

1 NDIS介紹

NDIS(Network Driver Interface Specification)是微軟實現的網絡驅動接口規范。它包括NDIS協議驅動,NDIS小端口驅動和NDIS中間層驅動,各種驅動遵循規范進行交互。

通過NDIS中間層可以進行網絡數據的截獲,NDIS中間層截獲的數據為數據鏈路層數據。

微軟的WDK中提供了passThru實現范例,它是一個透明的NDIS中間層驅動。開發人員可以修改passThru范例來達到自己的目的。

在SSLVPN的網絡功能中,客戶端可以在協議棧的各個層次(需操作系統支持)劫持網絡數據,并在用戶態的SSL通道中發送。網絡層截獲從理論上講應該有三種方法:TDI截獲、NDIS截獲以及虛擬網卡方式的截獲。目前市場上的SSLVPN實現一般都采用虛擬網卡來截獲數據,因此有必要來研究基于NDIS截獲的實現方式。

2 SSL協議介紹

SSL(Security Socket Layer)協議是廣泛使用的安全通信協議。SSL客戶端和SSL服務端在socket層協商秘密信息,并在此基礎上進行安全通信。

3 實現原理

本方法通過NDIS中間層驅動來劫持和插入網絡數據:在發送數據時,通過NDIS驅動和IO操作,將網絡數據傳遞到操作系統用戶態,并在SSL隧道中傳輸;從SSL隧道中接收的網絡數據,通過NDIS驅動和IO操作插入到操作系統內核協議棧,如圖1所示。

圖1 實現原理

數據的發送過程如下:

(1)客戶端發送數據時,網絡數據被NDIS中間層截獲,存入緩沖區;

(2)客戶端用戶態進程通過ReadFile函數讀取NDIS中間層截獲的網絡數據;

(3)客戶端用戶態進程通過 SSL隧道發送網絡數據給SSLVPN服務端;

(4)SSLVPN服務端將網絡數據發送到內部網絡。

數據的接收過程如下:

(1)客戶端從SSL隧道接收網絡數據;

(2)客戶端用戶態進程通過WriteFIle函數將網絡數據寫入到NDIS驅動;

(3)NDIS驅動將網絡數據插入到協議棧,提交給上層。

為了避免出現環路通信,使 SSL隧道能夠正常工作,NDIS中間層必須放過SSL隧道的網絡通信。NDIS截獲的數據是鏈路層數據,因此,此種方法能實現SSLVPN的網絡訪問功能。

4 實現方法

下面給出了主要模塊的大致實現方法:

(1)NDIS驅動

NDIS驅動以微軟WDK中提供的Passthru范例為基礎,增加讀寫文件操作以及緩存發出的網絡數據。在讀文件操作中,需要NDIS驅動緩存MPSendPackets中的發送數據,如何緩存以及如何讀取,可以參考openvpn的實現方式。在寫文件操作中,我們需要構造一個數據包提交給上層協議棧,可以調用 NdisMEthIndicateReceive函數。下面給出了 Ndis驅動最核心的改動代碼。

在Ndis發生數據包之前,需要對發出的包進行判定,如果是需要處理的包,則將包進入環形緩沖區。改動如下:

為了用戶態進程能夠讀取環形緩沖區中的數據以及將受到的數據寫入Ndis驅動,需要在passthru.c的PtDispatch中增加讀寫支持,如下:

(2)SSL協議

SSL協議使用openssl來實現。或者也可以使用openvpn的源碼,替換其中的虛擬網卡驅動為NIDS驅動,僅做部分修改即可。

5 提高性能的方法

本方法適用于基于NDIS的截獲以及基于虛擬網卡的截獲方案。用戶態進程通過一次 IO操作僅僅只讀取和寫入了一個數據包。IO操作比較耗時,因此在用戶態進程讀寫的時候,如果盡可能的讀寫多個數據包,將會極大的提高性能。本方法同樣適用于開源的openvpn(開源的openvpn的虛擬網卡驅動中,每次僅讀寫一個數據包)。

6 總結

通過NDIS中間層驅動實現SSLVPN時,所使用的均為實際的物理地址,一個物理地址即能做到密文通信同時也進行明文通信。

通過NDIS中間層驅動、IO控制以及響應的傳輸層安全通信手段(比如SSL協議),還能夠實現任意兩點之間的保密通信。NDIS的截獲可以只針對特定目標,完全不影響其他的正常通信。

[1]rfc2246,The TLS Protocol Version 1.0.2009.

[2]WDKDocs_12112009.chm, windows wdk.2009.

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 无码国产伊人| 熟妇无码人妻| 麻豆国产在线观看一区二区| 国产激情第一页| 无码国产偷倩在线播放老年人| 国产成人福利在线视老湿机| 久久99国产乱子伦精品免| 日本道综合一本久久久88| 欧美亚洲一区二区三区导航| 欧美日韩国产精品va| 色婷婷狠狠干| 亚洲天堂伊人| 久久黄色免费电影| 日韩AV手机在线观看蜜芽| 91福利免费视频| 国产美女91视频| 亚洲精品国产成人7777| 成人在线综合| 九色在线视频导航91| 国产经典在线观看一区| 国产激情影院| 欧美成人一级| 91丝袜美腿高跟国产极品老师| 国产自视频| 国产精品极品美女自在线| julia中文字幕久久亚洲| 四虎国产在线观看| 欧美成a人片在线观看| 久久99久久无码毛片一区二区 | 国产麻豆福利av在线播放| 在线欧美日韩| 久久香蕉国产线看精品| 日韩av高清无码一区二区三区| 国内老司机精品视频在线播出| 免费看av在线网站网址| 亚洲狼网站狼狼鲁亚洲下载| 91精品久久久久久无码人妻| 久久久久人妻一区精品色奶水 | 大学生久久香蕉国产线观看 | 国产99热| 国产情侣一区| 欧美一区二区三区国产精品| 美女无遮挡免费网站| 美女视频黄频a免费高清不卡| 欧美97色| 亚洲精品成人福利在线电影| 四虎成人免费毛片| 婷婷六月综合网| 欧美无专区| 中文字幕日韩丝袜一区| 国产成人夜色91| 婷婷午夜影院| 国产精品99久久久| 国产激情第一页| 色哟哟国产成人精品| 秋霞一区二区三区| 欧美精品亚洲二区| 国产高清无码麻豆精品| 无码内射中文字幕岛国片| 国产成人精品综合| 亚洲av无码久久无遮挡| 日韩精品免费一线在线观看| 欧美不卡二区| 免费 国产 无码久久久| 国产三级国产精品国产普男人 | 久久亚洲国产视频| 97国产精品视频自在拍| 日日摸夜夜爽无码| 国产精品流白浆在线观看| 欧美日韩中文国产va另类| 成人午夜福利视频| 亚洲精品视频免费观看| 中文字幕波多野不卡一区| 欧美一区二区三区香蕉视| 国产精品白浆在线播放| 日韩av无码精品专区| 亚洲综合九九| 国产激爽大片高清在线观看| 久久国产精品无码hdav| av天堂最新版在线| 国产91小视频在线观看| 91娇喘视频|