50 likes | 249 Views
KMIP Notes. February 2014 Tim Hudson – tjh@cryptsoft.com. 1. Thoughts on NIST. Client needs to be able to wrap/unwrap attributes Server needs to be able to wrap/unwrap attributes Needs Link to a wrapping key Need to know the difference between Sensitive and Non-Sensitive attributes
E N D
KMIP Notes February 2014 Tim Hudson – tjh@cryptsoft.com 1
Thoughts on NIST • Client needs to be able to wrap/unwrap attributes • Server needs to be able to wrap/unwrap attributes • Needs Link to a wrapping key • Need to know the difference between Sensitive and Non-Sensitive attributes • Same key for key material wrapping and sensitive attributes must be possible • Separate key for key material wrapping and sensitive attributes must be possible • Need a digest across both the key material and the sensitive attributes (one of the NIST requirements) 2
Thoughts on NIST Alternative 1 • Add a new structure SecurityAttribute entirely the same as Attribute with perhaps the wrapping key identifier added into the structure • Add new operations to handle this • Add/Modify/Delete SecurityAttribute • GetSecurityAttributeList • GetSecurityAttribute • Change all constructors (Register/Create/CreateKeyPair/Certify/ReKey/ReKeyKeyPair/ReCertify) to allow for SecurityAttribute everywhere that Attribute exists • Alternatively don’t allow this during construction – only post-construction with Add/Mod/Delete • If added later perhaps need to restrict this to a single request (multiple batch items) – is this a requirement? To discuss. 3
Thoughts on NIST Alternative 2 • x-z-CustomAttributeName • y-z-CustomAttributeName • Values a wrapped using the wrapping mechanism specified in the Cryptographic Parameters (first one in associated attributes) • Return as Bytestring for the encoding • Link attribute holds the wrapping key id • If needed to be per-attribute links then would have to add another field into the link structure to allow for the specific attribute? • Or limit to a single wrapping attribute? 4
Thoughts on NIST Alternative 2 • Register/Create/CreateKeyPair/etc • All support use of Attribute with custom attributes • Add/Modify/Delete Attribute • Works as-is • GetAttributeList • Return whatever client has access to • GetAttributes • Returns all attributes (whatever client has access to) • Or Returns a specific attribute by name (if the name is known) 5