GM/T 0055-2018 电子文件密码应用技术规范

GM/T 0055-2018 File cryptographic technical specification

行业标准-密码 中文简体 现行 页数:56页 | 格式:PDF

基本信息

标准号
GM/T 0055-2018
相关服务
标准类型
行业标准-密码
标准状态
现行
中国标准分类号(CCS)
国际标准分类号(ICS)
发布日期
2018-05-02
实施日期
2018-05-02
发布单位/组织
国家密码管理局
归口单位
密码行业标准化技术委员会
适用范围
本标准不规范应用系统的安全性,也不规定具体的文件类型。
本标准适用于关注文件对象自身安全的相关标准规范和应用,也适用于安全电子文件密码服务中间件的开发和检测,可用于指导使用该中间件的应用系统的开发。
可选服务
1,提供正版标准批量采购服务,为企业合规性保驾护航,提供标准文件翻译服务,专家翻译,权威可靠
2,标准数据定制化,可定制企业云端标准数据库,为企业提供标准查询下载以及更新推送服务,实时了解标准时效更新动态
3,标准时效性核查服务,依托最新最全的标准数据库为您提供在线标准时效性核查服务,并开具权威性的标准时效性核查报告(点击查看详情
4,服务定制咨询联系电话:15102855502(微信同号),QQ:469517676

发布历史

文前页预览

GM/T 0055-2018 电子文件密码应用技术规范-第1页
GM/T 0055-2018 电子文件密码应用技术规范-第2页
GM/T 0055-2018 电子文件密码应用技术规范-第3页

研制信息

起草单位:
上海颐东网络信息有限公司、北京海泰方圆科技有限公司、深圳奥联科技有限公司、北京书生公司、北京宇讯佳通科技有限责任公司、深圳宝嘉电子设备有限公司、北京兴唐通信科技股份有限公司、上海格尔软件股份有限公司
起草人:
刘平、谢永泉、姜海舟、宋明华、柳增寿、刘海生、蒋健、夏东山、刘宁胜、曹学武、杨茂江、孙志辉
出版信息:
页数:56页 | 字数:105 千字 | 开本: 大16开

内容描述

犐犆犛35.040

犔80

GM/T0055—2018

电子文件密码应用技术规范

Filecryptographictechnicalspecification

2018-05-02发布2018-05-02实施

GM/T0055-2018

目次

前言III

引言IV

1范围1

2规范性引用文件1

3术语和定义1

4符号和缩略语2

5标签机制2

5.1总体描述2

5.2基于标签的安全电子文件系统架构2

5.3基于标签的安全机制3

5.4中间件对安全电子文件的处理过程4

5.5安全电子文件的存储方式4

5.6标签与文件的绑定机制5

6密码算法与密码服务6

6.1密码体制6

6.2密码算法6

6.3基础密码服务7

6.4个性密码服务7

6.5密钥对象7

7标签7

7.1标签结构7

7.2标签属性11

8基础密码操作17

8.1概述17

8.2标签的完整性与绑定关系的建立17

8.3标签的完整性与绑定关系的验证18

8.4文件签名18

8.5添加文件签名18

8.6验证文件签名18

8.7文件加密18

8.8文件解密18

9安全电子文件密码服务接口19

9.1常量定义19

9.2结构定义20

9.3接口函数组成和功能说明27

9.4接口函数定义28

附录A(资料性附录)数字水印49

A.1概述49

A.2数字水印操作过程49

A.3嵌入49

A.4提取49

附录B(资料性附录)指纹识别50

I

GM/T0055-2018

B.1概述50

B.2指纹操作50

II

GM/T0055-2018

前言

本标准依据GB/T1.1-2009给出的规则起草。

请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。

本标准由密码行业标准化技术委员会提出并归口。

本标准中的附录A、附录B为资料性附录。

本标准起草单位:上海颐东网络信息有限公司、北京海泰方圆科技有限公司、深圳奥联科技有限

公司、北京书生公司、北京宇讯佳通科技有限责任公司、深圳宝嘉电子设备有限公司、北京兴唐通信

科技股份有限公司、上海格尔软件股份有限公司。

本标准主要起草人:刘平、谢永泉、姜海舟、宋明华、柳增寿、刘海生、蒋健、夏东山、刘宁胜、

曹学武、杨茂江、孙志辉。

III

GM/T0055-2018

引言

本标准中涉及的文件为广义的文件对象,与文件的具体格式无关。

在涉及文件处理及流转的应用系统中,存在着密码协议不统一、密码接口应用混乱、密码服务处

理层次不清晰等问题,从而导致文件在不同应用系统之间进行交互时,出现兼容性和安全失控等问题。

为保证文件在处理过程中的规范性、兼容性、安全性和可控性,本标准提出了一种标签与文件绑

定的安全控制机制,实现了文件全生命周期的机密性、完整性、有效性和抗抵赖性等安全控制。

本标准描述了基于标签的安全电子文件系统架构和应用系统如何通过中间件,调用相应的基础密

码服务和个性密码服务,实现对文件的安全操作,由中间件为应用系统提供统一、规范的密码服务,

有利于应用系统、中间件和密码服务开发单位专注于自身技术的开发,促进技术的产品化。

IV

GM/T0055-2018

电子文件密码应用技术规范

1范围

本标准适用于安全电子文件密码服务中间件的开发和检测,也可用于指导使用该中间件的应用系

统的开发。

本标准不规范应用系统的安全性,也不规定具体的文件类型,适用于关注文件对象自身安全的相

关标准规范和应用。

2规范性引用文件

下列文件对于本标准的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文

件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GM/T0009SM2密码算法使用规范

GM/T0015基于SM2密码算法的数字证书格式规范

GM/T0017智能密码钥匙密码应用接口数据格式规范

GM/T0019通用密码服务接口规范

GM/T0031安全电子签章密码技术规范

PKCS#1RSACryptographyStandard

PKCS#5Password-basedEncryptionStandard

3术语和定义

下列术语适用于本文件。

3.1

应用系统applicationsystem

以文件为处理对象,对文件进行创建、修改、授权、阅读、签批、盖章、打印、添加水印、流转、

存档和销毁等操作的系统。

3.2

文件/电子文件file

以数字方式表示的、对特定的使用对象有特定意义的实体。它可以是各类公文、票据、数字作品

等。

3.3

标签label

和文件绑定的一段数字实体,用于标识文件的属性和状态,定义文件的操作对象、操作行为及访

问权限,记录文件处理环节中操作者的操作行为,确保文件在创建、修改、授权、阅读、签批、盖章、

打印、添加水印、流转、存档和销毁等操作中始终处于安全可控的状态,为应用系统提供追溯和审计

的依据。

3.4

1

GM/T0055-2018

操作者operator

指对文件进行创建、修改、授权、阅读、签批、盖章、打印、添加水印、流转、存档和销毁等操

作的行为主体,在本标准中操作者也是对标签进行属性设置和修改的行为主体。

3.5

安全电子文件securedfile

中间件的处理对象,由文件和与之绑定的标签组成。

3.6

安全电子文件密码服务中间件securedfilecryptographicserviceprovider

简称为中间件,为应用系统提供与文件处理和流转有关的密码服务,包括共性密码服务如文件的

加密、解密、签名和验证等,个性密码服务如电子印章、数字水印、指纹识别,文件控制服务如文件

流转、权限管理等,安全管理服务如行为记录等。

4符号和缩略语

下列缩略语适用于本文件。

API应用编程接口(ApplicationProgrammingInterface)

ASN.1抽象语法标准(AbstractSyntaxNotationOne)

CBC密文分组链接(Cipher-bookChain)

CFB密文反馈(CipherFeedback)

ECB电子码本(ElectronicCodebook)

FAR误判率(FalseAcceptRate)

OFB输出反馈(OutputFeedback)

PKCS公钥密码标准(ThePublic-KeyCryptographyStandard)

PKI公钥基础设施(PublicKeyInfrastructure)

5标签机制

5.1总体描述

本标准使用密码技术保证文件的机密性、完整性、有效性和抗抵赖性,把应用系统所需的密码服

务功能进行了抽象和集成。在本标准中设计了标签机制,用于解决在文件生命周期全过程中的安全问

题。

5.2基于标签的安全电子文件系统架构

基于标签的安全电子文件系统包括应用系统、中间件、基础密码服务和个性密码服务,如图1示。

其中基础密码服务根据使用环境分为两类,一类是遵循GM/T0019的密码服务,这类密码服务是为应

用层提供;另一类是遵循GM/T0017的密码服务,这类密码服务是为内核层提供。

2

GM/T0055-2018

安全电子文件应用系统

标签

安全电子文件密码服务中间件

文件

个性密码服务

通用密码服务、典型密码服务

图1安全电子文件的系统架构

应用系统在对文件进行创建、修改、授权、阅读、签批、盖章、打印、添加水印、流转、存档和

销毁等处理过程中,需要提供的密码服务都通过调用中间件实现。

标签和文件是中间件的操作对象,标签与文件存在唯一绑定关系。其中,文件保存内容信息,标

签提供对文件的安全控制。标签的结构定义和属性说明,具体详见第7章节。

通用密码服务和典型密码服务由密码基础设施提供,通过调用相关服务接口实现。具体详见6.3

章节。

个性密码服务由电子印章、数字水印和指纹识别提供,通过调用相关服务接口实现。具体详见6.4

章节。

电子文件操作者的密钥信息,由基础密码服务管理,同时基础密码服务为安全电子文件密码服务

中间件提供密码操作的支持。

中间件对标签进行验证、解析和处理,根据标签属性的指示,调用相关的密码服务,完成对文件

的加密、解密、签名、验证、印章处理、水印处理、指纹识别等密码操作。其中,加密、解密、签名

和验证操作由基础密码服务完成;印章处理、水印处理、指纹识别等操作由个性密码服务实现。中间

件提供的服务接口具体详见第9章节。

5.3基于标签的安全机制

在基于标签的安全机制中,安全电子文件由文件和标签两部分组成。文件是指原始文件或对原始

文件经过密码处理后的结果,标签是原始标签或对原始标签经过密码处理后的结果。在安全电子文件

全生命周期中,文件和标签存在唯一绑定关系。标签只能由中间件进行处理。标签由标签头和标签体

组成,标签体可加密。

标签是安全电子文件的操作依据,描述了安全电子文件的属性,主要包括签名属性、权限属性、

印章属性、水印属性、指纹属性、标识属性、内容属性、扩展属性和日志属性等。

权限属性规定了安全电子文件的密码处理及操作权限。如加密、签名、添加印章、添加水印、指

纹识别等密码处理方式,以及读、写、打印等操作权限。

标识属性描述了安全电子文件的编号、创建者及创建时间,当标签创建后标识属性则不可改变。

内容属性描述了安全电子文件的基本信息。如原始文件名、原始文件日期、文件类型及文件修改

时间等基本信息。

扩展属性作为保留属性,用于应用系统定义自身的各种属性。

日志属性记录了操作者对安全电子文件所做的操作,如操作类型、操作者、操作时间等。

3

GM/T0055-2018

5.4中间件对安全电子文件的处理过程

中间件按照请求/响应方式为应用系统提供服务,当应用系统对中间件发出操作请求之后,中间件

的处理过程如下:

a)中间件从操作请求中获得操作者身份、标签和文件;

