文档详情

PKCS11及CSP接口标准.docx

发布:2017-03-31约3.7千字共5页下载文档
文本预览下载声明
PKCS#11及CSP接口标准 RSA非对称密码算法的三个创始人的姓的第一个字母联合起来就是RSA了,他们三个创建的公司的名字也就叫做RSA。在RSA有一个著名的公钥算法的实验室,这个实验室颁发的一系列行业标准就称作为PKCS标准,其中PKCS#11(简称P11)就是针对密码设备的接口指令标准。目前最新的版本应该是2.3了。 P11模型中重要的概念之一是slot,也称为槽。一个slot为一个密码设备对象。某个打开的slot会话称之为session。Session之间存在不同的验证权限。而同一个slot的不同的session之间存在操作的互相影响性,同时在某些状况下,权限会发生同步。另外一个重要的概念是对象。P11中支持几种重要的对象,如公钥、私钥、对称密钥,数据对象等。 PKCS#11创建和支持下列对象: 对象 说明 CKO_DATA 应用程序定义的对象。对象的数据结构可由应用程序任意定义,但是数据意义的解释由应用程序负责。 CKO_SECRET_KEY 对称加密算法使用的密钥。 CKO_CERTIFICATE X.509 CKO_PUBLIC_KEY RSA CKO_PRIVATE_KEY RSA CKO_MECHANISM 算法对象 ?PKCS#11的对象可根据其生命期长短的不同分成两大类:一类是持久存储的类对象,这类对象被保存在USB?Key的安全存储区域当中,直到应用程序主动删除这些对象;另一类是会话对象,这类对象只存在于运行时建立的特定会话(Session对象)当中,一旦会话结束,这类对象也跟着被删除。决定对象生命期的模板属性是CKA_TOKEN,这是个布尔值,所有的对象都有这一属性。当该值为TRUE时,该对象将被保存到Key内的存储空间,否则,该对象保存在会话空间中,当会话结束后,该对象即销毁。 PKCS#11的对象除了生命期长短有分别之外,在访问权限上也有限制。所有的对象都可根据访问权限的不同分成两大类:一类是公开对象,这类对象是任何用户都可以访问的;另一类是私有对象,这一类对象只有身份被验证的用户才有权访问。决定对象的访问限制类型的模板属性是CKA_PRIVATE。这是个布尔值,所有的对象都有这一属性。应用程序可根据需要决定对象应为私有对象还是公开对象。 P11标准颁发了70余条指令。其中部分指令简介如下表: 接口类型 函数名称 描述 通用接口函数 C_Initialize 初始化?Cryptoki C_Finalize 整理各种适合?Cryptoki的资源 C_GetInfo 获得关于Cryptoki的通用信息 C_GetFunctionList 获得Cryptoki?库函数的进入点 槽和令牌管理函数 C_GetSlotList 获得系统中槽的名单 C_GetSlotInfo 获得关于特殊槽的信息 C_GetTokenInfo 获得关于特殊令牌的信息 C_WaitForSlotEvent 等待槽事件(令牌插入,转移等)?的发生 C_GetMechanismList 获得由令牌支持的机制的名单 C_GetMechanismInfo 获得关于特殊机制的信息 C_InitToken 初始化一个令牌 C_InitPIN 初始化普通用户的?PIN C_SetPIN 改变现在用户的PIN 会话管理函数 C_OpenSession 打开一个应用程序和特殊令牌之间的连接或安装一个应用程序呼叫返回令牌插入 C_CloseSession 关闭一个会话 C_CloseAllSessions 用令牌关闭所有的会话 C_GetSessionInfo 获得关于会话的信息 C_GetOperationState 获得会话的加密操作状态 C_SetOperationState 设置会话的加密操作状态 C_Login 注册一个令牌 C_Logout 从一个令牌注销 对象管理函数 C_CreateObject 建立一个对象 C_CopyObject 建立一个对象的拷贝 C_DestroyObject 销毁一个对象 C_GetObjectSize 获取字节中一个对象的大小 C_GetAttributeValue 获取一个对象的属性值 C_SetAttributeValue 改变一个对象的属性值 C_FindObjectsInit 初始化一个对象的搜索操作 C_FindObjects 继续一个对象搜索操作 C_FindObjectsFinal 完成一个对象搜索操作 加密函数 C_EncryptInit 初始化一个加密操作 C_Encrypt 加密单部分数据 C_EncryptUpdate 继续一个多部分加密操作 C_EncryptFinal 完成一个多部分加密操作 解密函数 C_DecryptInit 初始化一个解密操作 C_Decrypt 解密单
显示全部
相似文档