Security for Digital Transformation

키페어는 블록체인 기술과

국정원 KCMVP 인증 제품을 보유한 보안전문 기업입니다.

Blog > Tech > KCMVP 소개

1. KCMVP 소개

한국형 암호모듈 검증 프로그램은 전자 정부법 시행령 제69조와 [암호모듈 시험 및 검증지침]에 의거, 국가ㆍ공공기관 정보통신망에서 소통되는 자료 중에서 비밀로 분류되지 않은 중요 정보의 보호를 위해 사용되는 암호모듈의 안전성과 구현 적합성을 검증하는 제도입니다. 검증대상이 되는 암호모듈은 소프트웨어, 하드웨어, 펌웨어 또는 이들을 조합한 형태로 구현될 수 있으며 암호모듈 검증기준(KS X ISO/IEC 19790)을 준수하여야 합니다. 암호모듈은 행정기관 등 국가·공공기관의 중요 정보를 보호하기 위해 도입하는 암호모듈의 안전성과 구현 적합성을 검증하는 제도로, 국산 알고리즘을 탑재한 암호모듈에 대한 구현의 적합성, 안전성 등을 검증합니다.

위 그림은 암호모듈 검증체계입니다. 암호모듈 개발업체는 ETRI 부설연구소인 국가보안기술연구소(이하, 시험기관)에 암호모듈 시험신청을 하고 암호모듈 시험계약을 체결합니다. 시험기관에서 암호모듈에 대한 시험을 수행하고 시험결과를 국가정보원 산하 국가사이버안전 센터에 보고합니다. 국정원에서 암호검증위원회를 열고 암호모듈 시험 검증결과에 대한 심의를 진행합니다. 심의 결과 이상이 없다면 개발업체에 검증결과를 통지하고 국정원 홈페이지 검증필 암호모듈 목록에 공개합니다.

* KCMVP - Korea Cryptographic Module Validation Program

2. 암호모듈 검증제도
미국의 암호모듈 검증 제도

정보에 대한 암호화는 1990년대 미국에서 시작되었으며, 국가에서 제시한 기준에 맞게 민간에서 암호모듈을 제작하면, 국가기관에서 제작된 암호모듈을 검증해주는 제도가 CMVP (Cryptographic Module Validation Program)입니다. 국가에서는 제작된 암호모듈이 보안수준과 요구사항을 만족하는지 심사하고 인증합니다. CMVP는 미국정부가 운영하며, 국립 표준기술연구소(NIST)에서 검증업무를 수행합니다. 미국 정부에서는 CMVP 인증 받은 암호모듈 사용을 요구합니다.


한국의 암호모듈 검증 제도

2010년부터 국정원에서는 한국형 암호모듈 검증제도(KCMVP)를 운영하고 있으며, 2021년 현재 약 200여 개의 제품이 국정원 검증필 암호모듈 목록에 등재되어 있습니다. 중앙정부, 지자체, 군, 민간 등에서 KCMVP 인증 받은 암호모듈 사용을 요구합니다.

3. KCMVP 시험항목
KCMVP 시험 표준

KCMVP 인증시험은 KS X ISO/IEC 19790 : 2015 암호모듈 보안 요구사항, KS X ISO/IEC 24759 : 2015 암호모듈 시험 요구사항 표준에 따라 시험을 진행합니다. 암호모듈 보안 요구사항 표준에 암호모듈이 갖추어야 할 보안기능에 대한 요구사항이 정의되어있으며, 암호모듈 시험 요구사항 표준에 암호모듈 시험시에 필요한 요구사항이 정의되어있습니다.

암호모듈 보안 요구사항 7장에 암호모듈 명세, 인터페이스, 역할, 서비스 및 인증, 운영환경, 물리적 보안 등의 보안 요구사항이 있습니다. e나라표준인증 사이트 https://standard.go.kr/KSCI/portalindex.do 에서 해당 표준문서 참조가 가능합니다. (다운로드는 불가)

KCMVP 검증 대상 알고리즘

KCMVP 검증대상 암호알고리즘은 국정원 홈페이지 https://www.nis.go.kr:4016/AF/1_7_3_2.do 에 나와있습니다. 블록암호(ARIA, SEED 등), 해시함수(SHA-2 등), 메시지 인증(HMAC 등), 난수발생기 (CTR_DRBG 등), 공개키 암호, 전자서명(ECDSA 등), 키 설정(ECDH 등), 키유도(KBKDF 등) 이 있습니다. 참고로 블록암호 DES, AES는 KCMVP 검증대상이 아닙니다.

한국인터넷진흥원(KISA) https://seed.kisa.or.kr/kisa/kcmvp/EgovSummary.do 암호모듈검증 사이트에도 KCMVP 관련 자료 확인이 가능합니다.

KCMVP 검사(시험) 항목

암호알고리즘 검증기준 V3.0 (2021년 1월 기준)에 따라 암호모듈을 검사 합니다. (링크)

압축파일을 풀면 위의 그림과 같이 암호알고리즘 별로 검증시스템 문서가 있으며, 해당 검증 시스템에 따라 암호모듈이 정상 동작하는지 시험합니다. 모든 암호알고리즘을 테스트 하는것은 아니고 개발사가 신청한 암호알고리즘만 테스트를 진행합니다.압축파일을 풀면 위 그림과 같이 암호알고리즘 별로 검증시스템 문서가 있으며, 해당 검증 시스템에 따라 암호모듈이 정상 동작하는지 시험합니다. 모든 암호알고리즘을 테스트 하는것은 아니고 개발사가 신청한 암호알고리즘만 테스트를 진행합니다.

KCMVP 검사(시험) 방법

