KR20090084263A - Attack detecting method and attack detector for system security - Google Patents

Attack detecting method and attack detector for system security Download PDF

Info

Publication number
KR20090084263A
KR20090084263A KR1020080010325A KR20080010325A KR20090084263A KR 20090084263 A KR20090084263 A KR 20090084263A KR 1020080010325 A KR1020080010325 A KR 1020080010325A KR 20080010325 A KR20080010325 A KR 20080010325A KR 20090084263 A KR20090084263 A KR 20090084263A
Authority
KR
South Korea
Prior art keywords
command
association information
parity
association
instruction
Prior art date
Application number
KR1020080010325A
Other languages
Korean (ko)
Other versions
KR100978605B1 (en
Inventor
김종태
윤석민
Original Assignee
성균관대학교산학협력단
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 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020080010325A priority Critical patent/KR100978605B1/en
Publication of KR20090084263A publication Critical patent/KR20090084263A/en
Application granted granted Critical
Publication of KR100978605B1 publication Critical patent/KR100978605B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

A system security breach detection method and a breach detector capable of detecting external breach and responding to the breach are provided to guarantee an excellent reliability with a small calculation amount by a mode using parity comparing to a encryption module based on security processor. A parity memory(708) stores the instruction relationship information and parity relationship information. An instruction correlation inspector(704) determines correlation through the verification through the parity check mode about the instructions and instruction relationship information. According to the correlation, the instruction correlation inspector detects the outside breach. In case an unexpected problem is occurred at an operating system, the security processor checks the state in terms of hardware and includes interrupt(714) corresponding to change.

Description

시스템 보안용 침해탐지방법 및 침해 탐지기{ATTACK DETECTING METHOD AND ATTACK DETECT0R FOR SYSTEM SECURITY}ATTACK DETECTING METHOD AND ATTACK DETECT0R FOR SYSTEM SECURITY}

본 발명은 시스템 보안용 침해탐지방법 및 침해 탐지기에 관한 것으로, 더욱 구체적으로는 시스템에서 명령어들의 연관성 정보를 패리티 형태로 생성하고, 패리티 체크방식으로 외부침해여부를 탐지할 수 있는 시스템 보안용 침해탐지방법 및 침해 탐지기에 관한 것이다.The present invention relates to an intrusion detection method and an intrusion detector for system security, and more specifically, infringement detection for system security that can generate correlation information of instructions in a system in a parity form and detect whether an external infringement is detected by a parity check method. It relates to a method and an intrusion detector.

일반적으로 임베디드 시스템(embedded system)이란 특정한 제품이나 솔루션에서 주어진 작업을 수행할 수 있도록 추가로 탑재되는 솔루션이나 시스템을 의미한다. 예컨대, 첨단 기능이 들어 있는 컴퓨터, 가전제품, 공장자동화 시스템, 엘리베이터, 휴대폰 등 현대의 각종 전자·정보·통신 기기는 대부분 임베디드 시스템을 갖추고 있다.In general, an embedded system is a solution or system that is additionally mounted to perform a given task in a specific product or solution. For example, most modern electronic, information and communication devices such as computers, home appliances, factory automation systems, elevators, mobile phones, etc., which are equipped with advanced functions, are mostly equipped with embedded systems.

이러한 임베디드 시스템을 위한 제작 기술의 발전으로 소형 임베디드기기들의 성능은 그 기능적 측면에서 데스크톱 컴퓨터 시스템과 거의 동일한 기능을 수행 가능하다. 이는 임베디드 기기들도 데스크톱 컴퓨터 환경과 마찬가지로 소프트웨어적 보안 위협의 대상이 될 수 있음을 의미한다. 또한 소형 임베디드 기기들은 보안 공격자로 하여금 대상 기기 취득의 용이성을 제공할 수 있으므로 기존 데스크톱 컴퓨터 시스템에서는 고려하지 않았던 하드웨어적 취약성을 통한 보안 위협에도 노출이 되어있다. With the development of manufacturing technology for such embedded systems, the performance of small embedded devices can perform almost the same functions as desktop computer systems in terms of their functions. This means that embedded devices, like desktop computer environments, can also be subject to software security threats. Small embedded devices can also provide security attackers with the ease of acquiring target devices, exposing them to security threats through hardware vulnerabilities not considered in traditional desktop computer systems.

임베디드 시스템에 사용되는 보안 프로세서가 물리적으로 보호되어 있어 보안 프로세서 자체에 가해지는 물리적 공격으로부터는 충분히 보호 받을 수 있으며, 보안 프로세서는 내부에 하드웨어적인 암호화 모듈을 포함하여 고속 암호화 연산을 수행할 수 있다고 가정하자. 그러나 이러한 가정에도 불구하고, 시스템에 사용되는 외부 버스라인 및 외부 디바이스들은 공격자로부터 가해지는 소프트웨어적 공격 및 하드웨어적 공격에 그대로 노출되어 있다. It is assumed that the security processor used in the embedded system is physically protected so that it is sufficiently protected from physical attacks on the security processor itself, and the security processor can perform high-speed encryption operations by including a hardware encryption module inside. lets do it. However, despite these assumptions, the external bus lines and external devices used in the system are exposed to software attacks and hardware attacks from attackers.

또한 시스템에서 구동되는 소프트웨어는 운영체제를 포함하는 기타 응용프로그램이 동작되며, 이들은 부분적으로는 보안 대책이 강구되어 있으나, 잠재적으로 소프트웨어적 공격이 가해질 수 있다.In addition, software running on the system is operated by other applications including an operating system, which are partially secured, but may potentially be subjected to software attacks.

보안 공격에 사용되는 기법은 크게 소프트웨어적 공격 기법과 하드웨어적 공격 기법으로 구분된다. 물론 소프트웨어적 공격과 하드웨어적 공격이 병행적으로 사용될 수도 있다. 임베디드 시스템에 가해지는 해킹 및 악성 코드의 주입은 주로 대상 소프트웨어에 내재한 취약성을 통해 이루어진다. 이러한 보안 위협은 시스템에서 수행되는 프로그램의 비정상적 동작을 야기한다. 프로그램의 비정상적인 동작은 정상적인 실행 루틴에서 벗어나 공격자가 의도하는 프로그램 코드의 실행을 의 미하며, 이를 통해 공격자는 시스템에 다양한 형태의 위해를 가할 수 있다. 이러한 소프트웨어적 공격에 대응할 수 있는 기법은 소프트웨어적 대응 기법과 하드웨어적 대응 기법으로 구분될 수 있다.The techniques used for security attacks are largely divided into software attack techniques and hardware attack techniques. Of course, software attacks and hardware attacks can be used in parallel. Hacking and injection of malicious code on embedded systems is primarily through vulnerabilities inherent in the target software. These security threats cause abnormal behavior of programs running on the system. Abnormal operation of a program means execution of the program code intended by an attacker, which is outside the normal execution routine, which can inflict various forms of harm on the system. Techniques that can respond to such software attacks can be divided into software countermeasures and hardware countermeasures.

상기 소프트웨어적 대응 기법은 다시 정적 분석 기법(static analysis method)과 동적 모니터링 기법(dynamic monitoring method)으로 구분 가능하다. The software countermeasure can be divided into a static analysis method and a dynamic monitoring method.

상기 정적 분석 기법은 사전에 알려진 프로그램에서 발생 가능한 취약성들의 데이터베이스를 활용해 프로그램 개발 단계에서 취약성을 포함하는 코드의 작성을 사전에 방지하는 기법이다. 이 정적 분석 기법은 사용되는 데이터베이스가 완벽하다는 가정에서는 소프트웨어적 공격을 방지할 수 있는 가장 이상적인 기법이라 할 수 있으나 현실적으로 완벽한 데이터베이스의 구축이 불가능하다는 한계를 가지고 있다. 또한 이 경우 프로그램이 수행되는 중간에는 취약성에 대한 아무런 대책이 없다는 단점을 가지고 있다. The static analysis technique is a technique for preventing the creation of code including vulnerabilities in the program development stage by using a database of vulnerabilities that may occur in a previously known program. This static analysis technique is the most ideal technique to prevent software attacks under the assumption that the database used is perfect, but there is a limit to the fact that it is impossible to construct a perfect database. In this case, there is a disadvantage that there is no countermeasure in the middle of the program execution.

상기 동적 모니터링 기법은 운영체제와 같이 대상 프로그램 보다 상위 레벨에서 동작되는 프로그램에서 수행 가능하다. 이러한 소프트웨어적인 프로그램 모니터링 기법이 완벽하게 수행되기 위해서는 대상 프로그램을 모니터링 하는 프로그램은 이들 취약성들로부터 완전히 자유로워야 한다는 전제 조건이 필요하다. 하지만 위에서도 언급한 바와 같이 이러한 조건은 만족되기 어렵다. 만일 이러한 조건이 만족되었다 하더라도 상위 레벨의 감시 프로그램은 모니터링 과정에서 시스템의 성능 저하 문제를 야기할 수 있음에 그 한계를 가진다.The dynamic monitoring technique may be performed by a program operated at a higher level than a target program such as an operating system. In order for this software program monitoring technique to be fully implemented, the prerequisite that the program monitoring the target program must be completely free from these vulnerabilities. However, as mentioned above, this condition is difficult to satisfy. Even if these conditions are met, the higher level monitoring program is limited because it can cause the performance degradation of the system during the monitoring process.

상기 하드웨어적 대응 기법은 프로그램의 동적 모니터링을 전제로 한다. 상 기 하드웨어적 대응 기법은 암호화 기법과 비암호화 기법으로 구분 될 수 있다. The hardware countermeasure is based on the dynamic monitoring of the program. The hardware countermeasure can be classified into encryption and non-encryption.

상기 암호화 기법은 상기 암호화 기법이 적용된 종래의 임베디드의 보안프로세서 구조를 통하여 설명한다.The encryption scheme is described through a conventional embedded security processor structure to which the encryption scheme is applied.

도 1에 도시된 바와 같이, 상기 암호화 기법은 메모리(100)에 저장되는 프로그램 코드를 암호키(Secret Key)를 이용한 암호화(Encryption)과정을 통하여 전체적 또는 부분적으로 암호화한다. 상기 암호화 과정은 암호화 모듈(101)을 통해 수행된다. 그리고 프로세서(104)에서의 프로그램코드의 실행 전에 수행되는 암호키(Secret Key)를 이용한 복호화(Decryption) 과정에서 실행 프로그램 코드의 변조여부를 동적으로 감시하게 된다. 상기 복호화 과정은 복호화모듈(102)을 통해 수행된다.As shown in FIG. 1, the encryption scheme encrypts program codes stored in the memory 100 in whole or in part through an encryption process using a secret key. The encryption process is performed by the encryption module 101. In the process of decryption using a secret key executed before execution of the program code in the processor 104, the execution program code is dynamically monitored. The decoding process is performed by the decoding module 102.

상기 암호화 기법은 기능적으로는 완벽한 기법이라고 할 수 있으나, 실제 시스템에 적용되기에는 여러 문제점을 가지고 있다. 우선 프로그램의 개발 단계에서 각 시스템에 따른 프로그램 코드의 암호화 과정을 필요로 한다. 이는 프로그램 개발 과정에서의 비효율성을 발생 시키는 요인이 될 수 있다. Although the encryption technique is functionally a perfect technique, it has various problems to be applied to an actual system. First of all, in the development stage of the program, the process of encrypting the program code for each system is required. This may cause inefficiency in the program development process.

또한 상기 암호화 기법은 프로그램 코드의 암호화에 의해 메모리에 저장되는 코드의 크기를 증가시켜 메모리 오버헤드를 발생시킨다. 또한 메모리에서 프로그램의 암호화에 사용되는 알고리즘에 따라 그 하드웨어적으로 구현된 암호화 모듈에서의 수행 속도의 차이로 인하여 프로세서 구조에 적용될 시에 경우에 따라서는 프로세서의 파이프라인 성능에 영향을 미칠 수 있다. In addition, the encryption technique increases the size of the code stored in the memory by the encryption of the program code to generate a memory overhead. In addition, depending on the algorithm used for encrypting a program in memory, the performance of the encryption module implemented in hardware may affect the pipeline performance of the processor in some cases when applied to the processor structure.

