• Ebpay(中国)

    企业微信客服
    “一对一”解答

    PKCS#11标准解读-概念和常用接口函数

    PKCS#11标准解读之概念和常用接口函数

    创建人:五台 最近更改时间:2021-12-07 17:00:00
    261
    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、随机数生成
     
    未完待续......