b)中间件按照绑定规则,对文件和标签进行绑定关系的验证,确认标签与文件的唯一绑定关系;

c)验证成功,中间件按照标签的操作权限属性,审核操作的合法性;

d)审核成功,中间件对标签的属性进行解析,按照标签的相关属性,调用相关的密码服务,完

成对文件的具体密码操作;

e)操作完成,中间件在标签中修改相应的属性,添加操作日志,更新标签,并建立标签与文件

新的绑定关系;

f)中间件向应用系统返回操作结果。

5.5安全电子文件的存储方式

5.5.1标签概述

标签分为内联式和外联式两种,采用ASN.1编码。按照标签长度分为固定标签和非固定标签两种。

固定标签即在标签创建时设置一个长度,来使标签总是等于这个长度,不足的部分补零,不允许超过

该长度;非固定标签即并不限制标签的长度,可以任意增长。

5.5.2内联式

在内联式存储中,文件嵌入到标签,形成一个整体,在同一物理位置存放。如图2示。

标签头

体标签体

文件

一个物理文件

图2内联式的存储

5.5.3外联式

在外联式存储中,标签和文件存放于两个独立文件,标签和文件实体之间的对应关系由应用系统

管理。如图3示。

4

GM/T0055-2018

标签头

签文

标签体文件