상기 비암호화 기법은 소프트웨어적 취약성에 효과적으로 대응할 수 있는 프 로세서 구조의 향상을 통해 수행된다. 이는 소프트웨어적 취약성을 통한 보안 공격이 프로그램의 실행 루틴의 변조를 목적으로 수행되고 이러한 변조는 프로그램에서 사용하는 분기명령의 취약성을 통해 이루어진다는 관점에서 출발한다. 예를 들면, 프로그램 내에서 사용되는 함수의 경우 그 함수가 종결되는 시점에서 함수가 호출되어진 명령어의 다음 어드레스로 복귀하여야 한다. 이를 위해 일반적으로 프로그램이 컴파일 될 때 그 함수를 관리할 수 있는 스택 구조를 소프트웨어적으로 만들어 사용하게 된다. 이러한 프로그램 내 스택의 사용에 내재한 취약성은 함수의 복귀 어드레스를 공격자로 하여금 변조 가능하게 할 수 있다. 따라서 비암호화 기법은 프로그램 수행 중에서 함수의 호출 및 복귀 과정의 동적 감시를 통해 수행된다. The non-encryption technique is performed by improving the processor structure that can effectively cope with software vulnerabilities. This starts from the viewpoint that security attacks through software vulnerabilities are carried out for the purpose of tampering with the execution routines of the program, and such tampering is through the vulnerability of branch instructions used in the program. For example, a function used in a program must return to the next address of the instruction in which the function was called at the end of the function. To do this, you typically create and use a stack structure in software that manages the functions when your program is compiled. A vulnerability inherent in the use of the stack in a program can allow an attacker to tamper with the function's return address. Therefore, non-encryption techniques are performed through dynamic monitoring of the function call and return process during program execution.

따라서 함수의 호출과 복귀 관계의 정보를 소프트웨어적으로 접근이 불가능한 하드웨어 모듈에 저장하면 함수의 비정상적인 호출/복귀를 유발하는 소프트웨어적 취약성을 극복할 수 있다. 이러한 비암호화 기법은 단순하면도 프로그램 내 함수의 비정상적 분기를 효과적으로 감시할 수 있지만, 그 프로그램 개발과정의 복잡도가 증가한다는 한계점을 가지고 있다.Therefore, by storing the information of the call and return relationship of the function in a hardware module that is not accessible in software, it is possible to overcome the software vulnerability that causes abnormal call / return of the function. Such a non-encryption technique can effectively monitor abnormal branching of functions in a program even though it is simple, but has a limitation in that the complexity of the program development process is increased.

상술한 바와 같이, 종래의 대응 기법으로는 임베디드 시스템의 보안 대책으로는 일정한 한계를 가진다. 따라서 종래의 대응기법들의 비효율성을 제거하고 효율적으로 외부공격에 대응할 수 있는 대응기법의 필요성이 대두되고 있는 실정에 있다. 또한, 지금까지의 보안에 대한 연구는 소프트웨어에 치중되어 있었기 때문에 외부의 하드웨어적인 공격에 무방비상태로 노출될 수밖에 없어, 하드웨어적 공격에 의한 잠재적 보안위협에 대한 대책이 요구되고 있는 실정에 있다. As described above, the conventional countermeasure has a certain limit as a security measure of the embedded system. Therefore, there is a need for a countermeasure technique capable of effectively eliminating inefficiencies of conventional countermeasure techniques and efficiently coping with external attacks. In addition, since the previous researches on security have been focused on software, it is inevitable to be exposed to external hardware attacks, and there is a demand for countermeasures against potential security threats caused by hardware attacks.

따라서, 본 발명의 목적은 상기한 종래의 문제점을 극복할 수 있는 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다.Accordingly, it is an object of the present invention to provide an intrusion detection method and an intrusion detector for system security that can overcome the above-mentioned conventional problems.

본 발명의 다른 목적은 효율적으로 외부침해에 대응하고 외부 침해여부를 탐지할 수 있는 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다. Another object of the present invention is to provide an intrusion detection method and an intrusion detector for system security that can efficiently respond to external infringement and detect whether an external infringement is present.

본 발명의 또 다른 목적은 명령어의 연관성 정보를 이용하여 외부 침해여부를 탐지할 수 있는 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다. It is still another object of the present invention to provide an intrusion detection method and an intrusion detector for system security that can detect whether an external infringement is detected by using the association information of a command.

본 발명의 또 다른 목적은 일반 및 범용프로세서에 적용이 용이한 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다. Still another object of the present invention is to provide an intrusion detection method and an intrusion detector for system security that can be easily applied to general and general purpose processors.

본 발명의 또 다른 목적은 하드웨어적 공격에 대응할 수 있는 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다. It is still another object of the present invention to provide a breach detection method and breach detector for system security that can cope with hardware attacks.

본 발명의 또 다른 목적은 안전성이 우수하며, 모듈성 및 이식성이 좋은 시스템 보안용 침해탐지방법 및 침해 탐지기를 제공하는 데 있다. Still another object of the present invention is to provide an intrusion detection method and an intrusion detector for system security with excellent safety, modularity and portability.

상기한 기술적 과제들의 일부를 달성하기 위한 본 발명의 구체화에 따라, 본 발명에 따른 시스템 보안용 침해탐지방법은, 상기 시스템 실행을 위한 명령어들에 대한 연관성을 나타내는 명령어 연관성 정보들을, 상기 명령어들 각각에 대응하도 록 패리티 형태로 생성하는 단계와; 상기 명령어들의 실행시 상기 명령어들 또는 상기 명령어 연관성 정보들에 대하여 패리티체크방식을 통한 검증을 통해 연관성 여부를 판단하여 외부 침해여부를 탐지하는 단계를 구비한다.According to an embodiment of the present invention for achieving some of the above technical problems, the system security intrusion detection method according to the present invention, the command association information indicating the association to the instructions for executing the system, each of the instructions Generating in the form of parity to correspond to; And determining whether or not an external infringement is performed by determining whether or not the association is performed through the parity check method with respect to the instructions or the instruction association information when executing the instructions.

상기 명령어 연관성 정보는 상기 명령어들 중 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들을 특정 패리티 생성함수에 적용하여 생성할 수 있다. The command association information may be generated by applying at least two commands adjacent to each other temporally or spatially among the commands to a specific parity generation function.

상기 명령어 연관성 정보들 생성 이후에, 상기 명령어 연관성 정보들에 대한 연관성을 나타내는 패리티 연관성 정보들이 상기 명령어 연관성 정보들에 대응하여 패리티 형태로 추가로 생성되며, 상기 패리티 연관성 정보들은 연관성 여부를 판단시 검증자료로 이용될 수 있다.After generating the command association information, parity association information indicating association with the command association information is further generated in a parity form corresponding to the command association information, and the parity association information is verified when determining the association. Can be used as data.

상기 명령어 연관성 정보들 중 현재명령어에 대응되는 현재 명령어 연관성 정보는, 현재명령어, 상기 현재 명령어와 시간적 또는 공간적으로 인접한 다음명령어, 및 상기 현재명령어와 시간적 또는 공간적으로 인접한 이전명령어의 연관성에 기초하여 생성되며, 상기 패리티 연관성 정보들 중 상기 현재명령어 연관성 정보에 대응되는 현재 패리티 연관성 정보는, 상기 현재명령어 연관성 정보, 상기 다음명령어에 대응되는 연관성 정보인 다음명령어 연관성 정보, 및 상기 이전명령어에 대응되는 이전명령어 연관성 정보의 연관성에 기초하여 생성될 수 있다.The current command association information corresponding to the current command among the command association information is generated based on a correlation between a current command, a next command temporally or spatially adjacent to the current command, and a previous command temporally or spatially adjacent to the current command. The current parity association information corresponding to the current command association information among the parity association information may include the current command association information, next command association information that is association information corresponding to the next command, and the previous command corresponding to the previous command association information. It may be generated based on the association of the instruction association information.

상기 현재 명령어 연관성 정보는 상기 현재 명령어 및 상기 다음명령어의 연관성에 기초하여 생성되고, 상기 현재 패리티 연관성 정보는 상기 현재명령어 연관성 정보 및 상기 이전명령어 연관성 정보의 연관성에 기초하여 생성될 수 있다.The current command association information may be generated based on an association between the current command and the next command, and the current parity association information may be generated based on an association between the current command association information and the previous command association information.

상기 특정 패리티 생성함수는 리드 솔로몬 코드(reed-solomon code)의 패리티 생성함수일 수 있다.The specific parity generation function may be a parity generation function of a reed-solomon code.

프로그램의 시작점 및 종료점에서의 명령어에 대응되는 상기 명령어 연관성 정보 및 상기 패리티 연관성 정보는, 상기 명령어들 사이의 연관성 단절을 극복하기 위해 별도로 삽입되며 특정한 값을 가지는 매직넘버를 이용하여 생성될 수 있다.The command association information and the parity association information corresponding to the instructions at the start and end points of the program may be generated using a magic number that is inserted separately and has a specific value to overcome the association breakdown between the instructions.

상기 명령어들 중 분기명령어의 경우에는, 상기 분기명령어의 다음 및 상기 분기명령어의 목적어드레스에 프로그램의 자체기능에 영향을 미치지 않으며, 상기 분기명령어와 연관성이 있는 적어도 하나의 특수명령어를 삽입하고, 상기 적어도 하나의 특수명령어를 이용하여 상기 명령어 연관성 정보 및 상기 패리티 연관성 정보를 생성할 수 있다.In the case of a branch instruction among the instructions, inserting at least one special instruction associated with the branch instruction without affecting the function of the program itself in the next address of the branch instruction and the destination address of the branch instruction, The command association information and the parity association information may be generated using at least one special command.

상기 패리티체크방식을 통한 검증은 리드 솔로몬 코드의 신드롬 계산 방식을 이용하여 수행될 수 있다.Verification using the parity check method may be performed using a syndrome calculation method of the Reed Solomon code.

상기한 기술적 과제들의 일부를 달성하기 위한 본 발명의 다른 구체화에 따라, 본 발명에 따른 일정 프로세서와 연동하여 동작하는 시스템 보안용 침해탐지기는, 상기 시스템 실행을 위해 상기 프로세서에 의해 리드되고 실행되기 위한 명령어들이 저장되는 명령어메모리와; 상기 명령어들에 대한 연관성을 나타내도록 패리티 형태로 생성되는 명령어 연관성 정보들을 상기 명령어들 각각에 대응하도록 저장하는 패리티 메모리와; 상기 명령어들 및 상기 명령어 연관성 정보들에 대한 패리티체크방식을 통한 검증을 통해 연관성 여부를 판단하여 외부 침해여부를 탐지하 는 명령어 연관성 검사기를 구비한다.In accordance with another embodiment of the present invention for achieving some of the above technical problems, a system security intrusion detector operating in conjunction with a certain processor according to the present invention, for the system execution is to be read and executed by the processor An instruction memory for storing instructions; A parity memory for storing command association information generated in a parity form to correspond to each of the commands to correspond to each of the commands; It is provided with a command association checker that detects the presence of external infringement by determining the association through the verification through the parity check method for the instructions and the command association information.

상기 명령어 연관성 정보는 상기 명령어들 중 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들을 특정 패리티 생성함수에 적용하여 생성될 수 있다.The command association information may be generated by applying at least two instructions adjacent to each other in a temporal or spatial manner to a specific parity generating function.

상기 패리티 메모리에는 상기 명령어 연관성 정보들에 대한 연관성을 나타내기 위해 패리티 형태로 생성된 패리티 연관성 정보들이 추가로 저장되며, 상기 패리티 연관성 정보들은 상기 명령어 연관성 검사기에 연관성 판단을 위한 자료로 제공될 수 있다.The parity memory may further store parity association information generated in the form of parity to indicate association with the command association information, and the parity association information may be provided as data for determining association in the command association checker. .

