5.3. 스마트 카드에서 인증서를 사용하여 인증을 위한 애플리케이션 구성

애플리케이션에서 스마트 카드를 사용하여 인증하면 보안이 향상되고 자동화가 간소화될 수 있습니다. 다음 방법을 사용하여 PKI(Public Key Cryptography Standard) #11 URI를 애플리케이션에 통합할 수 있습니다.

  • Firefox 웹 브라우저에서 p11-kit-proxy PKCS #11 모듈을 자동으로 로드합니다. 즉, 시스템에서 지원되는 모든 스마트 카드가 자동으로 감지됩니다. TLS 클라이언트 인증을 사용하려면 추가 설정이 필요하지 않으며 서버가 요청할 때 스마트 카드의 키와 인증서가 자동으로 사용됩니다.
  • 애플리케이션에서 GnuTLS 또는 NSS 라이브러리를 사용하는 경우 PKCS #11 URI를 이미 지원합니다. 또한 OpenSSL 라이브러리에 의존하는 애플리케이션은 openssl-pkcs11 패키지에서 제공하는 pkcs11 엔진을 통해 스마트 카드를 포함한 암호화 하드웨어 모듈에 액세스할 수 있습니다.
  • 스마트 카드에서 개인 키로 작업해야 하며 NSS,GnuTLS 또는 OpenSSL 을 사용하지 않는 애플리케이션에서는 특정 PKCS #11 모듈의 PKCS #11 API를 사용하는 대신, 스마트 카드를 포함한 암호화 하드웨어 모듈과 함께 작업하는 데 직접 p11-kit API를 사용할 수 있습니다.
  • wget 네트워크 다운 로더를 사용하면 로컬에 저장된 개인 키 및 인증서에 대한 경로 대신 PKCS #11 URI를 지정할 수 있습니다. 이렇게 하면 안전하게 저장된 개인 키와 인증서가 필요한 작업의 스크립트 생성이 간소화될 수 있습니다. 예를 들어 다음과 같습니다.

    $ wget --private-key 'pkcs11:token=softhsm;id=%01;type=private?pin-value=111111' --certificate 'pkcs11:token=softhsm;id=%01;type=cert' https://example.com/
  • curl 툴을 사용할 때 PKCS #11 URI를 지정할 수도 있습니다.

    $ curl --key 'pkcs11:token=softhsm;id=%01;type=private?pin-value=111111' --cert 'pkcs11:token=softhsm;id=%01;type=cert' https://example.com/
    참고

    PIN은 스마트 카드에 저장된 키에 대한 액세스를 제어하는 보안 수단이고 구성 파일에 일반 텍스트 형식의 PIN이 포함되어 있으므로 공격자가 PIN을 읽지 못하도록 추가 보호를 고려하십시오. 예를 들어 pin-source 속성을 사용하여 file:을 제공할 수 있습니다. 파일에서 PIN을 읽기 위한 URI입니다. RFC 7512: PKCS #11 URI Scheme Query 특성 Semantics에서 자세한 내용을 확인하십시오. 명령 경로를 pin-source 속성 값으로 사용하는 것은 지원되지 않습니다.

추가 리소스

  • curl(1), wget(1), p11-kit(8) 도움말 페이지