통신·네트워크 기술

KCMVP란 무엇인가 (2) — 소프트웨어 모듈과 하드웨어 모듈, 뭐가 다를까

Elect-M 2026. 9. 15. 18:18
728x90
반응형
SMALL

KCMVP란 무엇인가 (2) — 소프트웨어 모듈과 하드웨어 모듈, 뭐가 다를까

 

지난 글에서는 KCMVP의 기본 개념과 보안수준(L1~L4)을 알아보았다.

이번에는 가장 많이 헷갈리는 "소프트웨어 암호모듈"과 "하드웨어 암호모듈"의 차이를 자세히 다룬다.

 

'소프트웨어 레벨'과 '하드웨어 레벨'은 같은 말일까?

 

KCMVP를 알아보다 보면 "L1 소프트웨어 암호모듈", "L2 하드웨어 암호모듈"이라는 말을 자주 듣는다.

그래서 다음처럼 이해하기 쉽다.

L1 = 소프트웨어
L2 = 하드웨어

하지만 이것은 정확하지 않다.

 

★ 소프트웨어와 하드웨어는 암호모듈의 '형태'이고, L1~L4는 암호모듈의 '보안수준'이다.

 

자동차에 비유하면 "전기차인지 휘발유차인지"와 "충돌 안전시험에서 어떤 기준을 충족했는지"가 서로 다른 질문인 것과 비슷하다.

구분 답하는 질문 예시
모듈 형태 무엇으로 만들었나요? 소프트웨어, 하드웨어, 펌웨어
보안수준 어떤 보안 요구사항을 충족했나요? L1, L2, L3, L4
검증 범위 정확히 무엇을 시험했나요? 모듈명, 버전, 환경, 기능
  • 하드웨어 모듈도 L1일 수 있고, 소프트웨어 모듈도 (지난 글에서 다룬 대로, 최대 L2까지지만) 강화된 요구사항을 충족하면 L2를 목표로 할 수 있다.
  • 최종적으로 어떤 수준이 가능한지는 실제 모듈 경계와 국내 검증기준을 기준으로 판단한다.

 

 

소프트웨어 암호모듈이란?

 

▶ 정의

  • 컴퓨터나 서버에서 실행되는 암호 기능 프로그램이다.
사용자 프로그램
      ↓ 암호화 요청
소프트웨어 암호모듈
      ↓ 암호 연산
암호문 출력
  • 사용자 프로그램은 "이 파일을 암호화해 줘"라고 요청하고, 암호모듈은 비밀키를 이용해 암호 연산을 수행한 뒤 결과를 돌려준다.

 

▶ 장점

  • 기존 서버나 컴퓨터에 설치하기 쉽다.
  • 새로운 기능이나 프로토콜에 맞춰 개발하기 쉽다.
  • 별도의 전용 암호 장치가 없어도 사용할 수 있다.
  • 여러 운영체제와 장비에 적용할 수 있다.

 

▶ 걱정할 점

  • 소프트웨어는 일반 컴퓨터의 운영체제 위에서 실행되므로 주변 환경의 영향을 받는다.
  • 악성코드가 프로그램이나 메모리를 공격할 수 있음
  • 운영체제의 권한 설정이 잘못될 수 있음
  • 비밀키가 로그, 임시 파일, 메모리 덤프에 남을 수 있음
  • 암호 프로그램 파일이 바뀌거나 잘못 업데이트될 수 있음
  • 시험한 운영체제와 실제 설치한 환경이 다를 수 있음

★ 소프트웨어 모듈의 보안은 프로그램 자체뿐 아니라, 프로그램이 실행되는 환경의 안전성에도 크게 의존한다.

 

☞ 소프트웨어 모듈에서 확인할 것

  1. 정확히 어느 프로그램 파일이 암호모듈인가?
  2. 어떤 운영체제와 버전을 지원하는가?
  3. 프로그램이 변조되지 않았는지 어떻게 확인하는가?
  4. 비밀키가 메모리·파일·로그에 어떻게 남는가?
  5. 누가 암호 기능과 키 관리 기능을 사용할 수 있는가?
  6. 자가시험이 실패하면 안전하게 멈추는가?
  7. 업데이트 후에도 검증받은 형상이 유지되는가?
  • 소프트웨어 모듈은 물리적으로 열 수 있는 '상자'가 없으므로, 전용 칩의 덮개나 봉인과 같은 요구를 그대로 적용하는 식으로 이해하면 안 된다. 대신 소프트웨어·펌웨어 보안과 운영환경이 중요해진다.

 

