CN109522703B - 一种支付终端控制台授权开启方法 - Google Patents
一种支付终端控制台授权开启方法 Download PDFInfo
- Publication number
- CN109522703B CN109522703B CN201811383535.6A CN201811383535A CN109522703B CN 109522703 B CN109522703 B CN 109522703B CN 201811383535 A CN201811383535 A CN 201811383535A CN 109522703 B CN109522703 B CN 109522703B
- Authority
- CN
- China
- Prior art keywords
- bytes
- console
- component
- hash
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种支付终端控制台授权开启方法,涉及支付终端安全启动技术领域。该方法根据某些输入条件生成一个授权文件,然后签名下载到移动支付终端;机器重启过程中在uboot阶段,终端解析授权文件,如解析成功则开启控制台,反之则不开启。这种在支付终端上通过授权方式控制终端控制台开启的方法,可以在终端固件不更新的情况下,对指定SN的终端开启控制台,在第三方的应用开发或协同调试过程中,使得开发人员能借助于控制台输出的调试信息更明确地定位问题,从而加快开发进度,提高开发效率。
Description
技术领域
本发明涉及支付终端安全启动技术领域,尤其涉及一种支付终端控制台授权开启方法。
背景技术
对于正式量产交付的移动支付终端,生产厂家在出货时都给机器烧录了发布版本的固件,而发布版本的固件基于产品安全要求不支持开启控制台(即不开启串口输出调试信息),这样对于维护或应用开发等二次开发人员就只能通过显示屏来和终端交互,查找或定位问题时效率严重低下;而常用的gdb调试方法,虽然便于通过调试信息来定位问题,但需要对客户的终端设备进行固件更新,而这种方案很难被客户所接受,并且这种调试版本的固件流出后,很难监管。
发明内容
本发明的目的在于提供一种支付终端控制台授权开启方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种支付终端控制台授权开启方法,包括如下步骤:
S1,生成一个授权文件,签名下载到支付终端;
S2,支付终端重启过程中,在uboot阶段解析授权文件,如果解析成功则开启控制台,反之则不开启;
其中,S1中,所述授权文件的组成如下表所示:
表中,
第1组成部分的基础信息包括主机名、用户名、起始时间和终止时间;SN为产品系列号,代表产品的唯一标识;
Hash值采用SHA256算法进行计算;
第3组成部分的16组hash值包括15组随机数的hash值和一组特定的hash值,记为array[16][32];特定hash值是对“DebugTag+机型+SN”计算SHA256后得到的一个32字节hash值。
优选地,S1中,所述生成一个授权文件,按照如下步骤进行实施:
A1,对“DebugTag+机型+SN”计算SHA256,得到的一个32字节hash_tag;其中,“DebugTag”为一固定字符串“SZVANSTONE”;
A2,将表1中第2组成部分的32字节的第一组随机数经过或、与、异或运算后得到一个8字节的数据,对该8字节数据算crc后,对crc以16求模,得到一个0到15之间的数记为m;
A3,将A1步骤中生成的32字节hash值填充到array[16][32],剩余的14组均填充为32字节随机数的hash值
A4,生成一组公私钥对,公钥记为pk,私钥记为sk,指定pk长度为160字节,sk的长度为580字节;
A5,将A4中pk连接到array数组后,以随机数补全到256字节,以便数据对齐;
A6,对表1中的1~4组成部分的数据计算SHA256得到hash_sum,并对该hash_sum进行RSA2048加密,得到128字节加密数据追加到pk位置后;
A7,将上述步骤中得到的总共1024字节数据生成一个授权文件console.bin。
优选地,S2具体按照如下步骤进行实施:
B1,在uboot阶段挂载授权文件所在的分区,查看授权文件console.bin是否存在,如不存在则以默认的关闭控制台方式正常启动终端;反之则确认授权文件console.bin长度是否为1024字节,如长度正确,则读取整个文件到read_buf数组中;
B2,对read_buf数组的前896字节数据计算SHA256,得到32字节hash值,记为cal_hash;
B3,从read_buf数组的第640字节开始截取160个字节形成公钥证书pk;
B4,用B3中得到的pk对授权文件console.bin的末尾128字节数据解密得到32字节明文Ddata;
B5,比较Ddata和cal_hash是否相等,相等则继续下述步骤,反之则以默认的关闭控制台方式正常启动终端;
B6,获取所述授权文件的组成中第2部分的32字节随机数;
B7,以B6中获取的随机数经过或、与、异或运算、计算crc、求模运算后得到数字hpos;
B8,从read_buf[32*(hpos+4)]读取32字节A1步骤中得到的hash_tag;
B9,读取终端设备的机型、SN、固定的Tag字符串“SZVANSTONE”,根据三者计算SHA256得到32字节org_hash;
B10,比较hash_tag和org_hash是否相等,如果相等则开启控制台,即打开串口调试信息;反之则以默认的关闭控制台方式正常启动终端。
本发明的有益效果是:本发明提供的支付终端控制台授权开启方法,根据某些输入条件生成一个授权文件,然后签名下载到移动支付终端;机器重启过程中在uboot阶段,终端解析授权文件,如解析成功则开启控制台,反之则不开启。这种在支付终端上通过授权方式控制终端控制台开启的方法,可以在终端固件不更新的情况下,对指定SN的终端开启控制台,在第三方的应用开发或协同调试过程中,使得开发人员能借助于控制台输出的调试信息更明确地定位问题,从而加快开发进度,提高开发效率。
附图说明
图1是本发明提供的支付终端控制台授权开启方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
本发明的目的是,针对第三方开发人员在二次开发过程中,通过显示屏来和终端交互,查找或定位问题时效率严重低下的问题,以及使用gdb调试方法,需要对客户的终端设备进行固件更新造成的困难问题,提供一种支付终端上通过授权方式控制终端控制台开启的方法,能够在终端固件不更新的情况下,对指定SN的终端开启控制台,使得开发人员能借助于控制台输出的调试信息更明确地定位问题,从而加快开发进度,提高开发效率。
如图1所示,本发明实施例提供了一种支付终端控制台授权开启方法,包括如下步骤:
S1,生成一个授权文件,签名下载到支付终端;
S2,支付终端重启过程中,在uboot阶段解析授权文件,如果解析成功则开启控制台,反之则不开启;
其中,S1中,所述授权文件的组成如下表所示:
表中,
第1组成部分的基础信息包括主机名、用户名、起始时间和终止时间;SN为产品系列号,代表产品的唯一标识;
Hash值采用SHA256算法进行计算;
第3组成部分的16组hash值包括15组随机数的hash值和一组特定的hash值,记为array[16][32];特定hash值是对“DebugTag+机型+SN”计算SHA256后得到的一个32字节hash值。
其中,S1中,所述生成一个授权文件,可以按照如下步骤进行实施:
A1,对“DebugTag+机型+SN”计算SHA256,得到的一个32字节hash_tag;其中,“DebugTag”为一固定字符串“SZVANSTONE”;
A2,将表1中第2组成部分的32字节的第一组随机数经过或、与、异或运算后得到一个8字节的数据,对该8字节数据算crc后,对crc以16求模,得到一个0到15之间的数记为m;
A3,将A1步骤中生成的32字节hash值填充到array[16][32],剩余的14组均填充为32字节随机数的hash值;其中,该步骤中,涉及到的32字节随机数是普通的随机数,与表1中第2组成部分的32字节的第一组随机数不同。
A4,生成一组公私钥对,公钥记为pk,私钥记为sk,指定pk长度为160字节,sk的长度为580字节;
A5,将A4中pk连接到array数组后,以随机数补全到256字节,以便数据对齐;其中,A4中生成的pk只有160字节,该步骤中,使用(96字节)随机数进行补全,使得数据能以256字节对齐。
A6,对表1中的1~4组成部分的数据计算SHA256得到hash_sum,并对该hash_sum进行RSA2048加密,得到128字节加密数据追加到pk位置后;
A7,将上述步骤中得到的总共1024字节数据生成一个授权文件console.bin。其中,1024字节数据即为表1中所有组成部分的数据内容总长度。
本实施例中,S2具体可以按照如下步骤进行实施:
B1,在uboot阶段挂载授权文件所在的分区,查看授权文件console.bin是否存在,如不存在则以默认的关闭控制台方式正常启动终端;反之则确认授权文件console.bin长度是否为1024字节,如长度正确,则读取整个文件到read_buf数组中;
B2,对read_buf数组的前896字节数据计算SHA256,得到32字节hash值,记为cal_hash;
B3,从read_buf数组的第640字节开始截取160个字节形成公钥证书pk;
B4,用B3中得到的pk对授权文件console.bin的末尾128字节数据解密得到32字节明文Ddata;
B5,比较Ddata和cal_hash是否相等,相等则继续下述步骤,反之则以默认的关闭控制台方式正常启动终端;
B6,获取所述授权文件的组成中第2部分的32字节随机数;
B7,以B6中获取的随机数经过或、与、异或运算、计算crc、求模运算后得到数字hpos;
B8,从read_buf[32*(hpos+4)]读取32字节A1步骤中得到的hash_tag;
B9,读取终端设备的机型、SN、固定的Tag字符串“SZVANSTONE”,根据三者计算SHA256得到32字节org_hash;
B10,比较hash_tag和org_hash是否相等,如果相等则开启控制台,即打开串口调试信息;反之则以默认的关闭控制台方式正常启动终端。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明提供的支付终端控制台授权开启方法,根据某些输入条件生成一个授权文件,然后签名下载到移动支付终端;机器重启过程中在uboot阶段,终端解析授权文件,如解析成功则开启控制台,反之则不开启。这种在支付终端上通过授权方式控制终端控制台开启的方法,可以在终端固件不更新的情况下,对指定SN的终端开启控制台,在第三方的应用开发或协同调试过程中,使得开发人员能借助于控制台输出的调试信息更明确地定位问题,从而加快开发进度,提高开发效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (2)
1.一种支付终端控制台授权开启方法,其特征在于,包括如下步骤:
S1,生成一个授权文件,签名下载到支付终端;S1中,所述生成一个授权文件,按照如下步骤进行实施:
A1,对“DebugTag + 机型 + SN”计算SHA256,得到的一个32字节hash_tag;其中,“DebugTag”为一固定字符串“SZVANSTONE”;
A2,将所述授权文件中第2组成部分的32字节的第一组随机数经过或、与、异或运算后得到一个8字节的数据,对该8字节数据算crc后,对crc以16求模,得到一个0到15之间的数记为m;
A3,将A1步骤中生成的32字节hash值填充到array[m][32],剩余的15组均填充为32字节随机数的hash值;
A4,生成一组公私钥对,公钥记为pk,私钥记为sk,指定pk长度为160字节,sk的长度为580字节;
A5,将A4中pk连接到array数组后,以随机数补全到256字节,以便数据对齐;
A6,对所述授权文件中的1~4组成部分的数据计算SHA256得到hash_sum,并对该hash_sum进行RSA2048加密,得到128字节加密数据追加到pk位置后;
A7,将上述步骤中得到的总共1024字节数据生成一个授权文件console.bin;
S2,支付终端重启过程中,在uboot阶段解析授权文件,如果解析成功则开启控制台,反之则不开启;
其中,S1中,所述授权文件的组成包括第1组成部分、第2组成部分、第3组成部分、第4组成部分和第5组成部分;第1组成部分为“DebugTag” + 机型 + SN + 基础信息,第1组成部分的数据长度和存储方式分别为96byte、明文;第2组成部分为第一组随机数,第2组成部分的数据长度和存储方式分别为32byte、明文;第3组成部分为16组hash值,每组hash值32字节,第3组成部分的数据长度和存储方式分别为512 byte、明文;第4组成部分为终端解密需要用的公钥+补全的明文随机数,第4组成部分的数据长度和存储方式分别为256byte、明文;第5组成部分为用对应私钥对前四个组成部分数据的hash值做RSA2048加密得到的数据,第4组成部分的数据长度和存储方式分别为128 byte、密文;
第1组成部分的基础信息包括主机名、用户名、起始时间和终止时间;SN为产品系列号,代表产品的唯一标识;
Hash值采用SHA256算法进行计算;
第3组成部分的16组hash值包括15组随机数的hash值和一组特定的hash值,记为array[16][32];特定hash值是对“DebugTag + 机型 + SN”计算SHA256后得到的一个32字节hash值。
2.根据权利要求1所述的支付终端控制台授权开启方法,其特征在于,S2具体按照如下步骤进行实施:
B1,在uboot阶段挂载授权文件所在的分区,查看授权文件console.bin是否存在,如不存在则以默认的关闭控制台方式正常启动终端;反之则确认授权文件console.bin长度是否为1024字节,如长度正确,则读取整个文件到read_buf数组中;
B2,对read_buf数组的前896字节数据计算SHA256,得到32字节hash值,记为cal_hash;
B3,从read_buf数组的第640字节开始截取160个字节形成公钥证书pk;
B4,用B3中得到的pk对授权文件console.bin的末尾128字节数据解密得到32字节明文Ddata;
B5,比较Ddata和cal_hash是否相等,相等则继续下述步骤,反之则以默认的关闭控制台方式正常启动终端;
B6,获取所述授权文件的组成中第2部分的32字节随机数;
B7,以B6中获取的随机数经过或、与、异或运算、计算crc、求模运算后得到数字hpos;
B8,从read_buf[32*(hpos+4)]读取A1步骤中得到的32字节hash_tag;
B9,读取终端设备的机型、SN、固定的Tag字符串 “SZVANSTONE”,根据三者计算SHA256得到32字节org_hash;
B10,比较hash_tag和org_hash是否相等,如果相等则开启控制台,即打开串口调试信息;反之则以默认的关闭控制台方式正常启动终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383535.6A CN109522703B (zh) | 2018-11-20 | 2018-11-20 | 一种支付终端控制台授权开启方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383535.6A CN109522703B (zh) | 2018-11-20 | 2018-11-20 | 一种支付终端控制台授权开启方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522703A CN109522703A (zh) | 2019-03-26 |
CN109522703B true CN109522703B (zh) | 2021-09-10 |
Family
ID=65776728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811383535.6A Active CN109522703B (zh) | 2018-11-20 | 2018-11-20 | 一种支付终端控制台授权开启方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522703B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640584B1 (en) * | 2005-06-24 | 2009-12-29 | Rockwell Collins, Inc. | System and method for enhancing computer security |
CN101770386A (zh) * | 2010-03-08 | 2010-07-07 | 北京飞天诚信科技有限公司 | 一种Linux嵌入式系统的安全启动方法 |
CN103491098A (zh) * | 2013-09-30 | 2014-01-01 | 华中师范大学 | 基于公钥密码体制的软件授权方法 |
CN103618607A (zh) * | 2013-11-29 | 2014-03-05 | 北京易国信科技发展有限公司 | 一种数据安全传输和密钥交换方法 |
CN106776308A (zh) * | 2016-12-06 | 2017-05-31 | 福州高图信息技术有限公司 | 一种基于Uboot的电子产品故障调试方法及系统 |
CN107968764A (zh) * | 2016-10-19 | 2018-04-27 | 北京京东尚科信息技术有限公司 | 一种认证方法及装置 |
-
2018
- 2018-11-20 CN CN201811383535.6A patent/CN109522703B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640584B1 (en) * | 2005-06-24 | 2009-12-29 | Rockwell Collins, Inc. | System and method for enhancing computer security |
CN101770386A (zh) * | 2010-03-08 | 2010-07-07 | 北京飞天诚信科技有限公司 | 一种Linux嵌入式系统的安全启动方法 |
CN103491098A (zh) * | 2013-09-30 | 2014-01-01 | 华中师范大学 | 基于公钥密码体制的软件授权方法 |
CN103618607A (zh) * | 2013-11-29 | 2014-03-05 | 北京易国信科技发展有限公司 | 一种数据安全传输和密钥交换方法 |
CN107968764A (zh) * | 2016-10-19 | 2018-04-27 | 北京京东尚科信息技术有限公司 | 一种认证方法及装置 |
CN106776308A (zh) * | 2016-12-06 | 2017-05-31 | 福州高图信息技术有限公司 | 一种基于Uboot的电子产品故障调试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109522703A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Somorovsky | Systematic fuzzing and testing of TLS libraries | |
EP1869821B1 (en) | Hard drive authentication | |
CN104462965B (zh) | 应用程序完整性验证方法及网络设备 | |
CN109684790A (zh) | 软件启动方法、软件授权验证方法、设备和存储介质 | |
US8645693B2 (en) | Zero-knowledge based authentication method, system, and apparatus | |
CN105159707B (zh) | 一种安全的金融终端的固件烧写方法及金融终端 | |
CN107341368A (zh) | 许可证有效时间校验方法及装置 | |
CN113014444B (zh) | 一种物联网设备生产测试系统及安全保护方法 | |
CN111611593A (zh) | 安全数据处理设备 | |
CN109474420A (zh) | 一种私钥备份方法和相关设备 | |
US20220263810A1 (en) | System and method for transferring data | |
CN104732159B (zh) | 一种文件处理方法及装置 | |
WO2015042981A1 (zh) | 加解密处理方法、装置和设备 | |
CN113138775B (zh) | 车载诊断系统固件保护方法及系统 | |
CN111177729A (zh) | 一种程序漏洞的测试方法以及相关装置 | |
CN105653902B (zh) | 软件注册方法和装置,注册码生成方法和装置 | |
JPWO2003013054A1 (ja) | 処理に伴い暗号データの改ざん検出用データを生成する装置及び方法 | |
CN110598377A (zh) | 基于区块链的软件序列号管理方法以及装置 | |
CN114499892B (zh) | 固件启动方法、装置、计算机设备及可读存储介质 | |
CN109857385A (zh) | 应用程序文件打包方法、安装方法及启动方法 | |
CN109522703B (zh) | 一种支付终端控制台授权开启方法 | |
TWI222818B (en) | Software protection method and device | |
CN109981671A (zh) | 基于加密机的数据处理方法及加密机 | |
CN107844707B (zh) | 一种卡数据管理方法以及卡数据管理系统 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |