[Vol.6] 암호검증모듈(KCMVP) 현황과 과제

 In KISA Report

암호검증모듈(KCMVP) 현황과 과제

김역 ([email protected])

서울과학기술대학교 박사

KCMVP 검증필 암호모듈 목록을 보면 소프트웨어 모듈이 80% 이상을 차지하고 있으나 점차적으로 제한된 환경과 소형화된 기기에서의 암호모듈이 증가하고 있어 펌웨어나 하드웨어 형태의 암호모듈 평가 요구가 증가할 것이다. KCMVP 검증필 목록(1)에서도 2017년 이후부터 펌웨어 모듈과 하드웨어 모듈을 확인해 볼 수 있다. KCMVP 검증 획득을 위해 소요되는 시간은 신청인의 제출물 완성도에 따라 다르겠지만 일반적으로 1년 반 이상의 시간이 걸리고 진행 중 검증에 어려움이 있어 포기하는 업체도 있다. KCMVP 현재 검증 과정과 관련된 활동을 살펴보고 펌웨어 모듈과 하드웨어 모듈을 검증받기 위해 제출물 기준으로 소프트웨어 모듈과의 차이점을 확인해 보고 효율적인 검증을 위해 시험기관과 신청인의 준비사항을 알아보려고 한다.

KCMVP 체계 및 절차

KCMVP(Korea Cryptographic Module Validation Program)는 국내에서 실시되는 암호모듈 검증제도를 말한다. 암호모듈 검증제도는 전자정부법 제56조, 전자정부법 시행령 제69조(2)와 암호모듈 시험 및 검증지침(행자부고시 제2004-45호)에 의거하여 실시된다.

암호모듈은 소프트웨어, 하드웨어, 펌웨어 또는 이들을 조합한 형태이고, 암호모듈 검증제도를 통해 암호모듈의 안전성과 구현 적합성을 검증한다. 따라서 암호모듈은 검증 시험기준에 준하는 형태로 개발되어야 하고, 해당 시험기준을 검증하는 검증기준에 맞춰 시험이 실시된다. 암호모듈 검증 시험기준과 검증기준은 다음과 같다.

– 국가표준 KS X ISO/IEC 19790(암호 모듈 보안 요구사항)

– 국가표준 KS X ISO/IEC 24759(암호 모듈 시험 요구사항)

따라서 국가나 공공망에서 DB암호화, 통합인증(SSO), 문서암호화(DRM) 등 암호가 주기능인 제품군을 사용하려면 KCMVP 인증을 받은 암호모듈을 탑재해야 한다.

KCMVP는 검증기관, 시험기관, 신청인(개발업체)로 구성된다. KCMVP 검증기관은 국가사이버안전센터이며 시험기관으로는 ETRI 부설연구소와 한국인터넷진흥원이 있다. 두 기관에서 KCMVP 시험에 관한 모든 작업을 실시하며 현재 KCMVP 검증 획득을 위한 별도의 비용은 없다.

암호모듈 검증은 암호모듈 시험신청 및 사전검토, 암호모듈 시험 및 검증 그리고 검증유지 및 사후관리로 진행된다. 암호모듈 검증 신청을 위해 신청인은 기본 및 상세설계서, 형상관리문서, 개발과정 각 단계별 수행해야 하는 시험항목, 각 시험항목별 시험목적, 시험절차 및 결과서 그리고 제품 및 소스코드를 시험기관에 제출해야 한다. 암호모듈 검증절차를 정리해 보면 다음과 같은 순서로 진행된다.