하드웨어 암호모듈이란?

 

▶ 정의

  • 암호 기능을 수행하는 물리적인 장치이다.
  • 전용 암호 칩, 보안 칩이 들어 있는 USB 장치, 서버에 연결하는 HSM, 암호 연산 보드, 장비 내부의 암호화 부품 등이 여기에 해당한다.
  • 하드웨어 모듈에 프로그램이 전혀 없다는 뜻은 아니다. 칩 안에서 펌웨어가 작동할 수도 있다.

 

▶ 장점

  • 비밀키를 처리하는 장소를 일반 프로그램과 분리할 수 있다.
일반 프로그램
     ↓ "이 데이터에 서명해 줘"
하드웨어 암호모듈
     ↓ 장치 내부에서 개인키 사용
전자서명만 출력
  • 이런 설계에서는 개인키를 일반 프로그램으로 꺼내지 않고 장치 안에서만 사용하도록 만들 수 있다.
  • 전용 장치에는 접근 제한, 봉인, 변조 흔적 확인 같은 물리적 보호도 적용할 수 있다.

 

▶ 걱정할 점

  • 하드웨어라고 무조건 안전하지는 않다.
  • 장비를 열면 비밀키에 접근할 수 있을 수 있음
  • USB나 네트워크 포트가 잘못 설계될 수 있음
  • 관리자가 장치 내부 키를 평문으로 꺼낼 수 있을 수 있음
  • 전력 소비나 처리 시간에서 키 정보가 새어 나올 수 있음
  • 펌웨어 업데이트 과정이 공격받을 수 있음
  • 칩 제조·공급 과정에 문제가 있을 수 있음

★ "키가 칩 안에 있다"는 사실과 "키가 안전하게 보호된다"는 사실은 서로 다르다.

 

☞ 하드웨어 모듈에서 확인할 것

  1. 물리적으로 어느 칩·보드·장치가 모듈인가?
  2. 외부 포트는 무엇을 입력·출력하는가?
  3. 개인키가 장치 밖으로 나올 수 있는가?
  4. 누가 장치를 관리·사용·유지보수할 수 있는가?
  5. 장치를 열거나 바꾸면 흔적이 남는가?
  6. 펌웨어의 변조·업데이트를 어떻게 통제하는가?
  7. 전원이 꺼지거나 장치가 고장 나면 키는 어떻게 되는가?

 

 

 

L1 소프트웨어와 L2 하드웨어는 어떻게 다른가?

 

흔한 두 가지 설계 사례를 비교해본다. (이해를 돕기 위한 예시이며, 실제 검증 결과를 보증하지 않는다.)

 

▶ 사례 A. 서버용 소프트웨어 암호모듈, 목표 L1

모듈 형태 : 소프트웨어
실행 장소 : 일반 서버
비밀키 처리 : 서버 메모리 및 보호된 저장소
주요 관심 : 코드 무결성, 운영환경, 키 관리, 자가시험
  • 개발업체는 암호 계산이 정확한지뿐 아니라, 어떤 파일과 버전이 모듈인지, 키를 어떻게 관리하는지, 실패 시 어떻게 작동하는지 설명해야 한다.

 

▶ 사례 B. 전용 키 관리 장치, 목표 L2

모듈 형태 : 하드웨어와 펌웨어
실행 장소 : 전용 장치
비밀키 처리 : 장치 내부
주요 관심 : 위 항목 + 역할별 통제 및 물리적 개봉 흔적 등
  • 이 장치는 일반 프로그램이 비밀키 자체를 받아 가는 대신, 장치에 암호 연산을 요청하도록 설계할 수 있다.

 

☞ L2의 '개봉 흔적'은 장치를 절대 열 수 없다는 뜻이 아니다. 열거나 변조했을 때 알 수 있도록 하는 보호와, 실제 침입에 적극적으로 대응하는 보호(3·4등급에서 더 중요해지는 영역)는 다른 수준의 개념이다.

 

