초보의 아웅다웅 설계하기/암호

초보가 본 KCMVP 제도

로망와니 2020. 11. 25. 12:37

 KCMVP는 소프트웨어의 KS 인증이라고 볼 수 있는 것 같습니다. (실제로도 검증 기준이 KS 목록에 있습니다. 관련 규격 - KS X ISO/IEC 19790(기술적 요구사항에 대한 표준), KS X ISO/IEC 24759(시험방법에 대한 표준) )

인증에서 해주는 것이 알고리즘을 특수하게 만들어주는 것이 아니고 동일한 알고리즘(인터넷에 많이 돌아다닙니다.)을 사용하는데 얼마나 안전하게 잘 구현하고 있느냐 에 대한 인증입니다. 

검증은 보안수준 1, 2, 3, 4 등급으로 나뉘어져 있고, 최소 보안등급 1의 보안 요구사항을 만족해야 합니다. 
전체 등급 중 제일 낮은 수준의 등급이 전체 등급으로 인정되다보니 모두 4등급이고 하나만 1등급이어도 1등급으로 인정받게 됩니다.

검증 받을 수 있는 암호모듈의 형태는 하드웨어 암호모듈, 소프트웨어 암호모듈, 펌웨어 암호모듈, 하이브리드 소프트웨어 암호모듈, 하이브리드 펌웨어 모듈로 구성되어 있고 대부분의 업체가 소프트웨어 암호모듈로 인증받았습니다. 국내 암호 시장이 작다보니 하드웨어 업체에서 뛰어들면 적자가 날 것 같습니다.(KCMVP가 국내 인증이다보니 대부분의 시장이 국내로 국한되어 있습니다.)

인증을 해주는 암호모듈 알고리즘은
 - 블록암호(ARIA, SEED, LEA, HIGHT) 
 - 해시함수(SHA-2, LSH, SHA-3)
 - 메시지인증(HMAC, CMAC, GMAC)
 - 난수발생기(HASH_DRBG, HMAC_DRBG, CTR_DRBG)
 - 공개키암호(RSAES)
 - 전자서명(RSA-PSS, KCDSA, EC-KCDSA, EC-KCDSA, ECDSA)
 - 키설정(DH, ECDH)
 - 키유도(KBKDF, PBKDF)

가 있고 AES 같은 알고리즘은 검증을 해주지 않습니다. (비검증대상)

암호 모듈은 크게 11개 항목으로 호모듈명세, 암호모듈인터페이스, 역할/서비스 및 인증, 소프트웨어/펌웨어 보안, 운영환경, 물리적 보안, 비침투 보안, 중요 보안매개변수 관리, 자가시험, 생명주기 보증, 기타공격대응으로 되어 있고 391개의 세부 항목을 확인합니다. 물론 소프트웨어 암호모듈이면 하드웨어나 펌웨어 암호모듈의 항목은 제외 대상이 되고 만들려는 제품이 보안 1등급이면 2, 3, 4등급은 대상이 아니니 제외 되다보니 받으려는 유형이나 등급에 따라 총 검증 항목은 더 작을 수 있습니다. (관련항목이 아니면 N/A나 해당 없음 등으로 표기하면 됩니다.)

 검증은 블랙박스 테스트처럼 시험지를 주면 결과값을 제출하는 것을 시작으로 소스코드를 전체적으로 확인하고 문서와 문서에 적힌 내용들을 모두 확인하는 절차를 거치게 됩니다. 그래서 기간이 무척 길어요.(몇달이 아니라 대기부터 완료까지 연(Year)단위입니다. - 하드웨어 개발자 입장에서는 KC나 KS 인증 몇주도 길게 느껴지는데 괴리가 많습니다.).

 암튼 위의 것들을 다 하고 나면 검증위원회를 거쳐서 인증이 나옵니다. 검증은 국정원 사이트에서 사이버안보 -> 암호모듈 검증 -> 검증필 암호모듈 목록에 기재됩니다.

 물론 인증이 나왔다고 해서 완전 퍼펙트하진 않습니다. 들여다보면 구멍은 있을 수 있습니다. 하지만 예상되는 혹은 실제로 발생한 문제들에 대한 기준을 작성하고 그에 맞는지 확인하는 과정이니 동작만 하도록 구현하는 것보다는 안전합니다.(물론 속도는 느려집니다.)

 

 KCMVP 검증제품은 기본적으로 소프트웨어/펌웨어로 보면 라이브러리, 하드웨어로보면 모듈입니다. 그것들이 안전하게 만들어졌다고 하더라도 사용자가 보안에 대한 지식이 얼마나 있는지 또 얼마나 안전하게 구현하였느냐에 따라 보안 수준은 천차만별이 될 수 있습니다. KCMVP는 사용으로 인하여 안전해 지는 것이 아니라 안전한 자재(KCMVP 모듈)를 가지고 얼마나 안전하게 집(프로그램)을 지었느냐가 더 중요합니다. 

여기까지 적었는데 마무리를 잘 못하겠네요.  아무튼 KCMVP는 KS 같은 제도이고 그 제품이 완성이 아닌 그 제품을 가지고 얼마나 안전하게 만들었느냐가 더 큰 기준이 될 수 있습니다.

'초보의 아웅다웅 설계하기 > 암호' 카테고리의 다른 글

PKCS5 패딩  (0) 2018.09.20