独立物理文件独立物理文件

图3外联式的存储

5.6标签与文件的绑定机制

5.6.1概述

标签与文件绑定关系的建立与验证由中间件进行。使用公钥密码算法和杂凑算法,其中公钥密码

算法的密钥为两对,即加密密钥对和签名密钥对,这些密钥均为应用系统中操作者的密钥。

5.6.2建立绑定关系

如图4所示,建立标签与文件的绑定关系流程如下:

a)对文件进行摘要计算,并签名;

b)将签名值、算法及对应的公钥证书形成签名属性填充在标签体中的签名属性集合中;

c)使用操作者签名私钥,对标签中除标签完整性签名以外的所有内容计算摘要并签名,将此签

名值作为标签完整性签名置于标签头中。

2计算标签的摘要并签名

标签完整性签名的

文件算

1与

计签

算参

文标

文件签名

5

GM/T0055-2018

图4标签与文件绑定关系建立流程图

5.6.3验证绑定关系

如图5示,验证标签与文件的绑定关系流程如下:

a)取标签头签名属性中的公钥证书,使用其对标签完整性签名进行验证。验证通过,则标签完整

可信;

b)对文件进行摘要计算;

c)依次取标签体中签名属性集合中的签名属性,通过其中的公钥算法对此摘要和签名值进行验