① 신청인은 시험기관에 암호모듈 검증을 신청
② 시험기관은 신청인의 제출물을 예비검토 검토 후 시험 신청서 및 공문 접수로 시험신청을 시작한다.
③ 시험기간은 시험 신청한 암호모듈을 시험할 시험자를 배정해서 암호모듈에 대해 검증 유효성 확인하면서 제출물 보완 실시 여부 결정
④ 시험기관은 제출물 시험수행이 적합한 경우 신청인과 암호모듈 시험계약 체결
⑤ 시험기관은 제출물에 대해 시험을 실시하고, 문제가 발생되는 경우 신청인에게 보완 요청을 통해 시험을 수행
⑥ 시험기관은 시험이 완료되면 시험결과보고서를 검증기관에 제출하고, 검증기관의 검증위원회 심의로 적합여부를 판정한다.

암호모듈 검증절차 각 단계에서 시험기관은 신청인에게 암호모듈의 형태나 제출문의 완성도에 따라 설명회나 제출물 보완을 요청하고 제출물 보완이 부적합한 경우에는 시험계약을 거부할 수도 있다. 시험기관의 이러한 활동은 암호 모듈 보안 요구사항인 국가표준 KS X ISO/IEC 19790 문서와 암호 모듈 시험 요구사항인 국가표준 KS X ISO/IEC 24759를 바탕으로 한다. 따라서 신청인은 이 두 개의 문서를 기준으로 암호모듈을 제작하고 제출물을 작성하면 된다.

암호모듈 검증절차에서 ①~④의 내용은 [그림 1](3)과 같이 나타낼 수 있다.

그림입니다.

원본 그림의 이름: kcmvp_시험절차.png

원본 그림의 크기: 가로 1370pixel, 세로 808pixel
[그림 1] KCMVP 시험절차

시험 제출물은 시험을 위해 신청인이 시험기관에 제출한 문서와 암호모듈 소스이다. 제출 문서 중에 기본및상세설계서가 있다. 기본및상세설계서는 암호모듈을 어떻게 작성했는지에 대한 구체적인 내용을 포함하는 문서로써 신청인은 암호모듈 검증 시험을 위해 암호모듈 보안 요구사항에 맞게 작성하고, 암호 모듈 시험 요구사항에 맞게 보안 요구사항이 적절하게 설계 및 구현되었다는 것을 나타낼 수 있어야 한다.

암호모듈 검증절차 각 단계별로 소요되는 시간은 일정하지 않다. 그 이유는 신청인의 제출물 완성도에 따라 시험기관의 제출물 보완요청이 결정되기 때문이다. 신청인은 시험기관에서 제출물 보완 요청을 받으면 보완 요청에 맞게 적절한 보완 작업을 수행해서 시험기관에 전달한다. 시험기관과 신청인은 이러한 상호작용을 거치면서 시험이 수행된다. 다수의 신청인이 있는 경우 시험기관은 먼저 신청 및 처리된 신청자 순서에 맞게 암호모듈 시험 작업을 실시한다. 따라서 신청인은 본인의 차례가 될 때까지 대기해야 하는데 시험기관이 시험 진행이나 관련된 정보를 별도로 공지하지는 않는다. 예비검토의 경우 기본및상세설계서의 내용으로 진행된다. 암호 모듈 보안 요구사항인 국가표준 KS X ISO/IEC 19790 문서의 보안 요구사항에 해당하는 내용들이 암호모듈 설계에 반영되었는지를 확인하는 작업이라 할 수 있다. 그리고 이후 1차 사전검토에서는 암호모듈 소스에 대해 검토작업을 실시한다. 엔트로피 평가 그리고 CAVP(Cryptographic Algorithm Validation Program)로 구현 적합성을 확인하고 소스코드에 대해 취약성 점검을 실시한다. 시험기관에서 예비검토와 1차 사전검토는 어느 정도 정해진 루틴으로 수행된다. 표준문서 보안 요구사항 순서로 보완요청이 발생할 수 있는데 소요 시간은 제출물의 완성도에 따라 다르다. 2차 사전검토부터는 배정된 시험자에 의해 진행된다. 시험자는 암호 모듈 시험 요구사항인 국가표준 KS X ISO/IEC 24759에 맞춰 암호모듈을 시험하는데 표준을 기준으로 배정된 시험자가 시험에 대한 세부 내용을 결정한다. 따라서 2차 사전검토와 암호모듈 시험의 소요 시간은 시험자가 시험하는 내용 및 방식에 의해 결정된다.

