PKCS#11是使用非常普遍的密码设备接口,在实际应用中,国密的密码设备应用接口规范GMT0018与之作用相同,在技术体系架构中处于类似的位置。

在密码产品的开发中,按照PKCS#11或者GMT0018接口规范提供相应的接口封装,应用程序无需改动或者微小改动就可以更换底层密码设备。

PKCS#11的标准内容比较多,v2-20版本有400页,相应的,PKCS#11的标准解读,将按照概念及常用接口、角色、会话、对象、机制分别进行,最后介绍应用的调用流程,串起各个概念和接口。

此为开篇,简介一下概念及常用接口函数。

一、PKCS#11概述

PKCS#11是公钥加密标准Public-Key Cryptography Standards中的一份子,由RSA实验室发布。

PKCS#11标准定义了与密码令牌的独立于平台的API,API本身命名为Cryptoki,这个API已经发展成为一个通用的加密令牌的抽象层。

PKCS#11主要是应用于智能卡和HSM。

PKCS#11为使用加密Token的应用程序提供统一的编程接口,独立于设备,屏蔽加密设备的复杂性,应用程序可以方便地更换设备。

二、Cryptoki模型

Cryptoki:Cryptographic Token Interface Standard 密码令牌接口标准,应用程序与各种各样便携式密码设备间的一种接口。

设备的种类和所支持的能力的种类取决于专用的Cryptoki库。该标准只定义库的接口,不定义库的实现,接口实现由设备商提供。

Cryptoki主要目标是一个低级程序接口,将设备的细节抽象化,并把密码设备的通用模型-密码令牌提供给应用程序。第二目标是资源共享,单个设备能为一个以上的应用程序共享。

Cryptoki为一个或多个密码设备提供一个接口,这些设备通过大量的槽在系统中运行,密码设备可以按照某一命令集执行某些密码操作,这些命令通常通过标准的设备驱动程序来实现,Cryptoki的作用就是屏蔽这些硬件的差异。


三、令牌逻辑视图

Cryptoki的令牌逻辑试图是一个能存储对象和执行密码函数的设备。

Cryptoki定义数据、证书、密钥三个对象。数据对象由应用程序定义。一个证书对象存储一个证书。一个密钥对象存储一个密码密钥。

密钥可以使公共密钥、私钥、保密密钥,每种密钥用于特定的机制时都有其子类型。

令牌能建立、破坏、操作和搜寻对象,也可以对对象执行加密功能。

需要注意区分令牌的逻辑视图和实际实现,因为并非所有的密码设备都有“对象”的概念或执行每种密码函数。许多设备只能执行有限的算法并使用固定的存储位置来存储密钥。并非所有的Cryptoki库和领啊皮需要支持每种对象类型。


四、主要的接口函数

1、通用接口


2、槽和令牌管理


3、会话管理


4、对象管理


5、加密函数


6、解密函数


7、消息摘要


8、签名和MAC


9、验证签名和MAC


10、密钥管理


11、随机数生成

加密机PKCS#11国际加密标准解读-概念和常用接口函数(1)相关推荐

  1. 逗比的输入法实现(二):基础概念和常用接口

    为什么叫 Meow?因为这是给猫用的输入法... 目录 (一):基本情况 (二):基础概念和常用接口 (三):整体构架 (四):编辑和候选 (五):界面管理和无界面模式 (六):词库和候选算法 (七) ...

  2. PKCS#11标准解读-Cryptoki库如何工作

    此为完结篇,介绍Cryptoki库如何工作. PKCS#11是使用非常普遍的密码设备接口,在实际应用中,国密的密码设备应用接口规范GMT0018与之作用相同,在技术体系架构中处于类似的位置. 在密码产 ...

  3. PKCS#11标准解读-Cryptoki库如何工作(4)

    此为完结篇,介绍Cryptoki库如何工作. PKCS#11是使用非常普遍的密码设备接口,在实际应用中,国密的密码设备应用接口规范GMT0018与之作用相同,在技术体系架构中处于类似的位置. 在密码产 ...

  4. PKCS#11 in OP-TEE

    目录 1.PCCS#11简介 2.PKCS#11 specifications 3.Achievements 4.编译和运行 5.libckteec 1.PCCS#11简介 PKCS#11标准定义了独 ...

  5. 加密狗是什么?一次性给您说全加密狗的概念

    转自:https://zhuanlan.zhihu.com/p/114759935 加密狗,也称作加密锁,是一种用在计算机.智能硬件设备.工控机.云端系统等软硬件加密产品.软件开发商通过加密狗管理软件 ...

  6. PKCS# 11和CSP概念技术对比

    本文针对PKCS# 11和CSP进行学习,以及基于CSP的USBKey密码符合性检测平台的模块设计. 开发商按照标准开发 CSP,就可以把自己开发的软件或硬件密码模块无缝连接到 CryptoAPI 的 ...

  7. PKCS#11 用户级加密应用程序示例

    转自 :http://docs.oracle.com/cd/E19253-01/819-7056/auto117/index.html 本节包含以下示例: 消息摘要示例 对称加密示例 签名和检验示例 ...

  8. CSP和PKCS#11的关系

    一.引言  PKI,被誉为现代信息社会安全的基石,它能够为所有网络透明地提供加密和数字签名等密码服务所需的密钥和证书管理功能,能够提供认证.访问控制.数据完整性机密性.和不可否认性等核心安全服务.由于 ...

  9. Openssl和PKCS#11的故事

    原文:http://www.cnblogs.com/adylee/archive/2009/08/03/1537813.html 1.1   What to do 通过Openssl和PKCS#11接 ...

最新文章

  1. 7个值得推荐的优质软件,让人忍不住体验!
  2. No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer解决方法
  3. Mac--常用安装命令以及问题解决(面向自己查看)
  4. javaweb---三层架构++
  5. java web聊天室私聊map_java websocket聊天室示例(springboot)
  6. Android自定义ListView示例,以创建不可滚动的ListView
  7. Logstash配置方法
  8. 搭建企业级Docker Registry -- Harbor
  9. 安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件
  10. 计算机键盘重复设置,教你操作win10系统电脑键盘打字时总是出现重复字符的方案...
  11. 基于RTP/RTCP的无线视频传输自适应带宽控制
  12. web自动化测试-第五讲: 三大切换
  13. 亲测好用的屏幕录制软件:camtasia2021 mac中文版
  14. php自学建议_php自学提升进阶路线
  15. 2021年浙江省跨境电商行业发展概况及发展趋势分析[图]
  16. 东南大学2012年招收推荐免试生直接攻读博士学位研究生简章
  17. 简单配置Mybatis,Druid访问MySQL数据库
  18. Sentinel-1 雷达数据快速下载
  19. 网上购物系统分析类图
  20. 高校“一卡通”解决方案

热门文章

  1. 漏洞复现-webmin漏洞系列分析与利用
  2. php(TP5)+redis实现秒杀抢购(限制用户购买次数)(附源码)
  3. 带你走进虚拟化世界之kvm
  4. win7 mac虚拟机linux,Mac虚拟机安装win7攻略 必须点赞
  5. Django模型层多表操作
  6. JavaScript 可迭代对象
  7. Kafka Connect官网说明
  8. 华为 Eth-trunk 配置IP
  9. 浏览器打开微信里的连接
  10. 酷瓜云课堂(腾讯云版)v1.2.8 发布,开源在线教育解决方案