深入浅出详解RPKI(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-12 02:01:27

点击下载

作者:秦小伟

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深入浅出详解RPKI

深入浅出详解RPKI试读:

前言

RPKI(Resource Public Key Infrastructure,资源公钥基础设施)技术最早起源于描述S-BGP(Secure Border Gateway Protocol ,安全边界网关协议)方案的论文中。S-BGP提出了一种附加签名的BGP消息格式,用于验证路由通告中IP地址前缀和传播路径AS号的绑定关系,避免路由劫持现象的发生。基于这样的设计,数字证书和签名机制被引入BGP范畴,从而顺理成章地引出对一套公钥基础设施(PKI)的支持。

RPKI标准化工作是在互联网工程任务组(The Internet Engineering Task Force,IETF)的域间路由安全(Secure Inter-Domain Routing,SIDR)工作小组开展的。自2012年2月推出第一篇标准文稿开始,至今已经发布了总计29篇RFC(Request for Comments)。因此,在一定意义上RPKI是由一系列互联网技术标准规范的工程应用。RPKI的出现,让IP地址的合法持有者以明确的、可验证的方式授权某个AS作为其特定IP地址路由通告发起者成为现实。2016年4月,在布宜诺斯艾利斯举办的IETF 95会议上,SIDR工作小组宣布RPKI相关技术的标准化工作已基本完成,RPKI俨然已经成为支撑域间路由安全的重要保障体系。

为加速RPKI技术在中国的推广,使广大中国互联网安全从业者更好地理解和应用RPKI技术,我们在IETF制定的RFC基础之上,结合中国互联网络信息中心(CNNIC)部署和运行RPKI的实际经验,编写了《深入浅出详解RPKI》。本书由长期从事互联网基础设施运行、IP国际业务、国际标准研究与制定、软硬件开发等一线工程师编著而成。理论深入浅出、论述简明扼要,立足于实际运用和开发,适合RPKI技术初学人员、网络运维工程师以及网络安全研究人员等使用。

本书从以下3方面介绍:

一是以IETF制定的RFC为基础,全面介绍RPKI的语义语法、组成架构、工作原理。这是RPKI的立足点,同时也是本书不但解释“是什么”、还要问“为什么”的特色,帮助读者全面掌握RPKI的来龙去脉与技术精髓。

二是以实际应用与操作为目的,突出理论指导应用与操作的理念。IETF制定RPKI规范的关键在于应用、部署、推广,本书充分体现了RPKI的实用性,给出RPKI实际应用案例和环境搭建,让读者能够了解和感受在实践中如何开发和部署RPKI。

三是以最新资料为亮点。互联网技术日新月异,本书全面参考2017年4月更新的RFC,把读者所需要的最新标准规范、最新使用案例、最新操作方法等一一呈现出来,以便及时解决RPKI部署中所遇到的难点、疑点。

由于水平有限,本书如存在不当之处,敬请广大读者批评指正。秦小伟2017年4月21日缩略语AS:Autonomous System 自治系统AFRINIC:Africa Network Information Centre 非洲互联网络信息中心AIA:Authority Information Access 权威信息访问APNIC:Asia Pacific Network Information Centre 亚太互联网络信息中心ARIN:American Registry for Internet Numbers 美国互联网号码注册中心BGP:Border Gateway Protocol 边界网关协议BGPsec:Border Gateway Protocol Security 边界路由协议安全CA:Certification Authority 认证权威CMS:Cryptographic Message Syntax 密码消息语法CNNIC:China Internet Network Information Center 中国互联网络信息中心CP:Certificate Policies 证书策略CPS:Certificate Practice Statement 证书操作声明CRL:Certificate Revocation List 证书撤销列表EE:End Entity 终端实体IP: Internet Protocol 互联网协议INR:Internet Number Resource 互联网号码资源IANA:Internet Assigned Number Authority 互联网号码分配机构LACNIC:Lation American and Caribbean Internet Address Registry 拉丁美洲和加勒比海互联网地址注册机构RDI:Routing Domain Identifier 路由域标识符RIPE NCC:Reseaux IP Europeans Network Coordination Center欧洲网络协调中心RIR:Regional Internet Registry 地区互联网注册机构ROA:Router Origin Authorization 路由起源授权RPKI:Resource Public Key Infrastructure 互联网号码资源公钥基础设施RP:Relying Party 依赖方S-BGP:Secure Border Gateway Protocol 安全边界路由协议soBGP:Secure Origin Border Gateway Protocol 安全源边界路由协议SIA:Subject Information Authority 主题信息权威TAO:Transfer Authorization Object 转移认证对象TA:Trust Anchor 信任锚TAL:Trust Anchor Locator 信任锚定位器第1章 RPKI简介

本章从起源背景、定义、结构、工作原理等几个方面概括性地介绍了RPKI,让读者对RPKI有一个整体性的理解。1.1 背景1.1.1 技术起源

RPKI(Resource Public Key Infrastructure,互联网号码资源公钥基础设施)技术的兴起源于一种互联网路由安全威胁——路由劫持。由于边界网关协议(Border Gateway Protocol,BGP)缺乏对路由通告内容真实性的验证,黑客的蓄意攻击以及错误的网络参数配置都可能导致路由劫持现象的发生。路由劫持对互联网的正常运行影响极大,可能导致大面积的网络瘫痪。见诸报端的典型路由劫持事件有:1997年4月的AS 7007事件、2004年12月的土耳其TTNet路由劫持事件、2006年1月的Con-Edison路由劫持事件,以及2008年的巴基斯坦电信劫持YouTube流量事件。2017年8月25日,谷歌不慎发生劫持BGP路由,导致日本大规模断网约1小时,震惊了世界。

为增强域间路由系统的安全,不少研究机构针对BGP协议层面的缺陷提出了解决方案,其中以BBN公司Stephen Kent提出的S-BGP(Secure BGP)和思科公司Russ White提出的soBGP(Secure Origin BGP)在业界最具影响力。RPKI的概念最早诞生于描述S-BGP方案的论文中。S-BGP提出了一种附加签名的BGP扩展消息格式,用以验证路由通告中IP地址前缀和传播路径上AS号之间的绑定关系,从而避免路由劫持。基于这样的设计,数字证书和签名机制被引入BGP范畴,从而顺理成章地需要一套公钥基础设施(Public Key Infostructure,PKI)的支持。为验证路由通告签名者所持有的公钥,该签名者的IP地址分配上游为其签发证书。一方面验证其持有的公钥,另一方面验证该签名者对某个IP地址前缀的所有权。基于IP地址资源分配关系而形成的公钥证书体系,RPKI的基本框架就此形成。

目前,RPKI相关技术的标准化工作正在IETF 域间路由安全(Secure Inter-domain Routing,SIDR)工作组持续开展。从2012年年初,SIDR推出一系列意见征集稿(Request for Comments,RFC)以来,对RPKI进行了全面的技术细节规范。因此,在一定意义上,RPKI是由IETF制定的一系列标准所规范的互联网应用技术(在国内,一般也将RFC称为互联网标准)。

作为保证互联网互联互通的重要基础设施,RPKI自诞生之日起就得到了业界广泛重视。域名系统和域间路由系统作为互联网两大基础性资源,对互联网的安全有着至关重要的影响。在域名系统层面,伴随着ICANN(The Internet Corporation for Assigned Names and Numbers)于2009年年末对DNS根区(Root Zone)实施签名,DNSSEC(Domain Name System Security Extensions)已然成为DNS安全的基石;而在域间路由系统层面,互联网社区则计划部署RPKI以期构建一个支撑域间路由安全的互联网基础资源管理体系。1.1.2 自治系统和路由劫持

在互联网中,一个自治系统(Autonomous System,AS)是一个有权自主决定在本系统中应采用何种路由协议的小型网络单元。这个网络单元可以是一个简单的网络个体,也可以是由多个网络个体组成的网络群体。通俗来讲,是指一个可以单独管理的运行单元,如一所大学的网络,一个企业的网络或者一个公司的网络。在管理上,一个自治系统也被称为一个路由选择域(Routing Domain),会被管理者分配一个全局唯一的16位号码,自治系统号(Autonomous System Number,ASN),如图1-1所示。图1-1 互联网中的自治系统

每个自治系统都可以自主地决定在其内部使用哪种网关协议和运行政策,然而,在与其他自治系统进行路由信息交互的时候,只能选择标准化的通信协议。边界网关协议(Border Gateway Protocol,BGP)是目前唯一一个被因特网大规模应用的边界网关协议,也是唯一能够妥善处理好不相关路由域间的多路连接的网关协议。

然而,如前文所说,BGP协议存在一个显著的安全缺陷,BGP协议默认接受任何AS发起的任何路由通告。也就是说,即使某个AS在网络中向外界通告了一个不属于自己的IP地址前缀,该路由通告也会被其他的AS接受,并且继续向外传播。一旦有AS故意发起假冒路由通告,就会带来严重的路由劫持现象。

BGP路由劫持如图1-2所示,假设AS5是IP地址前缀218.113.28.10/15的真实源路由,并在互联网中正常发起对该地址前缀的合法路由起源通告,该路由通告依次经过AS4、AS3到达AS2。此时,假设网络中有一个恶意攻击者AS1,在网络中也发起了对IP地址前缀218.113.28.10/15的路由起源通告(伪造的路由通告)。那么,对AS2而言,会收到两个针对该前缀的路由通告。其中路由通告一的AS路径是:AS_PATH1=AS3 -> AS4 -> AS5;路由通告二的AS路径是:AS_PATH2=AS1。也就是说,如果选择路由通告一的路径,需要经过三跳到达目的地,如果选择路由通告二的路径的话,只需要一跳就可以到达目的地。这时,根据BGP最短AS_PATH路径原则,AS2会接受AS1伪造的路由通告,并在其BGP路由表中记录下来。这种情况下,经AS2通向IP地址前缀为218.113.28.10/15 的AS5的所有网络流量都会全部被转发给AS1,218.113.28.10/15前缀的假冒者,这就是路由劫持。图1-2 BGP路由劫持

因此,互联网运营者期望出现一种基础设施或技术方法,可以让某个IP地址的真正持有者能以明确、可验证的方式授权一个或者多个AS作为其地址的初始路由广播者,并且每个AS都可以获得该授权信息并进行验证,进而避免类似路由劫持的网络事故发生。

在图1-2所示的例子中,进入RPKI技术以后,接到两个路由通告的 AS2就可以明确判断AS5才是IP地址218.113.28.10/15合法的广播者,而AS1是假冒的,那么路由劫持现象就可以避免了。1.1.3 互联网号码资源分配架构

当前互联网管理策略允许IP地址的持有者自由决定将其所持有的IP地址授权(分配)给谁使用。持有者可以将其分配给自身(如隶属于同一组织的其他不同部门)使用,也可以分配给其他组织(需签署合同加以制约)。互联网的域间路由拓扑结构正是由这种授权(分配)关系所决定的,RPKI的主要功能也是为上述授权(分配)关系提供可以验证的密码服务。

实际上,目前的互联网IP地址分配体系形成了一个层级分明的树形结构,顶级的是互联网数字分配机构(The Internet Assigned Numbers Authority,IANA),第二级是五大互联网注册机构(Regional Internet Registries,RIR)。一些RIR下面可能还存在着第三级的分配机构,比如国家互联网注册机构(National Internet Registries,NIR)和地区互联网注册机构(Local Internet Registries,LIR)。IANA是互联网域名系统的最高机构,五大RIR按照地理范围划分分别管理本地区的IP地址分配。在一些地区中,LIR有时也会被称为互联网服务提供商(Internet Service Provider,ISP),如图1-3所示。图1-3 IP地址分配树形图

因为RPKI的主要功能就是为IP地址的授权(分配)关系提供可以验证的密码服务,一个RPKI证书与一次IP地址分配相对应,一个RPKI子证书与一次IP地址子分配相对应,所以RPKI同样采用了如图1-3所示的树形图。

上述验证应用很自然地适用于AS号码分配,只有一点是不同的。按照惯例,AS号码只能由NIR或RIR进行再次分配。也就是说,在RPKI的树形分层体系中,AS号码的分配到了NIR这一级就终止了,而IP的分配可以继续到最底层。无论怎样,互联网的号码资源(无论是IP还是AS)都可以由同一个PKI进行表征,这种PKI就被称为互联网号码资源公钥基础设施(Resource Public Key Infrastructure,RPKI)。1.2 RPKI概述1.2.1 技术规范

如前文所述,RPKI是由IETF安全域间路由工作组(Secure Inter-Domain Routing,SIDR)制定的一个专用的PKI框架,由近30篇RFC组成。这些技术规范涵盖了RPKI的三个核心组成:第一部分是整体架构规范,这是保证RPKI系统正常运行的基础;第二部分是数字签名路由对象,直接为IP/AS分配提供密码验证服务;第三部分是一个分布式的资料库系统,用于存储PKI对象以及签名路由对象,供用户访问和使用。

这三大模块确保一个实体能够验证谁是某个IP地址或者AS号码的合法持有者。作为最初的应用模式,RPKI可以使IP地址的合法持有者以明确地、可验证的方式授权某个AS作为其拥有地址的路由源。这种可验证的授权可以作为边界网关,用以构建更加安全的路由表过滤项的参考依据。除了这一应用模式,RPKI架构未来还可以为诸如S-BGP和soBGP这样的安全协议提供必要的认证支持。RPKI目前仅支持基于IPv4和IPv6路由,对MPLS(Multi-ProtocolLabel Switching)协议的支持尚未进行标准化。

RPKI的结构和现有的资源分配体系相对应,因此对这种特殊PKI 的管理可以看作目前资源管理及组织运行模式的自然延伸。而且现有的资源分配和回收方式在这套新体系中都有明确的相关定义。因此,虽然该体系最初的目的是路由安全的应用,但是也适用于其他需要验证IP和AS所有权的应用,至于后期是否会有其他应用,目前没有进行规范。1.2.2 标准兼容性

为了便于部署和推广,IETF在制定RPKI标准的时候充分考虑了对现有技术规范的兼容。如在RPKI中,已有PKI定义的元素、结构以及相应的地址分配体系都在RPKI中得以继承;已有IP地址和AS号码资源分配组织制定的管理规则在RPKI中都得到了扩展使用;已有资源分配和撤销做法都在RPKI中继续使用等,具体情况可以概括为以下几方面。

RPKI广泛采用了由PKIX(Public Key Infrastructure using X.509)定义的X.509证书规范。

RPKI广泛采用了由RFC3799定义的,用于呈现IP地址和AS号码资源的扩展项。

RPKI签名对象广泛使用由RFC5652定义的加密消息算法(Cryptographic Message Syntax,CMS)作为内容加密算法。

因此,为了更好地理解RPKI技术,建议本书的读者最好事先熟悉“Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile”(RFC5280)和“X.509 Extensions for IP Addresses and AS Identifiers”(RFC3779)里的条款。1.2.3 工作原理

RPKI工作架构如图1-4所示,图中左侧部分是与互联网号码资源(IP地址和AS号码)分配架构相对应的证书签发体系,中间部分是PRKI资料库系统,右侧是依赖方。互联网号码分配机构(如APNIC)在给号码资源持有者(如NIR 和ISP)分配号码资源的时候,会签发相应的数字证书,以表明该资源持有者得到了分配机构的合法授权。证书生成以后,分配机构会将所签发的证书存放于RPKI的资料库中。依赖方同步这些证书,处理成IP地址块与AS的真实授权关系并用于指导BGP的路由安全策略。

这样一来,就实现了让一个IP地址块的合法持有者可以明确、可验证地授权一个或者多个AS,作为其源路由广播该IP地址的目的。因此,RPKI的主要目的是授权(Authorization)而不是认证(Authentication),这与大多数PKI是不同的。

RPKI应用的最初出发点是保障BGP路由安全,然而随着技术的日趋成熟,RPKI也逐渐被应用于其他安全场景,例如,需要验证IP地址和AS号码持有情况的应用场景等。图1-4 RPKI工作架构1.3 重要概念1.3.1 资源公钥基础设施

因为IP地址的所有关系决定其上游的AS拓扑,所以域间路由决策基于IP地址的分配情况。RPKI的基本功能,就是对这些资源的分配提供密码学上可验证的担保。由于IP地址目前的分配是层次性的,层次的顶级是IANA,在IANA之下是五大地区性互联网注册机构,第三级是国家互联网注册机构(NIRs)、本地互联网注册机构以及所谓的独立分配持有者(在某些地区,第三级也可能只有ISP/LIR 和独立分配持有者)。通常,IP地址块的持有者会分配其地址块的一部分,给自己的部门或者与其有注册关系的机构。在这种结构下,IP地址分配可以被层次化的PKI自然地描述:每个证书都描述一次IP地址的分配(这种描述同样适用于AS号码的分配,只是AS号码不能由除RIR和NIR之外的机构再次分配)。因此,IP地址和AS号码都可以作为互联网号码资源,由同一套PKI维护。

由此可见,RPKI 是这套体系中的核心组件。该PKI中的证书称为资源证书,证书的签发者使用资源证书担保IP地址和AS号码的分配,并通过将资源证书中的公钥和证书IP地址栏中的IP地址或AS号码绑定来实现担保。

与大多数的PKI不同的是,RPKI的一个重要属性是不提供主体身份的担保,这是因为RPKI的主要功能是提供授权而不是身份鉴别。RPKI中的两大证书包括CA证书和EE证书,CA证书用来担保IP地址和AS号码的分配;EE证书用来验证路由源授权(Route Origination Authorizations,ROA)。ROA是一种用来表明路由源授权信息的签名对象。EE证书还能验证其他的RPKI对象,如清单(Manifest),这些内容在后续章节中将详细介绍。1.3.2 认证中心证书

任何有权利进行资源再分配的资源持有者都必须能够为再分配资源签发证书。因此,CA(Certificate Authority)证书将IANA和每个RIR、NIR以及LIR/ISP关联起来。同时,CA证书也要使得资源所有者能够签发ROA,ROA需要EE证书来验证,EE证书需要CA证书签发。因此,即使一些不进行资源再分配的实体也需要CA证书(用来签发EE证书)。1.3.3 终端证书

在RPKI 中,EE证书的首要任务是用来验证与资源应用相关的签名对象,例如ROA和Manifest。每个ROA和Manifest都有一个数字签名,EE证书的作用就是用来验证这些签名的真伪,以保证授权的真实性。

对于ROA和Manifest,EE 证书和这些签名对象具有一一对应的关系。每个EE证书的私钥只能用来签署唯一的签名对象,每个签名对象也只能由唯一的EE证书的私钥进行签名。这样一来,就可以使用PKI通用的撤销方法来撤销上述签名对象,而不需要再采用一种新的撤销机制。当用来签署签名对象的EE证书被撤销之后,签名对象上的签名将被认为是无效的,这样就实现了通过撤销相应的EE证书来撤销签名对象的目的,简单且易于实施。这种一一对应关系的另一个好处是与证书公钥对应的私钥只需要使用一次,使用过后就可以销毁,省去了管理密钥的开销。

EE证书与EE证书中公钥相对应的私钥不能再用来签署其他的证书或者签名对象。1.3.4 依赖方

RPKI依赖方(Relying Party,RP)是RPKI 系统的使用者。RP从RPKI中获取ROA进行验证,并将验证的结果反馈给BGP 路由器,BGP 路由器根据验证结果构建自己的过滤表项。因此,RP 是连接RPKI 和域间路由系统的桥梁,是整个应用环节的重要一环。1.3.5 信任锚点

依赖方(如网络运营商)可以为自己创建一个拥有所有资源且拥有私钥的信任锚点,在该信任锚点下,依赖方可以为RPKI中的所有实体签发资源证书,这些证书的认证路径终点都设置为本地的信任锚点。

在所有的PKI系统中,RP根据本地策略自主选择信任锚点,这一通用属性在RPKI中也同样适用。在目前的IP和AS的分配结构中,IANA和五大RIR是最明显的候选信任锚点。但归根结底,每个RP 应最终自己选择和配置用来进行证书验证的信任锚点。1.3.6 签名对象

IP 和AS资源信息保存在X.509标准的证书中,而其他与资源相关的担保信息保存在经过数字签名的非X.509标准的对象中,这些对象被称为签名对象。目前已定义的两种签名对象分别为ROA和Manifest,前者为AS发起路由提供担保;后者保存了资料库中的对象清单,为资料库提供一致性担保。

RPKI对签名对象的定义充分利用现有的标准和技术,其封装格式采用了CMS格式,可以使用现有的开源软件,具体情况将在后续章节详细介绍。1.3.7 路由源授权

为防止路由劫持现象的发生,期望某个地址前缀发起选路的AS已经从该前缀的所有者那里得到了许可,路由源授权(ROA)则明确了这种授权许可。RPKI允许某个IP 地址的持有者创建一个对象明确,并且可验证地表明某个AS可以为特定的IP地址发起选路,ROA就是地址所有者授权AS为其进行发起选路的担保。

这一授权的合法性依赖于ROA的签发者是否为ROA中地址的合法所有者,而这种合法性是由PKI中的EE证书来保证的。EE证书的私钥用来签发ROA,EE证书需要CA证书签发,CA证书由资源分配者签发。这样一来,ROA可以被RP用来验证为某一特定地址前缀发起路由的AS 是否是地址所有者所授权的。1.3.8 清单

清单(Manifest),又称为表单,包含了资料库中所有签名对象(Manifest自己除外)的信息。对于每个没有过期的证书、证书撤销清单(Certificate Revocation List,CRL)和ROA,Manifest都保存这些对象的文件名和文件内容的散列值(哈希值)。和ROA一样,Manifest被EE证书中公钥对应的私钥签名,而EE证书被对应的CA证书签名。每个EE证书相关的私钥只能签发一个Manifest,所以Manifest可以通过撤销相关EE证书的方法来撤销。

Manifest可以被RP用来构建本地资料库的缓存,降低攻击者删改数据库中签名对象的可能性。虽然资料库中的所有对象都是经过签名的,但是资料库本身并不是可信的。因此,使用Manifest 进行签名数据完整性的保护是非常有必要的。第2章 RPKI总体架构

RPKI主要由3部分组成:资源公钥基础设施系统、RPKI数字签名对象以及储存这些签名对象的资料库。本章将系统性地阐述RPKI总体架构、实现原理以及工作机制。2.1 RPKI证书2.1.1 概述

在RPKI中,证书被称为资源证书。通过将资源证书的公钥与包含在扩展项中的IP地址/AS号码建立某种绑定关系,实现IP地址和AS号码分配关系的验证。

RPKI资源证书不证明对象的身份,因此RPKI资源证书的名字不具有所谓的说明性(Descriptive)。这与RPKI的目的是提供授权(Authorization)而不是认证(Authentication)是相呼应的。

在RPKI中,证书签发者不需要验证使用的主题名字是否合法,这就节省了相应的开销,也让签发者更符合认证权威(Certification Authority,CA)的角色。

RPKI的CA证书验证的是IP地址空间和AS号码的持有权。EE证书是由资源持有者(CA)颁发的,主要作用是对ROA进行验证。ROA是一个签名对象,用以明确表明一个给定的AS得到了合法授权作为源路由广播某段IP地址。Manifest的主要作用是确保资料库的完整性,方便依赖方处理更新操作。另外,EE证书也可以用作验证其他类型的签名对象,如Manifest。2.1.2 CA证书

1.定义

用以证明某个实体对某段IP地址或者AS号所有权的数字对象称为CA证书。在RPKI 资源分配管理体系中,IP地址分配者和申请者分别对应IP地址资源证书的颁发者和持有者。换言之,在IP地址分配树中,上游节点既是其下游节点的资源分配者,也是其资源证书的颁发者。

2.使用规则

在RPKI中,任何具有对资源再次分配的持有者必须具备为每次分配而签发资源证书的能力。因此,RPKI资源证书与IANA、五大RIR、NIR以及LIR/ISP紧密相连,是RPKI应用框架中重要的一部分。

另外,在RPKI中需要签发EE证书来验证ROA,因此在签发ROA的过程中也需要CA证书。这样一来,即使不需要再次分配其资源的实体也需要签发CA证书。

如果一个订阅者不是多宿主的,其分配都来自一个LIR/ISP,且尚没有移动到其他LIR/ISP的,那么这种情况就不在RPKI范围内。

分配来自一个LIR/ISP的多宿主订阅者也可以选择不使用RPKI,这要视具体情况而定,该种情况会在本章最后一节中讨论。

CA证书中的主题名字由证书签发者自主决定,必须包含“CommonName”属性,还可以包含“Serial”属性。CA证书主题名字要明显、清楚,但是不能试图以这种方式传递出主题的身份信息。

CA证书的签发者(如RIR、NIR或LIR/ISP)没有义务验证一个主题的合法权益以及特定的身份。因此,选择一个不具有传递出身份信息的主题名字就可以最大限度地减少滥用名字表达身份的可能性,也可以最大限度地减少CA证书签发者的法律责任。

因为所有的CA证书都是被颁发给与签发者有(授权、分配)关系的主体,所以建议签发者选择的证书主题名字可以容易与该主题相关的数据库建立起某种联系。例如,可以使用内部数据库密钥或者订阅者的ID号作为证书中主题的“Common”名字。

CA证书主题的“Common”名字不能用以传递与身份相关的信息,且在该认证权威所颁发的所有证书中必须是唯一的。一个认证权威对不同主题所签发的CA证书必须使用不同的“Common”名字,不能重复。

一般情况下,CA证书用于一对一证明资源与其拥有者之间的授权关系,因此,只有在拥有多个分配来源的情况下,才需要多个CA证书。然而,如果签发方和接收方都同意,认证权威机构也可以为同一个接收者的不同资源分配签发不同的CA证书,以便更有利于资源的管理和证书的使用。例如,一个注册机构为一个ISP/LIR分配了多个IP地址块,ISP/LIR希望将这些不同的地址块分开对待,如果注册机构和该ISP/LIR都同意,注册机构会签发多个CA证书分别对这些地址块进行授权。当然,该注册机构也可以只签发一个CA证书给该接收方,一次性完成所有IP地址块的授权。

需要说明的是,单就某一接收方来说,(从概率上讲)来自不同签发者的CA证书的主题名字一般是不会相同的。2.1.3 EE证书

1.定义

在RPKI中,EE证书主要被用于验证签名对象(如ROA和Manifests)。这些签名对象涉及证书中所描述的资源的具体使用和授权情况。

当某个IP地址资源持有者(RPKI体系中的CA证书持有者)需要将其拥有的IP地址前缀授权给某AS时,该IP地址持有者首先需要使用其持有的CA证书对应的私钥签发一个EE证书,然后再用该EE证书对应的私钥生成“路由源声明”(ROA),最后依赖方使用该ROA来判断一个AS是否得到了合法授权,在互联网中广播。

2.使用规则

在RPKI中,与EE证书公钥相对应的私钥不能用来签发其他证书。EE证书的主要作用就是验证ROA和Manifest等RPKI签名对象。EE证书与被验证对象是一对一的关系,每个EE证书的私钥只能用来给一个RPKI对象签名,一个RPKI对象也只能由一个EE证书私钥签名。

EE证书与被验证对象的这种一一对应关系,主要是方便签名对象的撤销。如果一个EE证书撤销了,其签名的对象就会被视为无效。通过撤销一个EE证书就可以方便地撤销一个签名对象。另外一个原因是方便密钥管理,EE证书公钥对应的私钥在其生命周期内仅使用一次,签完RPKI对象以后,该私钥就可以被废除了,不需要额外保存。

在RPKI中,EE证书通常被封装在CMS的签名对象中,作为该签名对象的一部分。不需要分开传输EE证书,EE证书也不会单独出现在RPKI信息库中(EE证书只能作为签名对象的一部分出现)。

在目前的RPKI应用中,EE证书只规定了两种使用方式:验证ROA和验证Manifest。但是,IETF在制定RPKI标准的时候也明确指出,将来允许EE证书应用到其他场景中去(如对资源持有者的授权)。2.2 RPKI签名对象

在RPKI中,所有的签名对象都使用一个通用的CMS模板,根据不同签名对象的具体需求增添不同的内容。2.2.1 路由源授权

1.定义

ROA本质上是一个授权声明,声明某IP地址前缀的持有者已经将其持有的IP地址授权某个AS。RPKI依赖方就是通过ROA来判断一个AS是否得到了合法授权在互联网中广播某段IP地址前缀。在BGP路由安全应用中,ISP把ROA作为路由过滤器的有效参考因素之一。

ROA主要在RPKI资料库系统中进行分发。用于验证ROA有效性的资源证书和CRL也在RPKI资料库中分发。此外,ROA也可以通过BGP的UPDATA消息或者其他途径进行传输,以满足实时性的要求。

2.使用规则

ROA与AS必须是一一对应的,但是可以对应多个IP地址前缀。ROA用来验证一个AS是否取得了对一个或多个IP地址前缀的合法授权,如图2-1所示。图2-1 ROA与IP地址前缀、AS对应关系

一个有效的ROA包含3个部分:①一个AS号码;②一个IP地址前缀列表;③可选内容。第三部分的可选内容主要是对AS可以广播的前缀的最大长度加以限制,如最大为20bits。

需要说明的是,一个ROA严格对应一个AS号码,因此如果资源的持有者需要授权一个ISP对多个AS进行授权的话,需要签署多个ROA。

因为ROA是由对应EE证书公钥的私钥签发的,所以一个ROA有效,对应的EE证书必须有效。此外,ROA中的IP地址前缀必须严格地与EE证书中的IP地址前缀一致。因此,ROA的有效时间严格对应EE证书的有效时间,ROA的撤销是通过EE证书的撤销来实现的。在RPKI中,没有单独的机制去撤销一个ROA。

实际上,上述撤销机制不会给签署EE证书的CA带来很长的CRL。因为路由广播是长期有效的,验证ROA的EE证书只要在几个月内有效,那么在这期间需要删除大量ROA的概率是很低的。EE证书的签发以及与ROA的对应关系如图2-2所示。图2-2 EE证书的签发以及与ROA的对应关系

图2-2是一个ISP从两个源(RIR和NIR)分别获得分配并签发ROA的情况。RIR和NIR分别签发CA证书CA1和CA2给ISP,用以表明ISP合法地获得了这部分资源的授权。ISP又将获得资源分别授权3个不同的AS,因此该ISP首先签发3个EE证书EE1a、EE1b和EE2,其次再用这3个EE证书签发了3 个ROA:ROA1a、ROA1b和ROA2。

通过上述说明也不难得出,虽然一个ROA可以对一个AS授权多个IP地址前缀,但是由于ROA与EE证书严格对应,EE证书与CA证书对应,所以一个ROA里面的IP地址前缀必须来自同一个分配源,不可能包含不同来源的IP地址前缀。2.2.2 清单

1.定义

清单(Manifest)是RPKI签名对象的一种,里面列出了其所在资料库发布点所收集的由权威结构发布的所有签名对象(除了清单本身)的信息。对于任何一个有效的CA证书、EE证书、ROA以及CRL等,Manifest不仅包含这些对象的文件名,还包含这些对象内容的哈希值。

和ROA一样,Manifest也采用私钥签名的方式。公钥在相应的EE证书中,EE证书又由相关的CA证书所签名。

在RPKI中,EE证书中的私钥仅用作签名一个Manifest,Manifest的删除可通过删除EE证书来实现。为了防止不必要的CRL内容增加,用作签名Manifest 的EE证书要随着Manifest的作废而作废。

根据规则,RPKI资料库是一个不可信的系统,存储在里面的所有内容都存在着被篡改的风险。因此,在实际应用中,依赖方会创建自身的本地缓存,将RPKI资料库中的数据缓存到本地。这样做就可以减少因为RPKI资料库被攻击者删除,或者用一个过期的版本替换当前签名对象所带来的风险。依赖方在创建本地缓存的时候可能首先会用到Manifest,发布查找该资料库发布点中相关信息。

2.使用规则

在RPKI资料库系统中,每个Manifest都会存储其所在发布点在一定时期内的所有文件信息(文件名单和内容哈希值)。RPKI的Manifest由4部分组成:①Manifest序列号;②Manifest创建的时间;③该Manifest预计更新时间;④文件名列表和哈希值对。

Manifest序列号会随着Manifest的每次签发而增加。每个权威结构签发新的RPKI对象到资料库或者修改资料库中现有的RPKI对象时,都必须重新签发Manifest。此外,当Manifest的更新时间到期以后也会重新签发新的Manifest。因此,下面两个条件满足任何一个现有的Manifest就会作废:一是权威机构重新签发了新的Manifest;二是Manifest的更新时间到了。2.2.3 证书撤销列表

1.定义

在RPKI中,任何CA都必须签发一个版本号为2的证书撤销列表(Certificate Revocation List,CRL),用于记录已被撤销的非法证书。CRL的签发者只能是CA,且每一个CRL必须包括该CA签发的所有证书。当一个证书或者签名对象被撤销以后,签发者就会将其信息在CRL中列出,发布用户查询使用。

2.使用规则

在RPKI中,权威机构不管什么时候签发新的Manifest,都必须发布新的CRL。新的CRL包含对老的Manifest签名的EE证书。因此,过期的EE证书要及时从CRL删除,防止CRL大量的增加。

如果一个CA签发了两个或者更多的CRL,“CRL Number”最大的那个CRL将会覆盖所有其他的CRL,也就是说在这种情况下,只有“CRL Number”最大的那个CRL是有效的。2.3 RPKI资料库2.3.1 定义

在每个LIR/ISP的初始化阶段,都需要访问和验证所有的ROA,以便形成一个前缀信息列表,用来确定每个AS与源路由之间的授权关系,进而用于指导边界路由器。因此,LIR/ISP理论上需要获取所有的ROA,并获取所有的资源证书和CRL以验证这些ROA的有效性。RPKI资料库就是用来存储这些证书和签名对象的分布式系统,并且保证这些证书和签名对象可以被所有的ISP/LIR访问、下载。2.3.2 使用规则

1.概述

RPKI资料库是一个采用分布式存储结构,由很多数据库组成的分布式数据系统。这些数据库被分别部署在相应的注册中心(RIRs、NIRs、LIRs/ISPs)上。需要注意的是,以多大的频率访问资料库由依赖方确定,只要依赖方认为是合适的,资料库就必须满足。但是,RPKI资料库不会主动提供更新信息给依赖方。

RPKI资料库是一个不可信的信息交流中心,其存储的所有签名对象都可以被全球依赖方访问。当证书或者CRL被创建以后就可以上传到资料库中,然后就可以被依赖方下载使用。目前,ROA和Manifest是两种广泛在资料库中存储的RPKI对象。在实际应用中,LIR和ISP是目前使用上述签名对象的主要用户(主要的依赖方)。

存储在资料库中的对象都有签名,这些签名可以保证对有效对象任何的非法更改都可以被依赖方探测到。另外,每个资料库都有一个Manifests,依赖方可以通过访问Manifest获取这些有效对象的使用期限、删除、插入等信息。

每个RPKI资料库都会使用访问控制机制,以确保只有获得授权的实体才可以修改相关信息。

虽然依赖方可以检测到篡改(签名),RPKI也不要求资料库提供可信的内容,但是RPKI资料库还是需要尽最大的可能保证任意篡改不会随便发生。

随着应用的不断发展,会有新的签名对象被引入,因此资料库的规则会被更新。然而,IETF规定新的标准会最大限度地兼容已经存在的标准,除非到了非推翻不可的地步。

2.操作方法

虽然资料库是RPKI的一个单独的系统,却包含了很多分布式部署的数据库,这些数据库部署在相应的注册中心(如RIRs、NIRs、LIRs/ISPs)。与每个注册中心相关的资料库至少应该包含由该注册中心签发的所有CA证书、EE证书、CRL 和Manifest。与ISP/LIR等机构相关的资料库还应该包含ROA。

其实IETF鼓励资料库运维者从客户那里以及客户的客户那里复制数据,以方便依赖方对整个数据的检索。在理想的情况下,每个RIR至少需要维护其地理范围内的所有实体的PKI数据。

RPKI的每个PKI证书,在资料库中都有一个文件系统目录,同时也是通过该证书验证的所有对象(EE证书、CRL、ROA和Manifest)的权威发布点。每个RPKI证书的主题信息访问(Subject Information Access,SIA)扩展项中都会包含一个URI,该URI就指向到上述目录。此外,每个RPKI证书的权威信息访问(Authority Information Access,AIA)扩展项中还会包含另一个URI,该URI指向签发该证书的CA证书的位置(该证书的父CA证书)。如A证书用来验证B证书,B证书的AIA扩展指向证书A的发布位置,证书A的SIA扩展指向证书B,证书B和证书C是由CA证书A所签发的,因此CA证书A的SIA扩展指向CA证书A的资料库发布点。在该资料库发布点中包含CA证书A的下属产品证书B、证书C以及CA证书A所签发的CRL。证书B和证书C的AIA扩展都指向CA证书A如图2-3所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载