결론적으로 시험을 위해 신청인은 제출물의 완성도를 높여야 한다. 시험기관의 정기적인 설명회를 통해 관련 내용을 공지하고 있으나 신청인의 입장에서 표준문서에 대한 이해와 문서로 기술하는 방식에 어려움이 있다. 이러한 해결책으로 시험기관에서는 2020년에 이어서 2021년에도 영세중소업체대상 암호모듈 시험평가지원을 진행하고 있다. 선정된 업체를 대상으로 업체에 맞는 암호모듈 시험평가 준비를 위한 컨설팅을 통해 예비검토, 1차 사전검토 단계까지 지원한다. 컨설팅 기간은 2020년에는 5개월간, 2021년에는 7개월이다.

검증필 암호모듈 목록으로 살펴본 암호모듈 검증 현황

KCMVP(Korea Cryptographic Module Validation Program)는 국내에서 실시되는 암호모듈 검증제도로 검증기관, 시험기관, 신청인(개발업체)의 활동으로 진행되며 신청인이 시험기관에 암호모듈 검증을 신청하면 검증 관련 활동이 시작된다. KCMVP는 주로 정보보호업체가 신청자가 된다. 정보보호업체들은 암호가 주기능인 제품을 개발하고 제품에 포함된 암호모듈에 대해 검증을 시험기관에 요청한다. KCMVP를 통해 검증을 획득하게 되면 국가나 공공망에서 해당 제품 사용이 가능하다. 따라서 암호모듈 검증제도는 국가 및 공공기관의 안전성 확보뿐만 아니라 정보보안 산업의 활성화에 기여하고 있다.

암호모듈의 KCMVP 검증 획득을 위해서는 암호 알고리즘에 대한 이해와 암호기능을 포함한 모듈의 안전한 설계가 필요하다. KCMVP 검증을 획득한 암호모듈의 경우 국가사이버안전센터 홈페이지에 “검증필 암호모듈 목록”으로 암호모듈명과 검증번호, 개발사, 모듈형태가 게시된다. KCMVP 암호모듈 검증에서 검증필 암호모듈 목록(4)을 보면 현재 게시된 암호모듈 중 효력이 정지된 모듈을 제외하면 소프트웨어 모듈 51개, 펌웨어 모듈 6개, 하드웨어 모듈 4개로 총 61개가 있다.

암호모듈형태2020년2019년2018년2017년2016년합계
S/W138157851
F/W402006
H/W110204
총합189179861

[표 1] 2016년에서 2020년 사이에 KCMVP 검증필한 암호모듈 유형별 개수

[표 1]에서 보면 KCMVP 암호모듈 검증필은 일 년에 20개를 넘지 않고 S/W 암호모듈이 70%이상을 차지한다. 신청인의 입장에서 보면 암호모듈 검증필이 쉽게 이루어지지 않는다고 생각될 수도 있다. [표 1]에서 표시된 총합은 암호모듈 검증을 처음으로 수행해서 검증필을 획득한 경우와 검증필을 획득한 이후 효력이 만료되었거나 기존 암호모듈에 기능이나 알고리즘의 추가와 같은 이유로 재검증을 실시한 암호모듈도 포함되어 있다.

다양한 형태의 보안제품이 사용되고 있는 현실을 반영했을 때 S/W 암호모듈뿐만 아니라 F/W나 H/W 형태의 암호모듈에 대한 검증과 많은 수의 검증필 작업이 요구된다. [표 1]에서도 보면 2017년 이후로 F/W와 H/W 형태의 암호모듈 검증작업이 이루어졌음을 확인할 수 있다.

