版权申明:此文转载自appleleaf

 

路由是IETF镇宅之宝,BGP又是其中的定海神针,其安全的重要性自然不在话下。IETF为此专门成立了一个工作组 – RPSEC(Routing Protocol Security Requirements) 关注于路由协议的安全威胁的分析以及安全需求文档的制定。但是折腾了几年在08年concluded了。仅仅搞出来了一篇RFC-Generic Threats to Routing Protocols (RFC 4593)以及一篇无疾而终的draft-BGP Security Requirements

l Stephen T. Kent

其实在伟大的Y. Rekhter(路由界的不二大牛,Juniper的Fellow,70+ RFC的Author及Co-Author)和天才路由小子Tony Li制定BGP4协议不久,就有人关注了BGP的安全问题且提出了解决方案。

其一就是Stephen T. Kent,“BBN Technical”information security域的首席科学家。BBN 这个公司,在国内少有人知,专注于research,对外出售Idea, consulting,创新的产品等。因此大脑是该公司的最珍贵的资源,其雇佣的员工很多都是牛人。该公司的产品主要是一堆书,一堆paper,一堆专利,一堆软件和prototype等等。这样类型的公司不知道在国内是否存在。

大家看看BBN是怎么卖东西的:

#1979 BBN sells Telenet to GTE for $10M

#1993 BBN sells SimNet to Loral for $6M

#1994 BBN participates in sale of Lightstream to Cisco for $120M

#1996 BBN sells majority interest in Domain Solutions for $36M

#1997 BBN sold to GTE for $616M

#2000 BBN sells Cybertrust to Baltimore Technologies for $150M

……

Steve应该只是其中一个子部门(information security)的首席(比陈首席还差一点)。

clip_image002

BBN似乎还有其他部门同军方有关,做一些军用产品研究。

Steve其主要作品有如下一票RFC:

[RFC 1108] U.S. Department of Defense Security Options for the Internet Protocol.

[RFC 1114] Privacy Enhancement for Internet Electronic Mail: Part II — Certificate-Based Key Management.

[RFC 1422] Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management.

[RFC 1430] A Strategic Plan for Deploying an Internet X.500 Directory Service.

[RFC 2401] Security Architecture for the Internet Protocol.

[RFC 2402] IP Authentication Header.

[RFC 2406] IP Encapsulating Security Payload (ESP).

[RFC 2410] The NULL Encryption Algorithm and Its Use With IPsec.

[RFC 3779] X.509 Extensions for IP Addresses and AS Identifiers.

[RFC 4301] Security Architecture for the Internet Protocol.

[RFC 4302] IP Authentication Header.

[RFC 4303] IP Encapsulating Security Payload (ESP).

[RFC 4304] Extended Sequence Number (ESN) Addendum to IPsec Domain of Interpretation (DOI) for Internet Security Association and Key Management Protocol (ISAKMP).

其中的IPSEC系列作品搞×××的兄弟应该是不断参考了吧,RFC2401是我这个外行耳朵都听的起茧子的RFC了,这老兄是其唯一作者。这老兄还是VoIP安全专家。在写Paper,RFC工作之余,Steve还兼顾管理工作,是IETF安全域数个重要工作组(pem,pkix)的chair以及IRTF Privacy and Security研究组的chair。1983到1995 Steve是IAB(Internet Architecture Board)的成员,可以参照http://www.iab.org/about/history.html。IAB或许很多人不了解,其实就是Internet的架构委员会,是IETF/IRTF的首脑之地,全世界总计就10几个人,只有无敌大牛才能入选,我们华人中有幸有Lixia Zhang教授(刚才我的输入法首先蹦出了“叫兽”二字,不过这次不敢造次了)入选。

Steve较早提出了BGP的安全解决方案 – Secure BGP Project (S-BGP) http://www.ir.bbn.com/sbgp/

l Russ White

Russ White是Cisco的路由协议设计架构组的Architect. 前面提到的IETF RPSEC (Routing Protocols Security) working group的co-chair,一堆图书的作者。

主要作品有:

clip_image004

还有另外一票的图书可以在亚马逊找到,称得上是著作等身。

Russ提出了SoBGP (Secure Origin BGP)–

http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_6-3/securing_bgp_sobgp.html

当然还有很多其他的解决方案。

 

 

参考前述的RPSEC工作组的成果我们来分析一下路由协议以及BGP之中的安全问题。

首先有一个前提,ugly的协议软件实现会带了很多安全漏洞,这个不值得我们讨论,这里讨论的是协议设计上没有cover的安全隐患。另外一些加密之类的简单场景就不用讨论了。

路由协议的基本组件如下:

1.传输子系统

对于OSPF就是IP,对于BGP就是TCP。传输层面的安全,我们掠过。其中包括一些问题,例如嗅探,会话劫持,信息篡改等等问题笔者认为可以用常规的方法,例如TLS等解决。不过对于OSPF相关的组播安全好像尚未制定标准。

2.邻居状态维护

邻居之间要有认证等等问题,如何确定一个路由器有权代表某AS(autonomous system) number通告路由是路由协议中的未决问题。

3.路由信息维护

路由信息的问题最大,尤其是路由与AS的关联,即一个AS是否是其通告路由的真正拥有者是路由安全的基本问题。

我们以BGP为例来说一下这一问题。

假定Appleleaf的AS属于中国电信,首席的AS属于AT&T。

由于misconfig或者被***或者whatever什么问题,Appleleaf的AS向全世界通告:陈怀临家的IP在我的AS中,且Appleleaf的AS Path看起来更舒服,于是首席家的流量都跑到Appleleaf这边了(科学的说法是首席被从internet踢出去了),首席自然也就无法上弯曲发文了。

