Security

FIPS 140-3

깊음위에 2021. 1. 25. 02:36
반응형

CMVP, CAVP, FIPS 140-3, FIPS 140-2

보안에 대해서 이야기 하다보면, 보안의 기술적인 부분보다 더 신경을 써야 하는 부분이 개발프로세스 라던지, 회사 보안정책 이라던지, 기술적인 부분 외의 것들을 다루어야 할 때가 있다. - 이 부분은 당연하다. 보안은 기술적인 내용뿐 아니라 사람에 대한 내용이 기반이 되어야 한다. 보안에서 이야기하는 약한 고리는 대체로 사람인 경우가 많다. 사용자가 가장 약한 고리라고 하는 예시는 정보보안을 공부하는 텍스트북 제일 첫장에 궁서체로 표시되어 있을 거다. 폰트는 물론 다를 수 있지만, 믿기지 않는다면, security weak link 하고 검색해봐라. 수많은 보안 기사며 칼럼에 보안의 약한고리는 사용자이다 라는 것은 쉽게 찾아볼 수 있다.  좀 맛간 기사에는 중소기업의 보안이 약한 고리라고 헛소리하는 기사도 찾아볼수 있다.

보안에서 중요한 토픽중에 하나는 인증에 관한 것. 아주 돌아버린다 인증..

이게 사실은, 인증받은 제품이라 안전하다라기 보다는, 인증받은 제품이기 때문에 시장에서 잘 먹힌다. 라는 배경을 이해하면 접근이 더 쉬울 것 같다. 대부분의 보안인증은 그 인증기간이 길다. 그리고 뚜렷한 프로세스의 기준이 없이 인증 담당자 개인의 역량, 스케줄, 휴가계획  등에 영향을 받는다. 

인증계의 아픈 손가락이라고 할 수 있는 FIPS 인증에 대해서, 그중에서 특히 FIPS 140-2 와 140-3에 대해서 약간 썰을 풀어 보자. 

FIPS 140이란?

 

FIPS 140-2 인증 로고

FIPS 140 은 NIST (National Institute of Standards and Technology)에서 정의하는 미국과 캐나다에서 관리하는 암호화 모듈에 대한 일련의 보안 요구 사항으로 CMVP (Cryptographic Module Validation Program)의 한 부분이다.

대체로 보안 업계에서 강력한 보안 인증중 하나로 여겨지고 있고, 미국 정부에서 지정한 산업분야에서는 반드시 받아야 하는 인증이다.

현재 버전은 FIPS 140-3 이 가장 따끈한 신 버전이고 아직 140-2의 테스트가 유효한 상태이다. 좀 뒤에 다시 설명. 

FIPS 가 뭘까? NSR 홈페이지나 위키에 보면 이렇게 설명 잘 하고 있다. 

"The Federal Information Processing Standard Publication 140-3, (FIPS PUB 140-3),is a U.S. government computer security standard used to approve cryptographic modules. The title is Security Requirements for Cryptographic Modules. Initial publication was on March 22, 2019 and it supersedes FIPS 140-2."

그러니까, Federal Information Processing Standard Publication 140-3 (FIPS PUB 140-3)은 미 정부에서 암호모듈 승인을 위한 콤퓨타 보안표준이고, 타이틀은 암호 모듈을 위한 보안 요구사항이다. 초판은 2019년 3월 22일이었고, 이것은 140-2를 대체한다. 

 FIPS 140-3 테스트는 2020 년 9 월 22 일에 시작되었고 아직 FIPS 140-3 유효성 검사 인증서가 발급되지 않았다. 현재 승인된 FIPS 140-2 테스트는 2021 년 9 월 21 일까지 계속 사용할 수 있으며 1 년의 오버랩 기간이 있다.. CMVP 대기열에 남아있는 FIPS 140-2 테스트 보고서는 해당 날짜 이후에도 유효성 검사가 허용되지만 모든 FIPS 140-2 유효성 검사는 실제 최종 유효성 검사 날짜와 관계없이 2026 년 9 월 21 일에 내역 목록으로 이동된다. 

쉽게 말해서, 2021년 9월 22일 부터는 FIPS 140-3 만 유효하다. 그리고, 2026년 9월 21일에는 FIPS140-2 의 인증서는 모두 140-3으로 재인증 받아야 한다 이거지.

우선 얘기하고 싶은게, FIPS140-3 도 FIPS 140-2도 모두 아래 스펙을 기반으로 한다. 국내 KCMVP 역시 아래 ISO 스펙을 기반으로 하고있고, 그래서 FIPS 인증을 받은, (그러니까 CMVP 를 통과한 ) 제품은 KCMVP 를 받기 쉬울 거라고 막연히 생각하곤한다. 

그렇게 생각하지 말자. CMVP 와 KCMVP 가 같은 부모에게 난 자식같은거라, 이 새끼는 저렇고 저새끼는 고렇다. 무슨 말이냐면, 실제 요구하는 암호알고리즘도 다르고, 암호 알고리즘 실행 환경에 대한 조건도 살짝씩 차이가 난다. 이 차이를 씹고 뜯고 맛보고 즐기다가 문든 눈을 들어 세상을 보면 세상이 왜 이리 푸르고 아름다운지... 