상기 명령어 연관성 정보들 중 현재명령어에 대응되는 현재 명령어 연관성 정보는, 현재명령어 및 상기 현재 명령어와 시간적 또는 공간적으로 인접한 다음명령어의 연관성에 기초하여 생성되며, 상기 패리티 연관성 정보들 중 상기 현재명령어 연관성 정보에 대응되는 현재 패리티 연관성 정보는, 상기 현재명령어 연관성 정보 및 상기 이전명령어에 대응되는 이전명령어 연관성 정보의 연관성에 기초하여 생성될 수 있다.The current command association information corresponding to the current command among the command association information is generated based on a correlation between a current command and a next command that is temporally or spatially adjacent to the current command, and among the parity correlation information, the current command association information. The current parity association information corresponding to may be generated based on the correlation between the current command association information and the previous command association information corresponding to the previous command.

상기 특정 패리티 생성함수는 리드 솔로몬 코드(reed-solomon code)의 패리티 생성함수일 수 있다.The specific parity generation function may be a parity generation function of a reed-solomon code.

상기 명령어 연관성 검사기는 상기 프로세서의 코어와 상기 명령어 메모리 사이에 구비되며, 상기 프로세서 내부에 구비되는 보안프로세서 구조를 가질 수 있다.The instruction association checker may be provided between the core of the processor and the instruction memory and may have a secure processor structure provided inside the processor.

상기 프로세서는 범용프로세서이며, 상기 명령어 연관성 검사기는 상기 범용 프로세서와 상기 범용프로세서 외부에 구비된 상기 명령어 메모리사이에 삽입된 구조를 가질 수 있다.The processor may be a general purpose processor, and the instruction association checker may have a structure inserted between the general purpose processor and the instruction memory provided outside the general purpose processor.

상기 명령어 연관성 검사기는 상기 패리티체크방식을 통한 연관성 판단을 위해 리드 솔로몬 코드의 데이터의 오류 검출기능을 가지는 신드롬 계산기를 구비할 수 있다.The command association checker may include a syndrome calculator having an error detection function of data of a Reed Solomon code to determine association using the parity check method.

상기 신드롬 계산기는 복수의 갈로아 필드 상수곱셈기를 병렬로 연결한 병렬신드롬 계산기를 적어도 하나이상 구비하는 구조를 가질 수 있다. The syndrome calculator may have a structure including at least one parallel syndrome calculator in which a plurality of galoa field constant multipliers are connected in parallel.

상기 시스템은 임베디드 시스템일 수 있다.The system may be an embedded system.

상기한 기술적 과제들의 일부를 달성하기 위한 본 발명의 또 다른 구체화에 따라, 본 발명에 따른 명령어 연관성 검사기는, 리드 솔로몬 코드의 패리티 생성함수를 이용하여 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들에 기초하여 생성된 명령어 연관성 정보들을, 신드롬계산기를 이용한 오류검출방식을 이용하여 침해여부를 판단하는 것을 특징으로 한다.According to another embodiment of the present invention for achieving some of the above technical problem, the instruction associative checker according to the present invention, at least two instructions adjacent to each other in time or space using the parity generation function of the Reed Solomon code Based on the command association information generated on the basis of the error detection method using a calculator, characterized in that it is determined whether or not infringement.

본 발명에 따르면, 명령어 침해에 대응하여 침해탐지가 용이하며, 종래의 암호화모듈기반의 보안프로세서에 비해 패리티를 이용한 방식을 사용함에 따라 적은 연산량으로 우수한 안전성을 보장할 수 있다. 또한 침해탐지기가 프로세서 코어의 외부에 존재하여 일반 및 범용프로세서에 많은 수정없이 적용할 수 있으며, 모듈성 및 이식성이 높은 장점이 있다. 또한 기존 소프트웨어개발단계의 직접적인 수정없 이 보안화 된 코드를 쉽게 생성하는 것이 가능하다.According to the present invention, it is easy to detect an infringement in response to an instruction infringement, and as a result of using a method using parity as compared to a conventional encryption module-based security processor, it is possible to guarantee excellent safety with a small amount of calculation. In addition, since the intrusion detector is located outside the processor core, it can be applied to general and general purpose processors without many modifications, and has the advantage of high modularity and portability. It is also possible to easily generate secured code without direct modification of existing software development.

이하에서는 본 발명의 바람직한 실시예가, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 철저한 이해를 제공할 의도 외에는 다른 의도 없이, 첨부한 도면들을 참조로 하여 상세히 설명될 것이다. DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, without any other intention than to provide a thorough understanding of the present invention to those skilled in the art.

도 2는 본 발명이 적용되는 임베디드 시스템의 보안모델을 나타낸다.2 illustrates a security model of an embedded system to which the present invention is applied.

도 2에 도시된 바와 같이, 본 발명이 적용되는 임베디드 시스템은 프로세서(200)의 내부는 침해에 대하여 매우 안전하다고 가정하지만, 외부버스(201), 메모리(203), 주변장치(202) 등 프로세서의 외부 주변기기는 소프트웨어 및 하드웨어적 공격 모두에 취약하다고 전제한다. 따라서, 본 발명은 프로세서의 외부 주변기기에 침해가 발생하여 명령어에 침해가 발생했을 때 이를 탐지하여 비정상적인 프로그램이 실행되는 것을 방지하고자 한다.As shown in FIG. 2, the embedded system to which the present invention is applied assumes that the inside of the processor 200 is very safe against intrusion, but the processor such as the external bus 201, the memory 203, the peripheral device 202, and the like may be used. Is assumed to be vulnerable to both software and hardware attacks. Accordingly, the present invention seeks to prevent abnormal programs from being executed by detecting when an infringement occurs in an instruction of an external peripheral device of the processor.

도 3은 본 발명에 일 실시예에 따른 시스템 보안용 침해탐지방법 및 침해 탐지기의 구성 및 동작을 설명하기 위해 도입된 프로그램 명령어 코드의 예이다.3 is an example of a program instruction code introduced to explain the configuration and operation of a system security breach detection method and a breach detector according to an embodiment of the present invention.

일반적으로 프로그램은 보통 C언어와 같은 상위수준의 언어로 작성되어 컴파일 과정을 거치면서 동작할 시스템의 프로세서의 고유의 명령어 코드로 변환되어 임무를 수행한다. 프로그램 개발자는 일정한 알고리즘에 따라 프로그램을 작성하며, 그 알고리즘은 일련의 명령어의 순서로 표현될 수 있다. 이러한 프로그램은 컴파일 과정을 거쳐 명령어 코드로 변환되므로 결국 모든 프로그램은 개발자가 의도 한 고유의 명령어 실행 순서를 가진다고 할 수 있다. In general, a program is usually written in a higher-level language such as C, which is converted into the instruction code of the processor of the system to be executed during the compilation process. A program developer writes a program according to a predetermined algorithm, which can be expressed in a sequence of instructions. Since these programs are compiled and converted into command codes, all programs can be said to have their own command execution order.

따라서, 프로그램의 개발자 또는 사용자는 현재 수행되고 있는 프로그램이 정상동작하고 있는지 비정상 동작하고 있는 지를 판별할 수 있다. 즉, 어떤 프로그램이 정상적으로 동작하고 있다는 것은 개발자가 의도한 고유의 명령어 실행순서를 지키며 프로그램이 동작하고 있다는 것을 의미한다. 만약 프로그램이 개발자가 의도한 명령어 실행 순서를 지키고 있지 않다면 그 프로그램은 정상적인 동작을 수행하고 있지 않다고 할 수 있다. Therefore, the developer or the user of the program can determine whether the program currently being executed is operating normally or abnormally. In other words, if a program is running normally, it means that the program is running in the order that the developer intended. If the program does not follow the command execution order intended by the developer, the program is not performing its normal operation.

모든 프로그램이 일련의 명령어 실행 순서를 가진다고 하면, 이러한 명령어 실행 순서는 각 명령어들 사이에 연관성을 가진다고 생각할 수 있다. 즉, 현재 시간에 실행되는 현재 명령어는 이전 시간에 실행된 이전 명령어와 연관성을 가지고, 다음 시간에 실행될 다음명령어와도 연관성을 가진다는 것이다.Given that every program has a sequence of command executions, you can think of these command executions as having an association between each command. In other words, the current command executed at the current time is associated with the previous command executed at the previous time, and the next command executed at the next time.

따라서 시스템의 프로세서는 현재 자신이 수행중인 프로그램의 정상동작여부를 판별하기 위해 다음의 논리에 근거할 수 있다.Therefore, the processor of the system may be based on the following logic to determine whether the program currently being executed is normal.

1. 이전시간(t-1)에서 수행된 이전명령어는 정상적인 명령어이다. 즉, 정상적으로 개발자로부터 의도된 명령어이다. 여기서, 이전시간(t-1)이란 현재시간(t)을 기준으로 한 단계 과거의 시간을 의미한다.1. The previous command executed at the previous time (t-1) is a normal command. That is, the command is normally intended from the developer. Here, the previous time t-1 means a time past a step based on the current time t.

2. 현재시간(t)에서 수행중인 현재 명령어는 이전시간(t-1)에서 수행된 명령어 다음에 수행되어야 하는 명령어이다. 이는 정상적으로 프로그램의 개발자가 의도한 순서이다.2. The current command being executed at the current time (t) is the command to be executed after the command executed at the previous time (t-1). This is normally the order that the developer of the program intended.

3. 다음시간(t+1)에서 수행될 다음명령어는 현재시간(t) 다음에 수행될 명령 어이다. 이 또한 정상적으로 개발자로부터 의도된 명령어 실행의 순서이다. 여기서, 다음시간(t+1)이란 현재시간(t)을 기준으로 한 단계 미래의 시간을 의미한다. 3. The next command to be executed at the next time (t + 1) is the command to be executed after the current time (t). This is also the sequence of command executions normally intended by the developer. Here, the next time t + 1 means a time in the future based on the current time t.

상술한 논리에서와 같이, 프로세서는 현재 수행되는 현재명령어가 이전에 수행된 이전명령어와 연관성을 가지고 있고, 더불어 다음에 수행되는 다음명령어와도 연관성을 가지고 있는지를 연속적으로 확인함으로써, 현재 자신이 수행중인 현재명령어가 개발자가 의도한 정상적인 프로그램의 동작에 해당하는 것인지의 여부를 판단하게 된다. 따라서 이러한 연관성이 단절되는 경우 현재 수행되는 현재명령어는 비정상적인 명령어로 단정할 수 있게 되는 것이다.As with the logic described above, the processor is currently performing its own execution by continuously checking whether the current instruction being executed has an association with a previous instruction executed previously, and also with the next instruction executed next. It is determined whether the current command being used corresponds to the normal program operation intended by the developer. Therefore, if this association is broken, the current command being executed can be concluded as an abnormal command.

도 3에 도시된 바와 같이, 상기 프로그램은 메모리 0x2000018에 저장된 분기(branch) 명령어의 조건식 결과에 따라, 상기 분기 명령어의 목적(target) 어드레스로 분기할 것(테이큰; TAKEN)인 경우에는 (b)의 순서를 가지고, 물리적으로 상기 분기 명령어 다음에 있는 명령어를 수행할 것(낫-테이큰; NOT-TAKEN)인 경우에는 (c)의 실행 순서를 가진다. As shown in FIG. 3, the program branches to a target address of the branch instruction (TAKEN) according to the conditional result of the branch instruction stored in the memory 0x2000018 (TAKEN). In order to physically execute the instruction following the branch instruction (not-taken), the execution order of (c) is obtained.

그러므로, 프로그램이 (b) 또는 (c)의 순서대로 명령어를 실행한다면 그 프로그램은 정상동작을 한다는 것이다. 만약 이 두 가지 이외의 순서로 명령어가 실행될 경우에는 비정상적으로 동작하고 있다고 말할 수 있는 것이다.Therefore, if a program executes instructions in the order of (b) or (c), the program will operate normally. If the instructions are executed in a sequence other than these two, it can be said that it is operating abnormally.

