인터넷주소자원 공개키기반 인증

**인터넷주소자원 공개키기반 인증(RPKI)**은 인터넷주소자원 보유기관의 IP 주소, AS 번호를 PKI표준(RFC3779)으로 암호화된 인증서를 발행하고 해당 주소의 라우팅 정보 무결성을 보장하는 인터넷 라우팅 보안 기술이다. IP 주소, AS 번호 주소자원(Resoruce)을 PKI(Public Key Infrastructure) 표준 기반으로 암호화된 인증서를 발행하여서 **'Resource Public Key Infrastructure(RPKI)**'로 정의하여 지칭한다. 인증서는 할당된 IPv4, IPv6 주소 및 AS 번호 자원을 사용할 수 있는 증거와 권한을 제공하며 암호화된 방식으로 검증할 수 있다. 이것은 네트워크 운영자가 BGP(Border Gateway Protocol)의 결함(缺陷)으로 발생하는확인날짜=확인날짜=확인날짜= 경로 누수(Route Leak), 경로 하이재킹(Route Hijacking) 사고들에 대비하여 인증된 정보에 입각하여 안전한 라우팅을 결정 할 수 있도록 한다. 2011년부터 국제인터넷표준화기구(Internet Engineering Task Force, IETF)의 SIDR(Secure Inter-Domain Routing) 워킹그룹에서 인터넷주소자원 공개키 기반 인증에 필요한 표준화 작업을 추진하여 2014년 2월에 구성 요소들에 대한 표준이 완료되었으며, 운영 이슈 및 운영 지침 등에 대해서도 표준화 작업이 진행 중이다. 인터넷주소자원 공개키기반 인증관련 주요 구성 요소인 주소자원 인증서(Certification), 경로 원점 인증서(ROA), 경로 검증(Validation) 그리고 RPKI 라우터 등에 대한 표준은 아래 표[1]과 같다. {| class="wikitable" |+ 표[1]. 인터넷주소자원 공개키기반 인증(RPKI) 관련 주요 표준(RFC) !구분 !표준번호 !제목 |- | rowspan="4" |인증서(Certification) |6484 |Certificate Policy (CP) for the Resource Public Key Infrastructure (RPKI) |- |6485 |The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure (RPKI) |- |6489 |Certification Authority (CA) Key Rollover in the Resource Public Key Infrastructure (RPKI) |- |7730 |Resource Public Key Infrastructure (RPKI) Trust Anchor Locator |- | rowspan="3" |경로 검증(Validation) |6480 |An Infrastructure to Support Secure Internet Routing |- |7115 |Origin Validation Operation Based on the Resource Public Key Infrastructure (RPKI) |- |8481 |Clarifications to BGP Origin Validation Based on Resource Public Key Infrastructure (RPKI) |- | rowspan="2" |경로 원점 인증서(ROA) |6482 |A Profile for Route Origin Authorizations (ROAs) |- |6483 |Validation of Route Origination Using the Resource Certificate Public Key Infrastructure (PKI) and Route Origin Authorizations (ROAs) |- | rowspan="3" |RPKI 라우터 |6810 |The Resource Public Key Infrastructure (RPKI) to Router Protocol |- |6945 |Definitions of Managed Objects for the Resource Public Key Infrastructure (RPKI) to Router Protocol |- |8210 |The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1 |}
# 인증과 검증

