阅读:2461回复:12
请问那位能完整地分析一下在socket、tdi和imd这三层进行数据加密的优缺点?分数可不少吆!
我知道加密的层次越高,它的效率越高,但那一位能不能完整地分析一下这三层各自其他方面的优缺点。
|
|
沙发#
发布于:2002-06-23 08:38
不知道为什么分数最多只能给到19分,一到20分以上它就提示您超过了最大可用分!
|
|
板凳#
发布于:2002-06-23 12:13
socket: 只能拦截使用处于用户模式winsock dll库的程序。像其他的协议ipx,netbios...等等是不能拦截的。
tdi: 遵循tdi接口的所有tdi驱动,都可以拦截。但是不使用tdi的协议没法拦截。 imd: 可拦截所有数据。 |
|
地板#
发布于:2002-06-27 15:25
在不同层加密的目的是不同的。如果在socket一层则是针对一种或几种高层协议如:TCP、UDP等。而TDI实际上是socket(用户模式)对应windows内核中的接口。本人建议能在用户模式下做的最好不在内核中做。至于ims则针对所有原始的包。
|
|
地下室#
发布于:2002-06-27 18:07
我知道加密的层次越高,它的效率越高,但那一位能不能完整地分析一下这三层各自其他方面的优缺点。 \"我知道加密的层次越高,它的效率越高\"-------------??? :) |
|
|
5楼#
发布于:2002-06-29 10:50
谢谢楼上各位的回答。magicx大侠,我的意思是说,层次越高,处理起来越简单,代码越短,效率自然就越高,不知您有什么见解?
|
|
6楼#
发布于:2002-06-29 10:54
谢谢楼上各位的回答。magicx大侠,我的意思是说,层次越高,处理起来越简单,代码越短,效率自然就越高,不知您有什么高见?
|
|
7楼#
发布于:2002-07-03 21:00
谢谢楼上各位的回答。magicx大侠,我的意思是说,层次越高,处理起来越简单,代码越短,效率自然就越高,不知您有什么高见? 一种为编程的效率。 一种为代码实际运行的效率。 :) |
|
|
8楼#
发布于:2002-07-04 07:56
[quote]谢谢楼上各位的回答。magicx大侠,我的意思是说,层次越高,处理起来越简单,代码越短,效率自然就越高,不知您有什么高见? 一种为编程的效率。 一种为代码实际运行的效率。 :) [/quote]我认为,层次越高,编程的效率自然就越高,但代码实际运行的效率在各层之间的比较我就不清楚了,是不是tdi层高于imd层,imd层又高于socket呢?请大侠指教。 |
|
9楼#
发布于:2002-07-04 08:02
[quote][quote]谢谢楼上各位的回答。magicx大侠,我的意思是说,层次越高,处理起来越简单,代码越短,效率自然就越高,不知您有什么高见? 一种为编程的效率。 一种为代码实际运行的效率。 :) [/quote]我认为,层次越高,编程的效率自然就越高,但代码实际运行的效率在各层之间的比较我就不清楚了,是不是tdi层高于imd层,imd层又高于socket呢?请大侠指教。 [/quote] 不尽然。 嗬嗬! |
|
|
10楼#
发布于:2002-07-05 11:33
大侠,发表一下高见呀!
|
|
11楼#
发布于:2002-07-05 13:18
这个问题不难回答吧?大家怎么都见死不救?我来回答!
先说SOCKET层,SOCKET层是在应用层实现的!属于OSI的APPLICATION LAYER和PRESENTATION LAYER还有SISSTION LAYER之间,他存在的目的是为了实现协议透明!就是为了让应用程序可以在烦琐的各类协议中使用统一的接口!有了SOCKET之后所有的协议对于应用程序来说都不明确存在!只有插口[SOCKET]的概念~~那么如果想把自己为WINSOCKET添加功能的方法主要有2一是写WINSOCKHELPER、另一个是写SPI!好处是简易高效!因为他面对的只是调用WINSOCK的应用程序!还有的其他办法就是HOOK WS_32.DLL和替换WS_32.DLL!这两种方法看起来好象技术含量比较高!但是替换WINSOCK实际上是不科学的!因为系统文件API的BUG不确定性可能随时打一个补丁就把你替换的文件给换回来了!那么基于这样机制的程序必然会出错~~HOOK呢~有他独到的用处~~比如做跟踪!一般写网络游戏的外挂就是采用了这种方法和内存动态修改想结合~~但是现在的主要趋势有向这方面走的倾向! :D 再要说的就是HOOK-TDI其实这层我本人并没有很深刻的研究过!我只能当作吹牛来说说吧~~不足的地方相信师父他老人家会指出的!TDI是微软为了实现他的TRANSPORT LAYER而提供的库,他是系统层和应用层的临界!这层最经常用来做数据包的跟踪!如果大家的概念还是停留在协议而不是OSI层和模块的话!下面的话可能会白说!对于协议我们只能把他当成网络的一块砖!OSI是一面墙,这个墙是由许多块砖组成的TDI呢就好象是水泥!把这些砖连接起来发挥他们的作用!通过HOOK TDI就知道哪个协议模块[或者说驱动]正在被哪个线程调用来做什么!然而就是因为TDI的高层和他的角色特殊,所以他只能实际有效的修改传输层协议的包比如TCP、UDP等,对于其他的纯网络层和DATALINK层的包它一般就接触不到的!在这里就可以有选择的处理你想MODIFY的协议的数据包!这样效率就会很高,起码不会为了IPX而多几个IF~~记得师父的第一个VPN就是在这里做的!因为他只处理TCP! 接着IMD这层我还是比较熟悉的:IMD是建立在DATALINK层的[怎么会一下子跳到这层了?对!没错!因为我们没有说TDI层!只说了HOOK-TDI也就是比协议更上了一层]!这层的生存意义是为了实现设备不透明,也就是象WINSOCK一样!只知道MINIPORT不直接处理设备的兼容问题!那些是NIC MINIPORT的事情!这也就是为什么不在NIC MINIPORT层写应用驱动的原因!这个扯远了~~再说回来!IMD的好处就是可以收到所有的包!这个大家都很清楚!而且可以随意改动,但是存在个绑定次序的问题,大家都用过NETWORK MONITOR和NETXRAY也知道它们收到的包都是MAC包~~为什么呢?PPPOE或PPP就为什么收不到呢?就是因为这两个协议是在IMD实现的!他已经把链路不透明化了!那有的人说,我把SNIFFER的驱动写在IMD层不就可以得到了么??不一定!地锦草可以看看网上邻居的属性的高级菜单里面的高级设置这就是设置绑定的!它的先后次序决定了谁先得到包!而PPPOE在这里却成了被绑定的对象了~~为什么啊????因为安装的时候INF里面把它当作“NET”来安装了!而PASSTHRU是SERVICE!这些都是INF里面决定的~~又扯远了!但是我们可以肯定的是IMD是很稳定的!为什么呢?因为HOOK很依赖与某些NATIVE API和接口函数的版本!如果微软让你三更死驱动崩溃不到五更!而且他可以避免许多不为人知的HOOK漏洞!如果真的要讨论IMD和HOOK谁更好~~哪篇幅长了!不过我可以肯定的说IMD是大多数平台的BEST CHOOSE! 关于加密的问题呵呵~~我想我就不开口了~~~~因为又一位真正的IPSEC高手正在网络的另一端看着我这个师门弄斧的毛徒~~呵呵~~ 我敢说国内做IPSEC的还没几个人敢和这个家伙叫板的~~他老人家都没出手我凑什么热闹啊~~呵呵~~~不过话说回来!清水和我是有一定交情的!所以我也只好硬着头皮来帮他打打气~~希望大家支持啊! :D :D :D |
|
|
12楼#
发布于:2002-07-13 01:20
top就是高,够朋友,关键时候还是要靠你出马,多谢了,前几天有点事,没及时感谢,而且分数都给前几位了,见谅,见谅!
[编辑 - 7/13/02 by qingshui] |
|