Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

linux的进程树

<br />linux的树形进程结构为管理进程提供了很大的方便,不管是内核对进程的管理还是用户对进程的管理都受惠不少,对于审计也是很有用的,不管运行的什么进程,都会有一条不会断的线索将之绑在系统内部。整个系统的情况就是首先内核启动,接着内核线程0派生出init,然后init派生出万物,...

2010-07-28 22:26:00

阅读数:5666

评论数:1

shc程序的原理--以实例分析

<br />有人想加密自己的perl脚本,有人想加密自己的php,有人认为bash编程并不是真正的编程,因为它们的源代码都是可见的,不像c程序那样,一旦经过编译就再也不可读了...其实这是一种误区,其一就是c语言编译而成的平台相关的elf或者pe文件并不是完全不可读,只是对于应用者不可...

2010-07-28 22:08:00

阅读数:6362

评论数:2

ASN1标准对OID的编码

<br />asn1对OID的编码有一些规定,形如a.b.c.d.e的OID被编码的时候,完全可以按照der的编码规则将整个oid的类型设定为object,然后将每一个点分数字的类型设定为integer,最终编码为[obj|length[[int|lena[a]]][int|lenb[...

2010-07-27 21:00:00

阅读数:4767

评论数:0

ssl握手协议中的CipherSuite

<br />下面是一个ssl握手的过程,没有进行客户端验证:<br /> 1.C-S:ClientHello---cipher-suit-list<br /> 2.S-C:ServerHello---selected-cipher-suit<br /&...

2010-07-20 22:34:00

阅读数:10161

评论数:2

PKCS#11的应用--USBKEY

ssl是一个安全协议,为互联网应用提供了安全,数字证书被证明能够带来比单纯的密码或者指纹,瞳孔认证之类的方式更安全的保护,可是如此安全的机制需要一个安全的基层平台,事实证明计算机并不是一个足够安全的平台,计算机好比公共汽车,而操作系统以及C库的调用规范或者安全级别的设计被视为道德,众做周知道德不是...

2010-07-19 22:04:00

阅读数:5243

评论数:0

tcp关闭连接时的四次挥手

<br />众所周知,tcp要3次握手来建立连接,而断开连接却需要4次挥手,为何需要4次挥手,同时需要那么多的wait状态,比如wait1和wait2状态,那是因为在建立连接的时候,收发双方都是“纯净”的,客户端发送syn的时候,服务器并没有什么数据要发送,而只是需要发送一个synac...

2010-07-19 21:29:00

阅读数:6401

评论数:4

linux关于tcp协议ack的实现--总结和公平性问题

<br />tcp是一个可靠连接的协议,但不要指望它是什么理论的实现,它是实践的东西,任何实践的东西背后都不是一个理论,而是一大堆理论,tcp正是单一停等,GBN(回退N)以及SR(选择重传)的结合体,单一停等是最原始的理论,但是带宽利用率太低了,后面的GBN实现了流水线式的数据发送和...

2010-07-18 10:06:00

阅读数:3637

评论数:1

linux关于tcp协议ack的实现--发送端对ack的处理

<br />前面的文章分析了接收端如何发送ack给发送端,总结一下就是立即ack,捎带ack和延迟ack,现在看一下tcp的发送端是如何处理ack的,本质上tcp所谓的有连接就是双方对于seq和ack的处理,对于seq,发送方是主动的,而接收端是被动的,但是对于ack则相反,因此参照t...

2010-07-17 10:50:00

阅读数:6296

评论数:1

linux关于tcp协议ack以及乱序报文暂存的实现--立即ack/延迟ack/捎带ack

tcp需要ack,可是为了效率,并不是每发送一个数据都要等待ack,而是利用窗口机制,积累发送ack的,当然在某些特殊情况下还是需要马上发送ack的,比如接收到乱序的数据,这种情况下,虽然接收端可以将乱序的数据包暂存,但是接收方必须发送一个ack号为按序的期望的序列号的ack给发送端,另外就是接收...

2010-07-15 22:26:00

阅读数:8753

评论数:0

将stunnel修改成一个透明代理--附:setjmp/longjmp

<br />stunnel的代码很简单,简单得没法形容,其执行过程分为下面几个部分:<br /> 1.main-loop:<br /> while(1) {<br />     fd = accept<br />     do_c...

2010-07-15 21:24:00

阅读数:7116

评论数:0

关于linux的段错误(Segmentation fault)

<br />1.Segmentation fault这个字符串在shell中是谁打印的?<br /> 这个字符串实际上是bash(或者别的shell)打印的,而不是当前出错的进程,也不是内核,参见bash源代码的WAITPID (-1, &status, 0))语...

2010-07-14 21:19:00

阅读数:7738

评论数:1

纯用户空间抢占式多线程的设计

<br />纯用户空间的抢占式多线程库其实是很麻烦的一件事,在设计之前首先必须明白抢占式多线程的意义,其本质就是古老的unix多道程序设计,策略可以是分时的,也可以是其它任何的调度策略,不管什么策略,机制要素都是底层的OS内核和机器硬件提供的,对于x86上的linux来说,这些要素包括...

2010-07-14 21:17:00

阅读数:3872

评论数:4

拥有奢侈品的人不一定是强者

<br />这个世界从来不是依据一个人得到了什么东西而定位一个人的价值的,而是依赖他/她/它创造了什么。在原始社会,男女是平等的,女人采集的果品虽没有男人带回的肉食美味,可是数量却多很多,因此男女平等,后来人口增加了,男人们发动了大规模的战争,于是拿不动武器,干不了农活的女人便自此开始...

2010-07-10 10:24:00

阅读数:2140

评论数:3

透明代理与ssl协议

<br />透明代理实质上类似一种拦截,客户端以为自己访问的是自己要访问的服务器,实际上这次访问早已被所谓的透明代理接管了,透明代理主机将用户的访问重定向到本机的应用层代理进程,从用户发出的http协议头中得到用户需要访问的地址信息,然后代理用户去访问或者按照本地的配置给予策略化的服务...

2010-07-10 10:03:00

阅读数:4462

评论数:0

网络协议设计的一点思考

<br />分层协议一般都提供一种或几种固定的服务,这些服务中高层一些的大多数都是通过“握手”动作来协商的,另外一些比较底层的服务则是协议本身提供的,比如udp服务,ip服务等。下层的握手过程对上层不可见,握手其实就是协商一条带有一定功能(可以提供一定服务)的虚拟链路,握手完成之后,下...

2010-07-08 20:47:00

阅读数:3232

评论数:0

linux中nat的若干细节--基于2.6.8和2.6.17内核分析

在netfilter的nat模块中有一个alloc_null_binding函数,该函数在local_in这个hook点上会被调用,在nat没有初始化的时候也会被调用,在这两种情况会被调用,netfilter规定可在postrouting和local_in执行snat,但是local_in的时候t...

2010-07-07 22:43:00

阅读数:3719

评论数:0

没有#!的bash脚本的执行

<br />有些bash脚本写的不规范,没有在文件开头写#!,但是却能直接执行,可是如果看内核代码,shell脚本的加载函数中的开头就会判断,如果没有#!的话就会返回错误:<br /> static int load_script(struct linux_binprm ...

2010-07-07 22:08:00

阅读数:3581

评论数:0

ssl协议中的dh算法的pre-master-secret

ssl3_send_client_key_exchange是openssl中客户端确定密钥的函数,同时也发送了“一部分”数据给服务器,这一部分数据就是所谓的pre_master,不管是客户端还是服务器都根据对端传过来的pre_master和自己计算出来的另一部分数据来生成最终的对称密钥,生成过程中...

2010-07-06 22:35:00

阅读数:18573

评论数:4

mozilla的分层IO架构

<br />mozilla的IO实现是分层的,本质上和BIO是一样的,只是写法不同罢了,最上层,mozilla封装了一个结构体:<br /> struct PRFileDesc {<br />     const PRIOMethods *methods; ...

2010-07-06 22:30:00

阅读数:2380

评论数:0

mozilla的安全架构

<br />mozilla在安全方面主要分为三大块:1.SSL协议的实现;2.Crypto库的实现;3.PKCS#11的实现最顶层是ssl的实现,和openssl不同,mozilla是自上而下设计的,因此mozilla并没有抽象出诸如BIO或者EVP之类的通用机制,可以它实现了一个PR...

2010-07-06 22:29:00

阅读数:2425

评论数:0

提示
确定要删除当前文章?
取消 删除