税务UKey技术规范.docx
《税务UKey技术规范.docx》由会员分享,可在线阅读,更多相关《税务UKey技术规范.docx(49页珍藏版)》请在冰点文库上搜索。
税务UKey技术规范
税务UKey技术规范
国家税务总局
目 次
前 言
请注意,本规范的某些内容可能涉及专利,发布机构不承担识别这些专利的责任。
本规范由国家税务总局提出。
本规范规定税务UKey产品硬件及硬件驱动层的生产,后续还需取得国家密码管理局密码产品型号认证并通过应用环境中的相关测试。
税务UKey技术规范
1 范围
税务UKey是税务逻辑内核和税务数字证书的安全载体和运行环境。
税务UKey应为税务逻辑内核提供安全运行环境。
为规范税务UKey硬件、BSP支持库和出厂固件设计生产,特制定本规范供各设计生产厂商使用。
各厂商需根据本规范进行设计和生产。
本规范规定了税务UKey的技术要求、BSP支持库、出厂固件、数据格式等内容。
2 规范性引用文件
下列文件对于本规范的应用是必不可少的。
凡是注有日期的引用文件,仅注有日期的版本适用于本规范。
凡是不注有日期的引用文件,其最新版本(包括所有的修改单)适用于本规范。
GB/T25000.51-2016《系统与软件工程系统与软件质量要求和评价(SQuaRE)第51部分:
就绪可用软件产品(RUSP)的质量要求和测试细则》
GB/T2422电工电子产品基本环境试验规程术语
GB/T2423.1电工电子产品环境试验第2部分:
试验方法试验A:
低温
GB/T2423.2电工电子产品环境试验第2部分:
试验方法试验B:
高温
GB/T2423.3电工电子产品环境试验第2部分:
试验方法试验Cab:
恒定湿热试验
GB/T2423.8电工电子产品环境试验第2部分:
试验方法试验Ed:
自由跌落
GB/T2423.10电工电子产品环境试验第2部分:
试验方法试验Fc:
振动(正弦)
GB/T4857.2-2005运输包装件基本试验第2部分:
温湿度调节处理
GB/T4857.5-1992包装运输包装件跌落试验方法
GB/T5271.14信息技术词汇第14部分:
可靠性、可维护性与可用性
GB/T9969工业产品使用说明书总则
GB/T17618-2015信息技术设备 抗扰度 限值和测量方法
GB9254信息设备的无线电骚扰限制和测量方法
SJ/T11364电子信息产品污染控制标识要求
3 术语和定义
下列术语和定义适用于本规范。
3.1 税务UKey
税务UKey,一种在计算机(或其他类同电子设备)的配合下实现税务功能的电子装置,属于税务数字证书介质的一种,在写入应用固件(实现税务逻辑内核)和税务数字证书后,能保证税务应用执行的正确性、完整性,同时保证税务业务数据的可靠存储和安全传输。
3.2 宿主
通过发送控制命令的方式,配合税务UKey实现税务功能的计算机或其他电子设备。
3.3 BSP支持库
税务UKey的硬件驱动函数库,由税务UKey厂商按照本规范附录A的要求进行设计开发。
3.4 出厂固件
由税务UKey生产厂商按照本规范附录B实现的嵌入式应用软件,在税务UKey生产环节由生产厂商写入税务UKey。
3.5 应用固件
利用BSP支持库,实现税务逻辑内核和税务数字证书的嵌入式应用软件,无需税务UKey生产厂商开发。
3.6 片内存储
税务UKey主控MCU内部提供的数据和程序存储空间。
3.7 安全写存储空间
税务UKey片内存储空间中,实现掉电保护并提供数据完整性校验功能的部分。
3.8 物理块
片内存储空间上的物理页。
3.9 逻辑块
安全写存储空间中的逻辑存储空间页,由BSP支持库实现的。
4 缩略语
下列缩略语适用于本规范。
b比特位(bit)
B字节(Byte)
BCD二进制编码的十进制代码(Binary-CodedDecimal)
BOTBulk-Only传输
BSP板级支持包(BoardSupportPackage)
CBC密文分组链接模式(CipherBlockChaining)
CCYYMMDD世纪,年,月,日(Century,Year,Month,Day)
CCYYMMDDHHMMSS世纪,年,月,日,时,分,秒(Century,Year,Month,Day,Hour,Minute,Second)
CRC循环冗余校验(CyclicRedundancyCheck)
ECB电子密码本模式ElectronicCodebook)
HEX十六进制(Hexadecimal)
HHMMSS时,分,秒(Hour,Minute,Second)
IC集成电路(IntegratedCircuit)
LED发光二极管(light-emittingdiode)
MAC报文鉴别代码(MessageAuthenticationCode)
MCU微控制单元(MicroControlUnit)
PID产品识别码(ProductID)
PKI公开密钥基础设施(PublicKeyInfrastructure)
RAM随机存取存储器(Random-AccessMemory)
RTC实时时钟(Real-TimeClock)
STR字符串(String)
TAG标签(Tag)
TLV标签,长度,值(Tag,Length,Value)
USB通用串行总线(UniversalSerialBus)
VID供应商识别码(VenderID)
YYMMDD年,月,日(Year,Month,Day)
5 技术要求
5.1 功能要求
总则
税务UKey(以下简称:
产品)应根据安全性、便捷性和经济性的原则进行设计。
产品应提供可靠的数据存储功能,支持通过USB接口和宿主进行数据交互。
数据要求
出厂数据包括硬件版本号、生产时间、税务UKey编号等,详见附录B、C。
生产厂商在产品出厂前将出厂数据写入税务UKey中。
其中写入的税务UKey编号应与产品壳体上的编号相同。
出厂数据不限制存储位置,出厂后不能被删除或篡改。
硬件要求
产品的硬件功能包括:
主控MCU模块、实时时钟模块、电源模块、存储模块、状态指示电路、接口电路等。
接口电路应至少具有一个USB标准接口。
在突然断电情况下,产品应保证数据的正确性和完整性。
存储模块应采用非易失性存储媒体,容量不得少于2MB,擦写次数不得少于10万次。
产品的实时时钟模块要求走时准确,日误差不大于10s。
产品发行使用后,电池使用寿命不少于3年。
软件要求
厂商需要按照附录A的要求实现BSP支持库。
厂商需要按照附录B的要求实现出厂固件。
BSP支持库、出厂固件中的数据格式,应符合附录C的要求。
厂商提供给应用固件使用的RAM空间减去厂商BSP的堆栈不小于21KB。
产品主控MCU中,需提供安全写存储空间,即满足安全写操作要求的存储空间,保证数据的正确完整。
安全写存储空间采用逻辑地址的方式进行读写。
安全写存储空间中,逻辑块数量需不少于8块,总容量需不小于16KB(逻辑大小),应用固件最大写入长度为4000字节(从4096字节中预留96字节给BSP,供可能的校验值使用,方便实现校验功能),要求支持跨逻辑块读写。
产品主控MCU中,提供应用固件使用的存储不小于160KB(不含BSP支持库)。
产品应能响应宿主的控制命令,宿主通过发送控制命令来实现对产品的操作。
产品应具有一个BSP接口(详见附录A)可控的绿色LED指示灯。
BSP支持库、出厂固件应具有良好的容错能力,具有较好的健壮性。
5.2 外观和结构
产品外形为矩形,产品外观尺寸不大于长85毫米×宽30毫米×高15毫米。
产品正面应包括“税务UKey”字样,背面应包括产品编号,字体为宋体。
图1:
税务UKey正面样式
图2:
税务UKey背面样式
产品表面不应有明显的凹痕、划伤、裂缝、变形和污染等。
产品的零部件应紧固无松动。
5.3 安全
产品必须采用具有国家密码管理局商用密码安全芯片类产品型号证书的MCU。
5.4 电源适应能力
电源适应能力需符合USB技术规范,工作电流要求不高于100mA。
5.5 电磁兼容性
无线电骚扰限值
产品的无线电骚扰限值应符合GB9254中B级规定的要求。
抗扰度限值
产品的抗扰度限值应符合GB/T17618—2015规定的要求。
5.6 环境条件
气候环境适应性
表1 气候环境适应性
气候条件
参数
温度
工作
-10℃~55℃
相对湿度
工作
0%~90%(40℃)
机械环境适应性
表2 振动试验
项目
分项
参数
初始和最后振动响应检查
频率范围
5Hz~35Hz
初始和最后振动响应检查
扫频速度
≤1oct/min
驱动振幅
0.15mm
定频耐久试验
驱动振幅
0.15mm
持续时间
10min
扫频耐久试验
频率范围
5Hz~35Hz~5Hz
位移幅值
0.15mm
扫频速率
≤1oct/min
循环次数
2
表3 冲击试验
峰值加速度
m/s2
波形持续时间
ms
冲击波形
150
11
半正弦波
表4 碰撞试验
峰值加速度
m/s2
波形持续时间
ms
碰撞次数
碰撞波形
100
16
1000
半正弦波
表5 运输包装件跌落试验
包装件质量
kg
跌落高度
mm
≤15
1000
15~30
800
30~40
600
单体跌落试验应符合标准:
GB/T2423.8“实验Ed”中的规定。
5.7 使用说明书
使用说明书的编写应符合GB/T9969的规定。
5.8 检测要求
产品需通过国家密码管理局的测试,取得密码产品型号证书,安全等级应在第二级及以上。
6 试验方法
6.1 试验环境条件
本规范中除可靠性试验以外,其它试验均可在下述正常大气条件下进行。
温度:
15℃~35℃;
相对湿度:
25%~75%;
6.2 功能要求试验
厂商或检测机构,根据5.1及附录A、B、C的要求,开展测试工作。
测试过程中使用的测试固件及测试工具自行开发。
6.3 外观和结构检查
用目测法进行外观和结构检查。
6.4 使用说明书及有关文件检查
用目测法检查使用说明书及有关文件。
6.5 电磁兼容性试验
无线电骚扰限值的测量方法
按GB9254规定的方法进行。
抗扰度限值测量方法
按GB/T17618—2015规定的方法进行。
试验过程中产品运行检查程序,工作应正常。
静电放电抗扰度
按GB/T17618—2015中4.2.1的规定进行。
电快速瞬变脉冲群抗扰度
按GB/T17618—2015中4.2.2的规定进行。
射频电磁场辐射抗扰度
按GB/T17618—2015中4.2.3.1的规定进行。
试验等级为3级。
传导骚扰抗扰度
按GB/T17618—2015中4.2.3.2的规定进行。
试验等级为3级。
工频磁场抗扰度
按GB/T17618—2015中4.2.4的规定进行。
6.6 可靠性试验
环境试验
一般要求
环境试验方法的总则和名词术语应符合GB/T2421.1、GB/T2422的有关规定。
以下各项试验应按6.2的要求进行检测,产品应工作正常。
工作温度下限试验
按GB/T2423.1“试验Ad”进行。
严酷度应符合5.6.1对工作温度下限值的要求。
产品须进行初始检测,加电运行2h,产品工作应正常。
恢复时间为2h。
工作温度上限试验
按GB/T2423.2“试验Bd”进行。
严酷度应符合5.6.1对工作温度上限值的要求。
产品须进行初始检测,加电运行2h,产品工作应正常。
恢复时间为2h。
工作条件下恒定湿热试验
参照GB/T2423.3“试验Cab”进行,严酷度应符合5.6.1对工作的湿热上限值要求。
产品须进行初始检测。
试验时间为2h。
在此期间加电运行,工作应正常。
恢复时间为2h。
振动试验
基本要求
按GB/T2423.10“试验Fc”进行,产品按工作位置固定在振动台上,进行初始检测,产品在不工作状态下,按5.6.2表2规定值,分别对三个互相垂直轴线方向进行振动。
工作状态下的振动试验应加电运行自检程序,产品应工作正常。
试验结束后应进行外观和结构的检查。
初始振动响应检查
试验在给定频率范围内,在一个扫频循环上完成。
试验过程中记录危险频率,包括机械共振频率和导致故障及影响性能的频率(后者仅在工作状态下产生)。
产品应进行一次附加的不工作状态下的振动响应检查,并记录共振频率。
定频耐久试验
用初始振动响应检查中记录的危险频率进行定频试验,如果两种危险频率同时存在,则不得只选其中一种。
若在试验规定频率范围内无明显共振频率或无影响性能的频率,或危险频率超过四个则不做定频耐久试验,仅做扫频耐久试验。
扫频耐久试验
按5.6.2表2给定频率范围由低到高,再由高到低,作为一次循环。
按5.6.2表2规定的循环次数进行,已做过定频耐久试验的样品不再做扫频耐久试验。
最后振动响应检查
此项试验在不工作状态下进行,对于已做过定频耐久试验的产品应做此项试验。
对于需做扫频耐久试验的样品,可将最后一次扫频试验作为最后振动响应检查。
本试验须将记录的共振频率与初始振动响应检查记录的共振频率相比较,若有明显变化,应对产品进行修整,重新进行该项试验。
而这种修整必须在该批所有产品上进行。
试验结束后,进行最后检测。
冲击试验
按GB/T2423.5“试验Ea”进行。
产品应进行初始检测。
安装时要注意重力影响,按5.6.2表3规定值,在不工作状态下,分别对三个互相垂直轴线方向进行冲击,冲击次数各为三次,试验后进行最后检测。
碰撞试验
按GB/T2423.6“试验Eb”进行。
产品应进行初始检测,安装时要注意重力影响,按5.6.2表4规定值,在不工作状态下,分别对三个互相垂直轴线方向各进行一次碰撞。
试验后进行最后检测。
运输包装件跌落试验
对产品进行初始检测,将运输包装件处于准备运输状态,按GB/T4857.2-2005中3.1的表中条件6规定进行预处理4h。
将运输包装件按GB/T4857.5-1992的5.6.2中a的要求和表5的规定值进行跌落,任选四面,每面跌落一次。
试验后检查包装件的损坏情况,并对产品进行外观和结构的检查及检测。
单体跌落试验
单体跌落试验应按照标准:
GB/T2423.8“试验Ed”进行。
7 标志、包装、运输、贮存
7.1 包装标志
包装箱外应注明产品型号、数量、重量、制造单位名称、起止产品编号。
包装箱外应印刷或贴有“易碎物品”、“向上”、“怕雨”、“堆码层数”或“堆码重量极限”等储运标志。
储运标志应符合GB/T191的规定。
产品中有毒有害物质的含量的标识应符合SJ/T11364的规定。
7.2 包装
包装箱应符合防潮、防尘、防震的要求,包装箱内应有装箱清单、检验合格证及有关的文件。
7.3 运输
产品在运输过程中不允许雨雪或液体直接淋袭和机械损伤。
7.4 贮存
产品贮存时应放在原包装箱内,存放产品的仓库环境温度为0℃~40℃,相对湿度为30%~85%。
仓库内不允许有各种有害气体、易燃和易爆物品及有腐蚀性的化学物品,并且应无强烈的机械震动、冲击和强磁场作用。
包装箱应垫离地面至少15cm,距离墙壁、热源、冷源、窗口或空气入口至少50cm。
附 录 A
(规范性附录)
接口函数-定义BSP支持库
A.1 结构模型
层次关系
本附录定义的接口位于主板硬件与应用引导区和应用区之间,如下图所示。
A.2 片内存储划分区
产品的片内存储分为程序区和数据区。
程序区包括芯片启动固件、出厂固件、应用引导固件和应用固件。
数据区包括应用数据区和出厂数据(出厂数据也可存储于片外,要求保证数据不被篡改和删除)。
芯片启动固件由芯片厂商预置,不能被擦除,但在加载应用后可以被限制是否允许重新运行。
产品在出厂时,厂商通过调用芯片启动固件下载出厂固件,同时将出厂数据写入到出厂数据区。
应用固件开发商通过调用出厂固件,重新运行芯片启动固件,在擦除出厂固件后下载应用引导固件和应用固件。
应用固件可将应用数据存储到应用数据区,通过BSP支持库对应用数据进行安全读写。
片内存储在生产和应用环节的区域划分如下图所示。
A.3 出厂数据定义
出厂数据包括:
产品编号、生产日期、硬件版本号,由生产厂商在生产环节写入税务UKey的出厂数据区。
出厂数据一旦写入不可擦除和修改。
数据项
长度
格式
备注
产品编号
6B
BCD
示例:
017123456789
生产日期
7B
BCD(CCYYMMDDHHMMSS)
示例:
20190615235959
硬件版本号
7B
BCD
示例:
010*********
A.4 数据类型定义
基本数据类型
本规范中的字节数组均为高位字节在前(Big-Endian)方式交换。
基本数据类型定义见表A.1。
表A.1 数据类型
类型名称
描述
定义
int8_t
有符号8位整数
typedefsignedcharint8_t
int16_t
有符号16位整数
typedefsignedshortint16_t
int32_t
有符号32位整数
typedefsignedintint32_t
uint8_t
无符号8位整数
typedefunsignedcharuint8_t
uint16_t
无符号16位整数
typedefunsignedshortuint16_t
uint32_t
无符号32位整数
typedefunsignedintuint32_t
bool
布尔类型,取值为TRUE或FALSE
typedefintbool
常量定义
数据常量标识定义了在规范中用到的常量的取值。
数据常量标识的定义如表A.2。
表A.2 常量定义
常量名
取值
描述
TRUE
0x00000001
布尔值为真
FALSE
0x00000000
布尔值为假
S8_MAX
127
#defineS8_MAX(127)
S8_MIN
-128
#defineS8_MIN(-128)
S16_MAX
32767
#defineS16_MAX(32767)
S16_MIN
-32768
#defineS16_MIN(-32768)
S32_MAX
2147483647
#defineS32_MAX(2147483647)
S32_MIN
-2147483648uL
#defineS32_MIN(-2147483648uL)
U8_MAX
255
#defineU8_MAX(255)
U16_MAX
65535u
#defineU16_MAX(65535u)
U32_MAX
4294967295uL
#defineU32_MAX(4294967295uL)
A.5 复合数据类型
USB枚举信息
A.5.1.1 类型定义
structST_USB_PARA
{
uint8_t*m_pui8StrDescProduct;
};
A.5.1.2 数据描述项
数据项描述见表A.3。
表A.3 设置USB信息
数据项
类型
意义
备注
m_pui8StrDescProduct
uint8_t
产品描述符
36字节,以空格0x20补位,出厂值:
“SWUKEY”
USB运行信息
A.5.1.3 类型定义
structST_USB_INFO
{
uint16_t m_ui16PacketLen;
uint8_tm_ui8SpeedMode;
};
A.5.1.4 数据描述项
数据项描述见表A.4。
表A.4 获取USB信息
数据项
类型
意义
备注
m_ui16PacketLen
uint16_t
收发包大小
m_ui8SpeedMode
uint8_t
速度类型
0x00:
低速
0x01:
全速
0x02:
高速
厂商信息
A.5.1.5 类型定义
structST_VENDOR_INFO
{
uint8_tm_aui8TaxDevID[6];
uint8_tm_aui8HWVersion[7];
uint8_tm_aui8ProductTime[7];
};
A.5.1.6 数据描述项
数据项描述见表A.5。
表A.5 获取厂商信息
数据项
类型
意义
备注
m_aui8TaxDevID
uint8_t
税务UKey编号(6B,BCD)
m_acHWVersion
uint8_t
硬件版本号信息(7B,BCD)
m_aui8ProductTime
uint8_t
生产时间(7B,BCD)
CCYYMMDDHHMMSS
片内存储
A.5.1.7 类型定义
structST_INF_INFO
{
uint32_tm_ui32LogicBlockSize;
uint32_tm_ui32LogicBlockCnt;
uint32_tm_ui32RawBlockSize;
uint32_tm_ui32RawBlockCnt;
uint32_tm_ui32RawBaseAddr;
};
A.5.1.8 数据描述项
数据描述项见表A.6
表A.6 片内存储信息
数据项
类型
意义
备注
m_ui32LogicBlockSize
uint32_t
逻辑块大小
安全写存储空间的逻辑块大小(单位字节),该大小值为逻辑块的实际可用值
m_ui32LogicBlockCnt
uint32_t
逻辑块数量
安全写存储空间的逻辑块数量
m_ui32RawBlockSize
uint32_t
物理块大小
芯片物理块大小(单位字节)
m_ui32RawBlockCnt
uint32_t
物理块数量
芯片物理块数量
m_ui32RawBaseAddr
uint32_t
物理块起始地址
芯片物理块起始地址
文件系统
A.5.1.9 类型定义
文件数据结构、目录数据结构由厂商文件系统内部设计,数据项由厂商自定义,应用固件可根据数据结构做文件操作即可。
该结构体的空间由应用固件申请和释放。
文件数据结构:
structTC_FILE
{
厂商自定义,不得大于128B(该数值根据各厂家采用的文件系统确定,文件数据结构过大会严重占用应用内存空间,故做此限制)。
};
目录数据结构:
structTC_DIR
{
厂商自定义,不得大于128B(该数值根据各厂家采用的文件系统确定,限制原因同上)。
};
文件信息数据结构:
structTC_FILINFO
{
uint32_tm_ui32FileSize;
uint32_tm_ui32FileAttrib;
uint16_tm_acFileName[13];
};
A.5.1.10 数据项描述
数据描述项见A.7
表A.7 文件信息结构
数据项
类型
意义
备注
m_ui32FileSiz