证,如通过,则绑定关系验证通过。

1计算标签的摘要并验证

标签完整性签名

文件范

标签完整性签名的

体与

2

计算文签参

摘要

文件签名

图5标签与文件绑定关系验证流程图

6密码算法与密码服务

6.1密码体制

中间件的密码机制基于PKI体制,使用数字证书机制对文件进行安全保护。数字证书使用双数字

证书,遵循GM/T0015。标签的安全性保护可以采用数字证书机制或基于标识的密码机制,如IBC。

6.2密码算法

安全电子文件的密码操作需要使用对称算法、非对称算法和杂凑算法。对称算法可采用ECB、CBC、

OFB、CFB四种模式,当使用OFB和CFB模式时,应用的反馈位数具体由应用设置,并保存在标签的数

字信封中,算法要求如表1所示:

表1密码算法描述

算法类型支持算法用途描述

对称算法国家密码管理主管部门许可的对称算法用于加解密文件内容和标签内容

非对称算法国家密码管理主管部门许可的非对称算用于加密和解密对称算法密钥

6

GM/T0055-2018

法用于进行签名和签名验证

密码杂凑算法国家密码管理主管部门许可的杂凑算法用于完整性计算和验证

中间件对密码算法的调用是通过密码算法的标识来完成的。

6.3基础密码服务

基础密码服务是由密码基础设施提供的密码服务,通过调用相关服务接口实现。

密码服务接口遵循GM/T0019和GM/T0017。

密码服务提供基于数字证书的加密、解密、签名、签名验证等功能。其中,加密解密使用分组密

码算法,密码工作模式为ECB和CBC,初始化向量为零,加密数据的填充方式按照PKCS#5进行;签名

及验证和数字信封操作使用公钥算法,当使用RSA算法时按照PKCS#1进行;使用SM2算法时按照GM/T

0009。

6.4个性密码服务

6.4.1概述

个性密码服务包括电子印章服务、数字水印服务和指纹识别服务。

6.4.2电子印章服务

电子印章服务包括对文件盖章、验章以及读取签章数据等。中间件通过调用电子印章服务实现印

章的加盖、验证和读取等功能。电子印章遵循GM/T0031技术标准。

6.4.3数字水印服务

数字水印服务包括数字水印嵌入和提取服务,以及文件隐藏服务。中间件通过调用数字水印服务

实现在文件中嵌入数字水印和提取数字水印,或将信息隐藏于文件中。

6.4.4指纹识别服务

指纹识别服务实现指纹与操作权限的绑定。在操作者进行授权的操作前,中间件通过调用指纹识

别服务对操作者的物理身份进行验证。

6.5密钥对象

