导读:LWF驱动(Lightweight Filter,简称LWF)是微软Windows操作系统NDIS(Network Driver Interface Specification,简称NDIS) 6.0 引入的一种新型网络过滤驱动。LWF驱动具有更加出色的平台兼容性,甚至可以支持Windows 10,因此成为微软力荐的网络驱动实现方式,并且由此得到广泛的应用。而TISec即IP网络安全可信技术(Trust of IP Security,TISec)是一项用来保护 IP 通信安全的协议技术,系西电捷通三元对等安全架构在IP安全领域的技术应用。当TISec客户端使用LWF驱动用加密方式传输网络数据时, IP数据的完整性和机密性不仅得以高强度保护,而且IP数据的传输效率相比之前也有明显的提升。

  TISec是IP网络安全可信技术

  TISec即IP网络安全可信技术(Trust of IP Security,TISec)是一项用来保护 IP 通信安全的协议技术,也是西电捷通致力于三元对等安全架构研究在IP安全领域的技术应用实例。TISec不仅为 IPv4和IPv6协议提供完整性和机密性服务,还通过引入在线第三方实体为通信节点的身份安全和平台安全提供安全服务,从而为IP协议提供完整性、安全性、抗重放、原发鉴别以及通信节点身份鉴别和平台可信等网络安全服务。

  虽然TISec 技术并不像Windows那般被人们所熟知。然而,无论在传统办公虚拟专用网络(Virtual Private Network,VPN)、工业网络数据安全传输还是云服务网络层安全服务应用,均有 TISec技术的身影。而这一切归功于TISec能够快速为企业用户构建VPN,从而满足用户借助互联网及其他公共网络实现企业业务应用的安全需求。

  TISec LWF驱动作用于Windows系统的内核层

  早期的微软Windows操作系统如Windows XP主要依靠微软提供中间层驱动来过滤网卡数据。不过,随着系统和技术的更新,中间层驱动在微软的Windows 10操作系统中已无法正常使用。微软自NDIS(Network Driver Interface Specification) 6.0引入了过滤型驱动,即LWF驱动(Lightweight Filter,简称LWF)。而TISec技术作为一项IP 通信安全的协议技术,通过对Windows系统协议栈中传输的所有网络协议数据进行过滤,随之完成对相符合策略的数据包进行加解密处理。从结果来看,Windows LWF驱动和TISec客户端组合之后,网络协议数据传输的安全性进一步提高。

  TISec客户端和TISec LWF驱动在操作系统中的关系如下图所示:

图1 TISec客户端和TISec LWF驱动在操作系统中的关系

  由图1可以看到TISec LWF驱动是作用在系统的内核层,其本身属于NDIS6.0框架的一部分。NDIS提供了一系列对微端口驱动和协议驱动操作的接口,从而在TISec LWF驱动中可以获得网络上传输的全部数据,进而对相符合策略的数据包采用ALG(SM2/3/4)算法进行加解密处理,保证网络数据传输的安全性。

  TISec LWF驱动展示如图所示:

图2 TISec LWF驱动图示

  在传输效率方面,TISec的LWF驱动相比于之前的中间层驱动,也有一定的提升,传输速率对比如图所示:

  测试环境备注:

  2、测试PC机硬件配置:CPU:2.6G,Pentium双核,内存:2G

  3、操作系统:Win7 SP1简体中文RTM

  4、IP报文长度:300 Bytes

  5、上行:从客户端向服务器发送数据。

  6、下行:从服务器向客户端发送数据。由表中可以看到,TISec LWF驱动IP数据包的传输速率相比于之前TISec中间层驱动,提升了50%左右。TISec LWF驱动在保证IP数据传输的安全性的同时性能也得到了进一步的提高。

  LWF驱动的数据结构如何运转

  1、LWF驱动与协议驱动和微端口驱动关系

图3 LWF驱动与协议驱动和微端口驱动关系

  从图3可以看到LWF驱动是绑定在协议驱动和微端口驱动之间,所以它可以捕获到协议层发向网卡的数据,也可以捕获到网卡发往协议层的数据。同时,在同一个网卡上可以绑定多个LWF驱动,同一个LWF驱动可以同时绑定在系统中不同的网卡上。

  2、LWF驱动中数据结构简介

  在LWF中,网络中传输的数据都是同过NBL(NET_BUFFER_LIST)来表示的,其结构如下图所示:

