HSM

하드웨어 시큐리티 모듈(Hardware Security Module)

HSM이란?

간단히 말해 암호화 키를 생성하고 저장하는 역할을 하는 전용 장치입니다. 암호화 키를 필요로 하는 다양한 애플리케이션이 있을 경우 관련 키 생성 및 저장을 애플리케이션 단에서 하는 것이 아니라 전용 장치로 하는 것입니다. HSM에 들어 있는 정보는 원천적으로 외부 복사 및 재생성이 되지 않습니다.

  1. H/W Noise를 Source로 하여 난수를 발생하는 기능을 가지고 있습니다.
  2. 서버와 같은 컴퓨터 시스템은 난수를 발생하는 기능을 목적으로 만들어진 장비가 아니기에 S/W 알고리즘을 사용하여 난수를 발생시킵니다.
  3. 암호키 탈취를 위한 아래와 같은 2가지 공격에 대한 방어 기능을 가지고 있습니다.
  4. 네트웍을 통한 공격을 방어하기 위해 전용 OS와 전용 SW를 사용합니다.
  5. 물리적인 공격에 대한 방어 기능을 가지고 있습니다. 즉 공격 시도시 보관 중인 암호키를 스스로 파기하는 기능을 가지고 있습니다.

일반적인 암호기능 구현

HSM 장비를 사용하지 않고 일반적으로 암호기능을 수행할 때는 아래와 같은 구조로 되어 있습니다. 서버내에 암호 Library를 설치하여 암호 연산을 수행합니다. 즉 응용프로그램에서 암호 Library로부터 제공 받은 알고리즘을 Call 함으로서 암호기능이 수행되며, 이 때 '정보(Data)' 및 '암호(Key)'를 변수로 전달합니다. 암호화된 데이터와 암호 키는 저장 장치에 저장을 합니다. 이 저장장치는 서버내에 부착된 하드디스크일 수 있고, 외부 전용 저장장치일 수도 있고, 외부 서버에 부착된 저장장치가 될 수도 있습니다.

HSM을 사용한 암호기능

Case 01

데이터베이스 암호화시 주로 사용되는 방식입니다. 암호 연산은 직접 서버에서 수행하고, 암호키도 암호화시켜 저장장치에 저장하되, 암호화키에 대한 암복호화 기능을 HSM 장비를 사용하여 수행하는 방식입니다. 이를 위해 HSM 장비는 "응용프로그램에서 사용하는 암호키"를 암복호화 하는 용도로 사용되는 Master-Key만을 저장하면 됩니다.

Case 02

이 방식은 암호연산을 HSM 장비 안에서 수행하는 방식입니디. 암호키 자체가 HSM 장비를 떠나지 않으므로 암호키가 가장 안전하게 보관된다는 장점이 있습니다. 하지만 암호 연산이 HSM 장비 안에서 이루어지므로 암호 연산 성능을 고려해야 합ㄴ디ㅏ.

case 03

암호키를 관리하기 위해 전용 키관리 서버를 사용하는 경우입니다. 키 관리 서버는 암호키의 생성, 분배, 저장, 파기 등의 암호키 Life Cycle에 해당되는 관리 기능을 제공합ㅂ니다. 암호키는 키 관리 서버에 암호화된 상태로 저장되나 Master Key는 HSM에 저장합니다. 서버 응용프로그램에서는 키 관리 서버로부터 암호키를 받으며, 서버에는 키 관리 서버와 통신하기 위한 전용 Agent S/W가 설치 되어져야 합니다.

출처