CMVP(Cryptographic Module Validation Program)는 미국의 NIST(National Institute of Standards and Technology)와 캐나다의 CCCS(Canadian Centre for Cyber Security)가 공동으로 주관하는 암호모듈 검증 제도이다. CMVP는 비밀로 분류되지 않은 데이터의 보호를 위해 연방정부에서 사용한다. CMVP는 KCMVP와 다르게 시험기관으로 민간기관을 수용한다. NVLAP(National Voluntary Laboratory Accreditation Program)(5)에 의해 인증 받은 연구실이 시험기관으로 활동하게 되며 CST Lab(Cryptographic and Security Testing Laboratories)이라하고 암호모듈 검증 비용은 유료로 진행된다. 또한 CMVP는 CST Lab를 통해 CAVP를 수행하고 CMVP와 별도로 CAVP 목록을 운영한다. CMVP의 경우 웹페이지의 “Module In Process”(6)를 통해 현재 검증되고 있는 모듈이 대기상태에 있는지 검토 중인지 관련 여부에 대한 기본 상태 정보를 확인할 수 있다.

CMVP(7)의 경우에는 2016년부터 2020년에 소프트웨어 모듈 429개, 펌웨어 모듈 42, 하드웨어 모듈 499개 하이브리드 모듈 29개로 총 999개가 검증필 모듈로 게시되어 있다.

암호모듈형태2020년2019년2018년2017년2016년합계
S/W86100949752429
F/W86149542
H/W10110110110195499
Software-Hybird4518220
Firmware-Hybird133119
총합200215213216155999

[표 2] 2016년에서 2020년 사이에 CMVP 검증필한 암호모듈 유형별 개수

KCMVP와 달리 S/W 암호모듈은 50% 미만이고, F/W 암호모듈은 4%정도이고 H/W 암호모듈은 49%를 차지하고 있다. CMVP가 KCMVP에 비해서 H/W 암호모듈 평가가 많이 이루어졌고 평가의 양도 16배 차이가 나는 것을 알 수 있다.

KCMVP의 경우 시험기관으로 현재 활동하는 기관은 두 곳으로 ETRI 부설연구소와 한국인터넷진흥원이 있다. CMVP의 경우 NVLAP을 통해 시험기관을 인가하여 현재 636(8)개가 활동하고 있다. CMVP의 경우 미국, 캐나다가 공동으로 주관하고 JCMVP와 상호인증을 수행하며, 미국 이외의 지역에 위치한 실험실에 대해서 미국 내의 실험실과 동일한 요건으로 NVLAP에 따라 CST Lab를 지정하여 운영한다.

펌웨어/하드웨어 형태의 암호모듈 제출시 고려사항(9)

소프트웨어 형태의 암호모듈인 경우 일반적으로 변경 가능한 운영환경에서 실행하기 때문에 소프트웨어 경계를 이용하여 암호경계를 구분할 수 있다. 그러나 펌웨어나 하드웨어 형태의 암호모듈인 경우 제한되거나 변경이 불가능한 운영환경에서 실행하게 된다. 이런 경우 암호경계는 펌웨어 경계를 이용하는 경우에는 되므로 펌웨어와 결합된 형태로 또는 하드웨어 자체가 암호모듈 운영환경이 되는 경우에는 물리적 보안에 대한 요구사항을 물리적 경계에 적용해야 한다. 제한되거나 변경이 불가능한 운영환경인 경우 일반적으로 알려진 환경이 아닌 경우가 많다. 신청인은 제출물에 보안수준에 맞는 요구사항에 따라 최대한 운영환경에 대한 구체적인 설명을 작성하고 시험하기 용이한 형태로 시험기관에 시험 환경을 제공해야 한다. 운영환경에 다음 내용이 함께 포함되어야 한다.

– 운영환경 메커니즘

– 운영환경에 대한 규제

– 검증기관이 허용한 운영환경인가 확인

