CN110543766A - 一种数据处理器抗控制流攻击方法 - Google Patents

一种数据处理器抗控制流攻击方法 Download PDF

Info

Publication number
CN110543766A
CN110543766A CN201910734385.7A CN201910734385A CN110543766A CN 110543766 A CN110543766 A CN 110543766A CN 201910734385 A CN201910734385 A CN 201910734385A CN 110543766 A CN110543766 A CN 110543766A
Authority
CN
China
Prior art keywords
bit
return address
data processor
tube
decryption
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
Application number
CN201910734385.7A
Other languages
English (en)
Other versions
CN110543766B (zh
Inventor
汪鹏君
余云飞
张跃军
俞海珍
张会红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo University
Original Assignee
Ningbo University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ningbo University filed Critical Ningbo University
Priority to CN201910734385.7A priority Critical patent/CN110543766B/zh
Publication of CN110543766A publication Critical patent/CN110543766A/zh
Priority to US16/718,218 priority patent/US11188654B2/en
Application granted granted Critical
Publication of CN110543766B publication Critical patent/CN110543766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Abstract

本发明公开了一种数据处理器抗控制流攻击方法,当数据处理器响应中断服务程序时,将返回地址和二进制密钥输入加密电路中进行加密处理得到加密返回地址,将得到的加密返回地址同时写入数据处理器的堆栈和内置安全寄存器组中,当数据处理器对中断服务程序的响应结束时,分别从数据处理器的堆栈和内置安全寄存器组中读取加密返回地址,然后分别采用第一解密电路和第二解密电路对读取的两个加密返回地址进行解密处理后得到两个解密返回地址,通过地址比较器对两个解密返回地址比较后得出是否受到控制流攻击的结论,数据处理器根据结论判定继续程序还是终止程序;优点是可以实现数据处理器的抗控制流攻击,提高数据处理器的安全性。

Description

一种数据处理器抗控制流攻击方法
技术领域
本发明涉及一种抗控制流攻击方法,尤其是涉及一种抗控制流攻击方法。
背景技术
随着物联网、云计算和移动支付等技术的快速发展,数据处理器(即嵌入式系统)被广泛应用到军事、汽车、医疗和通讯等领域。不同的数据处理器之间通过网络进行通讯和协作,这就给攻击者带来可趁之机,攻击者可以利用软件漏洞实施控制流攻击进而对整个数据处理器进行控制。控制流攻击是指利用程序漏洞,通过篡改程序控制流的存储地址或控制流数据等方式,将程序导向并执行预先设定的恶意代码,,达到破坏数据处理器或盗取关键信息的目的。根据恶意代码注入与否,控制流攻击可分为代码注入攻击和代码复用攻击。代码注入攻击指攻击者利用软件的某些漏洞将恶意代码注入到程序中去,堆栈溢出攻击是代码注入攻击的一种典型方式,数据处理器的堆栈中写入的数据量超过堆栈本身的容量,溢出的数据可以覆盖合法的数据,但由于原始程序并没有做边界检查,这就为攻击者实施溢出攻击埋下隐患。攻击者可以利用溢出攻击覆盖原始返回地址,将返回地址篡改为指向预先注入恶意代码的地址,进行控制流劫持。
当前,数据处理器在响应中断服务程序,即执行程序调用指令call时,利用Push函数将响应中断前执行指令的地址写入到数据处理器的堆栈之中,此时写入的地址称为返回地址(n位二进制数,n大于等于1)。当对中断服务程序的响应结束后,此时数据处理器执行程序返回指令ret,利用Pop函数将返回地址从堆栈中读出,数据处理器继续执行中断之前该返回地址处的指令。
由于数据处理器的堆栈是一段连续分配的有限内存空间,每当一个中断服务程序调用发生,返回地址将被写入堆栈中,当对堆栈中已分配的内存写入超出其本身容量的数据时,就会造成堆栈数据的溢出,此时溢出的数据写入堆栈中将会覆盖堆栈内的原有数据。攻击者对数据处理器进行攻击时,在返回地址被写入堆栈之后,向堆栈中写入过多数据是堆栈中写入的数据溢出,将堆栈中原有的返回地址篡改为指向恶意代码或组成恶意代码指令的地址,进行控制流劫持,此时,数据处理器执行程序返回指令ret,利用Pop函数将从堆栈中读出返回地址将会是篡改后指向恶意代码或组成恶意代码指令的地址,攻击者控制了整个数据处理器的行为。由此,现有的数据处理器不能抗控制流攻击,安全性较低。
发明内容
本发明所要解决的技术问题是提供一种数据处理器抗控制流攻击方法,该方法可以实现数据处理器的抗控制流攻击,提高数据处理器的安全性。
本发明解决上述技术问题所采用的技术方案为:一种数据处理器抗控制流攻击方法,包括以下步骤:
①在所述的数据处理器中加载加密电路、内置安全寄存器组、第一解密电路、第二解密电路和地址比较器,设置n位二进制密钥,将该n位二进制密钥记为K[n-1:0];
②当所述的数据处理器响应中断服务程序,执行程序调用指令call时,所述的处理器首先将n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]输入所述的加密电路中进行异或处理,n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]按位进行异或操作,得到n位加密返回地址,将该n位加密返回地址记为Encry_RA[n-1:0];
③采用Push函数操作将n位加密返回地址Encry_RA[n-1:0]同时写入所述的数据处理器的堆栈和所述的内置安全寄存器组中;
④当所述的数据处理器对中断服务程序的响应结束,执行程序返回指令ret时,采用Pop函数分别从所述的数据处理器的堆栈和所述的内置安全寄存器组中读取n位加密返回地址,将此时从所述的数据处理器的堆栈中读取的n位加密返回地址记为Encry_RA1[n-1:0],将此时从所述的内置安全寄存器组中读取的n位加密返回地址记为Encry_RA2[n-1:0];;
⑤将n位加密返回地址Encry_RA1[n-1:0]和n位二进制密钥K[n-1:0]输入所述的第一解密电路中进行异或处理,n位加密返回地址Encry_RA1[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第一个n位解密返回地址,将该第一个n位解密返回地址记为RA1[n-1:0],将n位加密返回地址Encry_RA2[n-1:0]和n位二进制密钥K[n-1:0]输入所述的第二解密电路中进行异或处理,n位加密返回地址Encry_RA2[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第二个n位解密返回地址,将该第二个n位解密返回地址记为RA2[n-1:0];
⑥将第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]送入所述的地址比较器中进行比较,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]相同,所述的地址比较器输出结果为1,此时所述的数据处理器则继续执行程序,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]不同,所述的地址比较器的输出结果为0,此时所述的数据处理器立即将复位信号RESET置为有效电平,所述的数据处理器复位,不再执行程序。
所述的加密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的加密电路中第j个所述的二输入异或门的两个输入端分别接入n位返回地址RA[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的加密电路中第j个所述的二输入异或门的异或逻辑值输出端输出的异或逻辑值为n位加密返回地址Encry_RA[n-1:0]的第j位数据,j=1,2,…,n。
所述的第一解密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的第一解密电路中第j个所述的二输入异或门的两个输入端分别接入Encry_RA1[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的第一解密电路中第j个所述的二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第一个n位解密返回地址RA1[n-1:0]的第j位数据,j=1,2,…,n。
所述的第二解密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的第二解密电路中第j个所述的二输入异或门的两个输入端分别接入Encry_RA2[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的第二解密电路中第j个所述的二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第二个n位解密返回地址RA2[n-1:0]的第j位数据,j=1,2,…,n。
每个所述的二输入异或门分别别包括第一PMOS管、第二PMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第六PMOS管、第一NMOS管、第二NMOS管、第三NMOS管、第四NMOS管、第五NMOS管和第六NMOS管;所述的第一PMOS管的源极、所述的第二PMOS管的源极、所述的第三PMOS管的源极和所述的第四PMOS管的源极均接入电源,所述的第一PMOS管的栅极、所述的第一NMOS管的栅极、所述的第三PMOS管的栅极和所述的第三NMOS管的栅极连接且其连接端为所述的二输入异或门的第一个输入端,所述的第一PMOS管的漏极、所述的第一NMOS管的漏极、所述的第五PMOS管的栅极和所述的第四NMOS管的栅极连接,所述的第二PMOS管的漏极、所述的第二NMOS管的漏极、所述的第六PMOS管的栅极和所述的第六NMOS管的栅极连接,所述的第二PMOS管的栅极、所述的第二NMOS管的栅极、所述的第四PMOS管的栅极和所述的第五NMOS管的栅极连接且其连接端为所述的二输入异或门的第二个输入端,所述的第三PMOS管的漏极、所述的第四PMOS管的漏极、所述的第五PMOS管的源极和所述的第六PMOS管的源极连接,所述的第五PMOS管的漏极、所述的第六PMOS管的漏极、所述的第三NMOS管的漏极和所述的第四NMOS管的漏极连接且其连接端为所述的二输入异或门的异或逻辑输出端,所述的第一NMOS管的源极、所述的第二NMOS管的源极、所述的第五NMOS管的源极和所述的第六NMOS管的源极均接地,所述的第三NMOS管的源极和所述的第五NMOS管的漏极连接,所述的第四NMOS管的源极和所述的第六NMOS管的漏极连接。该二输入异或门中,第一PMOS管和第一NMOS管构成第一个反相器,第二PMOS管和第二NMOS管构成第二个反相器,第三NMOS管、第五NMOS管、第四NMOS管和第六NMOS管构成下拉网络,第三PMOS管、第五PMOS管、第四PMOS管和第六PMOS管构成上拉网络,将输入二输入异或门的两个输入信号称为A信号和B信号,将第一个输入信号记为A,第二个输入信号记为B,A信号输入第一个反相器后生成A信号非信号A’信号,B信号输入第二个反相器后生成B信号的非信号B’信号,当A信号与B信号到达第三NMOS管的栅极与第五NMOS管的栅极时,实现了A信号和B信号的与操作,得到与逻辑值AB,当A’信号与B’信号到达第四NMOS管的栅极和第六NMOS管的栅极时,实现A’信号和B’信号的与操作,得到与逻辑值A’B’,第三NMOS管和第五NMOS管组成第一个串联电路,第四NMOS管和第六NMOS管组成第二个串联电路,第一个串联电路和第二个串联电路并联一起实现了AB和A’B’的或操作,得到或逻辑值AB+A’B’,或逻辑值AB+A’B’再取反,得到或逻辑值AB+A’B’的非逻辑值(AB+A’B’)’,由此实现异或操作,该二输入异或门通过12个MOS管构建CMOS静态互补电路结构来实现异或操作,静态电流低,电路结构简单,硬件开销小,因此在防御控制流攻击的过程不会带来太大的硬件开销和功耗开销。
与现有技术相比,本发明的优点在于通过在数据处理器中加载加密电路、内置安全寄存器组、第一解密电路、第二解密电路和地址比较器,设置n位二进制密钥,将该n位二进制密钥记为K[n-1:0],当数据处理器响应中断服务程序,执行程序调用指令call时,不直接将n位返回地址写入到堆栈中去,而是将n位返回地址和n位二进制密钥输入加密电路中进行加密处理得到n位加密返回地址,将得到的n位加密返回地址同时写入数据处理器的堆栈和内置安全寄存器组中,当数据处理器对中断服务程序的响应结束,执行程序返回指令ret时,采用Pop函数分别从数据处理器的堆栈和内置安全寄存器组中读取n位加密返回地址,然后采用第一解密电路对从数据处理器的堆栈中读取的n位加密返回地址进行解密处理得到第一个n位解密返回地址,采用第二解密电路对从内置安全寄存器组中读取的n位加密返回地址进行解密处理得到第二个n位解密返回地址,接着采用地址比较器对第一个n位解密返回地址和第二个n位解密返回地址进行比较,如果两者相同,地址比较器输出结果为1,此时表示数据处理器未受到控制流攻击,数据处理器继续执行程序,如果两者不相同,地址比较器输出结果为0,此时表示数据处理器受到控制流攻击,数据处理器复位,不再执行程序,由此偏离了攻击者想要程序跳转的目的地址,控制流攻击失败,由此本发明可以实现数据处理器的抗控制流攻击,提高数据处理器的安全性。
附图说明
图1为本发明的数据处理器抗控制流攻击方法的硬件结构图;
图2为本发明的数据处理器抗控制流攻击方法的加密电路的结构图;
图3为本发明的数据处理器抗控制流攻击方法的第一解密电路的结构图;
图4为本发明的数据处理器抗控制流攻击方法的第二解密电路的结构图。
图5为本发明的数据处理器抗控制流攻击方法的二输入异或门的电路图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例:如图1所示,一种数据处理器抗控制流攻击方法,包括以下步骤:
①在数据处理器中加载加密电路、内置安全寄存器组、第一解密电路、第二解密电路和地址比较器,设置n位二进制密钥,将该n位二进制密钥记为K[n-1:0];
②当数据处理器响应中断服务程序,执行程序调用指令call时,处理器首先将n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]输入加密电路中进行异或处理,n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]按位进行异或操作,得到n位加密返回地址,将该n位加密返回地址记为Encry_RA[n-1:0];
③采用Push函数操作将n位加密返回地址Encry_RA[n-1:0]同时写入数据处理器的堆栈和内置安全寄存器组中;
④当数据处理器对中断服务程序的响应结束,执行程序返回指令ret时,采用Pop函数分别从数据处理器的堆栈和内置安全寄存器组中读取n位加密返回地址,将此时从数据处理器的堆栈中读取的n位加密返回地址记为Encry_RA1[n-1:0],将此时从内置安全寄存器组中读取的n位加密返回地址记为Encry_RA2[n-1:0];;
⑤将n位加密返回地址Encry_RA1[n-1:0]和n位二进制密钥K[n-1:0]输入第一解密电路中进行异或处理,n位加密返回地址Encry_RA1[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第一个n位解密返回地址,将该第一个n位解密返回地址记为RA1[n-1:0],将n位加密返回地址Encry_RA2[n-1:0]和n位二进制密钥K[n-1:0]输入第二解密电路中进行异或处理,n位加密返回地址Encry_RA2[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第二个n位解密返回地址,将该第二个n位解密返回地址记为RA2[n-1:0];
⑥将第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]送入地址比较器中进行比较,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]相同,地址比较器输出结果为1,此时数据处理器则继续执行程序,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]不同,地址比较器的输出结果为0,此时数据处理器立即将复位信号RESET置为有效电平,数据处理器复位,不再执行程序。
如图2所示,本实施例中,加密电路包括n个二输入异或门,每个二输入异或门分别具有两个输入端和异或逻辑值输出端,加密电路中第j个二输入异或门的两个输入端分别接入n位返回地址RA[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,加密电路中第j个二输入异或门的异或逻辑值输出端输出的异或逻辑值为n位加密返回地址Encry_RA[n-1:0]的第j位数据,j=1,2,…,n。
如图3所示,本实施例中,第一解密电路包括n个二输入异或门(二输入异或门简称为XOR),每个二输入异或门分别具有两个输入端和异或逻辑值输出端,第一解密电路中第j个二输入异或门的两个输入端分别接入Encry_RA1[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,第一解密电路中第j个二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第一个n位解密返回地址RA1[n-1:0]的第j位数据,j=1,2,…,n。
如图4所示,本实施例中,第二解密电路包括n个二输入异或门,每个二输入异或门分别具有两个输入端和异或逻辑值输出端,第二解密电路中第j个二输入异或门的两个输入端分别接入Encry_RA2[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,第二解密电路中第j个二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第二个n位解密返回地址RA2[n-1:0]的第j位数据,j=1,2,…,n。
如图5所示,本实施例中,每个二输入异或门分别别包括第一PMOS管P1、第二PMOS管P2、第三PMOS管P3、第四PMOS管P4、第五PMOS管P5、第六PMOS管P6、第一NMOS管N1、第二NMOS管N2、第三NMOS管N3、第四NMOS管N4、第五NMOS管N5和第六NMOS管N6;第一PMOS管P1的源极、第二PMOS管P2的源极、第三PMOS管P3的源极和第四PMOS管P4的源极均接入电源,第一PMOS管P1的栅极、第一NMOS管N1的栅极、第三PMOS管P3的栅极和第三NMOS管N3的栅极连接且其连接端为二输入异或门的第一个输入端,第一PMOS管P1的漏极、第一NMOS管N1的漏极、第五PMOS管P5的栅极和第四NMOS管N4的栅极连接,第二PMOS管P2的漏极、第二NMOS管N2的漏极、第六PMOS管P6的栅极和第六NMOS管N6的栅极连接,第二PMOS管P2的栅极、第二NMOS管N2的栅极、第四PMOS管P4的栅极和第五NMOS管N5的栅极连接且其连接端为二输入异或门的第二个输入端,第三PMOS管P3的漏极、第四PMOS管P4的漏极、第五PMOS管P5的源极和第六PMOS管P6的源极连接,第五PMOS管P5的漏极、第六PMOS管P6的漏极、第三NMOS管N3的漏极和第四NMOS管N4的漏极连接且其连接端为二输入异或门的异或逻辑输出端,第一NMOS管N1的源极、第二NMOS管N2的源极、第五NMOS管N5的源极和第六NMOS管N6的源极均接地,第三NMOS管N3的源极和第五NMOS管N5的漏极连接,第四NMOS管N4的源极和第六NMOS管N6的漏极连接。

Claims (5)

1.一种数据处理器抗控制流攻击方法,其特征在于于包括以下步骤:
①在所述的数据处理器中加载加密电路、内置安全寄存器组、第一解密电路、第二解密电路和地址比较器,设置n位二进制密钥,将该n位二进制密钥记为K[n-1:0];
②当所述的数据处理器响应中断服务程序,执行程序调用指令call时,所述的处理器首先将n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]输入所述的加密电路中进行异或处理,n位返回地址RA[n-1:0]和n位二进制密钥K[n-1:0]按位进行异或操作,得到n位加密返回地址,将该n位加密返回地址记为Encry_RA[n-1:0];
③采用Push函数操作将n位加密返回地址Encry_RA[n-1:0]同时写入所述的数据处理器的堆栈和所述的内置安全寄存器组中;
④当所述的数据处理器对中断服务程序的响应结束,执行程序返回指令ret时,采用Pop函数分别从所述的数据处理器的堆栈和所述的内置安全寄存器组中读取n位加密返回地址,将此时从所述的数据处理器的堆栈中读取的n位加密返回地址记为Encry_RA1[n-1:0],将此时从所述的内置安全寄存器组中读取的n位加密返回地址记为Encry_RA2[n-1:0];;
⑤将n位加密返回地址Encry_RA1[n-1:0]和n位二进制密钥K[n-1:0]输入所述的第一解密电路中进行异或处理,n位加密返回地址Encry_RA1[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第一个n位解密返回地址,将该第一个n位解密返回地址记为RA1[n-1:0],将n位加密返回地址Encry_RA2[n-1:0]和n位二进制密钥K[n-1:0]输入所述的第二解密电路中进行异或处理,n位加密返回地址Encry_RA2[n-1:0]与n位二进制密钥K[n-1:0]按位进行异或操作,得到第二个n位解密返回地址,将该第二个n位解密返回地址记为RA2[n-1:0];
⑥将第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]送入所述的地址比较器中进行比较,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]相同,所述的地址比较器输出结果为1,此时所述的数据处理器则继续执行程序,如果第一个n位解密返回地址RA1[n-1:0]和第二个n位解密返回地址RA2[n-1:0]不同,所述的地址比较器的输出结果为0,此时所述的数据处理器立即将复位信号RESET置为有效电平,所述的数据处理器复位,不再执行程序。
2.根据权利要求1所述的一种数据处理器抗控制流攻击的方法,其特征在于所述的加密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的加密电路中第j个所述的二输入异或门的两个输入端分别接入n位返回地址RA[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的加密电路中第j个所述的二输入异或门的异或逻辑值输出端输出的异或逻辑值为n位加密返回地址Encry_RA[n-1:0]的第j位数据,j=1,2,…,n。
3.根据权利要求1所述的一种数据处理器抗控制流攻击的方法,其特征在于所述的第一解密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的第一解密电路中第j个所述的二输入异或门的两个输入端分别接入Encry_RA1[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的第一解密电路中第j个所述的二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第一个n位解密返回地址RA1[n-1:0]的第j位数据,j=1,2,…,n。
4.根据权利要求1所述的一种数据处理器抗控制流攻击的方法,其特征在于所述的第二解密电路包括n个二输入异或门,每个所述的二输入异或门分别具有两个输入端和异或逻辑值输出端,所述的第二解密电路中第j个所述的二输入异或门的两个输入端分别接入Encry_RA2[n-1:0]的第j位数据和n位二进制密钥K[n-1:0]的第j位数据,所述的第二解密电路中第j个所述的二输入异或门的的异或逻辑值输出端输出的异或逻辑值为第二个n位解密返回地址RA2[n-1:0]的第j位数据,j=1,2,…,n。
5.根据权利要求2~4中任一项所述的一种数据处理器抗控制流攻击的方法,其特征在于每个所述的二输入异或门分别别包括第一PMOS管、第二PMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第六PMOS管、第一NMOS管、第二NMOS管、第三NMOS管、第四NMOS管、第五NMOS管和第六NMOS管;所述的第一PMOS管的源极、所述的第二PMOS管的源极、所述的第三PMOS管的源极和所述的第四PMOS管的源极均接入电源,所述的第一PMOS管的栅极、所述的第一NMOS管的栅极、所述的第三PMOS管的栅极和所述的第三NMOS管的栅极连接且其连接端为所述的二输入异或门的第一个输入端,所述的第一PMOS管的漏极、所述的第一NMOS管的漏极、所述的第五PMOS管的栅极和所述的第四NMOS管的栅极连接,所述的第二PMOS管的漏极、所述的第二NMOS管的漏极、所述的第六PMOS管的栅极和所述的第六NMOS管的栅极连接,所述的第二PMOS管的栅极、所述的第二NMOS管的栅极、所述的第四PMOS管的栅极和所述的第五NMOS管的栅极连接且其连接端为所述的二输入异或门的第二个输入端,所述的第三PMOS管的漏极、所述的第四PMOS管的漏极、所述的第五PMOS管的源极和所述的第六PMOS管的源极连接,所述的第五PMOS管的漏极、所述的第六PMOS管的漏极、所述的第三NMOS管的漏极和所述的第四NMOS管的漏极连接且其连接端为所述的二输入异或门的异或逻辑输出端,所述的第一NMOS管的源极、所述的第二NMOS管的源极、所述的第五NMOS管的源极和所述的第六NMOS管的源极均接地,所述的第三NMOS管的源极和所述的第五NMOS管的漏极连接,所述的第四NMOS管的源极和所述的第六NMOS管的漏极连接。
CN201910734385.7A 2019-08-09 2019-08-09 一种数据处理器抗控制流攻击方法 Active CN110543766B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910734385.7A CN110543766B (zh) 2019-08-09 2019-08-09 一种数据处理器抗控制流攻击方法
US16/718,218 US11188654B2 (en) 2019-08-09 2019-12-18 Method for defending control flow attacks based on XOR gates

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910734385.7A CN110543766B (zh) 2019-08-09 2019-08-09 一种数据处理器抗控制流攻击方法

Publications (2)

Publication Number Publication Date
CN110543766A true CN110543766A (zh) 2019-12-06
CN110543766B CN110543766B (zh) 2022-11-08

Family

ID=68710536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910734385.7A Active CN110543766B (zh) 2019-08-09 2019-08-09 一种数据处理器抗控制流攻击方法

Country Status (2)

Country Link
US (1) US11188654B2 (zh)
CN (1) CN110543766B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113673002A (zh) * 2021-08-09 2021-11-19 中国科学院软件研究所 一种基于指针加密机制和risc-v协处理器的内存溢出防御方法
CN114266082A (zh) * 2021-12-16 2022-04-01 北京奕斯伟计算技术有限公司 防御控制流攻击的装置、方法、处理器、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726825B (zh) * 2021-11-04 2022-02-18 北京微步在线科技有限公司 一种网络攻击事件反制方法、装置及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345445A (zh) * 2013-07-02 2013-10-09 华中科技大学 基于控制流检测的抗错误注入攻击的安全芯片设计方法
WO2016058747A1 (en) * 2014-10-14 2016-04-21 Gemalto Sa System and method for protecting a device against attacks on procedure calls by encrypting arguments
CN107590385A (zh) * 2017-09-15 2018-01-16 湖南大学 一种硬件辅助抗代码复用攻击防御系统及方法
CN108701184A (zh) * 2016-03-03 2018-10-23 高通股份有限公司 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备
US20190080096A1 (en) * 2017-09-14 2019-03-14 Commissariat A L'energie Atomique Et Aux Energies Alternatives Execution process of binary code of function secured by microprocessor
CN109508537A (zh) * 2018-09-21 2019-03-22 中国科学院信息工程研究所 检测堆栈中返回地址被篡改的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9934166B2 (en) * 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US9514285B2 (en) * 2014-09-26 2016-12-06 Intel Corporation Creating stack position dependent cryptographic return address to mitigate return oriented programming attacks
US10536264B2 (en) * 2016-12-28 2020-01-14 Intel Corporation Efficient cryptographically secure control flow integrity protection
US11500982B2 (en) * 2018-08-15 2022-11-15 RunSafe Security, Inc. Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses
US10579806B1 (en) * 2019-08-27 2020-03-03 Zeus Sw Defender, Llc Systems and methods for dynamic reencryption of code pointers
CN111030991B (zh) * 2019-11-06 2022-02-11 温州大学 一种用于数据处理器的防御控制流攻击方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345445A (zh) * 2013-07-02 2013-10-09 华中科技大学 基于控制流检测的抗错误注入攻击的安全芯片设计方法
WO2016058747A1 (en) * 2014-10-14 2016-04-21 Gemalto Sa System and method for protecting a device against attacks on procedure calls by encrypting arguments
CN108701184A (zh) * 2016-03-03 2018-10-23 高通股份有限公司 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备
US20190080096A1 (en) * 2017-09-14 2019-03-14 Commissariat A L'energie Atomique Et Aux Energies Alternatives Execution process of binary code of function secured by microprocessor
CN107590385A (zh) * 2017-09-15 2018-01-16 湖南大学 一种硬件辅助抗代码复用攻击防御系统及方法
CN109508537A (zh) * 2018-09-21 2019-03-22 中国科学院信息工程研究所 检测堆栈中返回地址被篡改的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113673002A (zh) * 2021-08-09 2021-11-19 中国科学院软件研究所 一种基于指针加密机制和risc-v协处理器的内存溢出防御方法
CN113673002B (zh) * 2021-08-09 2023-05-16 中国科学院软件研究所 一种基于指针加密机制和risc-v协处理器的内存溢出防御方法
CN114266082A (zh) * 2021-12-16 2022-04-01 北京奕斯伟计算技术有限公司 防御控制流攻击的装置、方法、处理器、设备及存储介质

Also Published As

Publication number Publication date
CN110543766B (zh) 2022-11-08
US20210042415A1 (en) 2021-02-11
US11188654B2 (en) 2021-11-30

Similar Documents

Publication Publication Date Title
CN111030991B (zh) 一种用于数据处理器的防御控制流攻击方法
US9847872B2 (en) Memory integrity
CN110543766B (zh) 一种数据处理器抗控制流攻击方法
CN108073837B (zh) 一种总线安全保护方法及装置
US10970421B2 (en) Virus immune computer system and method
US20210382985A1 (en) Virus immune computer system and method
US9251098B2 (en) Apparatus and method for accessing an encrypted memory portion
US10664588B1 (en) Virus immune computer system and method
US10592697B1 (en) Virus immune computer system and method
US20230418768A1 (en) Sensitive data reading method and apparatus, electronic device, and storage medium
CN111381884A (zh) 用于目标地址加密的设备、系统和方法
EP3512156A1 (en) Entanglement and recall system using physically unclonable function technology
CN110378117B (zh) 控制流完整性检测方法、装置及系统
CN113536331B (zh) 存储器和计算系统的数据安全
US11463074B2 (en) Storage element with clock gating
Sakamoto et al. How to code data integrity verification secure against single-spot-laser-induced instruction manipulation attacks
US20210349990A1 (en) Countermeasure for protecting against a fault injection attack in a data processing system
EP3203460B1 (en) Secure data storage
CN116383900A (zh) 数据处理装置与数据处理方法
CN116203886A (zh) 一种应用于fpga的高安全电路

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