예를 들어, 악의적인 공격자가 '0x2000018' 어드레스에 있는 분기 명령어의 목적어드레스를 변조하거나, '0x2000014' 어드레스에 있는 명령어를 변조하여 공격자가 주입한 프로그램의 시작어드레스로 변조하는 경우를 가정해보자. 이 경우 이러한 공격을 통해 변조된 명령어가 실행된다면 이는 프로그램 개발자의 의도와는 다른 명령어의 실행, 즉 다른 명령어 실행 순서를 가지게 되는 상황이다. 이는 개발자가 의도하지 않은 명령어 실행 순서를 가지게 되므로 결국 명령어들 간의 연관성이 단절되게 되는 것이다.For example, suppose a malicious attacker modifies the destination address of a branch instruction at address '0x2000018', or modifies the instruction at address '0x2000014' to the start address of the program injected by the attacker. In this case, if a modified command is executed through such an attack, it may have a different execution of instructions, that is, a different order of execution, than the intention of the program developer. This results in a sequence of instructions not intended by the developer, which eventually breaks the association between instructions.

그러므로 현재 시간(t)에 실행되는 현재명령어와 이전 시간(t-1)에 실행된 이전명령어 그리고 다음 시간(t+1)에 실행될 다음명령어들 간에 연관성에 대한 정보를 생성하고, 각 명령어가 실행될 때 명령어들 간의 연관성에 대한 검사를 한다면 실시간으로 명령어의 변조 여부와 그 명령어 실행의 정상 유무를 판별할 수 있다. 이를 통해 소프트웨어적 기법 및 하드웨어적인 기법을 통해 시스템에 가해진 보안공격을 효과적으로 탐지할 수 있을 것이다. Therefore, it generates information about the association between the current command executed at the current time (t), the previous command executed at the previous time (t-1) and the next command executed at the next time (t + 1), and each command is executed. When the association between the instructions is checked, it is possible to determine whether the instruction is tampered with and whether the instruction is normally executed in real time. Through this, it will be possible to effectively detect security attacks on the system through software and hardware techniques.

도 4는 본 발명에 따른 침해탐지를 위해 명령어들간의 연관성에 대한 정보인 명령어 연관성 정보를 생성하기 위한 과정을 나타낸 도면이다. 이하에서는, 프로세서가 각 단위시간에 하나의 명령어만을 페치(fetch)한다고 가정한다. 4 is a diagram illustrating a process for generating command association information which is information on the association between commands for infringement detection according to the present invention. In the following, it is assumed that the processor fetches only one instruction in each unit time.

상기 명령어 연관성 정보는, 현재 시간(t)에 실행될 현재명령어와, 이전 시간(t-1)에 실행된 이전명령어, 그리고 다음시간(t+1)에 실행될 다음명령어에 대한 정보를 이용하여 생성된다. 생성된 상기 명령어 연관성 정보는 패리티(parity)의 형태로 기존의 명령어에 추가될 수 있다.The command association information is generated using information on a current command to be executed at a current time t, a previous command executed at a previous time t-1, and a next command to be executed at a next time t + 1. . The generated command association information may be added to an existing command in the form of parity.

상기 명령어 연관성 정보는 상기 명령어들 중 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들을 특정 패리티 생성함수에 적용하여 생성할 수 있다. The command association information may be generated by applying at least two commands adjacent to each other temporally or spatially among the commands to a specific parity generation function.

그리고, 상기 명령어 연관성 정보들에 대한 연관성을 나타내는 패리티 연관 성 정보들이 추가로 생성될 수 있다. 상기 명령어 연관성 정보는 명령어의 침해를 탐지하기 위한 것이고, 상기 패리티연관성 정보는 상기 명령어 연관성 정보의 침해를 탐지하기 위한 것이다.In addition, parity association information indicating association with the command association information may be further generated. The instruction association information is for detecting an infringement of an instruction, and the parity association information is for detecting an infringement of the instruction association information.

상기 패리티 연관성 정보들은 상기 명령어 연관성 정보들에 대한 연관성을 나타내는 것으로, 상기 명령어 연관성 정보들의 추가적인 연관성 정보를 나타내므로, 상기 명령어 연관성 정보들의 일부분으로 해석될 수 있다. 따라서, 상기 명령어 연관성 정보에 대한 언급이 있고 상기 패리티 연관성 정보에 대한 언급이 없는 경우, 상기 명령어 연관성 정보는 상기 패리티 연관성 정보를 포함하는 의미로 해석될 수 있다.The parity association information indicates association with the command association information, and indicates additional association information of the command association information, and thus may be interpreted as part of the command association information. Therefore, when there is a reference to the command association information and there is no reference to the parity association information, the command association information may be interpreted to include the parity association information.

상기 명령어 연관성 정보들 중 현재명령어에 대응되는 현재 명령어 연관성 정보는, 현재명령어, 상기 현재 명령어와 시간적 또는 공간적으로 인접한 다음명령어, 및 상기 현재명령어와 시간적 또는 공간적으로 인접한 이전명령어의 연관성에 기초하여 생성될 수 있다.The current command association information corresponding to the current command among the command association information is generated based on a correlation between a current command, a next command temporally or spatially adjacent to the current command, and a previous command temporally or spatially adjacent to the current command. Can be.

또한, 상기 패리티 연관성 정보들 중 상기 현재명령어 연관성 정보에 대응되는 현재 패리티 연관성 정보는, 상기 현재명령어 연관성 정보, 상기 다음명령어에 대응되는 연관성 정보인 다음명령어 연관성 정보, 및 상기 이전명령어에 대응되는 이전명령어 연관성 정보의 연관성에 기초하여 생성될 수 있다.The current parity correlation information corresponding to the current command association information among the parity correlation information may include the current command association information, next command association information that is association information corresponding to the next command, and a previous command corresponding to the previous command. It may be generated based on the association of the instruction association information.

상기 명령어 연관성 정보 및 패리티 연관성 정보는 현재 디지털 통신 및 저장매체 분야에서 널리 사용되는 리드솔로몬 코드(Reed-Solomon code, 이하 'RS 코드')의 패리티생성함수를 이용하여 생성될 수 있다. 즉 상기 명령어 연관성 정보를 생성하는 것은 상기 RS 코드의 패리티를 생성하는 것과 동일한 연산을 사용한다. The command association information and parity association information may be generated using a parity generation function of a Reed-Solomon code (RS code), which is widely used in the field of digital communication and storage media. That is, generating the command association information uses the same operation as generating the parity of the RS code.

상기 RS 코드는 1958년 I. S. Reed와 G. Solomon에 의해 제안된 오류정정 코드로, 데이터에 발생한 랜덤 오류와 연집 오류를 정정할 수 있는 강력한 코드이다. 상기 RS 코드는 일련의 연산 과정을 통해 전송 데이터로부터 오류가 발생된 위치와 오류값을 검출하는 오류 정정 부호로 전송 채널에서 발생되는 연집(burst) 오류의 정정에 우수한 성능을 보인다. The RS code is an error correction code proposed by I. S. Reed and G. Solomon in 1958. The RS code is a powerful code that can correct random and converging errors in data. The RS code is an error correcting code that detects a location and an error value of an error from transmission data through a series of operations and shows excellent performance in correcting burst errors generated in a transmission channel.

상기 RS 코드는 위성 통신, 이동 통신, 디지털저장 장치, ATM 망, 디지털 방송 시스템 등 고속 데이터 전송이 요구되는 통신 시스템에 주로 적용되고 있다.The RS code is mainly applied to a communication system requiring high speed data transmission such as satellite communication, mobile communication, digital storage device, ATM network, and digital broadcasting system.

도 4에서 상기 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)를 생성하기 위한 연산은 다음식과 같이 정의될 수 있다.In FIG. 4, an operation for generating the command correlation information parity1 and parity correlation information parity2 may be defined as follows.

parity1(t)=P(instruction(t),instruction(t+1))parity1 (t) = P (instruction (t), instruction (t + 1))

parity2(t)=P(parity1(t-1),parity1(t))parity2 (t) = P (parity1 (t-1), parity1 (t))

(여기서, 'instruction'는 명령어를 나타내고, 'P'는 패리티 생성함수이다.) (Where 'instruction' represents a command and 'P' is a parity generation function.)

예를 들어, 도 4에 도시된 바와 같이, 현재 명령어 연관성 정보(parity1(t),402)는 현재 명령어(instruction(t),400) 및 다음명령어(instruction(t+1),401)의 연관성에 기초하여 생성되고, 현재 패리티 연관성 정보(parity2(t),404)는 상기 현재명령어 연관성 정보(parity1(t),402) 및 이전명령어 연관성 정보(parity1(t-1),403)의 연관성에 기초하여 생성될 수 있다. 여기서 상기 이전 명령어 연관성 정보(parity(t-1),403)는 이전시간(t-1)의 이전명령어(instruction(t-1)) 및 상기 현재명령어(instruction(t),400)의 연관성에 기초하여 생성된 연관성 정보이다. For example, as shown in FIG. 4, the current instruction relevance information parity1 (t), 402 is related to the current instruction (t) 400 and the next instruction (t + 1) 401. The current parity correlation information parity2 (t) 404 is generated based on the correlation between the current command association information parity1 (t) 402 and the previous command association information parity1 (t-1), 403. Can be generated based on this. Here, the previous instruction association information parity (t-1), 403 is related to the correlation between the previous instruction instruction t1 and the current instruction instruction t1 400 at the previous time t-1. Association information generated based on this.

상술한 바와 같이, 명령어 연관성은 공간적 또는 시간적으로 선후관계인 명령어 연관성을 연속적으로 확인함을 기본 개념으로 한다. 그러나 실제 정상적인 프로그램에서 명령어 연관성이 프로그램 자체의 본질적인 특성으로 단절되는 경우가 발생한다. 정상적인 프로그램에서 명령어의 연관성이 단절되는 경우의 예로는, 프로그램의 시작점과 종료점, 프로그램내의 분기 명령어 등이 있다. 명령어 연관성의 단절은 본 발명에서와 같이 명령어 연관성이 필요한 경우에서는 보안성을 약화시킬 수 있는 요인이 될 수 있다. 따라서, 이러한 명령어의 연관성이 단절되는 경우에도 상기 명령어 연관성 정보(parity1)와 상기 패리티 연관성 정보(parity2)를 생성하기 위한 방법을 알아본다.As described above, the command association is a basic concept of continuously checking the command associations that are spatially or temporally related. In actual programs, however, command associations sometimes break down into the essential characteristics of the program itself. Examples of cases where the association of instructions is broken in a normal program include a start point and an end point of a program, a branch instruction in the program, and the like. Disconnection of command association may be a factor that can weaken security when command association is required as in the present invention. Accordingly, the method for generating the command relativity information parity1 and the parity relativity information parity2 even when the relevance of the command is disconnected will be described.

도 5는 프로그램의 시작점과 종료점에서의 명령어들의 연관성이 단절되는 경우에서의 상기 명령어 연관성 정보(parity1)와 상기 패리티 연관성 정보(parity2)를 생성하기 위한 방법을 설명하기 위한 것으로, 5개의 명령어 코드를 가지는 프로그램을 간단히 도시한 것이다.FIG. 5 illustrates a method for generating the command association information parity1 and the parity association information parity2 when the association of instructions at a start point and an end point of a program is disconnected. Branch is a simplified illustration of a program.

도 5에 도시된 바와 같이, 프로그램의 시작점과 프로그램의 종료점에서의 명령어의 연관성 단절을 극복하고, 상기 명령어 연관성 정보(parity1)와 상기 패리티 연관성 정보(parity2)를 생성하기 위하여 매직넘버(magic number)가 이용된다. 상기 매직넘버는 시스템 개발자 혹은 사용자가 지정하고 외부로 알려지지 않은 특정 한 값을 의미할 수 있다. As shown in FIG. 5, a magic number is used to overcome the disconnection of the instruction at the start point of the program and the end point of the program, and to generate the command association information parity1 and the parity association information parity2. Is used. The magic number may mean a specific value designated by a system developer or a user and not known to the outside.

