# 02. Trust Anchor (TA) ## 2.1 对象定位 TA是一个自签名的CA证书。 ## 2.2 原始载体与编码 - 载体:X.509 certificates. - 编码:DER(遵循 RFC 5280 的 certificate 结构与字段语义,但受限于RFC 8630 §2.3) ## 2.3 抽象数据类型 ### 2.3.1 TA | 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 | |-------------------|------------------|---------------|---------|---------------| | name | String | 标识该TA,如apnic等 | | | | cert_der | Vec | 原始DER内容 | | | | cert | X509Certificate | 基础X509证书 | | RFC 5280 §4.1 | | resource | ResourceSet | 资源集合 | | | | publication_point | Uri | 获取该TA的URI | | | ### 2.3.2 ResourceSet 资源集合是来自RFC 3779的IP地址块(§2)和AS号段(§3),受约束于RFC 8630 §2.3 | 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 | |------|----------------|--------|-------------|---------------------------| | ips | IpResourceSet | IP地址集合 | 不能是inherit | RFC 3779 §2和RFC 8630 §2.3 | | asns | AsnResourceSet | ASN集合 | 不能是inherit | RFC 3779 §3和RFC 8630 §2.3 | [//]: # () [//]: # (### 2.3.3 IpResourceSet) [//]: # (包括IPv4和IPv6的前缀表示) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|----|------------------------|----------|-------------|--------------|) [//]: # (| v4 | PrefixSet | IPv4前缀集合 | | RFC 3779 §2 |) [//]: # (| v6 | PrefixSet | IPv6前缀集合 | | RFC 3779 §2 |) [//]: # () [//]: # (### 2.3.4 AsnResourceSet) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|-------|--------------------|-------|-------------|-------------|) [//]: # (| range | RangeSet | ASN集合 | | RFC 3779 §3 |) [//]: # () [//]: # (### 2.3.5 Ipv4Prefix) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|------|-----|-----|---------|-------------|) [//]: # (| addr | u32 | 地址 | | RFC 3779 §2 |) [//]: # (| len | u8 | 长度 | 0-32 | RFC 3779 §2 |) [//]: # () [//]: # () [//]: # (### 2.3.6 Ipv6Prefix) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|------|------|-----|---------|-------------|) [//]: # (| addr | u128 | 地址 | | RFC 3779 §2 |) [//]: # (| len | u8 | 长度 | 0-128 | RFC 3779 §2 |) [//]: # () [//]: # (### 2.3.7 AsnBlock) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|----------|----------|-------|---------|--------------|) [//]: # (| asn | Asn | ASN | | RFC 3779 §3 |) [//]: # (| asnRange | AsnRange | ASN范围 | | RFC 3779 §3 |) [//]: # () [//]: # () [//]: # (### 2.3.8 Asn) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|-----|-----|-----|---------|-------------|) [//]: # (| asn | u32 | ASN | | RFC 3779 §3 |) [//]: # () [//]: # (### 2.3.8 AsnRange) [//]: # () [//]: # (| 字段 | 类型 | 语义 | 约束/解析规则 | RFC 引用 |) [//]: # (|-----|-----|-------|---------|--------------|) [//]: # (| min | Asn | 最小ASN | | RFC 3779 §3 |) [//]: # (| max | Asn | 最大ASN | | RFC 3779 §3 |) # 2.4 TA校验流程(RFC 8630 §3) 1. 从TAL的URI列表中获取证书对象。(顺序访问,若前面失效,再访问后面的) 2. 验证证书格式,必须是当前、有效的自签名RPKI证书。 3. 验证公钥匹配。TAL中的SubjectPublicKeyInfo与下载证书的公钥一致。 4. 其他检查。 5. 更新本地存储库缓存。