KISA 암호모듈검증 사이트의 검증대상 암호알고리즘 페이지에 암호알고리즘별 테스트벡터가 있습니다. (링크) 테스트 벡터 압축 파일을 풀면 알고리즘 별 테스트 벡터 파일이 있습니다. 예를들어 블록암호인 ARIA의 경우 임의의 키와 임의의 평문을 암호모듈에 입력하고 암호화된 결과값이 맞게 나오는지 확인을 합니다. 테스트 벡터 파일은 암호알고리즘에 맞게 구성되어있습니다.

4. KCMVP 암호모듈 종류
소프트웨어 방식 암호모듈

암호모듈은 크게 소프트웨어 방식, 펌웨어 방식, 하드웨어 방식으로 구분됩니다. 인증 받은 200여 개의 제품(2021년 기준) 중 소프트웨어 방식이 90% 이며, 펌웨어 방식이 5%, 하드웨어 방식이 5% 정도를 차지하고 있습니다. 3가지 암호모듈 방식에 대한 특징은 아래와 같습니다.

위 그림은 소프트웨어 방식 암호모듈을 나타냅니다. 소프트웨어 방식 암호모듈은 윈도우, 리눅스, 안드로이드, 임베디드 리눅스와 같은 상용운영체제 위에서 소프트웨어 라이브러리 형태로 동작합니다. 소프트웨어 방식 암호모듈을 이용해서 데이터베이스 암호화, 문서보안, 사용자 인증 등의 암호를 기반으로 하는 다양한 응용프로그램 구현이 가능합니다.

소프트웨어 방식 암호모듈 운영환경

위 그림은 소프트웨어 방식 암호모듈 제품들의 운영환경 예시입니다. 표에 제시된 것과 같이 특정 운영체제와 버전, CPU가 맞는 환경에서만 사용 가능합니다. 안드로이드와 iOS의 경우 특정 OS 버전을 사용하도록 규정되어있습니다.

하드웨어 방식 암호모듈

위 그림은 하드웨어 방식 암호모듈을 나타냅니다. 하드웨어 방식 암호모듈은 구현 방식에 따라서 모듈형태, 전용칩 형태, 서버 장비 형태로 구분할 수 있습니다. 하드웨어 방식의 암호모듈은 암호기능을 범용 마이크로 컨트롤러에 변경 불가능한 고정된 소프트웨어를 탑재해서 구현하거나, 전용칩에 고정된 소프트웨어와 하드웨어를 조합한 형태로 구현합니다. 또한 서버 장비 내부에 전용 하드웨어 장치를 구성해서 구현을 할 수 있습니다. 암호모듈 제조사 마다 다양한 방식으로 구현이 가능하지만, 공통적인 특징으로는 한번 제작된 하드웨어 방식의 암호모듈은 변경이 불가능하며, 최초 인증 받은 형상 그대로만 사용이 가능합니다. 또한 제조사 마다 각각 다른 운영 환경을 가지고 있습니다.

펌웨어 방식 암호모듈

위 그림은 펌웨어 방식 암호모듈을 나타냅니다. 펌웨어 방식 암호모듈은 전용 보안칩(스마트카드) 또는 범용 마이크로 컨트롤러에 펌웨어 형태로 암호라이브러리를 구현하고 KCMVP 인증을 받은 암호모듈입니다. 펌웨어 방식 암호모듈은 하드웨어 방식 암호모듈과 다르게 보안칩 내부에 인증 받은 암호라이브러리는 변경 불가로 고정되어있지만, 어플리케이션 영역에 사용자가 필요로 하는 다양한 응용 프로그램 탑재가 가능합니다. 이러한 특징은 적용하는 어플리케이션에 적합한 대응이 가능하며, 하드웨어 방식 암호모듈에 비해서 많은 유연성을 제공합니다. 특히 전용 보안칩(스마트카드)은 보안을 위해 특별하게 설계된 칩으로, 칩 내부에 난수 발생기(TRNG - True Random Number Generator)가 내장되어있으며, 보안 메모리 영역에 암호키와 같은 중요한 데이터를 안전하게 저장합니다. 또한 외부의 물리적 공격에도 안전합니다. 펌웨어 방식 암호모듈은 모든 칩에서 동작하는 것이 아닌 인증 받을 때 지정한 특정 모델의 칩에서만 동작합니다.

3가지 방식의 암호모듈
암호모듈 종류 특징
소프트웨어 방식

  윈도우, 리눅스, 안드로이드, 임베디드 리눅스 등과 같은 상용운영체제 환경에서 소프트웨어 라이브러리 형태로 구현

  서버, PC 위에 상용운영체제가 동작하는 환경에서 DB암호화, 문서보안, 인증 솔루션 등에 사용됨

  특정 운영체제와 버전, CPU가 동작하는 환경에서만 사용가능하며, 운영체제, 버전 등이 업그레이드되면 다시 인증을 받아야 함

하드웨어 방식

  범용 마이크로 컨트롤러 또는 전용칩에 변경 불가능한 고정된 소프트웨어와 하드웨어를 조합해서 구현

  변경이 불가능하며, 최초 인증 받은 형상 그대로만 사용가능

  제조사 마다 각각 다른 운영 환경을 가짐

펌웨어 방식

  전용 보안칩(스마트카드) 또는 범용 마이크로 컨트롤러에 펌웨어 형태로 암호라이브러리를 구현

  어플리케이션 영역에 사용자가 필요로 하는 다양한 응용 프로그램 탑재가 가능하며, 적용하는 어플리케이션에 적합한 대응이 가능

  전용 보안칩(스마트카드)은 보안을 위해 특별하게 설계된 칩이며, 암호키와 같은 중요한 데이터를 안전하게 저장