우선 프로그램의 시작점(500)은 다음시간의 명령어(502)가 존재하므로 명령어 연관성 정보(501)의 생성이 가능하나, 패리티 연관성 정보(503)는 이전시간의 명령어 연관성 정보(parity1)가 존재하지 않기 때문에 생성이 불가능하다. 이때는 이전시간의 명령어 연관성 정보(parity1)의 대용으로 상기 매직넘버(504)를 이용하여 상기 패리티 연관성 정보(503)를 생성한다. 이때의 매직넘버를 제1매직넘버(504)라 칭하기로 한다. 상기 제1매직넘버(504)는 명령어 연관성 정보의 역할을 수행하기 위한 것이므로, 명령어 코드 전체가 아닌 상기 명령어 연관성 정보(parity1)의 길이를 가진다. 즉 상기 명령어 연관성 정보(parity1)와 동일 종류로서 동일길이를 가져야 할 것이다. First of all, since the command point 502 of the next time exists at the start point of the program, the command association information 501 may be generated, but the parity association information 503 does not include the command association information parity1 of the previous time. This makes it impossible to create. In this case, the parity correlation information 503 is generated using the magic number 504 as a substitute for the command association information parity1 of the previous time. The magic number at this time will be referred to as a first magic number 504. Since the first magic number 504 serves to serve as command association information, the first magic number 504 has a length of the command association information parity1 rather than the entire command code. That is, it should have the same length as the same kind as the command association information parity1.

다음으로 프로그램의 종료점(505)은 다음 명령어가 존재하지 않는다. 따라서, 이때는 대응되는 명령어 연관성 정보(506)의 생성이 불가능하다. 따라서 이경우에도 매직넘버(507)를 이용하여 상기 명령어 연관성 정보를 생성한다. 이때의 매직넘버를 제2매직넘버(507)라 칭하기로 한다. 상기 제2매직넘버(507)는 명령어의 대용으로 사용되는 것이므로 명령어 코드 형태로 구비되어야 할 것이다. 상기 명령어 연관성 정보(506)가 생성되면 이에 대응되는 패리티 연관성 정보(parity25) 또한 생성가능하다. Next, the end point 505 of the program does not have a next instruction. Therefore, at this time, it is impossible to generate corresponding command association information 506. Therefore, even in this case, the command association information is generated using the magic number 507. The magic number at this time will be referred to as a second magic number 507. Since the second magic number 507 is used as a substitute for an instruction, it should be provided in the form of an instruction code. When the command association information 506 is generated, parity correlation information parity2 5 corresponding thereto may also be generated.

상술한 바와 같이 매직넘버를 이용하면 프로그램의 시작점과 종료점에서의 명령어의 연관성이 단절되는 상황을 해결할 수 있다. As described above, the use of the magic number solves the situation in which the association of the instruction at the start point and the end point of the program is broken.

다음으로, 프로그램 내의 분기 명령어의 존재로 인하여 연관성이 단절되는 경우의 해결방법에 대해 설명한다. Next, a description will be given of a solution when the association is broken due to the presence of branch instructions in the program.

분기 명령어는 무조건 분기 명령어와 조건 분기 명령어로 구분된다. 무조건 분기 명령어는 조건식 없이 프로그램의 특정 어드레스로 분기하여 명령어를 실행하한다. 이 경우 명령어 실행순서는 한가지로 결정되어 명령어 실행 어드레스가 변경되어도 연관성이 단절되는 지점이라고 할 수 없지만, 도 4에서 설명한 바와 같은 방법에 의해 명령어 연관성 정보(parity1)를 생성하는 경우에는 명령어의 연관성이 단절되는 상황 즉 명령어 연관성 정보(parity1)를 생성하지 못하는 상황이 발생할 수 있다. 이는 명령어 실행 순서에 대한 고려 없이 명령어의 연관성 정보(parity1)를 앞/뒤 명령어를 기초로 하여 생성하기 때문이다. Branch instructions are divided into unconditional branch instructions and conditional branch instructions. An unconditional branch instruction branches to a specific address in a program without a conditional expression and executes the instruction. In this case, the order of execution of the instructions is determined as one, and even if the instruction execution address is changed, the point of disconnection is not a point. However, in the case of generating the instruction association information parity1 by the method described in FIG. A situation in which disconnection, that is, inability to generate command correlation information parity1 may occur. This is because the correlation information (parity1) of the command is generated based on the front and rear commands without considering the order of execution.

한편, 조건 분기 명령어는 조건식을 평가하고 조건식이 만족되면 명령어의 실행어드레스가 변경되고, 만족되지 않는 경우에는 다음어드레스의 명령어를 실행한다. 즉 조건 명령어가 테이큰(TAKEN)이면 명령어의 실행어드레스가 변경되어 무조건 분기명령어와 마찬가지로 명령어의 연관성이 단절되고, 낫 테이큰(NOT TAKEN)이면 명령어의 연관성이 단절되지 않는 것이다. On the other hand, the conditional branch instruction evaluates the conditional expression, and if the conditional expression is satisfied, the execution address of the instruction is changed. If the conditional branch instruction is not satisfied, the instruction of the next address is executed. In other words, if the conditional instruction is TAKEN, the execution address of the instruction is changed so that the instruction is disconnected like the unconditional branch instruction. If NOT TAKEN, the instruction is not disconnected.

이와 같이 분기 명령어에 의해 명령어들 사이의 연관성이 단절되는 경우에 대처하기 위하여, 본 발명의 실시예에서는 분기명령어 다음에 2개의 특수 명령어를 삽입하고, 상기 분기명령어의 목적어드레스에 상기 특수명령어와 동일한 명령어를 2개 삽입하는 방법으로 해결하고자 한다. In order to cope with the case where the association between the instructions is disconnected by the branch instruction as described above, in the embodiment of the present invention, two special instructions are inserted after the branch instruction, and the same as the special instruction in the object address of the branch instruction. This is solved by inserting two commands.

물론 상기 명령어 연관성 정보(parity1)의 생성을 현재명령어와 이전명령어 의 연관성에 기초하여 생성하거나 또 다른 방법에 의하여 생성하는 경우, 또는 상기 패리티 연관성 정보(parity2)가 현재명령어 연관성 정보 및 다음명령어 연관성 정보에 기초하여 생성되거나 또 다른 방법에 의하여 생성되는 경우가 있을 수 있다. 이때는 그 상황에 맞도록 적절하게 특수명령어의 삽입 위치 및 그 개수가 조절될 수 있을 것이다.Of course, when the generation of the command association information parity1 is generated based on the association between the current command and the previous command or by another method, or the parity correlation information parity2 is the current command association information and the next command association information. It may be generated based on or generated by another method. In this case, the insertion position and the number of the special instruction may be properly adjusted according to the situation.

상기 특수 명령어는 프로그램의 자체기능에 영향을 미치지 않는 특수한 명령어로서, 이전명령어 및 다음 명령어와 연관성을 가져야 한다. 상기 프로그램의 자체기능에 영향을 미치지 않는 명령어로서, 무연산(NOP;No Operation) 명령어를 삽입할수도 있으나, 대부분의 프로세서들의 무연산 명령어의 오피코드(opcode)는 모두 '0'의 값을 가지거나, 상기 무연산 명령어가 존재하지 않는 경우가 있을 수 있다. 따라서 오피코드가 '0'일 경우 공격자에게 공격의 단서를 제공할 수 있으므로 사용이 자제되어야 할 것이다.The special command is a special command that does not affect the program's own function and should be associated with the previous command and the next command. As an instruction that does not affect the program's own function, it is possible to insert a NOP instruction, but most opcodes of the arithmetic instructions of most processors have a value of '0'. Or, there may be a case where the arithmetic instruction does not exist. Therefore, if the opcode is '0', the attacker may be given a clue of attack, so it should be refrained from using.

이는 도 6에 도시된 프로그램 코드를 통해 설명한다.This is explained through the program code shown in FIG.

도 6은 원래의 프로그램 코드(a)와 분기명령어와 목적어드레스에 특수명령어가 삽입된 후의 프로그램 코드(b)가 도시되어 있다. 상기 특수명령어는 하나의 예로써 프로그램 코드(b)에서 굵은 글씨체로 표현된 명령어(MOV)로 표현되어 있다. FIG. 6 shows the program code (b) after the special program is inserted into the original program code (a), the branch instruction and the destination address. As an example, the special command is expressed as a command MOV expressed in bold type in the program code (b).

도 6에 도시된 바와 같이, 명령어를 실행하는 프로세서가 파이프라인화 되어 있어 분기명령어의 목적 어드레스의 명령어를 페치(fetch)하기 전에 상기 분기명령어의 다음 명령어를 페치해서 연관성을 검사하기 때문에, 프로그램 코드(b)에서 분기명령어의 목적어드레스는 삽입된 특수명령어 사이에 지정되게 된다. 이때 명령어 연관성 정보(parity1)는 다음명령어와 연관성을 통해 생성되고 검사되지만, 패리티 연관성 정보(parity2)는 이전명령어에 대응되는 이전명령어 연관성 정보(parity1)와의 연관성을 통해 생성되고 검사하기 때문에, 동일한 특수명령어 두 개를 삽입하여 그 중간 어드레스로 분기하게 하는 것이다. As shown in Fig. 6, since the processor executing the instruction is pipelined to check the association by fetching the next instruction of the branch instruction before fetching the instruction of the target address of the branch instruction. In (b), the destination address of the branch instruction is specified between the inserted special instructions. In this case, the command association information parity1 is generated and checked through the association with the next instruction, but the parity association information parity2 is generated and checked through the association with the previous instruction association information parity1 corresponding to the previous instruction. It inserts two instructions to branch to its intermediate address.

상기 특수명령어는 삽입되는 경우 프로세서의 상태를 변화시키면 다시 복구 할 수 없기 때문에 실행되어도 프로세서의 상태를 변화시키지 않는 명령어가 사용되어야 함을 이미 설명한 바 있다.When the special instruction is inserted, it has already been described that an instruction which does not change the state of the processor even if executed is used because it cannot be restored if the state of the processor is changed.

상기 분기명령어를 통한 명령어 연관성 단절을 극복하기 위해 삽입된 특수명령어는 전체 프로그램의 크기를 증가시키는 요인이 될 수 있으나, 이는 전체시스템의 보안을 위해 발생하는 불가피한 오버헤드로 간주되어야 할 것이다.The special instructions inserted to overcome the command association break through the branch instruction may be a factor to increase the size of the entire program, but this should be regarded as an inevitable overhead incurred for the security of the entire system.

이하에서는 본 발명에서와 같이 패리티 형태로 명령어의 연관성을 생성하여 시스템 보안을 수행하는 경우의 보안성에 대하여 예를 들어 설명한다. Hereinafter, the security in the case of performing system security by generating the association of the command in the form of parity as in the present invention will be described with an example.

모든 암호화 시스템은 이론적으로 'cipher text olny attack'에 취약하다고 할 수 있다. 이는 평문과 암호문을 획득한 공격자가 이미 알려진 암호화 알고리즘에 모든 암호화-키 조합을 인가하여 암호시스템을 무력화 시키는 기법이다. 우선 'cipher text only attack'의 상황에 대해 다음과 같이 설정한다.All cryptographic systems are theoretically vulnerable to cipher text olny attacks. It is a technique that an attacker who obtains a plaintext and a ciphertext incapacitates a cryptographic system by applying all encryption-key combinations to a known encryption algorithm. First, set the situation for 'cipher text only attack' as follows.

설정1. 공격자는 시스템의 버스라인을 도청해 명령어와 패리티를 획득할 수 있다. Settings 1. An attacker can eavesdrop on the system's busline to gain command and parity.

설정2. 'Cipher text only attack'은 명령어와 패리티의 변조를 통해 이루어진다.Settings 2. 'Cipher text only attack' is done by modulating command and parity.

설정3. 변조된 명령어는 이전 명령어들의 실행 이후에 주입된다.Settings 3. The modulated instruction is injected after execution of the previous instructions.

이와 같은 설정상태에서, 우선 공격자는 버스에 변조된 명령어와 임의의 패리티를 주입할 것이다. 도 4에서 설명한 바와 같이, 이전명령어(instruction(t-1))는 이전명령어 연관성 정보(parity1(t-1)) 및 이전패리티 연관성 정보(parity2(t-1))가 확인되어야 실행이 가능하다. 그러나 현재 명령어가 변조되었으므로 상기 이전명령어 연관성 정보(parity1(t-1))의 값은 변하게 된다. In this configuration, the attacker will first inject a modulated instruction and arbitrary parity on the bus. As described with reference to FIG. 4, the previous instruction instruction (t-1) may be executed when the previous instruction association information parity1 (t-1) and the previous parity association information parity2 (t-1) are confirmed. . However, since the current command is modulated, the value of the previous command correlation information parity1 (t-1) is changed.