中间件涉及的密钥对象为操作者密钥。

操作者密钥包括签名密钥对和加密密钥对及对应的签名证书和加密证书。使用操作者加密证书及

其私钥对文件和标签加密密钥进行加密和解密,使用操作者签名证书及其私钥对文件和标签进行签名

和签名验证,以保证安全电子文件在流转过程中的机密性、完整性和操作的不可抵赖性。

7标签

7.1标签结构

7.1.1逻辑结构

7.1.1.1概述

标签的逻辑结构如图6所示:

7

GM/T0055-2018

标签头标签体

图6标签的逻辑结构

标签的ASN.1定义为:

SecuredFileLabel::=SEQUENCE{

baseHeadSFL_Head,--标签头

baseTextSFL_Body--标签体

}

其中:

baseHead:标签的基本信息;

baseText:标签的内容。

7.1.1.2标签头

标签头的结构如图7所示:

创建时

标签标识版本号证书颁发者证书序列号最后访问时间自定义属性加密属性签名属性

图7标签头结构

标签头的ASN.1定义:

SFL_Head::=SEQUENCE{

labelIDUTF8String,--标志

verIDUTF8String,--版本

issuerRDNSequence,--标签创建者证书的颁发人

creatorINTEGER,--标签创建者的加密证书序列号

createTimeGeneralizedTime,--创建时间

lastAccessTimeGeneralizedTime,--最后访问时间

customAttrOCTETSTRING,--自定义属性

encryptionAttrEncryptionAttribute,--标签体的加密属性

signAttrSignAttribute--标签的签名属性

}

其中:

labelID:固定为“@SFL”;

verID:SFL的格式版本,如“1.3”;

customAttr:用户自定义

issuer:标签创建者证书的颁发人,遵循GM/T0015中ASN.1的定义;

creator:标签创建者的加密证书序列号;

createTime:创建标签的时间,为系统时间;

lastAccessTime:对标签最后写操作的时间,为系统时间。

标签签名属性的ASN.1定义:

SignAttribute::=SEQUENCE{

signerCertificate,--签名证书

8

GM/T0055-2018

signAlgObjectIdentifier,--算法标识

signatureBITSTRING--签名值

}

其中:

signer:签名者的签名证书,遵循GM/T0015中ASN.1的定义;

signAlg:签名算法标识;

signature:是对标签中除了签名值属性以外的所有内容的签名结果。

标签加密属性的ASN.1定义:

EncryptionAttribute::=SEQUENCE{

algorithmIDObjectIdentifier,--算法标识

algModeINTEGER,--算法模式

numBitsINTEGER,--反馈位数

decryptorListDECRYPTLIST--解密者列表

}

其中:

algorithmID:算法标识。

DECRYPTLIST::=SEQUENCE{

DecryptorSet

}

DecryptorSet::=SETOFDecryptor

解密者属性的ASN.1定义:

Decryptor::=SEQUENCE{

issuerNameRDNSequence,--颁发者名称

serialnumberINTEGER,--加密者证书序列号

algObjectIdentifier,--打包算法

sessionKeyOCTSTRING--被加密过的密钥

}

其中:

issuerName:颁发者名字,遵循GM/T0015中ASN.1的定义;

serialnumber:加密者证书序列号;

alg:打包算法;

sessionKey:被加密过的密钥。

7.1.1.3标签体

标签体结构图8所示:

签名属性集合权限属性印章属性水印属性指纹属性标识属性内容属性对齐属性扩展属性日志属性

图8标签体结构

标签体的ASN.1定义:

SFL_Body::=SEQUENCE{

mSAttributeSignAttributeCollection,

9

GM/T0055-2018

privPrivAttr,

stampAtrrexplicit[0]StampAttr,

waterMarkexplicit[1]WaterMarkAttr,

fingerPrintexplicit[2]FingerAttr,

identifyIdentifyAttr,

bFileAtrrContentAtrr,

alignAlignAttr,

extendexplicit[0]ExtendAttroptional,

logexplicit[1]LogAtrroptional

}

签名属性集合的ASN.1定义:

SignAttributeCollection::=SEQUENCEOFSignAttribute

其中:

mSAttribute:签名属性集合;

