RPKI
RFC6480
包含3部分:Resource Public Key Infrastructure(RPKI),ROA 对routing objects签名,distributed repository system存放PKI objects和ROA
IANA / RIR (Regional Internet Registry) / NIR (National Internet Registry) / LIR (Local Internet Registry) 分发地址
ISP基本上可看所是LIR
Certification Authority (CA) Certificates: 用于证明resource holder确实拥有该AS以及AS下辖的IP prefix。一个CA不能为其下属的两个不同实体签发相同名称的证书。
End-Entity (EE) Certificates: 每个EE只用于签发一个object,与ROA/manifests打包使用,一起撤销,同生同灭。由于只用于签名验证,也不需复杂的私钥存储管理之类。
Trust Anchors (TA): 每个 relying party (RP) 需要选择其 trust anchors (TAs) 做为PKI信任的起始。RP可以选择建立并管理自身的TAs,因为它自己也可以多层次分发资源。
ROA
Route Origination Authorizations (ROA): 资源拥有者认证了,某个AS拥有某些prefix。一个ROA里只有一个AS。BGPsec基于此验证源路由。ROA随EE生成,随EE撤销。
示例见Figure 1,
RIR, CA -> ISP, CA -> ISP, EE -> ROA
NIR, CA -> ISP, CA -> ISP, EE -> ROA
Repositories
存放CA, CRLs, manifests, ROA
支持外部pull上述数据
注意数据时效性,数据更删等关键操作的访问控制
一般来说,Registry的RP含有用其CA签发的所有CA,EE,CRLs, manifests数据,LIRs/ISPs的RP里还有ROAs.
每个Certificate有其对应的URI,层次指针示例见Figure 2。假设Cert A签发了Cert B/Cert C。则Cert A中的Subject Information Access(SIA)指向A的Responitory Publication Directory,在该Directory中包含了Cert B/Cert C。并且,Cert B/Cert C中的 Authority Information Access(AIA)指向Cert A, Cert B/Cert C中的CRL Distribution Points(CRLDP)指向A的CRL。
通过这种SIA/AIA层次结构URI指针的路径保持稳定性,当某个CA certificate is reissued with the same public key, 下面的certificates不用再重新签发一次。当CA certificate的key更新时,也只要随之更新该certificate直接签发的对象,而不用签发整个下级子树。
RP数据可用rsync增量更新
Manifests
manifest里存的是当前Repositories里的signed object list,即certificate/CRL/ROA之类每个object的filename及hash
manifest本身也要被对应的certificate签名
ROA的manifest生存期与EE certificate一致
manifest内容包含:编号,签发时间,预计下次签发时间,<filename, hash>的列表
Local Cache Maintenance
RP要获取相关certificates, manifests, CRLs
验证manifest签名,检查失效时间
验证manifest中的CA, CRLs
验证EE
Common Operations
注意resource holder 不能 对多个CA certificates配置相同的public key
由于subject name由上级issuer指定,那么同一个subject在不同上级issuers签发的certificates里会被指定为不同的subject name
resource holders管理ROA的原则是,make before break,因为invalid后果可能严重
multi-homed subscribers
如果一个subscriber接入了多个上级ISP
那么该subscriber最好申请一个专用AS号。一种方案是由primary ISP签发CA certificate,然后subscriber签发ROA。另一种方案是由primary ISP签发ROA,注意其他ISP提供的prefix也在这个ROA里一起签发。
没有专用AS号,就只能各个ISP各签一个ROA,不推荐。