따라서, 현재시간(t)에 공격자가 의도한 명령어를 변조하기 위해서는 이전 명령어(instruction(t-1))에 대응되는 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값이 변경되어야 한다. 그러나 이전시간(t-1)의 이전명령어(instruction(t-1))와 이에 대응되는 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값이 변경되면 그 이전시간(t-2)의 명령어에 대응되는 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값 또한 변경되어야 한다. Therefore, in order to modulate the command intended by the attacker at the current time t, the command association information parity1 and parity association information parity2 corresponding to the previous instruction instruction (t-1) should be changed. However, if the previous instruction (t-1) of the previous time (t-1), the command parity1 and parity association information (parity2) values corresponding thereto are changed, the instruction of the previous time (t-2) Instruction parity information parity1 and parity correlation information parity2 corresponding to the values should also be changed.

이처럼 하나의 명령어 또는 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값이 변경되면 현재시간(t)으로부터 프로그램의 시작시간을 향하여 계속적인 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값의 변경이 있어야 한다. 그러나 이는 시간적으로 이미 지나간 시간이기 때문에 현재시간에서 과거의 명령어와 과거의 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값을 수정하는 것은 불가능하다. As such, when one command or command association information parity1 and parity association information parity2 are changed, the command association information parity1 and parity association information parity2 are continuously moved from the current time t to the start time of the program. There must be a change of. However, since this is a time that has already passed in time, it is impossible to modify the past command and past command association information parity1 and parity association information parity2 at the current time.

그리고, 메모리에 접근하여 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)값을 수정하기 위해 메모리에 접근하는 명령어를 주입하려고 해도 이 의 실행을 위해서는 결국 명령어의 변조가 필요하기 때문에 공격을 하기는 매우 어렵다. And even if you try to inject an instruction that accesses the memory to access the memory and modify the instruction association information (parity1) and the parity association information (parity2), the attack will not be possible because the instruction will eventually need to be modified. Very difficult.

이처럼 'cipher text only attack'의 경우 변조하고자 하는 명령어가 프로그램의 시작점으로부터 얼마나 멀리 떨어져 있는가에 따라 공격 성공이 결정될 것이다. 만약 변조하고자 하는 명령어가 시작점으로부터 m 만큼 떨어져 있고 명령어의 길이가 n 일 경우 공격의 성공을 위해서는 2mn 만큼의 경우의 수가 발생하게 된다.In the case of cipher text only attack, the attack success will be determined by how far the command to be modified is from the beginning of the program. If the command to be modulated is m away from the start and the length of the command is n, 2 mn The number of cases will occur.

결국 확률적으로 정확한 패리티 생성 사양을 알아낸다는 것은 매우 어려운 일이다. 따라서, 패리티 생성기법을 사용하여 명령어들의 연관성을 생성하는 방법은 종래의 암호화 방식을 사용하였을 경우와 비교해도 보안성 면에서 큰 차이가 없다.In the end, it is very difficult to find a probabilistic exact parity generation specification. Therefore, the method of generating the association of the instructions using the parity generation technique does not have a large difference in security even when compared to the case of using the conventional encryption scheme.

도 7은 상술한 명령어 연관성을 이용한 침해탐지방법이 적용된 명령어 침해탐지기의 구조 및 상기 명령어 침해탐지기가 내장된 보안프로세서 구조를 나타낸 것이다.FIG. 7 illustrates a structure of a command intrusion detector to which the infringement detection method using the command association described above is applied, and a structure of a security processor in which the command infringement detector is embedded.

도 7에 도시된 바와 같이, 명령어 침해탐지기는 시스템의 보안을 위해 구비되는 것으로써, 프로세서와 연동하여 동작하는 구조로, 명령어 메모리(program memory)(706), 패리티 메모리(parity memory)(708), 및 명령어 연관성 검사기(instruction interdependancy checker)(704)를 구비한다. As illustrated in FIG. 7, the instruction intrusion detector is provided for the security of the system, and operates in association with a processor. The instruction intrusion detector 706 and the parity memory 708 are provided. And an instruction interdependancy checker 704.

상기 명령어 메모리(706)는 상기 시스템 실행을 위해 상기 프로세서에 의해 리드되고 실행되기 위한 명령어들이 저장되기 위한 것이다.The instruction memory 706 is for storing instructions for being read and executed by the processor for executing the system.

상기 패리티 메모리(708)는 상기 명령어들에 대한 연관성을 나타내도록 패리티 형태로 생성되는 명령어 연관성 정보들(parity1) 및 패리티 연관성 정보들(parity2)이 저장되기 위한 것이다. The parity memory 708 is for storing instruction association information parity1 and parity association information parity2 generated in the form of parity so as to indicate association with the instructions.

상기 명령어 연관성 검사기(704)는 상기 명령어들 및 상기 명령어 연관성 정보들(parity1)에 대한 패리티체크방식을 통한 검증을 통해 연관성 여부를 판단하여 외부 침해여부를 탐지한다. 만약 공격으로 인해 명령어의 연관성이 손상되면 이를 외부의 공격이라 간주하고 별도의 프로세스를 통해 사용자에게 이를 알려준다. The command association checker 704 detects the presence of external infringement by determining the association through a parity check method for the commands and the command association information parity1. If the attack damages the command's association, it is considered an external attack and the user is notified through a separate process.

상기 명령어 연관성 검사기(704)는 프로세서 내의 프로세서 코어(또는 CPU 코어)(702)와 명령어 메모리(706) 사이에 구비될 수 있다. 상기 프로세서 코어(702)는 명령어를 인출(리드)하고 해독하는 부분, ALU(Arithmetic Logic Unit), 범용 레지스터, 상태 레지스터 등을 포함할 수 있다.The instruction association checker 704 may be provided between the processor core (or CPU core) 702 and the instruction memory 706 in the processor. The processor core 702 may include a portion that fetches (reads) and decodes an instruction, an Arithmetic Logic Unit (ALU), a general purpose register, a status register, and the like.