스펙에 대한 상세한 내용은 알아서 보시고.. 일단  두 스펙은 다음과 같다. 

  • ISO/IEC 19790:2012
    Security Requirements for Cryptographic Modules


    ISO/IEC 19790:2012 lists the security requirements for a cryptographic module utilized within a security system protecting sensitive information in computer and telecommunication systems. This International Standard defines four security levels for cryptographic modules to provide for a wide spectrum of data sensitivity (e.g. low value administrative data, million dollar funds transfers, life protecting data, personal identity information, and sensitive information used by government) and a diversity of application environments (e.g. a guarded facility, an office, removable media, and a completely unprotected location).
     
  • ISO/IEC 24759:2017
    Test Requirements for Cryptographic Modules


    ISO/IEC 24759:2017 specifies the methods to be used by accredited laboratories to test whether the cryptographic module conforms to the requirements specified in ISO/IEC 19790:2012. The methods are developed to provide a high degree of objectivity during the testing process and to ensure consistency across the testing laboratories.

물론 이 스펙의 최종버전이 항상 NIST SP (Special Publication) 에 적용된다. 아래 참조

csrc.nist.gov/publications/

 

Publications | CSRC

Publications (4/12/2018 11:15 AM EST) Publication search is temporarily unavailable due to technical issues with the server, it will be restored shortly. --> NIST develops and maintains an extensive collection of standards, guidelines, recommendations, and

csrc.nist.gov

말나온 김에 SP 만 정리해보면..

FIPS 140-3 Special Publications (SP)

NIST SP

SP Title

SP 800-140

FIPS 140-3 Derived Test Requirements (DTR)

SP 800-140 Annex A

CMVP Documentation Requirements

SP 800-140 Annex B

CMVP Security Policy Requirements

SP 800-140 Annex C

CMVP Approved Security Functions

SP 800-140 Annex D

CMVP Approved Sensitive Security Parameter Generation and Establishment Methods

SP 800-140 Annex E

CMVP Approved Authentication Mechanisms

SP 800-140 Annex F

CMVP Approved Non-Invasive Attack Mitigation Test Metrics

140-2 와 마찬가지로 140-3도 level 1~4까지를 정의하고 있다. 뭐 특별한 사항은 별로 없다. 

간략히 얘기해보면 아래는 140-2 에서 정의했던 레벨이다 .140-3에서는 레벨2 와 레벨3에 대해 좀더 구체적인 구현사항을 정의하고 있다. 

각 레벨별 사항은 나중에 기회가 되면 (대체로 기회가 되지 않는다.) 자세하게 보기로 하고, 오버뷰만 함 보자.

  • 레벨 1: 소프트웨어만 암호화하는 제품에 일반적으로 사용되며 매우 한정적인 보안 요건이 적용된다.

  • 레벨 2: 역할 기반 인증이 필요합니다. (개별 사용자 인증은 필요하지 않음) 또한 물리적 잠금장치 또는 변조에 대한 검증 수단을 사용하여 물리적 변조를 감지할 수 있는 역량을 요구합니다.

  • 레벨3분해나 변용하기 어렵도록 물리적 변조 방지기술을 추가하여 해킹을 극도로 어렵게 만들어야 함. 변조가 감지되면 해당 장치는 중대한 보안 변수를 삭제할 수 있어야 함
    레벨 3은 또한 강력한 암호화 보호 및 키 관리, ID 기반 인증 및 중대한 보안 변수가 입출력되는 인터페이스간의 물리적/논리적 분리를 요구ㅣ.

  • 레벨 4: 진일보된 위변조 방지 기술이 포함되며 물리적으로 보호되지 않는 환경에서 작동되는 제품에 적용.

그럼 어떻게 받아야 하지?

FIPS 인증은, CAVP를 통과하고 - 알고리즘 검증 프로그램이다. 하드웨어 검증은 포함되지 않고 소프트웨어에 대해서만 검증한다. - CMVP리스트에 이름을 올리면 된다. 쉽지?

근데 이게 자기가 마음대로 할 수 있는게 아니고, NIST 에서 요구하는 document들을 예쁘게 잘 만들어서 제출하고 밥먹고 기다리고 자고 기다리고 기도하고 기다리고.. 이렇게 시간이 지나다가 믿음이 약해질 무렵 다음 단계에 들어가곤 하는 거다. 

그러기 위해서, NIST에서 공인하는 테스트 랩을 하나 선정해야 하고, 그 테스트랩과 제출해야 할 문서, 테스트 벡터 테스트 결과 등을 잘 협의해야 한다. 실제로 벤더 입장에서 해야 할 것은, 테스트 랩과 잘 소통하고 충분한 비용을 지불하는 것이다.

인증을 준비하시는 모든 분께 신의 축복이 함께 하셔서 무탈이 마치시기를...

 

 

반응형

'Security' 카테고리의 다른 글

HSM 과 KMS  (0) 2023.06.15
ARM Trustzone - Secure state 변경  (2) 2021.01.27
Cloud HSM  (0) 2021.01.23