반응형
PKI
- 인증기관(CA, Certification Authority)에서 공개키와 개인키를 포함하는 인증서(Certificate)를 발급받아 네트워크상에서 안전하게 비밀통신을 가능하게 하는 기반구조.
- 특정 수신자만이 풀어볼 수 있는 내용을 전달하고 싶으면 공개 키 방식을 사용하면 되며,
특정 사람이 어떠한 문서를 보냈다는 것을 확인하고 싶으면 문서를 당사자의 공개 키로 암호화화 하는 전자서명 방식을 사용하면 된다.
위 두 가지 공개 키 암호 방식과 전자서명을 사용할 수 있도록 기반을 마련한 것이 PKI이다. - PKI는 알고리즘이나 프로토콜이 아닌, 공개 키 암호에 기반을 둔 구조(infrastructure)다.
- 공개 키 시스템의 규약이나 시스템 외적으로 개인의 책임 절차 등 여러 가지 사향이 정의가 되어있기 때문에 넓은 의미로써 사용된다.
PKI는 '인터넷에서 신분증을 검사해주는 관청'이라고 생각할 수 있다.
우리가 다른 동네의 동사무소에서 자신의 신분을 밝히고 주민등록등본을 떼어볼 수 있는 것처럼 공개 키 기반 구조에 속하는 사람은 어디에서든지 자신의 인터넷상 신분을 인증기관(CA)에서 받은 공인인증서를 통해 증명할 수 있다.
여기서 CA는 일종의 동사무소이고, 공인인증서는 주민등록증과 같은 신분증인 것이다.
PKI의 구성
- 사용자가 RA에 인증서를 신청한다.
- RA는 신청자의 신분을 검증하여 해당 사용자의 인증서 발급을 CA에 요청한다.
- CA에서 암호화 키 쌍을 생성하여 사용자에게 개인키를, 공개 키와 인증서를 디렉터리에 저장한다.
VA가 존재할 경우 거래 대상은 사용자에게 받은 키를 VA에 검증받는다.
인증기관(CA, Certification Authority)
- 인증정책을 수립하고, 인증서의 등록, 발급, 조회 등 관리를 총괄하며 인증서 폐기 목록(CRL, Certificate Revocation List를 생성한다.
- 다른 CA와의 상호 인증을 제공한다.
- 공개 키의 등록과 본인에 대한 인증을 등록기관이나 사람에게 분담시키는 경우도 있다.
- 우리나라의 경우 행정안정부 산하에 5개의 민간 최상위 인증기관과 정부 최상위 인증기관[/footnote]최상위 인증기관 - KISA / 공인인증기관 - 한국정보인증(주), (주)코스콤, 금융결제원, 한국무역정보통신, 한국전자인중(주)[/footnote] 을 두고 있다.
등록기관(RA, Registraion Authority)
- 사용자의 요청이 있을 경우, 사용자의 신원을 확인하고 CA에 인증서 발급을 요청한다. (인증기관 대신 인증서 등록 및 사용자 신원확인을 대행)
- RA가 꼭 필요한 것은 아니다. RA가 없을 때에는 CA가 RA의 기능을 수행한다.
검증기관(VA, Validation Authority)
- 인증서와 관련된 거래의 유효성을 확인하여 이 인증서가 검증된 인증서라는 것을 당사자에게 확인시켜준다.
- VA 없이 CA만 존재할 수 있으나, 적절한 인증서 검증 기능이 없다면, 보안 측면에서 불완전한 것으로 간주될 수 있다.
- 외주로 운영하거나 CA이 직접 운영할 수도 있다.
사용자(Entitiy) 1
- 인증서를 신청하고 인증서를 사용하는 주체로 이는 사람뿐만 아니라 이용하는 시스템 모두를 의미한다.
저장소/디렉터리(Repository, Directory)
- 사용자의 인증서를 저장하는 장소로 일종의 데이터베이스 역할을 맡는다.
- CA는 발급한 인증서를 발급과 동시에 이곳에 저장하며, 사용자는 자신이 원하는 상대방의 인증서를 이곳에서 검색할 수 있다.
- 사용자의 정보는 포괄적으로 관리되며 디렉터리는 상황에 따라 적절한 접근 제한을 제공한다.
- 디렉터리 표준 형식으로는 ITU-T에서 정의한 X.500과 이를 간략화시킨 LDAP(Light weight Directory Access Protocol) 등이 있다. 2
PKI의 구조 형태
계층 구조
특징
- 최상위 루트 CA가 존재하고 그 아래 하위 CA가 존재하는 트리 형태의 구조이다.
- 루트 CA의 인증 정책이 하위 CA에 그대로 영향을 받는다.
- 최상위 인증기관 간의 상호 인증은 허용하지만 하위 인증기관 간의 상호인증은 원칙적으로 배제한다.
- 정부와 같은 계층적 조직 체계에 적합하다.
장점
- 인증 서비스의 영역이 확장된다
- 인증 서비스 추가 시 용이하다.
- 인증 경로 탐색이 용이하다.
- 모든 사용자가 최상위 CA의 공개키를 알고 있으므로 인증서 검증에 용이하다.
단점
- 최상위 CA에 집중되는 오버헤드 가능성이 존재한다.
- PKI가 협동 업무나 상업적인 분야에 이용될 때에는 부적합하다.
- 루트 CA의 비밀 키가 유출될 경우 심각한 피해가 생기며 복구를 위해서는 PKI 내 모든 사용자에게 새로운 공개키의 분배가 필요하다.
네트워크 구조
특징
- 상위 인증기관 없이 독립적인 CA들이 개별적으로 인증서를 발행하고 관리한다.
- CA 간에 인증을 위해 상호 인증서를 발행하여 인증서비스를 수행한다.
장점
- CA들 간 유연한 인증 관계가 형성되며 실질적인 업무 관계에 적합하다.
- 인증서비스 영역이 확장된다.
- CA의 비밀키 노출 시 계층형보다 적은 국소적 피해가 발생한다.
단점
- 인증 경로 탐색이 계층적 구성에 비해 훨씬 복잡하다.
- 모든 상호인증이 허용되면 상호인증의 수가 대폭 증가하며, 인증기관의 추가 시에도 다른 인증기관의 수만큼 인증서를 생성해야 한다.
- 사용자는 PKI의 다른 사용자에게 단일 인증 경로를 제공할 수 없다. 3
- 인증정책 수립 및 적용이 어렵다.
혼합형 구조
- 계층 구조와 네트워크 구조의 장점을 취한 방법이다.
- 각 CA의 독립적인 구성과 계층적 구성을 허용하여 효율적인 활동을 보장한다.
인증서 표준 규격 X.509
- 인증서는 인증기관에서 발행하고, 이용자가 그것을 검증하기 때문에 인증서의 형식이 서로 다르면 매우 불편하다.
이 때문에 인증서의 표준 규격이 정해져 있으며, 현재는 ITU-T의 표준인 X.509를 가장 많이 사용한다. - X.509는 인증서의 작성, 교환을 수행할 때 표준 규격으로 많인 애플리케이션에서 지원된다.
- IP Security, SSL(Secure Sockets Layer), SET(Secure Electronic Transaction) 등의 네트워크 보안 응용에서 널리 사용된다.
인증서 구조 (X.509 v3)
요소 | 구분 | 설명 |
버전(Version) | 필수 | 인증서의 버전 |
일련번호 (Serial Number) |
필수 | 발급하는 인증기관(CA)이 인증서에 지정한 고유 일련번호 일련번호는 인증기관에서 발행한 각 인증서에 대해 반드시 유일해야 한다. (발행자의 이름과 일련번호를 이용하여 인증서를 유일하게 구분해 낼 수 있어야 한다.) |
서명 알고리즘 식별자 (Signature Algoritm ID) |
필수 | 인증기관이 인증서에 서명할 때 사용하는 알고리즘과 알고리즘 식별자 이 필드는 인증서 끝 부분에 있는 서명 필드에도 포함되기 때문에 거의 필요 없다. |
발행자 이름 (Issuer name) |
필수 | 인증서를 발급한 인증기관에 관한 정보 국가명(Country), 조직명(organization), 부서명(organizational-unit), 일반 이름(common name) 등 으로 구성된다. |
유효 기간 (Validity period) |
필수 | 유효 기간 시작 날짜(notBefore)와 유효 기간 종료 날짜(botAfter) 두 개로 구성된다. |
주체 이름 (Subject name) |
필수 | 인증서 소유자(피발급자)의 이름을 나타낸다. 상위 인증기관이 하위 인증기관에게 인증서를 발행하는 경우 소유자는 인증기관이 된다. |
사용자 공개 키 정보 (Subject Public Key) |
필수 | 사용자의 공개키를 나타내며 인증서의 핵심이다. 사용자의 공개 키 값과 공개 키에 사용된 알고리즘이 포함된다. |
서명(Signature) | 필수 | 인증기관의 개인 키로 서명된 서명문 이 필드는 인증서의 나머지 필드 전체를 보호한다. |
발행자 유일 식별자 (Issuer Unique Identifier) |
선택 | 인증서 발행기관(CA) Unique ID 발급자나 사용자의 이름이 중복되는 경우 이를 구별하기 위한 수단으로 제공된다. 통상적으로 고유 식별자는 사용하지 않을 것을 권장한다. v2에 추가된 필드이다. |
사용자 유일 식별자 (Subject Unique Identifier) |
선택 | 인증서 사용자(발급 대상)의 Unique ID 다른 개체가 X.509 이름을 재사용 할 경우, 사용자 이름을 구별하기 위해 사용된다. v2에 추가된 필드이다. |
확장(Extensions) | 선택 | 발행자가 인증서에 추가적으로 사적인 정보를 넣을 수 있는 필드 v3에 추가된 필드이다. |
인증서 확장(Extensions) 영역
사용자의 공개 키 정보와 연관된 추가적인 정보와 인증서의 계층 구조를 관리할 수 있는 방법을 제공하는 영역이다.
키와 정책 정보(key and policy information)
키의 용도 및 인증서 정책에 관한 부가적인 정보를 포함
- 기관 키 식별자(authority key identifier) : 해당 개인 키에 사용할 수 있는 공개 키를 구분하는 식별자.
- 사용자 키 식별자(subject key identifier) : 최종 개체가 여러 인증서를 받은 경우, 특정 공개 키의 인증서를 빠르게 구분할 수 있도록 하는 식별자. 4
- 키 사용(key usage) : 인증서에 포함된 키의 용도를 정의한다. 5
- 인증서 정책(certificate policies) : 인증기관은 자신이 발행한 인증서에 대한 정책을 인증서 내에 명시할 수 있다.
사용자와 발행자 속성(subject and issuer attribute)
인증서 사용자와 발행자에 대한 여러 형식의 대체 이름 지원
- 사용자 대체 이름(subject alternative name)
- 발급자 대체 이름(issuer alternative name)
인증 경로 제약조건(certification path constraints)
다른 CA가 발행한 인증서에 포함될 제한사항 제공
- 기본 제한(basic constraints) : 인증서의 사용자가 인증기관인지 여부를 구분한다.
- 이름 제한(name constraints) : 사용자 구분명(DN, Distinguished Name)이나 사용자 대체 이름에 제약을 걸 수 있다.
- 정책 제한(policy constraints) : 인증기관에게 발급된 인증서 내에는 정책 제한 확장을 적용할 수 있다.
PKI 인증서 검증 방식
CRL(Certification Revocation List)
- 폐지된 인증서들에 대한 목록을 말한다.
- CA는 폐지된 인증서 정보를 가지고 있는 CRL리스트를 통해 인증서의 유효성을 최신 상태로 유지해야 한다.
- 버전, 서명 알고리즘, 발급 기관, 발급일, 갱신일, 취소된 인증서 정보(일련번호, 폐지 일자, 폐지 사유) 등이 포함된다.
OCSP(Online Certificate Status Protocol)
- IETF(Internet Engineering Task Force)에서 승인된 실시간으로 인증서의 유효성을 검증할 수 있는 프로토콜이다.
- CRL을 대신하거나 보조하는 용도로 사용되며 구현 시 백그라운드에서 자동으로 수행된다. 6
- OCSP 클라이언트, OCSP 서버, 인증 서버로 구성된다.
참고 링크iLiFO Ji-Dum http://www.jidum.com/jidums/view.do?jidumId=625
반응형
'공부 > 정보보안기사' 카테고리의 다른 글
접근 제어 / 접근 통제 모델(Access Control Model) (0) | 2019.10.30 |
---|---|
인증 (0) | 2019.09.02 |
전자서명 (0) | 2019.08.22 |
메시지 인증 코드(MAC, Message Authentication Code) (0) | 2019.08.22 |
정보보안 / 정보보호(Information Security) (0) | 2019.07.20 |
댓글