이외에 상기 보안프로세서는, 외부로부터의 2가지 이상의 신호 입출력을 위한 다목적 입출력 컨트롤러(GPIO; General Process Input Output Controller)(710), 메모리 인터페이스 등 각종 인터페이스를 구비할 수 있다. 또한, 작동 중인 시스템에 예기치 않은 문제가 발생한 경우 하드웨어적으로 상태를 체크하여 변화에 대응하는 인터럽트(interrupt)(714)를 구비할 수 있으며, 타이머(Timer)(712), 비휘발성 메모리(예를 들면, SRAM)(716) 등을 구비할 수 있다. 이외에도 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 필요하다고 판단되는 일반적인 프로세서에 구비되는 구성이 포함될 수 있다. In addition, the security processor may include various interfaces such as a general process input output controller (GPIO) 710 and a memory interface for inputting and outputting two or more signals from the outside. In addition, when an unexpected problem occurs in a running system, an interrupt 714 corresponding to the change may be provided by checking a state in hardware, and a timer 712 and a nonvolatile memory (for example, For example, an SRAM 716 may be provided. In addition, the configuration may be included in a general processor determined to be necessary to those skilled in the art.

도 7의 보안프로세서 구조는 프로세서의 코어(702)와 명령어 메모리(706) 사 이에 상기 명령어 연관성 검사기(704)가 존재한다. 그러나 상기 침해탐지기는 일반프로세서 또는 범용프로세서에 적용이 가능하다.In the secure processor architecture of FIG. 7, the instruction association checker 704 is present between the processor's core 702 and the instruction memory 706. However, the intrusion detector can be applied to a general processor or a general purpose processor.

대부분의 범용프로세서들 및 일반프로세서들은 상기 명령어 메모리가 칩 밖에 위치한다. 따라서, 일반적인 범용(일반) 프로세서와 외부의 명령어 메모리 사이에 상기 명령어 연관성 검사기(704)를 추가하여 삽입하고, 패리티 메모리(708)를 추가하면, 기존의 프로세서의 변화 없이 손쉽게 상기 침해탐지기를 일반적인 범용프로세서에 적용하는 것이 가능하다.In most general purpose processors and general processors, the instruction memory is located off-chip. Therefore, when the instruction association checker 704 is added and inserted between a general general purpose (general) processor and an external instruction memory, and the parity memory 708 is added, the tamper detector can be easily used without changing the existing processor. It is possible to apply to the processor.

상기 명령어 연관성 검사기(704)에서의 명령어 연관성 검사 동작은 다음과 같다.The command association check operation in the command association checker 704 is as follows.

우선 명령어의 연관성을 확인하기 위해서는 각 명령어를 실행할 때 명령어뿐만 아니라 패리티 메모리에 저장된 연관성도 읽어와 연관성을 검사한다. 즉 명령어 연관성 정보(parity1) 및 패리티 연관성 정보(parity2)를 읽어와 연관성을 검사한다. First of all, to check the association of instructions, each association instruction reads associations stored in parity memory as well as instructions. That is, the command correlation information parity1 and the parity correlation information parity2 are read to check the association.

연관성 검사방식은 통신시스템에 사용되는 RS 코드의 패리티체크를 통한 오류검출 방식이 이용될 수 있다. 본 발명에서 만약 RS 코드가 아닌 다른 방식의 패리티 생성방식이 사용된다면, 이에 대응하여 페리티 체크 방식 또한 달라질 수 있다. 상기 페리티 체크를 통한 오류 검출방식이 사용되는 것은, 보안공격을 통한 명령어의 삽입 또는 변조가 통신시스템에서 수신된 데이터에 오류가 발생한 것과 동일한 상황으로 간주될 수 있기 때문이다. 또한, 프로세서는 매 클럭 사이클(clock cycle)마다 명령어를 읽어오고 읽어온 명령어를 실행하는 등의 파이프라인구조를 갖고 있다. 그러므로 명령어 연관성의 검사 또한 매 클럭 사이클마다 진행되어야 한다. 만약 코드데이터에 원래 데이터의 정보가 존재하지 않는 비조직적(non-systematic) 코드를 사용하면 코드데이터로부터 원래 데이터를 추출하기 위한 지연이 필요하다. 이러한 성능의 저하를 방지하기 위해 코드데이터에 원래 데이터의 정보가 존재하는 시스테메틱(systematic) 코드인 RS 코드가 이용되는 것이다.The association check method may be an error detection method through parity check of the RS code used in the communication system. In the present invention, if a parity generation scheme other than the RS code is used, the parity check scheme may also be changed correspondingly. The error detection method using the parity check is used because the insertion or the tampering of the command through the security attack can be regarded as the same situation as the error occurred in the data received from the communication system. In addition, the processor has a pipeline structure such as reading an instruction every clock cycle and executing the read instruction. Therefore, instruction association must also be checked every clock cycle. If non-systematic code is used in which no information of the original data exists in the code data, a delay for extracting the original data from the code data is required. In order to prevent such degradation of performance, an RS code, which is a systematic code in which information of the original data is present in code data, is used.

상기 RS 코드를 이용한 연관성 검사 과정은 일반적으로 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있는 RS 코드의 복호과정과 유사하다.The association test process using the RS code is generally similar to the decoding process of the RS code, which is well known to those skilled in the art.

상기 RS 코드의 복호화 과정은, 수신된 데이터의 오류 발생 유무를 확인하는 신드롬을 계산하고, 그 신드롬의 값에 따라 오류 위치 다항식을 계산한다. 그리고, 다항식의 계산 값으로부터 에러의 위치를 판별하고, 에러의 값을 계산한 후 오류가 발생한 부분을 정정하고 그 결과를 검증하는 과정을 거친다. 여기서 신드롬이란, 수신데이터(수신 다항식)에 패리티 생성다항식의 근을 대입한 값으로 오류 발생여부의 판별과 오류의 위치 다항식 계산, 오류값 게산의 근거를 제공하는 값을 말한다.In the decoding of the RS code, a syndrome for checking whether an error occurs in the received data is calculated, and an error position polynomial is calculated according to the value of the syndrome. Then, the position of the error is determined from the calculated value of the polynomial, the value of the error is calculated, the part where the error occurs, and the result is verified. Here, the syndrome is a value obtained by substituting the root of the parity generation polynomial into the received data (receive polynomial) and means a value that provides a basis for determining whether an error has occurred, calculating a position polynomial of the error, and calculating an error value.

본 발명에 따른 침해 탐지기는 오류의 발생 즉 침해가 발생하였는가에 대한 부분만 필요하기 때문에 위의 과정이 모두 필요한 것은 아니다. 상기 RS 코드에서 수신된 데이터에 오류가 존재하는지를 계산하는 것을 신드롬(Syndrome) 계산이라고 하며 이러한 검사를 진행하는 것은 신드롬 계산기이다. 따라서, 명령어 연관성 검사기(704)는 신드롬 계산기와 같은 구조를 가질 수 있다. The infringement detector according to the present invention does not need all of the above processes because only the portion of the occurrence of the error, that is, whether the infringement has occurred. Calculating whether there is an error in the data received in the RS code is called a syndrome calculation, and it is a syndrome calculator that performs this check. Thus, the instruction association checker 704 can have a structure such as a syndrome calculator.

다만, 일반적으로 디지털 통신에서는 데이터의 수신이 순차적으로 진행되기 때문에 도 8에 나타낸 것과 같은 'systolic array'등을 사용하여 파이프라인형식으로 신드롬을 계산한다. 그러나 프로세서에서는 데이터의 수신(명령어의 입력)이 병렬적으로 발생하기 때문에 위와 같은 구조를 그대로 적용할 수 없다. 이는 데이터의 수신이 매 클럭 사이클마다 진행되기 때문에 연관성의 검사 또한 매 클럭 사이클마다 진행되어야 하기 때문이다. 도 8에서 'r(x)'는 수신데이터를 의미하고, 'S0,S1,Sn-k-1'는 신드롬을 의미하고, 'α0 '는 생성다항식의 근, 'αn-k-1 '은 상기 생성다항식 근의 n-k-1승을 의미한다. 상기'systolic array'구조의 신드롬 계산기의 구조는 이미 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있으므로 더 이상의 설명을 생략한다.However, in general, since digital data reception is performed sequentially, syndromes are calculated in a pipeline format using a 'systolic array' as shown in FIG. However, because the processor receives data (input of command) in parallel, the above structure cannot be applied as it is. This is because since the reception of data proceeds every clock cycle, the correlation check must also proceed every clock cycle. In FIG. 8, 'r (x)' means received data, 'S 0 , S 1 , S nk-1 ' means syndrome, and 'α 0 ' is the root of the generated polynomial, 'α nk-1 ' Is the nk−1 power of the generated polynomial root. Since the structure of the syndrome calculator of the 'systolic array' structure is well known to those skilled in the art to which the present invention pertains, further description thereof will be omitted.

상술한 바와 같은 문제점으로 인하여, 본 발명에 따른 상기 명령어 연관성 검사기(704)는 'systolic array'를 사용하지 않고 내부에 갈로아 필드 상수곱셈기(Galois Field Constant Multiplier)를 병렬로 연결하는 구조를 가질 수 있다. 따라서, 데이터가 입력되면 한 클럭 사이클에 명령어의 연관성을 검사할 수 있게 하였다. 이 또한 패리티 생성 방식이나 오류검출방식이 바뀌게 되면 당연히 이에 대응되는 구조의 명령어 연관성 검사기로 대체될 수 있음은 명백하다.Due to the above-described problems, the instruction association checker 704 according to the present invention may have a structure in which a Galois Field Constant Multiplier is connected in parallel without using a 'systolic array'. have. Thus, when data is input, it is possible to check the association of instructions in one clock cycle. In addition, if the parity generation method or error detection method is changed, it is obvious that it can be replaced with a command association checker having a corresponding structure.

도 9는 수신된 심볼(symbol) 데이터와 생성다항식의 근을 곱해주는 갈로아 필드 상수곱셈기를 병렬로 연결한 병렬 신드롬 계산기의 구조를 나타낸 것이다.9 illustrates a structure of a parallel syndrome calculator in which a Galloa field constant multiplier multiplying received symbol data and a root of a generated polynomial is connected in parallel.

도 9에 도시된 바와 같이, 상기 병렬신드롬 계산기는 수신된 데이터(r0~rk) 에 생성다항식의 근(α0)과 그의 자승들(α1k)을 곱하고, 이들 각각을 XOR 트리에 적용하여 신드롬(Syndrome)을 계산한다. 갈로아 필드 상수곱셈기를 이용한 신드롬 계산 방식은 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 잘 알려져 있으므로 더 이상의 설명을 생략한다.As shown in FIG. 9, the parallel syndrome calculator multiplies the received data r 0 to r k by the root α 0 of the generated polynomial and its squares α 1 to α k , and XORs each of them. Apply to the tree to calculate the Syndrome. The syndrome calculation method using a Galloa field constant multiplier is well known to those skilled in the art to which the present invention pertains, and further description thereof will be omitted.

상기 병렬 신드롬 계산기가 상기 명령어 연관성 검사기에 구비되는 경우, 상기 수신된 심볼데이터(r0~rk)는 명령어에 대응될 수 있다. 상기 명령어 연관성 검사기에 적용되는 명령어는 기본 명령어(instruction), 명령어 연관성 정보(parity1), 및 패리티연관성 정보(parity2)를 포함하는 개념으로 이해되어야 할 것이다.When the parallel syndrome calculator is provided in the command association checker, the received symbol data r 0 to r k may correspond to a command. The command applied to the command association checker should be understood as a concept including a basic instruction, instruction association information parity1, and parity association information parity2.

만약 생성 다항식의 근이 2개 이상이어서 신드롬을 여러 개 계산하여야 하는 경우가 있을 수 있다. 이 경우는 상기 명령어 연관성 검사기가 도 9에 도시된 바와 같은 갈로아 필드 상수곱셈기를 근의 개수만큼 가져야 할 것이다. 이러한 구조는 RS 코드의 사양이 결정될 때 생성 다항식 또한 결정되어 생성 다항식의 근이 변하지 않기 때문에 가능할 것이다.If there are two or more roots of the generated polynomial, it may be necessary to calculate several syndromes. In this case, the instruction association checker should have a Galoa field constant multiplier as shown in FIG. This structure would be possible because the generation polynomial is also determined when the specification of the RS code is determined so that the root of the production polynomial does not change.

상술한 바와 같이, 본 발명에 따르면, 명령어 침해에 대응하여 침해탐지가 용이하며, 종래의 암호화모듈기반의 보안프로세서에 비해 패리티를 이용한 방식을 사용함에 따라 적은 연산량으로 우수한 안전성을 보장할 수 있다. 또한 침해탐지기가 프로세서 코어의 외부에 존재하여 일반 및 범용프로세서에 많은 수정없이 적용할 수 있으며, 모듈성 및 이식성이 높은 장점이 있다. 또한 기존 소프트웨어 개발단계의 직접적인 수정없이 보안화된 코드를 쉽게 생성하는 것이 가능하다.As described above, according to the present invention, detection of infringement is easy in response to command infringement, and as compared to a conventional encryption module-based security processor, a method using parity can be used to ensure excellent safety with a small amount of calculation. In addition, since the intrusion detector is located outside the processor core, it can be applied to general and general purpose processors without many modifications, and has the advantage of high modularity and portability. It is also possible to easily generate secure code without direct modification of existing software development steps.

상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다. The description of the above embodiments is merely given by way of example with reference to the drawings for a more thorough understanding of the present invention, and should not be construed as limiting the present invention. In addition, it will be apparent to those skilled in the art that various changes and modifications can be made without departing from the basic principles of the present invention.

도 1은 종래의 암호화 모듈이 구비된 보안프로세서의 구조도이고,1 is a structural diagram of a security processor with a conventional encryption module,

도 2는 본 발명이 적용되는 임베디드 시스템의 보안 모델을 나타낸 도면이고.2 is a view showing a security model of the embedded system to which the present invention is applied.

도 3은 본 발명에 일 실시예에 따른 시스템 보안용 침해탐지방법을 설명하기 위해 도입된 프로그램 명령어 코드의 예이고, 3 is an example of a program instruction code introduced to explain a breach detection method for system security according to an embodiment of the present invention.

도 4는 명령어의 연관성을 이용하여 패리티를 생성하는 방법을 나타낸 도면이고, 4 is a diagram illustrating a method for generating parity using the correlation of an instruction;

도 5는 프로그램의 시작점과 종료점에서의 패리티생성방법을 나타낸 도면이고,5 is a diagram illustrating a parity generation method at a start point and an end point of a program,

도 6은 분기명령어의 경우에 패리티생성을 위해 특수명령어가 삽입된 프로그램 코드의 예이고,6 is an example of program code in which a special instruction is inserted for parity generation in the case of a branch instruction.

도 7은 본 발명의 실시예에 따른 침해탐지기가 적용된 보안프로세서 구조의 예이고,7 is an example of a secure processor structure to which an infringement detector according to an embodiment of the present invention is applied;

도 8은 신드롬 계산기의 예이고, 8 is an example of a syndrome calculator,

도 9는 도 7의 침해탐지기에 적용되는 신드롬 계산기의 구조도이다.9 is a structural diagram of a syndrome calculator applied to the intrusion detector of FIG. 7.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

400 : 현재 명령어 401 : 이전명령어400: current command 401: previous command

402 : 현재 명령어 연관성 정보 403 : 이전 명령어 연관성 정보402: current command association information 403: previous command association information

404 : 현재 패리티 연관성 정보 504,507 : 매직넘버 404: current parity association information 504, 507: magic number

702 : 프로세서 코어 704 : 명령어 연관성 검사기702: Processor Core 704: Instruction Association

706 : 명령어 메모리 708 : 패리티 메모리706: instruction memory 708: parity memory

Claims (20)

시스템 보안용 침해탐지방법에 있어서:In the system security detection method: 상기 시스템 실행을 위한 명령어들에 대한 연관성을 나타내는 명령어 연관성 정보들을, 상기 명령어들 각각에 대응하도록 패리티 형태로 생성하는 단계와;Generating command association information in parity form corresponding to each of the commands, the command association information indicating associations with the commands for executing the system; 상기 명령어들의 실행시 상기 명령어들 또는 상기 명령어 연관성 정보들에 대하여 패리티체크방식을 통한 검증을 통해 연관성 여부를 판단하여 외부 침해여부를 탐지하는 단계를 구비하는 것을 특징으로 하는 시스템 보안용 침해탐지방법.And detecting whether an external breach is detected by determining whether or not an association is performed through verification of the instructions or the command association information through a parity check method when the instructions are executed. 청구항 1에 있어서,The method according to claim 1, 상기 명령어 연관성 정보는 상기 명령어들 중 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들을 특정 패리티 생성함수에 적용하여 생성함을 특징으로 하는 시스템 보안용 침해탐지방법.And the command association information is generated by applying at least two commands adjacent to each other, either temporally or spatially, to a specific parity generation function. 청구항 2에 있어서,The method according to claim 2, 상기 명령어 연관성 정보들 생성 이후에, 상기 명령어 연관성 정보들에 대한 연관성을 나타내는 패리티 연관성 정보들이 상기 명령어 연관성 정보들에 대응하여 패리티 형태로 추가로 생성되며, 상기 패리티 연관성 정보들은 연관성 여부를 판단 시 검증자료로 이용됨을 특징하는 시스템 보안용 침해탐지방법.After generating the command association information, parity association information indicating association with the command association information is further generated in the form of parity in correspondence with the command association information, and the parity association information is verified when determining the association. Intrusion detection method for system security, characterized by being used as data. 청구항 3에 있어서,The method according to claim 3, 상기 명령어 연관성 정보들 중 현재명령어에 대응되는 현재 명령어 연관성 정보는, 현재명령어, 상기 현재 명령어와 시간적 또는 공간적으로 인접한 다음명령어, 및 상기 현재명령어와 시간적 또는 공간적으로 인접한 이전명령어의 연관성에 기초하여 생성되며, The current command association information corresponding to the current command among the command association information is generated based on a correlation between a current command, a next command temporally or spatially adjacent to the current command, and a previous command temporally or spatially adjacent to the current command. , 상기 패리티 연관성 정보들 중 상기 현재명령어 연관성 정보에 대응되는 현재 패리티 연관성 정보는, 상기 현재명령어 연관성 정보, 상기 다음명령어에 대응되는 연관성 정보인 다음명령어 연관성 정보, 및 상기 이전명령어에 대응되는 이전명령어 연관성 정보의 연관성에 기초하여 생성됨을 특징으로 하는 시스템 보안용 침해탐지방법.The current parity association information corresponding to the current command association information among the parity association information includes the current command association information, next command association information that is association information corresponding to the next command, and previous command association corresponding to the previous command. Intrusion detection method for system security, characterized in that generated based on the association of information. 청구항 4에 있어서,The method according to claim 4, 상기 현재 명령어 연관성 정보는 상기 현재 명령어 및 상기 다음명령어의 연관성에 기초하여 생성되고, 상기 현재 패리티 연관성 정보는 상기 현재명령어 연관성 정보 및 상기 이전명령어 연관성 정보의 연관성에 기초하여 생성됨을 특징으로 하는 시스템 보안용 침해탐지방법.The current command association information is generated based on the association between the current command and the next command, and the current parity association information is generated based on the association of the current command association information and the previous command association information, characterized in that Intrusion Detection Method. 청구항 2 또는 청구항 5에 있어서,The method according to claim 2 or 5, 상기 특정 패리티 생성함수는 리드 솔로몬 코드(reed-solomon code)의 패리티 생성함수임을 특징으로 하는 시스템 보안용 침해탐지방법.And the specific parity generating function is a parity generating function of a reed-solomon code. 청구항 6에 있어서,The method according to claim 6, 프로그램의 시작점 및 종료점에서의 명령어에 대응되는 상기 명령어 연관성 정보 및 상기 패리티 연관성 정보는, 상기 명령어들 사이의 연관성 단절을 극복하기 위해 별도로 삽입되며 특정한 값을 가지는 매직넘버를 이용하여 생성됨을 특징으로 하는 시스템 보안용 침해탐지방법.The command association information and the parity association information corresponding to the instructions at the start and end points of the program are inserted using a magic number having a specific value and inserted separately to overcome the disconnection between the instructions. Intrusion Detection Method for System Security. 청구항 7에 있어서,The method according to claim 7, 상기 명령어들 중 분기명령어의 경우에는, 상기 분기명령어의 다음 및 상기 분기명령어의 목적어드레스에 프로그램의 자체기능에 영향을 미치지 않으며, 상기 분기명령어와 연관성이 있는 적어도 하나의 특수명령어를 삽입하고, 상기 적어도 하나의 특수명령어를 이용하여 상기 명령어 연관성 정보 및 상기 패리티 연관성 정보를 생성함을 특징으로 하는 시스템 보안용 침해탐지방법.In the case of a branch instruction among the instructions, inserting at least one special instruction associated with the branch instruction without affecting the function of the program itself in the next address of the branch instruction and the destination address of the branch instruction, And generating the command association information and the parity association information by using at least one special command. 청구항 8에 있어서,The method according to claim 8, 상기 패리티체크방식을 통한 검증은 리드 솔로몬 코드의 신드롬 계산 방식을 이용하여 수행됨을 특징으로 하는 시스템 보안용 침해탐지방법.The verification using the parity check method is a system security infringement detection method, characterized in that performed using the syndrome calculation method of the Reed Solomon code. 일정 프로세서와 연동하여 동작하는 시스템 보안용 침해탐지기에 있어서:In the system security breach detector that works in conjunction with certain processors: 상기 시스템 실행을 위해 상기 프로세서에 의해 리드되고 실행되기 위한 명령어들이 저장되는 명령어메모리와;An instruction memory for storing instructions for being read and executed by the processor for executing the system; 상기 명령어들에 대한 연관성을 나타내도록 패리티 형태로 생성되는 명령어 연관성 정보들을 상기 명령어들 각각에 대응하도록 저장하는 패리티 메모리와; A parity memory for storing command association information generated in a parity form to correspond to each of the commands to correspond to each of the commands; 상기 명령어들 및 상기 명령어 연관성 정보들에 대한 패리티체크방식을 통한 검증을 통해 연관성 여부를 판단하여 외부 침해여부를 탐지하는 명령어 연관성 검사기를 구비함을 특징으로 하는 시스템 보안용 침해탐지기.And a command association checker for determining whether or not an external breach is determined by verifying an association through a parity check method for the instructions and the command association information. 청구항 10에 있어서,The method according to claim 10, 상기 명령어 연관성 정보는 상기 명령어들 중 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들을 특정 패리티 생성함수에 적용하여 생성됨을 특징으로 하는 시스템 보안용 침해탐지기.And the command association information is generated by applying at least two commands adjacent to each other, either temporally or spatially, to a specific parity generation function. 청구항 11에 있어서,The method according to claim 11, 상기 패리티 메모리에는 상기 명령어 연관성 정보들에 대한 연관성을 나타내기 위해 패리티 형태로 생성된 패리티 연관성 정보들이 추가로 저장되며, 상기 패리티 연관성 정보들은 상기 명령어 연관성 검사기에 연관성 판단을 위한 자료로 제공됨을 특징으로 하는 시스템 보안용 침해탐지기.The parity memory further stores parity association information generated in the form of parity to indicate association with the command association information, and the parity association information is provided as data for determining association in the command association checker. Intrusion Detector for System Security 청구항 12에 있어서,The method according to claim 12, 상기 명령어 연관성 정보들 중 현재명령어에 대응되는 현재 명령어 연관성 정보는, 현재명령어 및 상기 현재 명령어와 시간적 또는 공간적으로 인접한 다음명령어의 연관성에 기초하여 생성되며, The current command association information corresponding to the current command among the command association information is generated based on the correlation between the current command and the next command that is temporally or spatially adjacent to the current command. 상기 패리티 연관성 정보들 중 상기 현재명령어 연관성 정보에 대응되는 현재 패리티 연관성 정보는, 상기 현재명령어 연관성 정보 및 상기 이전명령어에 대응되는 이전명령어 연관성 정보의 연관성에 기초하여 생성됨을 특징으로 하는 시스템 보안용 침해탐지기.The current parity correlation information corresponding to the current command association information among the parity correlation information is generated based on the correlation between the current command association information and the previous command association information corresponding to the previous command. detector. 청구항 13에 있어서,The method according to claim 13, 상기 특정 패리티 생성함수는 리드 솔로몬 코드(reed-solomon code)의 패리티 생성함수임을 특징으로 하는 시스템 보안용 침해탐지기.The parity generation function is a parity generation function of a reed-solomon code. 청구항 14에 있어서,The method according to claim 14, 상기 명령어 연관성 검사기는 상기 프로세서의 코어와 상기 명령어 메모리 사이에 구비되며, 상기 프로세서 내부에 구비되는 보안프로세서 구조를 가짐을 특징으로 하는 시스템 보안용 침해탐지기. The instruction association checker is provided between the core of the processor and the instruction memory, the security detector for system security, characterized in that it has a secure processor structure provided inside the processor. 청구항 14에 있어서,The method according to claim 14, 상기 프로세서는 범용프로세서이며, 상기 명령어 연관성 검사기는 상기 범용프로세서와 상기 범용프로세서 외부에 구비된 상기 명령어 메모리사이에 삽입된 구조를 가짐을 특징으로 하는 시스템 보안용 침해탐지기.The processor is a general purpose processor, and the instruction association checker has a structure inserted between the general purpose processor and the instruction memory provided outside the general purpose processor. 청구항 15 또는 청구항 16에 있어서,The method according to claim 15 or 16, 상기 명령어 연관성 검사기는 상기 패리티체크방식을 통한 연관성 판단을 위해 리드 솔로몬 코드의 데이터의 오류 검출기능을 가지는 신드롬 계산기를 구비함 을 특징으로 하는 시스템 보안용 침해탐지기.And the command association checker comprises a syndrome calculator having an error detection function of data of a Reed Solomon code to determine association using the parity check method. 청구항 17에 있어서,The method according to claim 17, 상기 신드롬 계산기는 복수의 갈로아 필드 상수곱셈기를 병렬로 연결한 병렬신드롬 계산기를 적어도 하나 이상 구비하는 구조를 가짐을 특징으로 하는 시스템 보안용 침해탐지기.The syndrome calculator has a structure having at least one parallel syndrome calculator in which a plurality of galoa field constant multipliers are connected in parallel. 청구항 17에 있어서,The method according to claim 17, 상기 시스템은 임베디드 시스템임을 특징으로 하는 시스템 보안용 침해탐지기. Intrusion detector for system security, characterized in that the system is an embedded system. 리드 솔로몬 코드의 패리티 생성함수를 이용하여 시간적 또는 공간적으로 서로 인접하는 적어도 두 개의 명령어들에 기초하여 생성된 명령어 연관성 정보들을, 신드롬계산기를 이용한 오류검출방식을 이용하여 침해여부를 판단하는 것을 특징으로 하는 명령어 연관성 검사기. It is characterized by determining whether the instruction association information generated based on at least two instructions adjacent to each other temporally or spatially using the parity generation function of the Reed Solomon code using an error detection method using a syndrome calculator. Instruction association checker.
KR1020080010325A 2008-01-31 2008-01-31 Attack detecting method and attack detect0r for system security KR100978605B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080010325A KR100978605B1 (en) 2008-01-31 2008-01-31 Attack detecting method and attack detect0r for system security

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080010325A KR100978605B1 (en) 2008-01-31 2008-01-31 Attack detecting method and attack detect0r for system security

Publications (2)

Publication Number Publication Date
KR20090084263A true KR20090084263A (en) 2009-08-05
KR100978605B1 KR100978605B1 (en) 2010-08-27

Family

ID=41204836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080010325A KR100978605B1 (en) 2008-01-31 2008-01-31 Attack detecting method and attack detect0r for system security

Country Status (1)

Country Link
KR (1) KR100978605B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158894B2 (en) 2011-12-16 2015-10-13 Electronics And Telecommunications Research Institute Apparatus and method for analyzing rule-based security event association

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1102406A3 (en) * 1999-11-17 2003-11-19 STMicroelectronics, Inc. Apparatus and method for decoding digital data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158894B2 (en) 2011-12-16 2015-10-13 Electronics And Telecommunications Research Institute Apparatus and method for analyzing rule-based security event association

Also Published As

Publication number Publication date
KR100978605B1 (en) 2010-08-27

Similar Documents

Publication Publication Date Title
US8683224B2 (en) Processor-implemented method for ensuring software integrity
US8583880B2 (en) Method for secure data reading and data handling system
Dofe et al. A comprehensive FPGA-based assessment on fault-resistant AES against correlation power analysis attack
US20070019805A1 (en) System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
Werner et al. Protecting the control flow of embedded processors against fault attacks
WO2012010205A1 (en) A processor-implemented method for ensuring software integrity
Patranabis et al. Fault tolerant infective countermeasure for AES
US10223117B2 (en) Execution flow protection in microcontrollers
US11461476B2 (en) Method for executing a binary code of a function secured by a microprocessor
KR100922862B1 (en) Security method of system by? encoding instructions
Li et al. A control flow integrity checking technique based on hardware support
Schilling et al. Securing conditional branches in the presence of fault attacks
KR100978605B1 (en) Attack detecting method and attack detect0r for system security
Feix et al. Defeating with fault injection a combined attack resistant exponentiation
Lee et al. Improved Shamir's CRT‐RSA Algorithm: Revisit with the Modulus Chaining Method
WO2023001624A1 (en) Securely executing software based on cryptographically verified instructions
Dar et al. Nonlinear code-based low-overhead fine-grained control flow checking
US11442738B2 (en) Method for executing a machine code of a secure function
Alshaer et al. Microarchitectural Insights into Unexplained Behaviors under Clock Glitch Fault Injection
Oboril et al. A-SOFT-AES: Self-adaptive software-implemented fault-tolerance for AES
Köylü et al. Using Hopfield networks to correct instruction faults
Köylü et al. Instruction flow-based detectors against fault injection attacks
US20240069917A1 (en) Method for executing a machine code by means of a computer
US20240169098A1 (en) Secure Chip-Wide Transmission
EP4357957A1 (en) Method for securing against physical or logical attacks an execution of a machine language instructions code

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140617

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee