1

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

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

4

1 回答 1

2

KMIP 规范中,有两种不同类型的对象:托管对象基础对象

  • 托管对象是指:

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

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

  • 基础对象是指:

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

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


  • 模板是一种托管对象。

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

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

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


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

在用例 3.1.1 中:

  1. 客户端发送一个创建请求,其中包含对象类型(对称键)和包含该键所需属性值列表的 模板属性结构:
    • 密码算法
    • 密码长度
    • 加密使用掩码。

在用例 3.1.4 中:

  1. 客户端使用 Register 操作注册一个Template,其中包含一组特定的 Attributes:
    • 密码算法
    • 密码长度
    • Name,指要创建的Template的名称:Template1
  2. 客户端发送一个创建请求,该请求和之前一样包含对象类型(对称键)和模板属性结构。但是,这一次模板属性结构包含:
    • 对名为的模板的引用Template1,指示操作应使用由指定的属性Template1(我们从步骤 1 中知道是密码算法和密码长度)
    • Name,指的是Key的名字:key1
    • 加密使用掩码

因此,这两个操作本质上创建了具有相同属性值的相同 Symmetric Key,但第二种情况使用了预定义的模板(并且,很简单,添加了一个键名),而第一种则没有。


旁注:

KMIP 1.0 规范此时已经过时了。KMIP 1.3 于 2015 年 12 月发布。我特别提到这一点是因为模板结构自 1.3 起已弃用。

于 2017-07-21T20:16:09.993 回答