그럼 하드웨어가 소프트웨어보다 항상 안전할까?

 

항상 그렇지는 않다.

잘 설계한 소프트웨어 모듈허술하게 설계한 하드웨어 장치보다 특정 상황에서는 더 안전할 수 있다.

반대로, 서버가 악성코드에 노출되는 위험이 큰 환경에서는 비밀키를 전용 하드웨어 내부에서만 처리하는 편이 유리할 수 있다.

선택은 보호하려는 대상에 따라 달라진다.

 

▶ 소프트웨어가 적합할 수 있는 경우

  • 기존 서버·컴퓨터에 널리 배포해야 함
  • 새로운 통신 규칙에 빠르게 대응해야 함
  • 전용 장치 설치가 어려움
  • 운영체제와 서버를 안전하게 관리할 수 있음

 

▶ 하드웨어가 적합할 수 있는 경우

  • 개인키를 일반 서버 메모리에 노출하지 않으려 함
  • 여러 시스템이 하나의 키 관리 장치를 공동 사용함
  • 장비의 물리적 접근이나 개봉까지 고려해야 함
  • 전용 장치의 설치·운영·유지보수 비용을 감당할 수 있음

 

★ "L2 하드웨어가 무조건 L1 소프트웨어보다 모든 면에서 안전하다"고 말하기보다는, 어떤 공격을 막기 위해 어떤 경계를 선택했는가를 봐야 한다.

 

 

펌웨어와 혼합형은 무엇일까?

 

▶ 펌웨어

  • 장치 내부에 저장되어 동작을 제어하는 프로그램이다.
  • 암호 칩 안의 펌웨어가 개인키를 관리하거나 암호 연산을 지시할 수 있다.
  • 하드웨어가 단단해도 펌웨어가 변조되면 위험할 수 있으므로, 펌웨어 무결성과 안전한 업데이트가 중요하다.

 

▶ 혼합형

  • 제품에 QRNG 칩과 서버용 PQC 프로그램이 함께 들어 있다고 해보자.
QRNG 하드웨어 → 난수 생성
       ↓
PQC 소프트웨어 → 키 설정·전자서명
       ↓
암호화 기능 → 데이터 보호
  • 이런 제품은 하드웨어와 소프트웨어를 함께 사용한다.

 

★ 제품이 혼합형이라는 말과, 검증받는 암호모듈의 경계가 혼합형이라는 말은 다르다. 검증 범위를 어디에 그었는지에 따라 QRNG 칩이 모듈 안에 있을 수도, 모듈 밖의 입력 장치일 수도 있다.

 

 

한눈에 비교

질문 소프트웨어 모듈 하드웨어 모듈
어디에 있나? 서버·PC의 프로그램과 메모리 칩·보드·전용 장치
경계는 무엇인가? 파일·라이브러리·프로세스 등의 논리적 경계 칩·장치 등의 물리적 경계
주된 위협은? 악성코드, OS 권한, 코드 변조, 메모리 유출 개봉, 포트 악용, 물리 공격, 펌웨어 변조
키는 어디서 처리하나? 설계에 따라 서버 메모리·보호 저장소 설계에 따라 장치 내부
주된 관리 부담은? OS·패치·배포·버전 관리 설치·물리 보호·장비 관리·펌웨어 관리
가능한 최대 보안수준 L2까지 L4까지

 

 

2편 요약

 

  1. 소프트웨어·하드웨어는 모듈을 만든 방식이다.
  2. L1~L4는 검증할 보안 요구사항의 수준이며, 소프트웨어는 L2까지, 하드웨어는 L4까지 가능하다.
  3. 소프트웨어 모듈은 프로그램 무결성, 운영환경, 메모리와 키 관리가 중요하다.
  4. 하드웨어 모듈은 장치 경계, 포트, 내부 키 보호와 물리적 접근이 중요하다.
  5. 펌웨어와 혼합형에서는 어느 부분이 검증 경계 안에 있는지 확인해야 한다.

 

다음 글에서는 지금까지 다룬 QRNG·QKD·PQC가 이 KCMVP 제도 안에서 실제로 어디에 위치하는지 정리한다.

 

728x90
반응형
SMALL