웹사이트 검색

Ubuntu 16.04 LTS에서 SoftHSM을 설치하고 사용하는 방법


이 페이지에서

  1. 종속성
  2. 설치
    1. 구성 파일
    2. 소프트 토큰 초기화\n
    3. 백업
    4. 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 표준을 사용하여 구성할 수 있습니다.