신청인은 일반적인 운영환경이 아닌 펌웨어나 하드웨어 암호모듈인 경우 주어진 환경에서 암호모듈이 어떻게 동작하는지에 대한 정확하고 자세한 설명을 제출물에 포함해야 한다. 시험기관은 운영환경에서 암호모듈이 동작할 때 중요보안 매개변수에 대한 제어와 접근에 대한 확인 작업을 통해 암호모듈의 보안 요구사항을 시험하기 때문이다. 신청인은 이러한 내용을 기본및상세설계서에 KS X ISO/IEC 19790을 기준으로 요구된 보안 요구사항을 기술해야 한다. 설계서 작성에 대한 예시는 별도로 제공하지 않는다.

설계서 작성은 신청인이 가장 어려워하는 부분 중에 하나이다. 설계서는 개발자가 암호모듈에 대한 전반적인 설명과 함께 명확하게 암호모듈에 대해 작성해야하는데 시험과정에서 시험자에 따라 설계서 내용 형태에 따라 보안 요구사항에 대해 추가 설명을 요구하기도 한다.

마무리

KCMVP 검증필을 받으려면 KS X ISO/IEC 19790을 기준으로 암호모듈을 설계하고 개발해야 하고, 이를 문서화해야 한다. 암호모듈에 포함하는 검증대상 암호 알고리즘은 국가사이버안전센터 홈페이지에 게시되어 있다. 각 알고리즘에 따라 암호모듈 설계에서 매개변수로 전달받는 값, 내부에 고정된 상수값, 또는 잡음원 수집을 통해 생성되어야 하는 값들이 있다. 이러한 내용은 암호 알고리즘에 대한 이해가 바탕이 되어야한다. 암호모듈 설계에서 암호모듈 형태에 따라 KS X ISO/IEC 19790의 보안 요구사항에 적합한 형태의 설계서 예시가 제공되면 신청인 입장에서 설계서 작성뿐만 아니라 암호모듈에 대한 보안 요구사항에 대한 이해도가 높아질 것으로 예상된다. 또한 소프트웨어 형태의 암호모듈뿐만 아니라 펌웨어나 하드웨어 형태의 암호모듈 검증이 증가될 것으로 예상된다. 평가 가능한 암호모듈 형태와 암호모듈 형태에 따른 설계서의 예시를 통해 신청인들이 암호모듈 검증에 어려움이 해소되길 바란다.

현재 KCMVP에서 시험기관은 절대적으로 부족한 수로 운영되고 있다. 따라서 시험기관의 민간 확대를 통해 암호모듈 검증 작업이 더욱 활발해질 수 있을 것이다. 이에 시험기관 인정 및 운영을 위한 프로그램 도입이 요구된다.

본 원고는 KISA Report에서 발췌된 것으로 한국인터넷진흥원 홈페이지(https://www.kisa.or.kr/public/library/IS_List.jsp)에서도 확인하실 수 있습니다.

KISA Report에 실린 내용은 필자의 개인적 견해이므로, 한국인터넷진흥원의 공식 견해와 다를 수 있습니다.

KISA Report의 내용은 무단 전재를 금하며, 가공 또는 인용할 경우 반드시 [한국인터넷진흥원,KISA Report]라고 출처를 밝혀주시기 바랍니다.

   [ + ]

1, 4. https://www.nis.go.kr:4016/AF/1_7_3_3/list.do
2. https://www.law.go.kr/LSW/lsInfoP.do?efYd=20210610&lsiSeq=232583#J69:0
3. https://seed.kisa.or.kr/kisa/kcmvp/EgovProcedure.do
5. https://csrc.nist.gov/projects/testing-laboratories
6. https://csrc.nist.gov/Projects/cryptographic-module-validation-program/modules-in-process
7. https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all
8. https://www-s.nist.gov/niws/index.cfm?event=directory.results
9. KS X ISO/IEC 19790
Recent Posts
Contact Us

언제든지 편하게 연락주세요.

Not readable? Change text. captcha txt