《智能密码钥匙密码应用接口规范》由会员分享,可在线阅读,更多相关《智能密码钥匙密码应用接口规范(42页珍藏版)》请在金锄头文库上搜索。
1、ICS 35040L 80备案号:383142013 BM中华人民 共禾口 国密码行业标准GMT 00162012智能密码钥匙密码应用接口规范Smart token cryptography application interface specification20121 122发布 2012-1122实施国家密码管理局发布GMT 0016-2012目次前言1范围 2规范性引用文件 一3术语和定义 -4缩略语 - 一 工,:5结构模型 -一51层次关系 - :052设备的应用结构 一 06数据类型定义061算法标识 062基本数据类型 - - - 063常量定义 - - 464复合数据类型 -
2、 07接口函数- - n71设备管理 72访问控制-73应用管理- 一74文件管理75容器管理 -76密码服务 - - 8设备的安全要求 M牡趵站81设备使用阶段 82权限管理 83密钥安全要求 84设备抗攻击要求 拍弱拍拍附录A(规范性附录)错误代码定义和说明 盯GMT 00162012前言本标准按照OBT 112009给出的规则进行编写。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。 本标准由国家密码管理局提出并归日。本标准的附录A为规范性附录。 本标准起草单位:北京海泰方圆科技、北京握奇智能科技、北京大明五洲科技有限公司、恒宝股份、深圳市明华澳汉科技股份
3、、武汉天喻信息产业股份、北京 飞天诚信科技、华翔腾数码科技。本标准起草人:刘平、郭宝安、石玉平、柳增寿、胡俊义、管延军、项莉、雷继业、胡鹏、赵再兴、段晓毅、 刘玉峰、刘伟丰、陈吉、何永福、李高锋、黄东杰、壬建承、汪雪林、赵李明。本标准凡涉及密码算法相关内容,按照国家有关法规实施。GMT 00162012智能密码钥匙密码应用接口规范1范围 本标准规定了基于PKI密码体制的智能密码钥匙密码应用接口,描述了密码应用接口的函数、数据类型、参数的定义和设备的安全要求。 本标准适用于智能密码钥匙产品的研制、使用和检测。2规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的
4、版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GMT 0006密码应用标识规范 GMT 0009 SM2密码算法使用规范3术语和定义下列术语和定义适用于本文件。31应用application包括容器、设备认证密钥和文件的一种结构,具备独立的权限管理。3 2容器container密码设备中用于保存密钥所划分的唯一性存储空问。33设备device本标准中将智能密码钥匙统称为设备。34设备认证device authentication智能密码钥匙对应用程序的认证。35设备认证密钥device authentication key用于设备认证的密钥。3 6设备标
5、签label设备的别名,可以由用户进行设定并存储于设备内部。3 7消息鉴别码message authentication code;MAC消息鉴别算法的输出。GMT 0016201238管理员PIN administrator PIN管理员的口令,为ASCII字符串。39用户PIN USeFPIN用户的口令,为AscII字符串。4缩略语 下列缩略语适用于本规范:API应用编程接口(Applicatlon Programming Interface)PKI公钥基础设施(Public Key Infrastructure)PKCS#1公钥密码使用标准系列规范中的第1部分,定义RSA公开密钥算法加密
6、和签名机制(the Public-Key Cryptography Standard Part 1)PKCS#5公钥密码使用标准系列规范中的第5部分,描述一种利用从口令派生出来的安全密 钥加密字符串的方法(the Public-Key Cryptography Standard Part 5)PIN个人身份识别码(Personal Mentification Number) MAC消息鉴别码(Message Authentication Code)5结构模型51层次关系 智能密码钥匙密码应用接口位于智能密码钥匙应用程序与设备之间,如图1所示。智能密码钥匙应用程序 U 智能密码钥匙密码应用接口
7、U智能密码钥韪密码应用接H羲据格式U智能密码钥匙设罄驱动UUU一图1 接口在应用层次关系中的位置2GMT 0016201252设备的应用结构 一个设备中存在设备认证密钥和多个应用,应用之间相互独立。设备的逻辑结构如图2所示。设备认证密钼lljl应用1应用2 应用”图2设备逻辑结构 应用由管理员PIN、用户PIN、文件和容器组成,可以存在多个文件和多个容器。每个应用维护各自的与管理员PIN和用户PIN相关的权限状态。 一个应用的逻辑结构如图3所示。管理员PINI用户PIN f-司证书i卜硎证书|f1蕊丽一汀百磊藏一jr_=一ir荟磊丽j2仟1 。文件2劂踯i劂黜眷翻文件m 匿堕卿压匿豳三曩受霸图
8、3应用逻辑结构图 容器中存放加密密钥对、签名密钥对和会话密钥。其中加密密钥对用于保护会话密钥,签名密钥对用于数字签名和验证,会话密钥用于数据加解密和MAC运算。容器中也可以存放与加密密钥对对应 的加密数字证书和与签名密钥对对应的签名数字证书。其中,签名密钥对由内部产生,加密密钥对由外 部产生并安全导人,会话密钥可由内部产生或者由外部产生并安全导人。6数据类型定义61算法标识 本规范中使用的算法其标识定义见GMT 0006。62基本数据类型本规范中的字节数组均为高位字节在前(BigEndian)方式存储和交换。基本数据类型定义如表1 所示。GMT 00162012表1基本数据类型类型名称 描述定
9、义INT8有符号8位整数 INTl6有符号16位整数 INT3Z有符号32位整数 UINT8无符号8位整数 UINTl6无符号16位整数 UINT32无符号32位整数B00L布尔类型,取值为TRUE或FALSEByTE字节类型,无符号8位整数 typedef UINT8 BYTE CHAR字符类型,无符号8位整数 typedef UINT8 CHAR SHORT短整数,有符号16位 typedef INTl6 SHORT USHORT无符号16位整数 typedef UINTl6 USHORT LONG长整数,有符号32位整数 typedef INT32 LONG ULONG 长整数,无符号3
10、2位整数 typedef UINT32 ULONG UINT 无符号32位整数typedef UINT32 UINT WORD 字类型,无符号16位整数 typedef UINTlfi WORD DWORD 双字类型,无符号32位整敷 typedef UINT32 DWORDFLAGS标志类型,无符号32位整数typedef UINT32 FLAGS8位字符串指针,按照UTF8格式存LPSTRtypedef CHAR*LPSTR储及交换HANDLE句柄,指向任意数据对象的起始地址 typedef void*HANDLE DEVHANDLE 设备旬柄 typedef HANDLE DEVHAND
11、LE HAPPLICATIoN应用旬柄 typedef HANDLE HAPPLICATlON HCONTAINER容器句柄 typedef HANDLE HCONTAINER63常量定义 数据常量标识定义了在规范中用到的常量的取值。数据常量标识的定义如表2所示。表2常量定义常量名 取值 描述TRUE0x00000001布尔值为真FALSE 0x0000000G布尔值为假DEVAPIstdcallstdcall函数调用方式4GMT 00162012 表2(续)gtlt-名取值描述 ADMINTYPE 0 管理员PIN类型 USERTYPE1用户PIN类型64复合数据类型641版本a)类型定义t
12、ypedef struct StructVersionBYTE maior;BYTE minor;)VERSION;b)数据项描述见表3。表3版本定义数据项 类型意义备注mai。rBYTE主版本号 主版本号和次版本号以“”分隔,例如Version 10,主版本号为1,1miBYTE次版本号 次版本号为0;Version 210,主版本号为2,欢版本号为106 42设备信息a)类型定义typedef struet Struct DEVINFOfVERSIoNVersion;CHARManufacturer64;CHARIssuerl 64|;cHARLabel32:CHARSerialNumber32;VERSIoN HWVersion: VERSION FirmwareVersion; ULONGAlgSymCap; ULONG AlgAsymCap;ULONGAigHashCsp ULONGDevAuthAlgld; ULONGTotalSpace; ULONGFreeSpace;ULONGMaxECCBufferSizeULoNGMaxButferSize;BYTEReserved64;)DEVINFO,*PDEVINFO;5GMT 00162012 b)数据项描述见表4。表4设备信息描述数据项 类型意义