KMIP中的模板和模板属性结构有什么区别?

时间:2017-03-15 01:59:13

标签: protocols kmip

我目前正在使用开源库KMIP4J学习和开发KMIP(Spec 1.0)。我正在查看规范表中作为示例提供的用例,我不得不尝试区分模板和模板属性结构的使用。

这两个用例有什么区别?两者都有加密算法和加密长度属性,但我不明白它们之间的区别。

1 个答案:

答案 0 :(得分:2)

KMIP Specification内,有两种不同类型的对象:托管对象基础对象

  • 托管对象是指:

      

    由密钥管理系统存储和维护的对象[KMIP规范,第1节]

    托管对象示例:证书,对称密钥,公钥,私钥,模板

  • 基础对象是指:

      

    协议消息中使用但不由密钥管理系统管理的对象。基础对象是托管对象的组件。   [KMIP规范,第2.1节]

    基础对象的示例:属性,凭证,键值,模板 - 属性结构

  • 模板是一种受管对象。

      

    模板是命名的托管对象,包含托管加密对象的客户端可设置属性(即,存储的,命名的属性列表)。模板中指定的属性适用于创建的任何按名称引用模板的对象。   [KMIP规范,第2.2.6节]

  • 模板 - 属性结构是一种基础对象。

      

    模板 - 属性结构用于各种操作,以在请求中提供所需的属性值和/或模板名称,并在响应中返回实际的属性值。   [KMIP规范,第2.1.8节]

因此,让我们看看您指出的用例:

在使用案例3.1.1中:

  1. 客户端发送一个Create请求,其中包含对象类型(Symmetric Key)和 Template-Attribute Structure ,其中包含该键所需属性值的列表:
    • 加密算法
    • 加密长度
    • 加密使用面具。
  2. 在使用案例3.1.4中:

    1. 客户端使用Register操作注册 Template ,其中包含一组特定的Attributes:
      • 加密算法
      • 加密长度
      • 名称,指的是要创建的模板的名称:Template1
    2. 客户端发送一个Create请求,与之前一样,包含对象类型(对称密钥)和模板 - 属性结构。但是,这次模板 - 属性结构包含:
      • 对名为Template1 Template 的引用,指示操作应使用Template1指定的属性(我们从步骤1中知道的是加密算法和加密长度) )
      • 名称,引用密钥的名称:key1
      • 加密使用面具
    3. 因此,这两个操作实际上创建了具有相同属性值的相同对称密钥,但第二种情况使用预定义的模板(并且,通常会添加密钥名称),而第一种情况则不会。

      旁注:

      此时KMIP 1.0 Specification已经过时了。 KMIP 1.3于2015年12月发布。我特别提到这一点,因为模板结构从1.3开始被弃用。