图4 NBL数据结构

  以太网传输的数据存放在图中红色区域表示的部分。NDIS调用Filter注册的回调函数时可能传递多个NBL,而每个NBL又有可能包含一个或多个NB(NET_BUFFER),每个NB有可能包含多个MDL。所以需要遍历每个NBL,NB,MDL得到以太网的帧数据。

  LWF和TISec技术实现需要两个阶段,即LWF处理TISec加密数据流程和LWF处理TISec解密数据流程。当由协议层向网卡发送数据时,TISec LWF驱动会对相关数据进行加密封包处理。当网卡接收到由网络上传来的数据时,TISec LWF驱动会对相关数据进行解密封包再发送。

  LWF处理TISec加密数据流程

图5 LWF处理TISec加密数据流程

  首先,NDIS会调用LWF在DriverEntry函数中注册的SendNetBufferListsHandler的回调函数,这时就能得到NBL及其Raw Data。在代码中对其目的IP地址进行判断是否需要进行加密封包。如果不需要直接调用NDIS API:NdisFSendNetBufferLists发送这个NBL即可。如果需要,则要创建一个新的NBL来封装加密后的数据。然后调用API:NdisFSendNetBufferListsComplete丢弃原来的NBL,再调用API:NdisFSendNetBufferLists发送创建的NBL。当数据通过网卡发送完成后,NDIS再调用注册的SendNetBufferListsCompleteHandler回调函数,这时需要在此释放创建的NBL的内存。

  LWF处理TISec解密数据流程

图6 LWF处理TISec解密数据流程

  首先,NDIS会调用LWF在DriverEntry函数中注册的ReceiveNetBufferListsHandler的回调函数,这时就能得到NBL及其Raw Data。在代码中对网卡数据帧的源IP地址端口等进行判断是否需要进行解密封包。如果不需要则直接调用NDIS API:NdisFIndicateReceiveNetBufferLists向NDIS发送这个NBL即可。如果需要,则创建一个新的NBL来封装解密后的数据。再判断当前NBL的ReceiveFlags是否为NDIS_TEST_RECEIVE_CANNOT_PEND。如果为假,调用API:NdisFReturnNetBufferLists丢弃原来未解密的NBL,再调用API:NdisFIndicateReceiveNetBufferLists发送创建的NBL。当协议层收到这个数据帧后,NDIS调用注册的ReturnNetBufferListsHandler的回调函数,在此释放创建的NBL的内存。如果NDIS_TEST_RECEIVE_CANNOT_PEND为真,代表NDIS以同步方式调用ReceiveNetBufferListsHandler的回调函数,此时不能丢弃原始NBL,先调用API:NdisFIndicateReceiveNetBufferLists向NDIS发送原始的NBL,再设置新NBL的ReceiveFlags为NDIS_RECEIVE_FLAGS_RESOURCES,然后调用API:NdisFIndicateReceiveNetBufferLists向NDIS发送新的NBL,发送完成后立刻释放新NBL的内存,此时不能依赖在ReturnNetBufferListsHandler的回调函数内释放内存。

  总结

  LWF驱动是微软推荐的网络驱动的实现方式,具有更好的平台兼容性(如支持Windows 10),因此也得到广泛的应用,如VMware,VirtualBox等产品都使用LWF实现其功能。TISec客户端使用LWF驱动保证相关网络数据都以加密的方式进行传输,从而确保了IP数据的完整性和机密性,同时利用TISec的通信节点身份鉴别和平台可信等技术,为用户提供更可靠更有效的安全服务。

