정보보안 - PKI / X.509

PKI

  • PKI(공개키 기반 구조)
    • PKI(Public-Key Infrastructure) 의 개요
      • 기본 개념
        • 공개키 알고리즘을 위한 키 관리 구조
        • RFC 2822 는 공개키 기반구조(PKI) 를 비대칭키 암호시스템에 기초하여 디지털 인증서를 생성, 관리, 저장, 분배하고 취소하는 데 필요한 하드웨어, 소프트웨어, 사람, 정책 및 절차라고 정의함
        • PKI는 사용자 공개키와 사용자 ID 를 안전하게 전달하는 방법과 공개키를 신뢰성있게 관리하기 위한 수단을 제공. 암호화된 메일, 지불 프로토콜 등 다양한 인터넷 보안응용을 가능케 하기 위한 바탕을 제공함.
        • 인증서의 발급, 사용 및 취소와 관련 서비스를 통하여 기밀성, 무결성, 접근제어, 인증, 부인방지의 보안 서비스 제공, 인증기관, 등록기관 디렉터리 서비스, 사용자 등의 요소로 구성됨.
    • PKI의 주요 구성요소
      • 구성요소
        • 인증기관
          • PAA, PCA, CA
        • 검증기관 (VA - Validation Authority)
          • 인증서 유효성 확인
          • 인증기관 (CA) 과 통합되는 경우가 대부분임
        • 사용자
          • 개체, 최종개체 라고도 함 (subjects, end entities)
          • 사람, 시스템 모두를 의미
          • 자신의 비밀키/공개키 쌍을 생성
          • 공개키 인증서 요청/획득 이 가능
          • 전자서명 생성/검증 가능
          • 인증서 폐지 요청 가능 : 비밀키를 분실, 훼손. 자신의 정보가 변경.
        • 등록기관
          • RA
        • 저장소
          • 디렉토리
            • X.500
            • LDAP
      • 과정
        • 사용자 Bob 이 공개키를 인증기관을 통해 등록하려고 함.
        • 인증기관은 저장소에 Bob의 공개키를 인증기관의 서명을 포함시켜서 (인증서) 보관함
        • 사용자 Alice 가 Bob의 공개키가 필요할 경우 저장소에서 Bob 의 인증서 (Bob의 공개키 + 인증기관서명)를 다운로드 받음
        • 사용자 Alice 는 Bob 의 공개키를 이용
          • 사용자와 인증기관이 너무 먼 경우 인증기관 (CA) 대신 등록기관 (RA) 을 이용할 수도 있음
          • RA는 대신 인증서를 생성하여 CA 에 전달
      • 인증기관 (CA, Certification Authority)
        • 개요
          • 인증정책을 수립, 인증서 및 인증서 효력정지 및 폐기목록 (CRL) 관리, 다른 CA와의 상호인증을 제공
          • 인증기관이 하는 일 가운데 “공개키의 등록과 본인에 대한 인증” 을 등록기관이나 사람(개체)에 분담시키는 경우도 있음.
          • 우리나라는 행정자치부 산하에 5개 민간 최상위 인증기관과 정부 최상위 인증기관을 두고 있음.
            • 최상위 인증기관 : 전자서명인증관리센터(KISA)
            • 공인인증기관 : 한국정보인증, 코스콤, 금융결제원, 한국전자인증, 한국무역정보통신
      • 인증기관의 주요 역할
        • 키쌍의 작성
          • 이용자가 키쌍을 작성할 때는 PKI 의 이용자가 행하는 경우와 인증기관이 행하는 경우 두 가지가 있다.
        • 인증서 등록
          • 인증기관은 인증 업무준칙 (CPS, Certification Practice Statement) 에 근거해서 이용자를 인증하고 인증서를 작성
          • 인증서를 작성할 때에는 인증기관의 개인키를 사용해서 전자서명을 함
        • 인증서 폐지
          • 이용자가 개인키를 분실했거나 도난당했을 경우, 인증기관은 인증서를 폐지(revoke) 해서 무효로 할 필요가 있음.
      • 등록기관 (RA, Registration Authority)
        • 개요
          • CA와 사용자가 원거리일 경우, 중간위치에서 사용자의 인증서 요구를 받고 인증서 발급 요청에 인증서를 전달하는 역할
          • 인증기관을 대신해 사용자의 신분을 확인, 발급된 인증서 및 해당 CA 상위기관의 공개키를 사용자에게 전달
      • 디렉터리 서비스 (Directory Service)
        • 개요
          • PKI 관련 정보인 인증서와 사용자 관련 정보, 상호인증서 쌍, 인증서 효력정지 및 폐기목록 등을 저장 및 검색하는 장소로서, 응용분야에 따라 이를 위한 서버를 설치하거나 인증기관에서 관리
          • 현재 디렉터리 표준형식으로는 ITU-T 에서 정의한 X.500 표준형식과 이것을 간략화한 LDAP 이 있다.
    • PKI 의 주요 관리 대상
      • 인증서 (PKC, Public-Key Certificate)
        • 개요
          • 한 쌍의 공개키/개인키와 특정 사람/기관을 연결시켜 주는, 즉 해당키가 특정인의 것이라는 것을 보증해주는 것
          • 전자서명에 사용된 개인키와 상응하는 공개키를 제공하여 그 공개키가 특정인의 것이라는 것을 확신할 수 있는 증거
          • 인증서는 믿을 수 있는 제3자(인증기관)가 발행. PKI의 근간을 이룸.
          • 공개키 인증서에는 이름이나 소속, 메일 주소 등의 개인정보 및 그 사람의 공개키가 기재.
          • 인증기관(CA) 의 개인키로 전자서명 되어 있음.
        • 인증서 표준 규격 X.509
          • 인증서는 인증기관에서 발행, 이용자가 검증 -> 인증서의 형식이 서로 다르면 매우 불편, 따라서 표준을 정함
          • ITU 나 ISO 에서 정하는 X.509가 가장 널리 사용
            • IP 보안, SSL, SET, S/MIME 등 네트워크 보안에서 널리 사용됨.
          • 구조
            • V1
              • 버전 (V1/V2/V3)
              • 인증서 일련번호 : CA에서 발행한 유일한 발행번호 - 발행자이름+일련번호
              • 서명알고리즘 식별자 : DSA(DSS), RSA - 알고리즘과 매개변수가 들어감 (활용도 낮음-서명부때문)
              • 발행자 이름 (Issuer Name) : 인증기관명 (국가명, 조직명, 부서명, 개인이름 등)
              • 유효기간 : 시작일자 00.00.00 이후 (not before) / 종료일자 00.00.00 이전 (not after)
              • 주체이름 : 인증서의 사용자(=피발급자, Subject) 이름
                • 상위인증기관에 하위인증기관이 인증서 발급을 요청하는 경우 주체이름은 하위인증기관(CA) 이 될 수 있음.
              • 주체 공개키정보 : 인증서의 핵심부분. 사용자(주체)의 공개키, 관련 알고리즘정보, 매개변수 등
            • V2(추가-선택사항)
              • 발행자 유일식별자 : 발급자의 이름이 중복되는 경우 이를 구분하기 위함
              • 주체 유일식별자
            • V3(추가-선택사항)
              • 확장영역
                • 키와 정책정보 / 인증서주체와 발행자속성 / 인증경로 제약조건 중 1
            • 공통
              • 서명 : CA의 개인키로 암호화. 다른 필드 전체 (필수영역과 선택영역) 의 해시코드를 포함함.
                • 필수영역과 선택영역을 해시 알고리즘을 통한 Digest 값을, CA의 개인키를 이용한 서명알고리즘을 통해 서명 Digest 값을 구함.
                • 해시 알고리즘 ID 와 암호(Cipher) ID, 파라미터값을 포함
        • 인증서 확장
          • X.509 버전 3에서는 버전 2형식에 추가될 수 있는 선택사항으로 많은 확장을 포함
          • 확장은 세 가지 부류 중의 하나로 속함 (세가지 중 하나를 포함할 수 있다.)
            • 키와 정책 정보
              • 기관키 식별자 (Authority Key Identifier) : 인증서를 서명하기 위해 사용되는 개인키에 대응하는 공개키를 구분할 수 있는 수단
              • 사용자키 식별자 (Subject Key Identifier) : 최종개체(사용자) 가 여러 인증서를 획득한 경우, 특정 공개키를 포함하는 인증서의 집합을 빠르게 구분하기 위함
              • 키의 용도 (Key usage) : 암호화 / 전자서명 / 인증서서명 중 어떤 것에 사용된 것인지?
              • 인증서 정책 : 인증기관의 경우 자신이 발행한 인증서에 정책을 명기할 수 있음
            • 인증서 주체와 발행자 속성
              • 인증서 주체가 어떤 특정인, 특정개체라는 것을 인증서 사용자가 확신하도록 인증서 주체에 대한 추가적 정보를 이 필드에 나타냄 (사용자대체이름, 우편주소, DNS, IP주소, URI, 발급자대체이름, 기관 내의 직위 혹은 사진)
            • 인증 경로 제약 조건
              • 다른 CA에 의해 CA에게 발행된 인증서 안에 제약조건을 포함할 수 있게 함
                • 기본 제한 (basic constraints)
                • 이름 제한 (name constraints) : 사용자 이름(DN-Distinguished Name)/대체이름에 대한 제한
                • 정책 제한 (policy constraints)
              • 제약조건은 주체 CA에 의해 발행될 수 있는 인증서의 유형에 제약을 가할 수 있음
              • 인증 체인에서 연속적으로 발생하는 인증서의 유형에 제약을 가할 수도 있음
        • 인증서 갱신
          • 모든 인증서에는 유효기간이 존재
          • 문제가 없다면 사용 중인 인증서의 기간이 끝나기 전에 새로운 인증서를 발급
        • 인증서 폐지
          • 유효기간이 끝나면 폐지해야 함
          • 사용자(주체)의 개인키가 침해 당했을 경우.
          • CA 가 사용자들을 더 이상 인증하지 않을 때
          • 인증서를 검증하는데 필요한 CA의 개인키가 침해를 받았을 경우
      • CRL (Certificate Revocation List) - 인증서 취소/폐지/폐기 목록
        • CRL은 인증기관이 폐지한 인증서 목록임.
        • 폐지된 인증서의 일련번호목록에 인증기관이 전자서명을 붙인 것
          • 인증서의 일련번호 : 인증기관이 발행한 인증서에 붙여진 순서번호로 인증서 속에 반드시 기재됨
        • PK 이용자는 인증기관으로부터 최신의 CRL을 입수해서 자신이 검증하려는 공개키의 인증서가 폐지되어 있지 않은지 조사할 필요가 있음
          • CRL 주소에 접속하여 CRL을 다운로드
          • CRL 의 유효기간이 유효한 것이면 사용
          • CRL 목록과 인증서 비교 - Yes 면 Error, No 면 Ok
        • 구조
          • 서명 알고리즘 식별자
          • 발행자 이름
          • 이번 업데이트 일시
          • 다음 업데이트 일시
          • 취소된 인증서들… (용량이 매우 큼)
            • 사용자 인증서 일련번호
            • 취소일시
          • 서명
            • 알고리즘, 매개변수, 암호화
        • HTTP 나 LDAP 이용 하여 CRL 을 요청 -> 다운로드 -> 브라우저 파싱을 통해 비교
      • 온라인 인증서 상태확인 프로토콜 (OCSP)
        • 정의
          • OCSP(Online Certificate Status Protocol)
          • RFC2560
          • 인증서를 검증하는 신뢰 당사자가 CRL 전체를 다운로드 받지 않고, 필요한 인증서만을 네트워크를 통해 실시간으로 확인
            • 인증서의 상태를 실시간으로 체크
            • Client : OCSP 서버에게 인증서 상태 확인 요청
            • OCSP 서버 : 각 CA인증서버들로부터 받아온 정보로부터 인증서 상태 확인응답값 제공
        • 동작절차
          • 응용 프로그램이 OCSP 서버에게 인증서의 상태를 물음
          • OCSP 서버는 good, revoked, unknown 의 내용을 담은 응답 메시지를 전자서명해서 보내줌.
        • OCSP Stapling
          • OCSP 서버는 클라이언트의 모든 인증서 질의 요청을 (HTTP) 모두 처리해야 함 (부하가 큼)
          • OCSP 서버(Responder) 와 클라이언트 사이에 중계 서버를 두어 쿼리 질의 수를 줄임
    • PKI 의 형태
      • PKI 형태에는 계층구조, 네트워크구조, 혼합형구조가 있음
      • 계층 구조
        • 최상위의 루트 CA가 존재. 그 아래에 하위의 CA가 계층적으로 존재 (트리형태)
        • 상위 인증기관이 하위 인증기관에 CA 인증서를 발행하며 하위 인증기관은 상위 인증기관의 인증정책에 영향을 받음
        • 최상위 인증기관 간의 상호인증은 허용하지만 하위 인증기관 간의 상호인증은 원칙적으로 배제함
          • 루트 CA 간의 상호인증을 통해 국제 간 상호동작을 원할하게 하는 장점
        • Chain of trust
          • 모든 인증을 한 인증기관에서 받기 어렵다.
          • End-entity Certificate
            • 소유자 이름
            • 소유자 공개키
            • 발행자 이름 - Intermediate Certificate 소유자 이름
            • 발행자 서명 - Intermediate Certificate 소유자 공개키
          • Intermediate Certificate
            • 소유자 이름
            • 소유자 공개키
            • 발행자 이름 - Root 이름
            • 발행자 서명 - Root 공개키를 이용해 서명
          • Root Certificate
            • Root 이름
            • Root 공개키
            • Root 서명 - Self Sign
        • 장점
          • 정부와 같은 관료조직에 적합
          • 인증경로 탐색이 용이
          • 모든 사용자가 최상위 CA의 공개키를 알고 있으므로 인증서 검증 용이
        • 단점
          • 최상위 CA에 집중되는 오버헤드 발생
          • 협동업무 관계에는 부적합
          • 최상위 CA의 비밀키 노출 시 피해 규모 막대
      • 네트워크 구조
        • 상위 인증기관의 영향 없이 인증기관 각각이 자신의 인증정책에 따라 독립적으로 존재하는 형태
        • CA 간에 인증을 위해 상호인증서를 발행하여 인증서비스를 함.
        • 모든 상호인증이 허용되면 상호인증의 수가 대폭 증가하는 단점.
        • 장점
          • 유연하며 실질적인 업무관계에 적합
          • CA 상호인증이 직접 이루어지므로 인증경로 단순
          • CA의 비밀키 노출 시 국소적 피해
        • 단점
          • 인증경로 탐색이 복잡함
          • 인증정책 수립 및 적용 어려움
      • 혼합형 구조
        • 계층구조 와 네트워크 구조의 장점을 차용

댓글남기기