BGP协议并未cover这个问题,而现实世界中笔者记得也听说过有这样的Bad Guy AS,像黑洞一样吸收和很多的internet流量,最后把自己噎死了,损人且不利己,因此安全问题不是耸人听闻。对于ISP,Traffic就是金钱,断开一天Revenue损失1/356,ISP对此问题最为关注。

上述问题是IGP, EGP路由协议共有问题,但大家都不太关注IGP,原因在于IGP的东东都在一个AS内部,安全问题是家事,清官难断家务事,自己捣鼓去吧。

 

 

前文提到的Stephen Kent在1997年开始研发的,由于Steve是IPSec的作者,PKI工作组的主席,因此其方案也深受正统安全思想的影响,高举高打,对于端到端安全Steve建议采用IPSec(而后文介绍的SoBGP则建议使用TLS),对于认证则建议采用PKI。其研究成果含代码可以在这里找到。

SBGP对于BGP的安全问题归纳和分析的很详细,很有意义,但在这里不再重复。SBGP实现相对比较繁杂,引入了较多的名词术语,为了避免重复协议内容,搞乱了大家的头脑,笔者对其协议基础简介如下:

首先区分了两种实体,地址拥有者和AS号码拥有者,这两者可能不同(实际是相同的都是ICANN),因此建立了两个PKI:

第一个PKI用于地址所有权的验证,ICANN(Internet Corporation for Assigned Names and Numbers)是负责Internet中自上而下的分配IP地址的机构,其负责对外批发地址,对于我国来说从其亚太分支机构APNIC搞二次批发,国内再怎么向下零售以及一个IP多少钱,我就不太清楚了。为此自ICANN而下建立PKI信任体系。为所有参与BGP 通告的地址所有者(AS)进行地址块所有权认证。

第二个PKI,类似,用于AS Number所有权认证,其实也需要ICANN搞。

有了这两个信任树就可以为所欲为了,例如。

1.可以查询AS Path的origin AS是否有权产生某一路由的通告,这可以由第一棵树来进行验证,就是SBGP之中所谓的AA(Address Attestation)。

2.可以验证某个路由器是否被AS授权代表AS发言,这个由第二棵树搞定。

3.最有趣的是AS Path的验证,其问题就是如何确定整条AS Path是真的,没有人插进去什么东东。SBGP采用的方式是由途径的AS不停包包子或千层饼的方式,每次路过一个AS,该AS就对前面的内容打包并且在外面盖戳。***者无法进行修改。

其他验证问题也可以推而广之。

对于这类信任相关的问题,由于有公有的PKI机制,因此即使路由器被攻陷,可以自杀,但无法对外进行破坏从而波及整个Internet。

但SBGP有一些显著的问题:

1.PKI系统的部署,要求从ICANN开始,谁出这个钱?

2.路由器的CPU做这么多安全操作,performance如何是好?

3.分布式数据库如何维护同步?

SBGP自知理亏,也做了一些研究,提出了一些cache之类的方案。

下图是SBGP组件总图,够酷吧。

image

 

 

SoBGP是前文提到的Cisco的Russ White提出的,与SBGP相比,SoBGP是轻量级方案,不需要建立专用PKI,相对易于部署。代价就是安全性相应的降低了,可以cover的安全威胁少。

SoBGP同SBGP的信任模型不同,SBGP是专用的PKI系统,采用单一的trust root。而SoBGP采用web of trust模型, 顶级信任授权者可以可以是商用的公司例如Verisign,也可以是top-level backbone service provider。即SoBGP可以有一组顶端的信任授权机构,这也是针对某些对于SBGP的开销质疑的一种改进或tradeoff。

SoBGP的第一个目标是验证:Are You Authorized? 看下图:

image

上图是如何验证地址授权,右侧的实体证书就是前面提到的,每个AS一个,绑定公钥和AS Number,左侧是相应AS签名的地址块信息,细心的读者可以看到,其前缀空间的自上而下的包含关系。这个关系表明了自上而下的地址空间的分配授权。这个地方SBGP和SOBGP本质类似,只不过二者信任模型不同,前者只有一个trust anchor,后者使用了web of trust模型,这样可以利用现实世界中已有的trust anchor。

第二个目标是“Do You Really Have a Path? ”

这个地方是SoBGP的创新,每个AS签名并对外发布其直连的AS,并在BGP路由系统中传播,原理同路由本身的传播类似。系统稳定之后,最终每个BGP AS都可以建立全局的AS关联信息,形成Inernet连接全图如下:

image

对于收到的AS Path,AS可以在图中检查,看看是否真有此等路径,从而防范AS Path的伪造。对于这个idea笔者非常佩服,beautiful architecture。但是仔细想想,如果***者改动了AS Path且使得AS Path在图中存在则SoBGP就检查不出来了,因此对于AS Path的真实性,SoBGP只是部分解决。

其他的BGP安全方案还有多套,笔者印象中至少看到4,5个(例如IRV-Internet Route Veri?cation 之类的),还有一些中外学生的论文提出了解决方案等等。另外目前SIDR正在制定BGP安全标准,已发布了6篇工作组draft,其中Steve参与了大多数文稿的制定,看来姜还是老的辣,他老哥还是占了上风。不过目前还没有一篇正式的RFC公布,任重而道远。有感兴趣的读者可以补补笔者这个系列,例如目前的工作组draft内容,走向以及其它的BGP安全解决方案,估计至少还可以补出4篇来,这些都源于BGP协议本身的重要性。