Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
POLICY.CONF(5)			 openCryptoki			POLICY.CONF(5)

NAME
       policy.conf - Configuration file	for openCryptoki policies.

DESCRIPTION
       openCryptoki uses a policy configuration	file at	/etc/opencryptoki/pol-
       icy.conf

       This  configuration  file restricts the operations of openCryptoki to a
       specific	set of allowed operations.  The	policy	allows	users  to  re-
       strict keys to a	minimal	cryptographic strength,	restrict supported el-
       liptic curves, mechanisms, MGFs,	KDFs, or PRFs.

SYNTAX
       This  file starts with a	version	specification of the form version pol-
       icy-0 followed by policy	constraints.

       A policy	constraint assigns a value to a	configuration key.  The	syntax
       depends of the value of the key:

       strength

	      This key defines the minimal required strength for keys, and di-
	      gest and signature sizes.	 It corresponds	to the	definition  in
	      /etc/opencryptoki/strength.conf.	 Valid values are 0, 112, 128,
	      192, and 256.  The special value 0 allows	every  key  and	 arbi-
	      trary  size  of  digests and signatures.	The format is a	simple
	      assignment:

	      strength = number

	      If other values are used,	they are rounded up to the  next  sup-
	      ported value.  Values greater than 256 are rounded down to 256.

       allowedmechs

	      This key specifies a list	of mechanisms that are allowed by this
	      policy.	The list should	contain	a comma-separated list of CKM_
	      constants	supported by openCryptoki. The list is	placed	inside
	      brackets:

	      allowedmechs ( mech1, mech2 )

	      Note:  This key is optional.  If not present, all	mechanisms are
	      allowed.	If an empty list is provided, no  mechanism  would  be
	      allowed.

       allowedcurves

	      This key specifies a list	of allowed elliptic curves.  Keys that
	      do  not belong to	any of the allowed curves cannot be created or
	      used.  The list has the same format as the allowedmechs key:

	      allowedcurves ( curve1, curve2 )

	      Valid curve names	are:

	      	     BRAINPOOL_P160R1

	      	     BRAINPOOL_P160T1

	      	     BRAINPOOL_P192R1

	      	     BRAINPOOL_P192T1

	      	     BRAINPOOL_P224R1

	      	     BRAINPOOL_P224T1

	      	     BRAINPOOL_P256R1

	      	     BRAINPOOL_P256T1

	      	     BRAINPOOL_P320R1

	      	     BRAINPOOL_P320T1

	      	     BRAINPOOL_P384R1

	      	     BRAINPOOL_P384T1

	      	     BRAINPOOL_P512R1

	      	     BRAINPOOL_P512T1

	      	     PRIME192V1

	      	     SECP224R1

	      	     PRIME256V1

	      	     SECP384R1

	      	     SECP521R1

	      	     SECP256K1

	      	     CURVE25519

	      	     CURVE448

	      	     ED25519

	      	     ED448

       Note: This key is optional.  If not present, all	 curves	 are  allowed.
       An empty	list allows no curve.

       allowedmgfs

	      This  key	 specifies  the	 allowed  Message Generation Functions
	      (MGFs) for use in	RSA OAEP and RSA PSS.  The value is a list  of
	      CKG_ constants supported by openCryptoki.	 The list has the same
	      format as	the allowedmechs key:

	      allowedmgfs ( mgf1, mgf2 )

	      Note:  This  key	is optional.  If not present, all MGFs are al-
	      lowed.  An empty list allows no MGF.

       allowedkdfs

	      This key specifies the allowed Key Derivation  Functions	(KDFs)
	      for  use	in  ECDH  key derivation.  The value is	a list of CKD_
	      constants	supported by openCryptoki.  This  list	has  the  same
	      format as	the allowedmechs key:

	      allowedkdfs ( kdf1, kdf2 )

	      Note:  This  key	is optional.  If not present, all KDFs are al-
	      lowed.  An empty list allows no KDF.

       allowedprfs

	      This key specifies the allowed  Pseudo-Random  Functions	(PRFs)
	      for  use	in  PKCS #5 PBKDF.  The	value is a list	of PRFs.  Cur-
	      rently, the only supported value is  CKP_PKCS5_PBKD2_HMAC_SHA256
	      CKP_PKCS5_PBKD2_HMAC_SHA512 which	leads to the list

	      allowedprfs	     (		  CKP_PKCS5_PBKD2_HMAC_SHA512,
	      CKP_PKCS5_PBKD2_HMAC_SHA256 )

	      Note: This key is	optional.  If not present, all	PRFs  are  al-
	      lowed.  An empty list allows no PRF.

NOTES
       The  policy  configuration file has to be owned by root:pkcs11 and have
       mode 0640.  Otherwise, openCryptoki will	return CKR_FUNCTION_FAILED  on
       C_Initialize and	log the	reason into syslog.

       The  pound  sign	('#') is used to indicate a comment.  Both the comment
       character and any text after it,	up to the end of  the  line,  are  ig-
       nored.  The  comment  character	can be used at the beginning of	a line
       (including before the file version specification), after	 the  strength
       value, after a comma, and before	and after the bracket.

       Since  the  policy  indirectly  refers  to  a strength configuration, a
       strength	configuration has to exist and be valid.  If no	strength  con-
       figuration  exists,  no policy will be enforced.	 If an existing	policy
       configuration is	invalid, openCryptoki cannot be	used.

       openCryptoki uses some cryptographic operations to store	token objects.
       These operations	have to	be allowed by the  policy.   Which  operations
       are  needed  depends on the token store format and the token (since the
       ICSF Token as a remote token uses different crypto operations to	 store
       its management data):

	      FIPS compliant format
		     Token stores in the FIPS compliant	format need the	mecha-
		     nisms   CKM_AES_KEY_GEN,  CKM_AES_KEY_WRAP,  CKM_AES_GCM,
		     CKM_PKCS5_PBKD2, the PRF CKP_PKCS5_PBKD2_HMAC_SHA512, and
		     must allow	256 bit	AES keys.

	      legacy format
		     Token  stores  in	legacy	format	need  the   mechanisms
		     CKM_DES3_KEY_GEN,	    CKM_DES3_CBC,     CKM_AES_KEY_GEN,
		     CKM_AES_CBC, CKM_SHA1, CKM_MD5 and	must allow 2-key  TDES
		     keys (80 bit symmetric keys with 64 bit signatures).

	      ICSF Token store
		     CKM_AES_KEY_GEN,	  CKM_AES_CBC,	  CKM_SHA1,    CKM_MD5
		     CKM_PKCS5_PBKD2, the PRF CKP_PKCS5_PBKD2_HMAC_SHA256, and
		     must allow	256 bit	AES keys.

       Tokens cannot be	loaded if their	token store format is not supported by
       the policy.  If a token cannot be loaded, a  message  is	 printed  into
       syslog  detailing the policy violation.	To fix this problem, make sure
       the token format	is allowed by your policy (either by satisfying	 above
       constraints  or	by temporarily removing	/etc/opencryptoki/policy.conf)
       and migrate your	token store, e.g., to the FIPS-compliant format.

SEE ALSO
       strength.conf(5),
       opencryptoki(7),
       pkcstok_migrate(1),
       /usr/share/doc/opencryptoki/policy-example.conf

3.19.0				September 2021			POLICY.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=policy.conf&sektion=5&manpath=FreeBSD+Ports+14.3.quarterly>

home | help