pkcs11_tpm man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

pkcs11_tpm(5)	      Standards, Environments, and Macros	 pkcs11_tpm(5)

NAME
       pkcs11_tpm - RSA PKCS#11 token for Trusted Platform Modules (TPM)

SYNOPSIS
       /usr/lib/security/pkcs11_tpm.so

       /usr/lib/security/64/pkcs11_tpm.so

DESCRIPTION
       The pkcs11_tpm.so object implements the RSA PKCS#11 v2.20 specification
       using Trusted Computing Group protocols	to  talk  to  a	 TPM  security
       device. This provider implements the PKCS#11 specification and uses the
       TCG Software Stack (TSS) APIs in the SUNWtrousers package.

       Application developers should link to libpkcs11.so.1 rather  than  link
       directly with pkcs11_tpm.so. See libpkcs11(3LIB).

       The  following cryptographic algorithms are implemented: RSA, SHA1, and
       MD5.

       All of the standard PKCS#11 functions  listed  in  libpkcs11(3LIB)  are
       implemented except for the following:

	 C_EncryptUpdate
	 C_EncryptFinal
	 C_DecryptUpdate
	 C_DecryptFinal
	 C_DigestEncryptUpdate
	 C_DecryptDigestUpdate
	 C_SignEncryptUpdate
	 C_DecryptVerifyUpdate
	 C_GetFunctionStatus
	 C_CancelFunction
	 C_WaitForSlotEvent
	 C_GenerateKey
	 C_DeriveKey

       The following RSA PKCS#11 v2.20 mechanisms are supported:

	 CKM_RSA_PKCS_KEY_PAIR_GEN
	 CKM_RSA_PKCS
	 CKM_RSA_PKCS_OAEP
	 CKM_RSA_X_509
	 CKM_MD5_RSA_PKCS
	 CKM_SHA1_RSA_PKCS
	 CKM_SHA_1
	 CKM_SHA_1_HMAC
	 CKM_SHA_1_HMAC_GENERAL
	 CKM_MD5
	 CKM_MD5_HMAC
	 CKM_MD5_HMAC_GENERAL

   Per-User Initialization
       The  pkcs11_tpm	provider  can only be used on a system which has a TPM
       device and which also has the SUNWtrousers package installed. If	 those
       prerequisites  are met, users can create their own private tokens using
       pktool(1), which will allow them to perform operations  using  the  TPM
       device and protect their private data with TPM-protected keys.

       To  prepare and initialize a user's TPM token, the following steps must
       be performed:

	   1.	  Initialize the token.

	   2.	  Set the SO (security officer) PIN.

	   3.	  Set the user's unique PIN.

       Initializing the token is done using the pktool(1) command as follows:

	 $ pktool inittoken currlabel=TPM newlabel=tpm/myname

	   o	  By default, an uninitialized TPM is recognized by  the  name
		  TPM. When a user initializes their own private token, it can
		  either  be  renamed  to   something	else   (for   example,
		  tpm/joeuser)	or  kept  as  TPM  (in which case the newlabel
		  argument would be omitted).

	   o	  The user will have to supply the default SO PIN before being
		  able	to  initialize his or her token. The default SO PIN is
		  87654321. It is changed in step 2, above.

       Once the token is initialized, the SO and user  PINs  must  be  changed
       from  the  default values. Again, pktool(1) is used to change these PIN
       values.

       Changing the SO PIN:

	 $ pktool setpin token=tpm/joeuser so

       The so option indicates that this "setpin" operation is to  change  the
       SO PIN and must be present. The user must then enter the default SO PIN
       (87654321) and then enter (and confirm) a new PIN.

       Once the SO PIN is reset from the default, the user's unique  PIN  must
       also be changed.

       Changing the user's PIN:

	 $ pktool setpin token=tmp/joeuser

       The  default PIN for a non-SO user is 12345678. The user must enter the
       default PIN and then enter (and confirm) a new, unique PIN.

       The PIN	provided  for  the  pktool  setpin  operation  or  by  calling
       C_Login() and C_SetPIN() functions can be any string of characters with
       a length between 1 and 256 and no embedded nulls.

   Accessing the Token
       After a user initializes their token, they  can	begin  using  it  with
       pktool(1)  or  by  writing  PKCS11  applications and locating the token
       using the name created above (tpm/joeuser in the examples above).

       Examples:

	 $ pktool gencert token=tpm/joeuser -i
	 $ pktool list token=tpm/joeuser

   Notes
       pkcs11_tpm.so provides object storage in	 a  filesystem-specific	 token
       object  storage	area. Private objects are protected by encryption with
       private keys and can only be decrypted by loading the  token's  private
       key into the TPM and performing the decryption entirely in the TPM. The
       user's private key is generated by the TPM when	the  user  sets	 their
       personal PIN (see above). The keys for both the SO and users are stored
       in the TSS persistent storage database and are referenced by  a	unique
       UUID value. All user tokens have a unique SO key and unique user key so
       that the PINs for one user's token will	not  unlock  private  data  in
       another user's token on the same machine.

       Each  TPM  is  unique  and the token keys created on one TPM may not be
       used on another TPM. The pkcs11_tpm.so token data is all managed on the
       system  where the TPM resides and may not be moved to other systems. If
       the TPM is reset and the SRK (Storage Root Key) is changed, all of  the
       keys previously generated for that TPM will no longer be valid.

       pkcs11_tpm.so  creates  a  private  workspace  to manage administrative
       files for each token created. By	 default,  this	 area  is  created  as
       /var/tpm/pkcs11/$USERNAME.  However, users may override this by setting
       the PKCS11_TPM_DIR environment variable prior to initializing or	 using
       the token.

RETURN VALUES
       The return values for each of the implemented functions are defined and
       listed in the RSA PKCS#11 v2.20 specification. See  http://www.rsasecu‐
       rity.com.

FILES
       /var/tpm/pkcs11/USERNAME

	   User's default token object store.

       ${PKCS11_TPM_DIR}

	   Alternate token object store.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬────────────────────────────────────┐
       │      ATTRIBUTE TYPE	     │		ATTRIBUTE VALUE		  │
       ├─────────────────────────────┼────────────────────────────────────┤
       │Interface Stability	     │Committed				  │
       ├─────────────────────────────┼────────────────────────────────────┤
       │MT-Level		     │MT-Safe with Exceptions (see below) │
       ├─────────────────────────────┼────────────────────────────────────┤
       │Standard		     │PKCS#11 v2.20			  │
       └─────────────────────────────┴────────────────────────────────────┘

       Exceptions  to MT-Safe attribute are documented in section 6.5.2 of RSA
       PKCS#11 v2.20.

SEE ALSO
       pktool(1), cryptoadm(1M), libpkcs11(3LIB), attributes(5)

       TCG Software Stack (TSS) Specifications:	 https://www.trustedcomputing‐
       group. org/specs/TSS (as of the date of publication)

SunOS 5.11			  20 Mar 2009			 pkcs11_tpm(5)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net