하드웨어 공급자는 자동으로 검색되어 로드됩니다. 자세한 내용은 driver.conf(4) 매뉴얼 페이지를 참조하십시오.
암호화 프레임워크에 연결해야 할 하드웨어가 있을 경우 하드웨어가 커널에서 SPI에 등록됩니다. 프레임워크가 하드웨어 드라이버를 서명했는지 확인합니다. 특히, Oracle이 발행한 인증서로 드라이버의 객체 파일이 서명되었는지 검사됩니다.
예를 들어, Sun Crypto Accelerator 6000 보드(mca), UltraSPARC T1 및 T2 프로세서의 암호화 가속기용 ncp 드라이버(ncp), UltraSPARC T2 프로세서의 n2cp 드라이버(n2cp), T-Series 시스템용 /dev/crypto 드라이버가 하드웨어 방식을 프레임워크에 연결합니다.
공급자 서명 얻기에 대한 자세한 내용은 암호화 프레임워크의 사용자 레벨 명령에서 elfsign 명령에 대한 내용을 참조하십시오.
사용 가능한 공급자를 나열하려면 원하는 특정 정보에 따라 여러 옵션과 함께 cryptoadm list 명령을 사용합니다.
시스템의 모든 공급자 나열
공급자 목록의 내용 및 형식은 여러 Oracle Solaris 릴리스 및 플랫폼마다 다릅니다. 시스템에서 cryptoadm list 명령을 실행하여 시스템이 지원하는 공급자를 확인하십시오. 일반 사용자는 사용자 레벨의 방식만 직접 사용할 수 있습니다.
% cryptoadm list User-level providers: /* for applications */ Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Provider: /usr/lib/security/$ISA/pkcs11_tpm.so Kernel software providers: /* for IPsec, kssl, Kerberos */ des aes arcfour blowfish camellia ecc sha1 sha2 md4 md5 rsa swrand n2rng/0 /* for hardware */ ncp/0 n2cp/0
암호화 프레임워크에서 공급자 및 해당 방식 나열
사용 가능한 방식의 강도 및 모드(예: ECB 및 CBC)를 볼 수 있습니다. 그러나 나열된 방식 중 일부는 사용하지 못할 수 있습니다. 사용할 수 있는 방식을 나열하는 방법에 대한 지침은 다음 항목을 참조하십시오.
표시 목적상 다음 출력이 잘립니다.
% cryptoadm list -m [provider=provider] User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Mechanisms: CKM_DSA CKM_RSA_X_509 CKM_RSA_PKCS ... CKM_SHA256_HMAC_GENERAL CKM_SSL3_MD5_MAC Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL ... CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE Provider: /usr/lib/security/$ISA/pkcs11_tpm.so /usr/lib/security/$ISA/pkcs11_tpm.so: no slots presented. Kernel providers: ========================== des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC aes: CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM, \ CKM_AES_GCM,CKM_AES_GMAC, CKM_AES_CFB128,CKM_AES_XTS,CKM_AES_XCBC_MAC arcfour: CKM_RC4 blowfish: CKM_BLOWFISH_ECB,CKM_BLOWFISH_CBC ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA, \ CKM_ECDSA_SHA1 sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL sha2: CKM_SHA224,CKM_SHA224_HMAC,...CKM_SHA512_256_HMAC_GENERAL md4: CKM_MD4 md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS, \ CKM_SHA1_RSA_PKCS,CKM_SHA224_RSA_PKCS, CKM_SHA256_RSA_PKCS,CKM_SHA384_RSA_PKCS,CKM_SHA512_RSA_PKCS swrand: No mechanisms presented. n2rng/0: No mechanisms presented. ncp/0: CKM_DSA,CKM_RSA_X_509,CKM_RSA_PKCS,CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_DH_PKCS_KEY_PAIR_GEN,CKM_DH_PKCS_DERIVE,CKM_EC_KEY_PAIR_GEN, CKM_ECDH1_DERIVE,CKM_ECDSA n2cp/0: CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES3_CBC, \ ...CKM_SSL3_SHA1_MAC
사용 가능한 암호화 방식 나열
정책에 따라 사용 가능한 방식이 결정됩니다. 관리자가 정책을 설정합니다. 관리자는 특정 공급자의 방식을 사용 안함으로 설정하도록 선택할 수 있습니다. –p 옵션은 관리자가 설정한 정책에 의해 허가된 방식 목록을 표시합니다.
% cryptoadm list -p [provider=provider] User-level providers: ===================== /usr/lib/security/$ISA/pkcs11_kernel.so: \ all mechanisms are enabled.random is enabled. /usr/lib/security/$ISA/pkcs11_softtoken.so: \ all mechanisms are enabled, random is enabled. /usr/lib/security/$ISA/pkcs11_tpm.so: all mechanisms are enabled.
Kernel providers: ========================== des: all mechanisms are enabled. aes: all mechanisms are enabled. arcfour: all mechanisms are enabled. blowfish: all mechanisms are enabled. ecc: all mechanisms are enabled. sha1: all mechanisms are enabled. sha2: all mechanisms are enabled. md4: all mechanisms are enabled. md5: all mechanisms are enabled. rsa: all mechanisms are enabled. swrand: random is enabled. n2rng/0: all mechanisms are enabled. random is enabled. ncp/0: all mechanisms are enabled. n2cp/0: all mechanisms are enabled.
다음 예에서는 cryptoadm list 명령의 구체적인 사용을 추가로 보여줍니다.
예 3-11 특정 공급자의 암호화 정보 나열cryptoadm options 명령에 공급자를 지정하면 공급자에게 해당되는 정보로만 출력이 제한됩니다.
# cryptoadm enable provider=dca/0 random # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5, CKM_MD5_HMAC,... random is enabled.
다음 출력에서는 방식만 사용으로 설정되었음을 보여줍니다. 난수 생성기는 계속 사용 안함으로 설정됩니다.
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5,CKM_MD5_HMAC,.... # cryptoadm enable provider=dca/0 mechanism=all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is disabled.
다음 출력에서는 보드의 모든 기능과 방식이 사용으로 설정되었음을 보여줍니다.
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms ar enabled, except CKM_DES_ECB,CKM_DES3_ECB. random is disabled. # cryptoadm enable provider=dca/0 all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is enabled.예 3-12 사용자 레벨 암호화 방식만 찾기
다음 예에서 사용자 레벨 라이브러리 pkcs11_softtoken이 제공하는 모든 방식이 나열됩니다.
% cryptoadm list -m provider=/usr/lib/security/\ $ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL CKM_DES_MAC … CKM_ECDSA CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE예 3-13 어떤 암호화 방식이 어떤 기능을 수행하는지 확인
방식은 서명 또는 키 생성과 같은 특정 암호화 기능을 수행합니다. –v –m 옵션은 모든 방식과 해당 기능을 표시합니다.
이 경우 관리자가 CKM_ECDSA* 방식이 사용될 수 있는 기능이 무엇인지 확인할 수 있습니다.
% cryptoadm list -vm User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Number of slots: 3 Slot #2 Description: ncp/0 Crypto Accel Asym 1.0 ... CKM_ECDSA 163 571 X . . . X . X . . . . . . . ... Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so ... CKM_ECDSA 112 571 . . . . X . X . . . . . . . . CKM_ECDSA_SHA1 112 571 . . . . X . X . . . . . . . . ... Kernel providers: ================= ... ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_ECDSA_SHA1 ...
목록에는 다음 사용자 레벨 공급자에서 제공되는 방식이 표시됩니다.
CKM_ECDSA 및 CKM_ECDSA_SHA1 – /usr/lib/security/$ISA/pkcs11_softtoken.so 라이브러리의 소프트웨어 구현
CKM_ECDSA – /usr/lib/security/$ISA/pkcs11_kernel.so 라이브러리의 ncp/0 Crypto Accel Asym 1.0으로 가속화됨
각 항목은 방식에 대한 정보 조각을 나타냅니다. 이러한 ECC 방식에 나타나는 목록은 다음과 같습니다.
최소 길이 - 112바이트
최대 길이 - 571바이트
하드웨어 – 하드웨어에 사용하거나 사용할 수 없습니다.
암호화 – 데이터를 암호화하는 데 사용되지 않습니다.
해독 – 데이터를 해독하는 데 사용되지 않습니다.
다이제스트 – 메시지 다이제스트를 만드는 데 사용되지 않습니다.
서명 – 데이터를 서명하는 데 사용됩니다.
서명 + 복구 – 데이터를 서명으로부터 복구할 수 있는 경우 데이터를 서명하는 데 사용되지 않습니다.
확인 – 서명된 데이터를 확인하는 데 사용됩니다.
확인 + 복구 – 서명으로부터 복구할 수 있는 데이터를 확인하는 데 사용되지 않습니다.
키 생성 – 개인 키를 생성하는 데 사용되지 않습니다.
쌍 생성 – 키 쌍을 생성하는 데 사용되지 않습니다.
래핑 – 래핑하는 데 사용되지 않습니다. 즉, 기존 키를 암호화합니다.
언래핑 – 래핑된 키를 언래핑하는 데 사용되지 않습니다.
파생 – 기본 키로부터 새 키를 파생하는 데 사용되지 않습니다.
EC Caps – 이전 항목에 포함되지 않은 Absent EC 기능