西电捷通: Windows LWF驱动如何兼容TISec客户端相关推荐

  1. 西电捷通TISec解决方案保障配电网通信安全

    引言  智能电网是"中国制造2025战略"的重点突破领域.智能电网是一种高度自动化的数字化电网,在开放系统和共享信息模式的基础上,可以无线/有线通信系统.自动控制系统以及分布式智能 ...

  2. 从WLAN的安全威胁 西电捷通解析电信诈骗技术症结

           从WLAN的安全威胁 西电捷通解析电信诈骗技术症结 导读:互联网的无线接入已经成为大趋势,其中无线局域网(又称为WLAN,Wireless Local AreaNetwork)以其使用方 ...

  3. Portal: 西电捷通TISec®技术

    西电捷通官网主页有简略介绍 http://www.iwncomm.com/cn/ShowArticle.asp?ArticleID=429

  4. IP网络安全可信技术西电捷通TISec应用场景详解

    摘要  TISec(IP网络安全可信技术,Trust of IP Security,简称TISec)是一项用来保护 IP 协议的的安全技术,也是西电捷通三元对等鉴别安全架构在IP安全领域的应用实例.它 ...

  5. 下一代以太网安全与西电捷通TLSec技术

     西电捷通系统安全技术研究 摘要:伴随云计算的蓬勃发展,全球

  6. 西电捷通:TISec系统的高可用性架构

    TISec即IP网络安全可信技术(Trust of IP Security,TISec)是一项保护 IP协议的安全协议,也是西电捷通三元对等安全架构在IP安全领域的应用实例.TISec技术不仅为 IP ...

  7. 物联网技术西电捷通TRAIS符合性检测系统的应用研究

    引言   随着信息技术与网络的快速融合发展,以射频识别(Radio Frequency Identification,简称RFID)应用为主要内容的物联网逐渐走进人们的生活,使得无处不在的网络应用成为 ...

  8. (新西达30A电调+1400KV电机)无人机(航模)电调解索和驱动方法

    无人机(航模)电调解索和驱动方法(新西达30A电调+1400KV电机) 经过一天的时间才完成电调的解锁和驱动,在网上一直看到别人说PWM频率需要50HZ,其实不然,频率并不固定大家大可在50HZ~50 ...

  9. 微机原理实验8254计算机钢琴,GitHub - SincereXIA/PianoMFC: 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC...

    PianoMFC 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC 需要连接西电微机原理实验室提供的 QTH9054 微机试验箱,使用其蜂鸣器发声,若不连接,程序会直接播放 mp3 文 ...

最新文章

  1. DEDE-Function ereg_replace() is deprecated in ..line 2
  2. 国防科大 linux教程,国防科大《嵌入式系统》肖侬视频教程
  3. ubuntu 12.04 php升级,在 Ubuntu 12.04 LTS 中将 PHP 从 5.3 升级到 5.5
  4. 【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )
  5. socket通信之最简单的socket通信
  6. 7系统软raid_使用图形界面来配置RAID
  7. 【jQuery插件】Twitter Search
  8. 如何通过方法(函数)来实现两个基本数据类型的数值交换
  9. java txt 写入pdf_java学习笔记 读取pdf文件并写成txt文件输出
  10. 这样的极客大会千万别停!如今中国太需要为技术传道、为极客正名
  11. 你靠什么在单位立足?此文堪称经典
  12. doe五步法_DOE方法介绍
  13. 【JavaScript】使用DOM修改和查询CSS内联样式
  14. 室内定位——卡尔曼滤波原理、Matlab与javascript实现
  15. 洛谷4234最小差值生成树题解(最小生成树+LCT)
  16. 微信小程序头像怎么改变形状_微信小程序 上传头像的实例详解
  17. Python批量抓取swissadme数据——smiles
  18. python数据汇总_Python,将数据框中的每日数据汇总到每月和每季度
  19. 微信H5如何直接关注公众号
  20. 椭圆一般方程和参数方程之间关系

热门文章

  1. Android多渠道打包的几种常用工具
  2. 显示器显示“输入不支持”
  3. 机器人锤石下路组合_下路骚套路—辅助二人组之:锤石+机器人
  4. java工程师-面试知识点总结
  5. sqlserver 动态sql执行execute和sp_executesql
  6. 计算机开始里怎么没有运行程序,启动文件夹没有了? 解决电脑启动文件夹消失或程序开机自启失效的教程...
  7. BZOJ3351 [ioi2009]Regions
  8. 南大软件所6月面试经历(结果为:寄)【2022】
  9. java基于Springboot+vue的好口味水果果蔬销售商城网站
  10. 百度地图使用模拟器报错java.lang.IllegalArgumentException: No config chosen