pkcs#11基本概念

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

周总结(2012第43周)

本周主要是对PKCS #11密码令牌接口标准的相关知识进行学习,熟悉了Cryptoki定义的一些基本概念,主要包括:槽、令牌、用户、会话、类、对象、机制、属性、模板、会话句柄、对象句柄等。Cryptoki通过上述定义的概念来抽象对密码设备的操作过程。

Cryptoki是一种应用程序与各种密码设备(基于智能卡、USBKey、PCMCIA 卡以及智能软盘)间的一种接口,该接口提供与设备细节无关的密码令牌给应用程序使用。下面归纳介绍了Cryptoki几种常用的概念。

1、槽:槽包含一个令牌的逻辑阅读器,当一台密码设备存在于阅读器中,一个令牌就存在于该槽中。

2、令牌:令牌是一个能存储对象、执行密码功能的设备。作为密码令牌接口开放标准,Cryptoki为拥有密码信息(密钥或证书)和执行密码学函数的用户设备定义了一个应用程序接口,将设备的细节抽象化,并把密码设备(如USBKey、加密卡)的通用模型称作密码令牌,以提供给应用程序。

3、会话:会话是应用程序和令牌之间的逻辑连接。打开一个会话后,应用程序便访问令牌的公共对象。概括来讲:一个打开的会话能用来执行三大种类的操作:管理操作(如注册),对象管理操作(如在令牌上建立或销毁一个对象)和密码操作(如计算一个消息摘要)。

4、对象:对象是属性的集合,对象可根据生命周期分为:会话对象和令牌对象;应用打开一个会话时,Cryptoki以会话句柄方式标识会话,便于应用使用会话句柄访问会话,同时应用可通过调用Cryptoki接口创建或查询对象,而Cryptoki以对象句柄方式标识对象,便于会话通过对象句柄访问对象;Cryptoki 定义了四类存储对象:数据对象、证书对象、密钥对象、密码算法域参数对象。

对象按使用期限和可见性可以分为TOKEN(令牌)对象和SESSION(会话)对象。TOKEN对象对所有的应用程序可见,并且一直保存在TOKEN中,即使在会话关闭或令牌从槽中拔出后。SESSION对象则是暂时的,当会话关闭时,该

会话产生的所有会话对象就会自动被破坏,只有产生会话对象的应用程序能够查看它们。

5、密钥:密钥可以是一个公钥或一个私钥或一个保密密钥或为一个OTP密钥。这几类密钥都有用在特别机制中的子类型。

6、机制:机制详细说明某种加密过程是如何执行的,一个机制作为一个对象,明确指定了一个密码处理是如何被执行。Cryptoki中定义的机制被不同的密码操作支持。对于一个特定的令牌,一个特定的操作只支持Cryptoki中定义的机制集合的一个子集。

7、属性:属性描述了对象的特征。Cryptoki对创建对象时那些属性必须指定那些可选都有明确的规定,并且明确了属性之间的一致性定义。在对象拷贝时,能否修改对象的属性依赖于确定对象的属性值,如一个保密密钥对象在使用

C_CopyObject进行对象拷贝时其CKA_SENSITIVE 属性的值可以由CK_FALSE 改变为CK_TRUE,而不能由CK_TRUE 改变到CK_FALSE。

8、用户类型:Cryptoki识别三种用户类型:安全官(Security Officer(SO))、正规用户(normal user(NU))、上下文特定用户(contextspecific user(CSU))。只有NU在通过认证之后才能准许访问令牌上的私有对象。

SO 的角色是初始化一个令牌,并设置NU 的PIN(或者定义其他方式来对NU 进行认证),或许还要操纵一些公用对象。NU 在SO 没有为其设置PIN 之前是不能登录令牌的。事实上SO 和NU 可以是一个人,这可根据密码令牌的管理策略来确定。CSU 只有在重新认证密码操作时才会用到。

9、会话句柄和对象句柄:一个会话句柄是一个确定会话的Cryptoki赋予值。在许多方式中它类似于一个文件句柄。对于函数来说,它被规定用来确定函数应当执行哪一个会话。一个应用程序的所有线程能平等地访问所有的会话句柄。

对象句柄是用来控制Cryptoki对象的标识符。对象句柄在同样的意义上与会话句柄类似,即通过一个对象句柄的一个给定对象的可见性与一个给定应用程序的所有线程中的相同。当然,R/O会话仅能对令牌对象进行只读访问,同时在另一方面,R/W会话对令牌对象能进行读/写访问。

相关文档
最新文档