网上银行数据下载加密文件格式

更新时间:2023-12-31 作者:用户投稿原创标记本站原创 点赞:18312 浏览:81625

摘 要:网上银行系统,为企业客户和个人客户提供多种完善的网上银行怎么写作,其中包括一部分文件下载功能.这里下载的文件,需要进行加密处理,在进行文件加密处理过程中我们需要规范的格式,本文针对网上银行数据下载加密文件格式进行规范设计.

关 键 词:文件下载格式

一、引言

本文针对文件加密处理,专门定义了一个加密文件的规范化格式,采用一种明确结构的可扩展文件设计规范,来实现加密文件的格式需求.

为方便以下内容的描述,特做如下约定:(1)以下说明中数据默认为16进制,其他进制用脚标标注,字节为单位,[]内为字节长度,[.]表示变长,()表示可选内容;(2)文字编码为UTF-8;(3)数字编码为大端格式.

二、加密文件结构

加密文件采用基于标签管理的二进制结构,类似于ASN1语法规范[20].标签按照类型,支持多层嵌套结构.

1.文件顶层结构

文件为二进制格式,如果用于xml或传输可以使用Base64等方式编码.文件顶层结构为:

[3]文件头:534546

[1]版本号:01

[1]保留字节:00

[.]1个组合段:顶层组合段只能有一个,内部可嵌套多个其它组合段和基本段,详见下节说明.

2.组合段和基本段

段分为组合段和基本段,组合段内部可多层嵌套其它段,基本段内部不可嵌套其它段.

段的构造为:[1]标记[.]长度[.]内容([1]结束符).

标记代表段的语义,长度表述段内容的字节长度或嵌套段的数量,基本段长度只能是字节长度,内容的格式由标记确定,如果长度为FE标注的未知长度,段尾用单字节结束符结束.

段的顺序应按照方便处理的原则排列,例如:说明段一般位于最前面,算法段放于加密数据段之前,MAC数据段位于加密段之后.

三、标记

标记描述段的语义,用单字节表示.随规范版本升级,内容会扩充.

组合段:

01组合段:内容不限的组合结构

02说明段:对加密文件或数据的附加描述的组合段

03对称加密段:包含加密算法、初始向量等参数和加密数据、MAC验证数据的组合段

04数字签名段:组合段,目前未使用

05非对称加密段:组合段,目前未使用

06散列段:组合段,目前未使用

07MAC段:组合段,目前未使用

基本段:

40加密数据:字节流

41MAC数据

50密钥bit长度,如果明确可忽略

51对称算法,编码见附录1

52对称加密模式,编码见附录1

53填充模式,编码见附录1


54初始向量,二进制字节流

55密钥标记,二进制字节流,可忽略

58MAC算法,编码见附录1

E0文件名,变长,内容为UTF-8编码

E1文件类型,0001表示zip格式,0002表示gz格式,FFFF表示二进制格式

E2文件长度,整数类型,表示字节数

E3文件时间,用1970/1/100:00:00GMT以来秒数表示,整数类型

四、长度

用来表述内容的字节长度或子段数量,本身为变长数据.

007F单字节长度(0~12710)

8000BFFF双字节长度,字面值加80(128~16,51110)

C00000DFFFFF三字节长度,字面值加4080(16,512~2,113,66310)

E0000000EFFFFFFF四字节长度,字面值加204080(2,113,664~27,549,11910)

F000000000F7FFFFFFFF五字节长度,字面值加10204080(27,549,120~34,630,287,48710),六、七字节表示可以类推,最大可表示约567T10

FExxyy表示未知长度,后跟结束符字节xx和转义符字节yy,数据最后要有结束符字节

FF00FF7F表示子段个数0~12710,总长度未知

FFFF表示未知长度,到为止.

五、数据

字符串数据用UTF8二进制表示;整数用缩减重复的引导00(非负数)或FF(负数)的补码表示.

六、密钥产生算法

对称加密和MAC算法的密钥既可以双方约定也可以由用户口令产生.由用户口令产生的算法伪码为:

key:等于IV;

For(i:等于1to1024)

key:等于Hash(key|password);

其中key为密钥,IV为随机初始向量,‘|’为连接运算,Hash为SHA256散列算法,password为用户口令的UTF8编码.最后密钥截取或右补零到所需长度.

七、文件下载加密规定

加密前原始文件必须使用ZIP、GZ等格式压缩,采用何种压缩格式由具体业务确定,加密后文件扩展名采用.sef.说明段必须包含文件类型,因为压缩文件中含有文件说明,说明段其他压缩文件的描述可省略.对称加密段必须包含:对称加密算法,加密模式,填充模式,(CBC等模式时)初始向量,加密后数据、MAC校验值.目前采用DESede算法、CBC模式、PKCS5PADDING填充.初始向量随机产生,加密由用户口令产生,产生算法见上节描述,散列算法采用SHA256;MAC与加密的算法和初始向量相同.