privAttr:详见本标准“7.2.3权限属性”;

stampAttr:详见本标准“7.2.4印章属性”;

waterMarkAttr:详见本标准“7.2.5水印属性”;

fingerAttr:详见本标准“7.2.6指纹属性”;

contentAttr:详见本标准“7.2.7内容属性”;

identifyAttr:详见本标准“7.2.8标识属性”;

extendAttr:详见本标准“7.2.9扩展属性”;

align:详见本标准“7.2.10对齐属性”;

logAttr:详见本标准“7.2.11日志属性”。

7.1.2存储结构

标签的存储结构如图9所示:

10

GM/T0055-2018

第一条日志

@SFL(4Byte)第二条日志

版本号

标签属性

第n条日志

日志

文件

图9标签的存储格式

其中:

如果文件实体不在标签中,表示文件是独立保存的。

7.2标签属性

7.2.1概述

标签属性标识了与安全电子文件相关的密码操作以及操作日志。包括:签名属性及集合、权限属

性、印章属性、水印属性、指纹属性、内容属性、标识属性、扩展属性、对齐属性和日志属性。

7.2.2签名属性及集合

详见本标准“7.1.1.2标签头”中的签名属性及“7.1.1.3标签体”中的签名属性集合的ASN.1

描述。

7.2.3权限属性

权限属性定义对文件的的操作权限,权限属性的ASN.1定义:

PrivAttr::=SEQUENCE{

OPERATORLIST--操作者权限列表

}

OPERATORLIST::=SETOFOperatorAttribute

操作者权限属性ASN.1定义如下:

OperatorAttribute::=SEQUENCE{

11

GM/T0055-2018

operatorDecryptor,

privilegeSEQUENCE

}

其中:

operator:结构同本标准的“7.1.1.2”中Decryptor的ASN.1定义。

操作者权限的ASN.1定义:

privilege::=SEQUENCE{

certCertificate,--此权限的用户证书

readBOOLEAN,--读权限

totalReadINTEGER,--可读次数

alreadyReadINTEGER,--已读次数

writeBOOLEAN,--写权限

deleteBOOLEAN,--删除权限

printBOOLEAN,--打印权限

totalPrintINTEGER,--可打印份数

alreadyPrintINTEGER,--已打印份数

expriEXPRIVILEGEoptional--扩展权限

}

EXPRIVILEGE::=SEQUENCE{

EXPRIVILEGESet

}

EXPRIVILEGESet::=SETOFExPrivilege

扩展权限的ASN.1定义:

ExPrivilege::=SEQUENCE{

priIDINTEGER,--权限ID

reserveINTEGER--保留字段

}

priID:用户自定义的唯一标识;

reserve:用户自定义标识所对应的属性。

7.2.4印章属性

印章属性定义了对文件进行盖章、验章操作。印章属性的具体结构参见GM/T0031。

7.2.5水印属性

水印属性定义了对文件嵌入/提取水印的操作,水印属性结构如图10所示:

水印载体水印信息水印算法水印添加者添加时间

图10水印属性结构

水印属性的ASN.1定义:

12

GM/T0055-2018

WatermarkAttribute::=SEQUENCE{

embedFileUTF8String,--水印载体

watermarkInfoUTF8String,--水印信息

watermarkAlgAlgorithmAttr,--水印算法

watermarkCreatorUTF8String,--水印添加者

watermarkCreateTimeGeneralizedTime--添加时间

}

其中:

embedFile:包含水印的载体文件;

watermarkInfo:希望隐藏在载体文件中的信息;

watermarkCreater:应用系统指定的添加者标识;

watermarkCreateTime:本次添加水印的时间,为系统时间。

水印算法的ASN.1定义:

AlgorithmAttr::=SEQUENCE{

embedAlgIDINTEGER,--嵌入算法标识

embedModeINTEGER--嵌入模式

}

7.2.6指纹属性

指纹属性定义了对文件进行指纹识别的操作,指纹属性的结构如图11所示:

指纹系统属性认证操作列表

图11指纹属性结构

指纹属性的ASN.1定义:

FingerPrintAttribute::=SEQUENCE{

bioSystemAttrBioSystemAttribute,--系统属性

推荐标准