CN111104668A - 一种安全认证函数返回值的实现方法及应用 - Google Patents
一种安全认证函数返回值的实现方法及应用 Download PDFInfo
- Publication number
- CN111104668A CN111104668A CN201911339657.XA CN201911339657A CN111104668A CN 111104668 A CN111104668 A CN 111104668A CN 201911339657 A CN201911339657 A CN 201911339657A CN 111104668 A CN111104668 A CN 111104668A
- Authority
- CN
- China
- Prior art keywords
- function
- return value
- value
- processed
- bit
- 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.)
- Granted
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请公开一种安全认证函数返回值的实现方法及应用。所述方法包括主调函数与被调函数预先协商好不同状态的函数返回值表达式;当被调函数执行安全认证完成后生成待处理函数返回值,根据待处理函数返回值确定移位随机数;被调函数根据移位随机数对待处理函数返回值作移位处理,得到最终函数返回值,将函数返回值返回主调函数;主调函数依据预先协商好的函数返回值表达式对接收到的最终函数返回值进行分析,确定函数返回值所示状态。采用本申请方法实现主调函数与被调函数之间在进行调用操作时进行一定程度的互动,而且经处理后的函数返回值不能被轻易识别,保证了函数执行结果的安全性,减少函数返回值在返回过程中被篡改的可能性。
Description
技术领域
本申请涉及信息安全领域,尤其涉及一种安全认证函数返回值的实现方法及应用。
背景技术
常用的代码编写中,函数的返回值表示成功或者失败,一般是简单的0和1,或者为true和false。目前基于安全认证函数的代码编写方式中,针对函数返回值一般采用汉明距离(使用在数据传输差错控制编码里面的,表示两个相同长度的字对应位不同的数量),也即函数的返回值中对应位值是相反的,如0x5A和0xA5。
然而考虑到现在越来越复杂的使用环境,越来越精准的攻击手段,在一些对安全要求比较高的代码运行场景中,主调函数无法确定被调函数返回值的有效性(如是否被外部有意修改),此外,函数主调方和被调方在进行调用操作的时候没有互动,故被调方返回的结果可靠性就大打折扣。因此对于一些涉及到更高安全级别的安全认证函数时,提高函数返回值的安全性和可靠性是亟待解决的问题。
发明内容
本申请提供了一种安全认证函数返回值的实现方法,包括:
主调函数与被调函数预先协商好不同状态的函数返回值表达式;
当被调函数认证完成后生成待处理函数返回值,根据待处理函数返回值确定移位随机数;
被调函数根据移位随机数对待处理函数返回值作移位处理,得到最终函数返回值,将函数返回值返回主调函数;
主调函数依据预先协商好的函数返回值表达式对接收到的最终函数返回值进行分析,确定函数返回值所示状态。
如上所述的安全认证函数返回值的实现方法,其中主调函数与被调函数预先约定函数返回值的比特位中,值为1的比特位的个数表示不同的认证状态。
如上所述的安全认证函数返回值的实现方法,其中主调函数在接收到函数返回值后,根据函数返回值中值为1的比特位的个数确定函数返回值所示状态。
如上所述的安全认证函数返回值的实现方法,其中当函数返回值中低七位值为1的比特位的个数为第一数值时,表示安全认证函数未执行;
当函数返回值中低七位值为1的比特位的个数为第二数值时,表示安全认证函数执行失败;
当函数返回值中低七位值为1的比特位的个数为第三数值时,表示安全认证函数执行成功。
如上所述的安全认证函数返回值的实现方法,其中根据待处理函数返回值确定移位随机数,具体为根据待处理函数返回值中值为1的比特位的个数确定移位随机数的个数。
如上所述的安全认证函数返回值的实现方法,其中所述移位随机数为被调函数根据函数返回值中值为1的比特位的个数随机生成的数据;
或者,所述移位随机数为由主调函数生成随机数,作为被调函数的入参传入被调函数。
如上所述的安全认证函数返回值的实现方法,其中根据移位随机数对待处理函数返回值作移位处理,具体包括如下子步骤:
将待处理函数返回值的最高位设置为1;
查找待处理函数返回值中除最高位外剩余七个比特位中值为1的比特位,将该比特位依据移位随机数进行移位处理。
如上所述的安全认证函数返回值的实现方法,其中当需要对函数返回值中的多个值为1的比特位进行移位,则判断移位后的位置是否相同,若相同,则重新确定随机数再进行移位操作,否则得到移位后的最终函数返回值。
如上所述的安全认证函数返回值的实现方法,其中由主调函数和多个见证函数共同记录安全认证状态,在被调函数响应主调函数的返回值之前,将状态同步到各个见证函数中,由主调函数决定选择其中至少一个见证函数进行函数返回值状态确认。
本申请还提供一种安全认证函数返回值的实现应用,其特征在于,所述装置包括智能卡、或涉及安全领域中的应用、或易被攻击载体中的应用;所述装置执行上述任一项所述的安全认证函数返回值的实现方法。
本申请实现的有益效果如下:采用本申请提供的安全认证函数返回值实现方法,实现主调函数与被调函数之间能够对函数返回值进行一定程度的互动,而且经处理后的函数返回值不能被轻易识别,保证了函数执行结果的安全性,在保证功能的前提下防止安全攻击行为,减少函数返回值在返回过程中被篡改的可能性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种安全认证函数返回值的实现应用示意图;
图2是本申请实施例提供的一种安全认证函数返回值的实现方法流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种安全认证函数返回值的实现方法,如图1所示,适用于任何对函数返回值有要求的应用,包括同一应用内的函数调用、同一设备内不同应用之间的函数调用和不同设备的不同应用之间的函数调用。
对于同一应用内的函数调用的情况,该应用内包括主调函数111和被调函数112,主调函数调用被调函数实现相应安全认证功能,被调函数向主调函数返回经本申请实现方法处理后的函数返回值,例如智能卡应用。
对于同一设备内不同应用之间函数调用的情况,第一应用的主调函数121调用第二应用的被调函数122实现相应安全认证功能,第二应用的被调函数122向第一应用的主调函数121返回经本申请实现方法处理后的函数返回的情况值,例如移动终端中的指纹认证接口函数。
对于不同设备的不同应用之间函数调用的情况,第一设备中第一应用的主调函数131经设备端口调用第二设备中第二应用的被调函数132实现相应安全认证功能,第二设备中第二应用的被调函数132经设备端口向第一设备中第一应用的主调函数131返回经本申请实现方法处理后的函数返回的情况值,例如PC机与U盘之间调用文件传输接口传输数据。
如图2所示,基于上述安全认证函数调用,本申请提供的安全认证函数返回值的实现方法具体包括:
步骤210、主调函数与被调函数预先协商好不同状态的函数返回值表达式;
主调函数与被调函数在函数调用前预先协商好表示不同状态的函数返回值的表达式;例如以一字节函数返回值为例,为了防止返回值为非0值,优选将函数返回值的最高比特位置为1,其余7个比特位表示认证状态,在函数调用前主调函数与被调函数预先约定函数返回值中除最高位外剩余比特位为1的个数表示不同的认证状态,如下表所示:
除最高位外剩余比特位为1的个数 | 认证状态 |
0 | 认证未执行 |
1 | 认证执行失败 |
2 | 认证执行成功 |
其他 | 无效返回值 |
表1
需要说明的是,上述表格仅为主调函数与被调函数约定表达式的示例,在实际应用时可以根据需求约定不同的表达式,在此不作限定。
步骤220、当被调函数认证完成后生成待处理函数返回值,根据待处理函数返回值确定移位随机数;
在进行安全认证时,主调函数将待认证数据作为入参调用被调函数,例如,在进行指纹认证时,主调函数将待认证指纹数据作为入参调用指纹认证函数(被调函数),被调函数在认证指纹完成后确定指纹的认证状态,即指纹认证后的待处理函数返回值,具体包括但不限于认证成功、认证失败、未执行或无效返回值;
本申请实施例中,预先约定:若被调函数未执行时选择的待处理函数返回值为00000000(0x00),若被调函数执行失败时选择的待处理函数返回值为00000001(0x01),若被调函数执行成功时选择的待处理函数返回值为00000011(0x03)。需要说明的是,待处理函数返回值中包括的值为1的比特位可以在除最高位外的任意位置,只需满足:除最高位外剩余比特位为1的个数为0表示未执行,个数为1表示执行失败(如00001000),个数为2表示执行成功(如00010100)。
具体地,根据待处理函数返回值确定函数返回值移位随机数,具体为:在被调函数认证完成后生成待处理函数返回值,根据待处理函数返回值中比特位为1的个数确定移位随机数的个数,即如果待处理函数返回值中有N(N<=2)个值为1的比特位,则确定要移位的随机数个数也为N,优选地对于值为1的个数N>2的情况可选择不做移位处理;其中,移位随机数可以为随机生成的值为0~6的随机数R,也可以根据被调函数的入参指定进行移位(即由主调函数设定要移位的随机数),也可以是超过数值7的随机数,若移位时超过最高位则进行循环移位操作;
对于根据被调函数的入参指定进行移位的情况,由主调函数生成随机数来指定移位;其中根据函数返回值中值为1的比特位最多为2时能够表示特定含义,故主调函数指定的移位随机数一般也为一个字节,其中高半字节表示第一个值为1的比特位需要的移位,低半字节表示第二个值为1的比特位需要的移位(对于需要移位1次的情况,则使用此参数的低半字节;对于需要移位2次的情况,则使用此参数的整个字节;如果不需要移位操作,则此入参无用);例如,主调函数指定的移位随机数为0x25,则第一个值为1的比特位需要向左移2位,第二个值为1的比特位需要向左移5位。
步骤230、被调函数根据移位随机数对待处理函数返回值作移位处理,得到最终函数返回值,将函数返回值返回主调函数;
本申请实施例中,根据移位随机数对待处理函数返回值作移位处理,具体包括如下子步骤:
步骤231、将待处理函数返回值的最高位设置为1;
例如,生成的待处理函数返回值为表示执行失败的0x01,即:
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
为防止最终返回值为0,则先将待处理函数返回值的最高位设置为1,即:
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
另外对应步骤120中对于被调函数的待处理函数返回值,本申请可以选择在约定待处理函数返回值的初始值时直接约定最高位为1(如约定被调函数未执行时待处理函数返回值为10000000、约定被调函数执行失败时待处理函数返回值为10000001、约定被调函数执行成功时待处理函数返回值为10000011),若采用此方式,则省略执行步骤131。
步骤232、查找待处理函数返回值中除最高位外剩余七个比特位中值为1的比特位,将该比特位依据移位随机数进行移位处理;
例如移位随机数为5,剩余七个比特位中值为1的比特位为b1,移位后的函数返回值为:
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
由此确定最终的函数返回值为0xC1。
此外,若需要对函数返回值中的多个比特位进行移位,则需判断移位后的位置是否相同,若相同则需要重新确定随机数再进行移位操作;例如函数返回值为00001010,需要对其中的两个为1的比特位进行移位,若分别确定的移位随机数为2和4,则两个为1的比特位移位后都到达了第六位,则此时需要重新确定移位随机数进行移位操作。
返回参见图1,步骤240、主调函数依据预先协商好的函数返回值表达式对接收到的最终函数返回值进行分析,确定函数返回值所示状态;
若主调函数获取接收到的函数返回值的低七位没有值为1的比特位,即函数返回值为0x80,则表示安全认证函数未执行;
若主调函数获取接收到的函数返回值的低七位只有一个值为1的比特位,则表示安全认证函数执行失败;
若主调函数获取接收到的函数返回值的低七位有两个值为1的比特位,则表示安全认证函数执行成功;
之后主调函数根据函数返回值所示状态执行相应的后续操作,需要说明的是后续操作包括如指纹认证成功后执行交易操作,或指纹认证失败后重新发起认证请求,或查找未执行指纹认证的原因等,在此不作限定。
可选地,本申请实施例中除主调函数之外,也可以采用简单的共识机制,由主调函数和多个其余函数共同记录安全认证状态,在被调函数响应主调函数的返回值之前,将状态同步到各个见证函数中,由主调函数决定选择其中一个或多个进行函数返回值状态确认;此方案提高了安全认证状态的安全性。
以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种安全认证函数返回值的实现方法,其特征在于,包括:
主调函数与被调函数预先协商好不同状态的函数返回值表达式;
当被调函数执行安全认证完成后生成待处理函数返回值,根据待处理函数返回值确定移位随机数;
被调函数根据移位随机数对待处理函数返回值作移位处理,得到最终函数返回值,将函数返回值返回主调函数;
主调函数依据预先协商好的函数返回值表达式对接收到的最终函数返回值进行分析,确定函数返回值所示状态。
2.如权利要求1所述的安全认证函数返回值的实现方法,其特征在于,主调函数与被调函数预先约定函数返回值的比特位中,值为1的比特位的个数表示不同的认证状态。
3.如权利要求2所述的安全认证函数返回值的实现方法,其特征在于,主调函数在接收到函数返回值后,根据函数返回值中值为1的比特位的个数确定函数返回值所示状态。
4.如权利要求2或3所述的安全认证函数返回值的实现方法,其特征在于,
当函数返回值中低七位值为1的比特位的个数为第一数值时,表示安全认证函数未执行;
当函数返回值中低七位值为1的比特位的个数为第二数值时,表示安全认证函数执行失败;
当函数返回值中低七位值为1的比特位的个数为第三数值时,表示安全认证函数执行成功。
5.如权利要求1所述的安全认证函数返回值的实现方法,其特征在于,根据待处理函数返回值确定移位随机数,具体为根据待处理函数返回值中值为1的比特位的个数确定移位随机数的个数。
6.如权利要求1或5所述的安全认证函数返回值的实现方法,其特征在于,
所述移位随机数为被调函数根据函数返回值中值为1的比特位的个数随机生成的数据;
或者,所述移位随机数为由主调函数生成随机数,作为被调函数的入参传入被调函数。
7.如权利要求6所述的安全认证函数返回值的实现方法,其特征在于,根据移位随机数对待处理函数返回值作移位处理,具体包括如下子步骤:
将待处理函数返回值的最高位设置为1;
查找待处理函数返回值中除最高位外剩余七个比特位中值为1的比特位,将该比特位依据移位随机数进行移位处理。
8.如权利要求1所述的安全认证函数返回值的实现方法,其特征在于,当需要对函数返回值中的多个值为1的比特位进行移位,则判断移位后的位置是否相同,若相同,则重新确定随机数再进行移位操作,否则得到移位后的最终函数返回值。
9.如权利要求1所述的安全认证函数返回值的实现方法,其特征在于,由主调函数和多个见证函数共同记录安全认证状态,在被调函数响应主调函数的返回值之前,将状态同步到各个见证函数中,由主调函数决定选择其中至少一个见证函数进行函数返回值状态确认。
10.一种安全认证函数返回值的实现应用,其特征在于,所述应用包括智能卡应用、或涉及安全领域中的应用、或易被攻击载体中的应用;所述应用执行如权利要求1-9中任一项所述的安全认证函数返回值的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911339657.XA CN111104668B (zh) | 2019-12-23 | 2019-12-23 | 一种安全认证函数返回值的实现方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911339657.XA CN111104668B (zh) | 2019-12-23 | 2019-12-23 | 一种安全认证函数返回值的实现方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104668A true CN111104668A (zh) | 2020-05-05 |
CN111104668B CN111104668B (zh) | 2022-03-01 |
Family
ID=70423332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911339657.XA Active CN111104668B (zh) | 2019-12-23 | 2019-12-23 | 一种安全认证函数返回值的实现方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104668B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404056A (zh) * | 2008-10-29 | 2009-04-08 | 金蝶软件(中国)有限公司 | 一种软件的保护方法、装置及设备 |
CN103413074A (zh) * | 2013-07-08 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种通过api实现软件保护的方法和装置 |
CN103955635A (zh) * | 2014-04-04 | 2014-07-30 | 北京深思数盾科技有限公司 | 一种对.net可执行程序进行保护的方法和系统 |
CA2809516A1 (en) * | 2013-03-13 | 2014-09-13 | Khalid Nawaf Alharbi | Preventing stack buffer overflow attacks |
CN104504312A (zh) * | 2014-12-23 | 2015-04-08 | 北京深思数盾科技有限公司 | 软件反调试保护方法 |
CN106547580A (zh) * | 2015-09-22 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 挂钩函数的方法和装置 |
CN109255245A (zh) * | 2018-08-13 | 2019-01-22 | 海南新软软件有限公司 | 一种本地密钥保护方法、装置及系统 |
-
2019
- 2019-12-23 CN CN201911339657.XA patent/CN111104668B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404056A (zh) * | 2008-10-29 | 2009-04-08 | 金蝶软件(中国)有限公司 | 一种软件的保护方法、装置及设备 |
CA2809516A1 (en) * | 2013-03-13 | 2014-09-13 | Khalid Nawaf Alharbi | Preventing stack buffer overflow attacks |
CN103413074A (zh) * | 2013-07-08 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种通过api实现软件保护的方法和装置 |
CN103955635A (zh) * | 2014-04-04 | 2014-07-30 | 北京深思数盾科技有限公司 | 一种对.net可执行程序进行保护的方法和系统 |
CN104504312A (zh) * | 2014-12-23 | 2015-04-08 | 北京深思数盾科技有限公司 | 软件反调试保护方法 |
CN106547580A (zh) * | 2015-09-22 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 挂钩函数的方法和装置 |
CN109255245A (zh) * | 2018-08-13 | 2019-01-22 | 海南新软软件有限公司 | 一种本地密钥保护方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111104668B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388194B2 (en) | Identity verification and verifying device | |
WO2019134361A1 (zh) | 接口调用及接口调用的响应方法、装置、电子设备及介质 | |
CN104796257A (zh) | 灵活的数据认证 | |
US10860991B2 (en) | Management system, control method therefor, and non-transitory computer-readable medium | |
CN114266033A (zh) | 验证码生成方法、装置、验证码登录系统及电子设备 | |
CN108768618B (zh) | 一种基于区块链的ip软核授权方法、装置及介质 | |
CN102971739B (zh) | 利用强力证据保护帐户安全性设定 | |
CN113422687B (zh) | 一种验证方法、验证服务器和验证系统 | |
CN109219950B (zh) | 用于在安全相关的设备之间交换消息的方法 | |
CN111565179A (zh) | 身份校验方法、装置、电子设备及存储介质 | |
CN111104668B (zh) | 一种安全认证函数返回值的实现方法及应用 | |
CN116488919B (zh) | 一种数据处理方法、通信节点及存储介质 | |
CN111949952B (zh) | 验证码请求处理方法及计算机可读存储介质 | |
US10845990B2 (en) | Method for executing of security keyboard, apparatus and system for executing the method | |
CN113935008B (zh) | 用户认证方法、装置、电子设备及计算机可读存储介质 | |
CN113254986B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
JP3920892B2 (ja) | 端末装置 | |
US9203607B2 (en) | Keyless challenge and response system | |
CN114938281A (zh) | 一种安全设备的实现方法及安全设备 | |
US8777100B2 (en) | Method for inputting a password and a device therefor | |
CN108664779A (zh) | 一种基于指纹的安全认证方法及装置 | |
CN103490874A (zh) | 安全性信息交互系统、方法、装置和服务器 | |
KR100959562B1 (ko) | 알에프아이디의 리더기와 태그 간의 통신방법 | |
US11212314B2 (en) | Method for an object to communicate with a connected objects network to report that a clone may be impersonating the object in the network | |
CN114330616A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220129 Address after: 212355 Hengtang Industrial Zone, Danyang City, Zhenjiang City, Jiangsu Province Applicant after: HENGBAO Corp. Address before: 801, 8 / F, building 4a, international R & D headquarters park, 68 Olympic street, Jianye District, Nanjing City, Jiangsu Province 210019 Applicant before: JIANGSU HENGBAO INTELLIGENT SYSTEM TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |