/logo_100x100.png

计算机系统的安全机制

最近宝强同志不幸遭遇了一场事故,可谓是赔了夫人又折兵. 男人们看到这个 新闻,然后转头看看自己的另一半,眼神也不禁若有所思. 遭遇背叛是每个人都不愿遇到的, 那么我们作为目光短浅的凡人,该如何事先做好安全措施呢?看看操作系统实现的安全机制, 也许能给大家一点启发.

和杀毒软件愉快玩耍的日子

在实际的渗透测试中,杀毒软件是个无法忽视的话题;比喻的话,就像谈恋爱最终都要见对方父母一样, 除非你不想把这层关系持续下去. 因此,本篇作文主要研究如何使自己的恶意软件(MalWare) 绕过杀毒软件的识别和查杀.

Unicode,GBK和UTF-8

看到题目,你也许会说,“又是这种月经帖,这问题我早弄清楚了”. 但如果有人问你,“Unicode,GBK和UTF-8有什么区别?”, 你能自信地给他一句简短清晰的回答吗? 如果不能的话, 那还是看一下这篇文章吧.

Linux内核转发技术

什么? linux? 内核?! 也许你会说,“拜托,这种一看就让人头大的字眼, 我真的需要了解吗?” 有句流行语说得好,没有买卖,就没有杀害. 如果在日常中需要和流量打交道,那么为了不让 自己在面对来往的海量数据时手足无措, 最好还是了解一下如何管理,过滤和转发这些数据, 让信息能被传递到该去的地方. 哪怕自己不去亲自参与管理, 也可以通过简单的了解, 让自己在围观时多一份自信,少一点懵逼.

Linux Hook 笔记

相信很多人对"Hook"都不会陌生,其中文翻译为"钩子".在编程中, 钩子表示一个可以允许编程者插入自定义程序的地方,通常是打包好的程序中提供的接口. 比如,我们想要提供一段代码来分析程序中某段逻辑路径被执行的频率,或者想要在其中 插入更多功能时就会用到钩子. 钩子都是以固定的目的提供给用户的,并且一般都有文档说明. 通过Hook,我们可以暂停系统调用,或者通过改变系统调用的参数来改变正常的输出结果, 甚至可以中止一个当前运行中的进程并且将控制权转移到自己手上.

P2P通信标准协议(四)之SIP

在前面几篇文章中我们介绍了建立p2p通信的一般协议(簇),以及一种完整的NAT传输解决方案ICE, 但是对于多用户的通信情况,还有一些通用协议来实现标准化的管理,如之前讲过的SDP和SIP等,SIP(Session Initiation Protocol), 是属于应用层的控制协议,主要用于在一个或多个参与者之间创建,修改和中止会话(sessions).会话的类型包括IP电话, 多媒体流分发和多媒体会议等.

P2P通信标准协议(三)之ICE

P2P通信标准协议(二)中,介绍了TURN的基本交互流程,在上篇结束部分也有说到,TURN作为STUN协议的一个拓展,保持了STUN的工具性质,而不作为完整的NAT传输解决方案,只提供穿透NAT的功能, 并且由具体的应用程序来使用.虽然TURN也可以独立工作,但其本身就是被设计为ICE/RFC5245的一部分,本章就来介绍一下ICE协议的具体内容.

P2P通信标准协议(二)之TURN

上一篇P2P通信标准协议(一)介绍了在NAT上进行端口绑定的通用规则,应用程序可以根据这个协议来设计网络以外的通信。但是,STUN/RFC5389协议里能处理的也只有市面上大多数的Cone NAT(关于NAT类型可以参照P2P通信原理与实现),对于Symmetric NAT,传统的P2P打洞方法是不适用的。因此为了保证通信能够建立,我们可以在没办法的情况下用保证成功的中继方法(Relaying),虽然使用中继会对服务器负担加重,而且也算不上P2P,但是至少保证了最坏情况下信道的通畅,从而不至于受NAT类型的限制。TURN/RFC5766就是为此目的而进行的拓展。

P2P通信标准协议(一)之STUN

前一段时间在P2P通信原理与实现中介绍了P2P打洞的基本原理和方法,我们可以根据其原理为自己的网络程序设计一套通信规则,当然如果这套程序只有自己在使用是没什么问题的。可是在现实生活中,我们的程序往往还需要和第三方的协议(如SDP,SIP)进行对接,因此使用标准化的通用规则来进行P2P链接建立是很有必要的。本文就来介绍一下当前主要应用于P2P通信的几个标准协议,主要有STUN/RFC3489STUN/RFC5389TURN/RFC5766以及ICE/RFC5245