## 주소자원 인증서
인터넷의 안전한 라우팅을 위해 주소자원을 합법적 절차에 의해 보유하고 사용하는 기관, 기업 등이 보유한 주소자원에 대해 인증서를 발급 받는 것이다. 주소자원 인증서는 주소자원에 대한 전자 서명된 증명서로 주소자원이 할당될 때마다 발행되며 대륙별 인터넷주소 관리기구(RIR, Regional Internet Registry)에서 발행한다. 주소자원 인증서는 인터넷주소자원 공개키기반 인증(RPKI) 시스템 내의 EE(End-Entity) 인증서, CRL(Certicate Revocation List), 경로 원점 인증서(Route Origination Authorization) 등 여러 구성 요소와의 관계에서 생성, 폐지, 갱신, 검증 등의 프로세스를 거쳐 관리된다. 주소자원을 할당 받아 사용(라우팅)하는 기관, 기업 등은 이러한 주소자원 인증서를 기반으로 자신이 보유한 IP 대역에 대한 BGP 라우팅 정보를 암호화하고 증명을 할 수 있다. 주소자원 인증서 발행과 관리는 대륙별 인터넷주소 관리기구(RIR)의 인터넷주소자원 공개키기반 인증(RPKI) 시스템 운영 방식에 따라 차이가 있으므로 보유한 주소자원을 할당해준 상위 인터넷 관리기구 RIR 또는 NIR(National Internet Registry)이 어떤 방식으로 시스템을 운영하는지 사전에 검토가 필요하다.
## 경로 원점 인증서
주소자원 인증서를 기반으로 주소자원 보유자는 보유한 IP 주소 대역에 대한 BGP 라우팅 권한이 있음을 AS 번호와 함께 신뢰할 수 있는 객체(Objects) 정보들로 작성하면 전자 서명된 경로 원점 인증서(Route Origination Authorization, ROA)가 등록된다. 경로 원점 인증서는 인증서 내에 포함된 IP 주소 대역의 보유자가 해당 IP 주소 대역에 대한 라우팅 권한이 있는 AS(Autonomous System)를 사용하고 있음을 증명하는 것이다. 인증서 내에는 'AS 번호', 'IP 주소 대역 목록', 그리고 각 대역(Prefix)에 대해서 AS가 라우팅 하도록 권한을 부여 받은 좀 더 정교한 IP 대역의 최대 길이(Max Prefix Length)가 작성되어야 한다. 최대 대역 길이는 특정 AS 네트워크에서 BGP로 라우팅 할 권한이 있는 IP 주소 대역의 최대 길이를 정의하는 것이며, 일반적인 경로 원점 인증서는 아래 표[2]와 같이 표현할 수 있다. {| class="wikitable" |+표[2] 경로원점인증서(ROA) |Prefix |1.16.66.0/24 |- |Max-Length |/25 |- |Origin-AS |AS2022 |} 예를 들어 IP 주소가 1.16.66.0/24 이고 최대 대역 길이(Max Prefix Length)가 /25이면 AS가 라우팅하는 인증된 규격의 IP 대역 최대 길이는 /25내에서 세분화된(more specific) 대역이다. 즉 1.16.66.0/24, 1.16.66.128/25, 1.16.66.0/25는 인증 받은 대역이고 1.16.66.0/26은 인증된 정보가 아니다.
## 경로 원점 검증
라우팅 경로의 검증(Validation)은 경로 원점 인증서(ROA)에 있는 IP 주소 대역과 AS 번호를 사용한다. 인증서 저장소(Repository)와 경로 검증(캐시) 서버 간의 신뢰 관계 검증(Relying Party, RP) 프로세스가 인증서의 유효성을 체크한 후에 최종적으로 검증된 경로 원점 인증서(ROA)를 제공한다. 이 인증서로 RPKI 라우터는 BGP 라우팅 정보의 경로(Route) 속성을 결정하며 이 속성을 'Validity state'라고 한다. 'Validity state'는 아래 표[3]과 같은 결과를 보여준다. {| class="wikitable" |+표[3] Route's Validity State !Prefix \backslash Route(AS) !matching AS !non-matching AS |- |Non-Intersecting (교차되는 부분없음) |unknown |unknown |- |Covering Aggregate (ROA와 일치하는 부분이 있고 Length는 작음) |unknown |unknown |- |match ROA prefix |valid |invalid |- |More Specifi than ROA (ROA와 일치하는 부분이 있고 Length는 큼) |invalid |invalid |} 라우팅 경로(route)의 경로 원점 검증(ROV) 결과(Validity state)들 중에서 'valid'가 존재하면 유효한(valid) 경로이며, 'invalid''는 있으나 'valid'가 없다면 유효하지 않은(invalid) 경로이다. 'valid', 'invalid' 두 가지가 모두 없으면 'unknown 또는 Not found' 알 수 없는 경로이다.
# 시스템 구성

## 인증 서버
인증(CA, Certification Authorities) 서버는 CA(Certification Authorities) 인증서, EE(End-Entity) 인증서, CRL(Certificate Revocation List), 경로 원점 인증서(Route Origination Authorization) 등을 생성하고 관리하여 저장소(Repositories)를 이용해 검증(캐시) 서버에 인증서를 제공하는 역할을 한다. 인터넷주소자원 공개키기반 인증 시스템의 위임(Delegation) 방식 체계에서는 인터넷주소자원 할당 체계와 같이 각 주소자원 관리기구(RIR, NIR, LIR) 들이 각각의 인증 서버들을 구성하여 상호 연결해야 인증 서버를 작동할 수 있다. 다른 방식인 통합(Hosted) 방식 체계에서는 대륙별 인터넷주소 관리기구(RIR)에서 하위 관리기구(NIR, LIR)의 주소자원에 대한 인증서를 통합 관리한다. 저장소(Repositories)는 인터넷주소자원 공개키기반 인증 시스템에서 사용되는 모든 전자 서명된 인증서 객체와 경로 원점 인증서(ROA)를 저장하여 캐시(검증)서버에 제공하는 기능을 한다. 캐시(검증)서버는 TAL(Trust Anchor Locator) 정보를 이용해 RSYNC 또는 RRDP(RPKI Repository Delta Protocol) 프로토콜을 통해 저장소에 연결할 수 있다. TAL 정보는 대륙별 인터넷주소 관리기구(RIR)의 홈페이지에 공개되어 있으며, 아래는 아태지역 인터넷주소관리 기구 APNIC TAL의 URL이다. {| class="wikitable" |+APNIC TAL(Trust Anchor Locator) |- |APNIC |rsync://rpki.apnic.net/repository/apnic-rpki-root-iana-origin.cer https://rpki.apnic.net/repository/apnic-rpki-root-iana-origin.cer |}
## 검증(캐시) 서버
저장소(Repository) 서버들로부터 수신(gathering)한 인증서 상태를 검증하며, 검증된 경로 원점 인증서(ROA)는 RTR(RPKI to Router)프로토콜을 통해 RPKI 라우터에게 전달하는 기능을 수행한다. TAL URL을 참조하여 저장소에 연결하고 저장소의 인증서 유효성 체크는 RP(Relying Party)라는 프로세스가 담당한다. 인증서 검증(Validator) 기능과 RTR 프로토콜을 이용해 라우터와 통신하는 캐시(Cache) 기능을 하나의 서버나 분리된 구성으로 운영할 수 있다. 검증(캐시) 서버는 오픈 소스 소프트웨어(표[4])로 제공되고 있다. {| class="wikitable" |+표[4] 검증(캐시) 소프트웨어 |OctoRPKI |https://github.com/cloudflare/cfrpki | rowspan="2" |Cloudflare |- |GoRTR |https://github.com/cloudflare/gortr |- |RIPE NCC Validatior |https://www.ripe.net/manage-ips-and-asns/resource-management/rpki/tools-and-resources |RIPE NCC |- |Routinator |https://nlnetlabs.nl/projects/rpki/routinator/ |NLnet Labs |- |RTRlib |https://rpki.realmv6.org/ |INET research group |}
## RPKI 라우터
RTR(RPKI to Router)프로토콜을 사용하여 캐시(검증)서버로부터 검증된 경로 원점 인증서(ROA)를 수신하여서 BGP 라우팅 정보를 필터링할 수 있는 기능을 수행하는 라우터를 지칭한다. 라우터는 캐시(검증)서버에 저장되어 있는 경로 검증 인증서(ROA) 데이터(IP prefix, Max Prefix Length, Origin AS)를 자신의 로컬 저장소에 로드하는데 이것을 VRP(Validated ROA Payload) 라고 한다. 라우터는 이웃한(neighbor) 라우터에서 수신한 BGP 업데이트 메시지의 경로(Route)와 VRP 정보를 비교하여 경로의 속성(Validation state)값을 찾고, 운영자가 설정한 BGP 라우팅 정책에 따라 라우팅을 수행한다. RTR 프로토콜을 지원하는 라우터 운영 시스템(소프트웨어)는 아래 표[5]와 같다. {| class="wikitable" |+표[5] RTR 프로토콜지원 라우터와 OS 버젼 !구분 !OS !버젼 |- | rowspan="2" |Cisco |IOS |release 15.2 이상 |- |IOS/XR |release 4.3.2 이상 |- |Juniper |JunOS |release 12.2 이상 |- |Nokia |SR OS |release R12.0R4 이상 |- |Huawei |VRP |release 8.150 이상 |}
# 지원 방식

### 통합 방식
통합(Hosted) 방식은 인터넷주소자원 공개키기반 인증(RPKI) 시스템의 사용 편의성, 유지 관리 및 유연성 간에 공정한 환경을 제공한다. 주소자원 인증서, 경로 검증 인증서(ROA)의 생성, 인증서 키 갱신과 같은 모든 암호화 작업이 자동화되고, 생성된 인증서들은 글로벌 저장소(Repository)에 게시 된다. 통합 방식을 이용하려는 기관은 주소자원 할당 정보와 IRR(Internet Routing Registry) 데이터베이스 정보에 기초하여 경로 검증 인증서(ROA)만 생성하는 일 외에는 관리해야 할 것이 없다.
### 위임 방식
위임(Delegation) 방식은 주소자원 할당체계와 같은 구성으로 대륙별 인터넷주소 관리기구(RIR)에서 주소자원을 할당 받은 하위 관리 기관(NIR, LIR)이 인증(CA, Certification Authorities) 서버를 구성하여 할당받은 주소자원에 대한 주소자원 인증서, 경로 원점 인증서(ROA)를 생성, 관리하는 방식이다. 이 구성은 주소자원 보유기관이 주소자원에 대한 인증(CA) 기관으로 참여할 수 있도록 함으로써 인터넷주소자원 공개키기반 인증(RPKI) 시스템의 가용성을 확대한다. 위임 방식을 사용하는 인증 기관은 저장소를 호스팅 할 수 있는 자체 시스템을 갖추어야 하고, 위임 구조에 맞게 상위 인증 서버와 주기적으로 통신하며 인증서 생성, 폐기, 암호화 등을 직접 관리해야 한다. 대륙별 인터넷주소자원 관리기구(RIR)의 인터넷주소자원 인증 안내 웹페이지(표[6])를 참고하여 관리기구별 통합 방식과 위임 방식에 대한 자세한 정보를 확인할 수 있다. {| class="wikitable" |+표[6] 대륙별 인터넷주소 관리기구(RIR)의 인터넷주소자원 공개키기반 인증(RPKI) 소개 웹 !RIR !인터넷주소자원 공개키기반 인증 |- |AFRINIC |https://afrinic.net/resource-certification |- |APNIC |https://www.apnic.net/community/security/resource-certification/ |- |ARIN |https://www.arin.net/resources/manage/rpki/ |- |LACNIC |https://www.lacnic.net/640/2/lacnic/resource-certification-system-rpki |- |RIPE NCC |https://www.ripe.net/manage-ips-and-asns/resource-management/rpki |}