Ubuntu 16.04 LTS에서 SoftHSM을 설치하고 사용하는 방법
이 페이지에서
- 종속성
- 설치
- 구성 파일
- 소프트 토큰 초기화\n
- 백업
- OpenSC 유틸리티가 포함된 SoftHSM\n
하드웨어/소프트웨어 토큰 또는 하드웨어 보안 모듈(HSM)은 암호화 키(공개 및 비공개) 및 인증서를 저장하기 위해 다양한 애플리케이션과 함께 사용됩니다. 예를 들어 NitroKey와 Smartcard-HSM은 한 쌍의 HSM입니다. 그러나 특히 OpenDNSSEC 프로젝트의 일부로 개발되고 있는 SoftHSM(v2)과 같은 일부 소프트웨어 대안도 있습니다.
SoftHSM은 기본적으로 PKCS #11 인터페이스를 통해 액세스할 수 있는 암호화 저장소의 구현입니다. PKCS#11 인터페이스는 HSM(하드웨어 보안 모듈) 및 스마트 카드와 같은 암호화 장치와 통신하거나 액세스하는 데 사용됩니다. HSM 장치의 주요 목적은 개인 키를 다른 사람에게 공개하지 않고 암호화 키를 생성하고 정보를 서명/암호화하는 것입니다.
간단한 배경 지식을 제공하기 위해 OpenDNSSEC 사용자는 암호화 키 저장을 위해 새 하드웨어 토큰을 구입할 수 없었습니다. 따라서 이 문제에 대응하기 위해 OpenDNSSEC는 PKCS#11 인터페이스가 있는 일반 암호화 장치의 소프트웨어 구현인 "SoftHSM"을 제공하기 시작했습니다. SoftHSM은 OpenDNSSEC의 요구 사항을 충족하고 다른 암호화 제품과도 작동하도록 설계되었습니다.
종속성
Botan 또는 OpenSSL 암호화 라이브러리는 SoftHSM 프로젝트와 함께 사용할 수 있습니다. Botan이 SoftHSM과 함께 사용되는 경우 공개 키 작업 중 성능을 향상시키는 GNU MP(--with-gnump)를 지원하는지 확인하십시오.
설치
SoftHSM은 OpenDNSSEC 웹 사이트에서 제공되며 다음과 같은 방법으로 wget 명령을 사용하여 다운로드할 수 있습니다.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
이제 다음과 같은 방법으로 tar 명령을 사용하여 패키지를 추출합니다.
추출 후 구성 스크립트를 실행하여 SoftHSM 소프트웨어의 종속성을 확인합니다.
./configure
다음 스냅샷은 "OpenSSL 헤더" 패키지 누락으로 인해 구성 스크립트에 오류가 표시됨을 보여줍니다.
따라서 이 문제를 해결하려면 아래와 같이 강조 표시된 방식으로 "openssl-dev" 패키지를 설치하십시오.
apt-get 설치 openssl-dev
configure 스크립트의 출력은 이제 도구 컴파일에 필요한 모든 패키지를 사용할 수 있음을 보여줍니다.
다음 스냅샷은 SoftHSM 도구의 구성 스크립트에 사용할 수 있는 옵션을 보여줍니다.
configure 스크립트에서 제공하는 모든 옵션은 다음 명령을 통해 액세스할 수 있습니다.
./configure --help
--disable-ecc Disable support for ECC (default enabled) --disable-gost Disable support for GOST (default enabled) --disable-visibility Disable hidden visibilty link mode [enabled] --with-crypto-backend Select crypto backend (openssl|botan) --with-openssl=PATH Specify prefix of path of OpenSSL --with-botan=PATH Specify prefix of path of Botan --with-migrate Build the migration tool. Used when migrating a SoftHSM v1 token database. Requires SQLite3 --with-objectstore-backend-db Build with database object store (SQLite3) --with-sqlite3=PATH Specify prefix of path of SQLite3 --disable-p11-kit Disable p11-kit integration (default enabled) --with-p11-kit=PATH Specify install path of the p11-kit module, will override path given by pkg-config
이제 make 명령을 실행하여 SoftHSM의 소스 코드를 컴파일합니다.
make
그런 다음 "make install command"를 실행하여 SoftHSM 도구를 설치합니다.
make install
구성 파일
구성 파일의 기본 위치는 /etc/softhsm2.conf이며
SOFTHSM2_CONF
환경 변수를 설정하여 변경할 수 있습니다.export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
SoftHSM의 기본 설정은 다음 스냅샷에 표시되어 있습니다.
소프트 토큰 초기화
SoftHSM을 사용하는 첫 번째 단계는 초기화를 사용하는 것입니다. "softhsm2-util" 또는 "PKCS#11" 인터페이스를 사용하여 장치를 초기화할 수 있습니다. 다음 스냅샷은 SoftHSM 디바이스의 초기화를 보여줍니다.
softhsm2-util --init-token --slot 0 --label "Token-1"
SO(Security Officer) PIN은 토큰을 다시 초기화하는 데 사용되며 사용자 PIN은 토큰과 상호 작용할 수 있도록(Mozilla Firefox에서의 사용과 같이) 애플리케이션에 전달됩니다. 그렇기 때문에 SO와 사용자 PIN을 모두 설정하십시오. 토큰이 초기화되면 초기화되지 않은 새 토큰에 더 많은 슬롯이 자동으로 추가됩니다. 초기화된 토큰은 토큰 일련 번호를 기반으로 다른 슬롯에 재할당됩니다. 슬롯 목록/토큰 정보에서 토큰 레이블 또는 일련 번호를 검색하여 토큰을 찾고 상호 작용하는 것이 좋습니다.
\softhsm2-util\의 다른 옵션은 아래와 같습니다.
다음 스냅샷은 토큰의 슬롯을 보여줍니다.
지원
모든 토큰과 해당 개체는 softhsm2.conf에서 지정한 위치에 저장됩니다. 따라서 일반 파일 복사로 백업을 수행할 수 있습니다.
OpenSC 유틸리티가 포함된 SoftHSM
이 자습서에서는 OpenSC 프로젝트의 PKCS11 유틸리티를 사용하여 SoftHSM 장치에 액세스합니다. "OpenSC"의 설치 및 사용에 대한 자세한 내용은 howtoforge 사이트에서 확인할 수 있습니다.
apt-get install opensc
다음 스냅샷은 PKCS#11 명령이 SoftHSM에서 실행되는 것을 보여줍니다. "-t" 스위치는 SoftHSM의 메커니즘을 테스트하는 데 사용됩니다.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t
결론
이 문서에서는 Ubuntu 플랫폼에서 소프트웨어 기반 HSM 도구 SoftHSM을 설치하고 초기화하는 방법에 대해 설명했습니다. HSM/스마트 카드가 장치에 액세스하도록 PKCS11 표준을 사용하여 구성할 수 있습니다.