KR100943318B1 - Clip board security method - Google Patents

Clip board security method Download PDF

Info

Publication number
KR100943318B1
KR100943318B1 KR1020070083950A KR20070083950A KR100943318B1 KR 100943318 B1 KR100943318 B1 KR 100943318B1 KR 1020070083950 A KR1020070083950 A KR 1020070083950A KR 20070083950 A KR20070083950 A KR 20070083950A KR 100943318 B1 KR100943318 B1 KR 100943318B1
Authority
KR
South Korea
Prior art keywords
data
clipboard
api function
application
target application
Prior art date
Application number
KR1020070083950A
Other languages
Korean (ko)
Other versions
KR20090019484A (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 KR1020070083950A priority Critical patent/KR100943318B1/en
Publication of KR20090019484A publication Critical patent/KR20090019484A/en
Application granted granted Critical
Publication of KR100943318B1 publication Critical patent/KR100943318B1/en

Links

Images

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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 클립보드 보안방법에 관한 것으로, 실행된 어플리케이션이 보안 대상 어플리케이션인지 여부를 확인하는 어플리케이션 확인단계; 보안 대상 어플리케이션으로 확인되면, 상기 보안 대상 어플리케이션에서 선택된 데이터를 클립보드에 입력하거나 클립보드로부터 출력하기 위해 호출되는 API 함수를 훅하는 후킹단계; 클립보드로의 데이터 입력을 위한 API 함수 호출시, 상기 후킹단계에서 후킹한 입력 API 함수를 대신하여 대체 입력 함수를 통해 상기 데이터를 암호화한 후, 상기 입력 API 함수를 정상 호출하여 암호화된 데이터를 클립보드에 저장하는 데이터 암호화단계; 및 클립보드로의 데이터 출력을 위한 출력 API 함수 호출시, 상기 후킹단계에서 후킹한 해당 출력 API 함수를 대신하여 대체 출력 함수를 통해 상기 데이터를 복호화한 후, 상기 출력 API 함수를 정상 호출하여 복호화된 데이터를 보안 대상 어플리케이션에 출력하는 데이터 복호화단계를 포함하는 것이다.

Figure R1020070083950

The present invention relates to a clipboard security method, comprising: an application confirmation step of confirming whether an executed application is a security target application; Hooking an API function that is called to input or output data selected from the security target application to the clipboard when the security target application is identified; When calling the API function for data input to the clipboard, the data is encrypted through an alternative input function in place of the input API function hooked in the hooking step, and then the input API function is normally called to clip the encrypted data. Encrypting data stored on the board; And when the output API function is called for outputting data to the clipboard, the data is decoded through an alternative output function in place of the corresponding output API function hooked in the hooking step, and then the output API function is normally called and decoded. And a data decryption step of outputting data to the security target application.

Figure R1020070083950

Description

클립보드 보안방법{Clip board security method}Clipboard security method

본 발명은 클립보드 보안방법에 관한 것이다.The present invention relates to a clipboard security method.

클립보드는 동일한 어플리케이션 또는 서로 다른 어플리케이션에서 구동하는 파일 내 임의 데이터를 복사하거나 붙여넣기 할 때 상기 데이터가 임시로 기록 및 저장되는 메모리 공간으로, 마이크로소프트의 윈도우즈나 애플의 매킨토시와 같은 운영체계에서 데이터를 이동, 복사 및 잘라낼 때 이를 임시로 저장하는데 사용된다.The clipboard is a memory space in which the data is temporarily recorded and stored when copying or pasting arbitrary data in a file running in the same application or in different applications. The clipboard is used by operating systems such as Microsoft's Windows or Apple's Macintosh. It is used to temporarily store files when moving, copying and cutting them.

일반적으로, 상기 클립보드는 워드프로세서나 엑셀 등과 같은 윈도우용 응용어플리케이션에서 텍스트 또는 이미지 등의 데이터를 잘라내기, 복사하기 또는 붙여넣기 등을 하기 위해 사용된다. In general, the clipboard is used to cut, copy, or paste data such as text or images in a Windows application such as a word processor or Excel.

따라서, 클립보드는 데이터를 잘라낸 다음 그것을 다른 곳에 붙여넣기 하거나 클립보드의 내용을 파일로 저장하지 않은 채 컴퓨터를 종료하면 그 데이터는 삭제되어 복구할 수 없다.Therefore, if the clipboard cuts out data and then pastes it elsewhere or shuts down the computer without saving the contents of the clipboard as a file, the data is deleted and cannot be recovered.

결국, 상기 클립보드는 데이터를 복사하거나 이동하거나 또는 잘라내기 위해 해당 데이터를 파일로서 별도 형성해야 하는 수고없이, 해당 데이터를 임시로 저장 하여 필요할 때(시간)와 장소(파일)에 이를 출력하여 넣을 수 있도록 하는 것이다. 물론, 상기 클립보드는 완전한 파일형태가 아닌 단순한 텍스트 이외에, 어플리케이션에서 열 수 있는 완전한 파일 또는 다수의 파일들을 임시로 저장할 수도 있다.In the end, the clipboard temporarily stores the data as a file in order to copy, move, or cut the data, and outputs the data at a time (time) and place (file) when needed. To make it possible. Of course, the clipboard may temporarily store a complete file or multiple files that can be opened in an application, in addition to simple text rather than a complete file.

그런데, 상기 클립보드는 앞서 설명한 바와 같이 완전한 파일 또는 텍스트 등을 복사하여 임시로 저장할 수 있으므로, 해킹 프로그램과 같은 악의적인 프로그램이 상기 클립보드에 접근하여 남아 있는 완전한 파일 또는 텍스트를 열람하거나 복사해 유출할 수 있다. 따라서, 보안이 요구되는 정보의 무단유출을 완변히 막기 위해 클립보드를 보안해야 할 필요가 있다.However, since the clipboard may copy and temporarily store a complete file or text as described above, a malicious program such as a hacking program accesses the clipboard to view or copy the remaining complete file or text and leak it. can do. Therefore, there is a need to secure the clipboard to completely prevent unauthorized leakage of information requiring security.

하지만, 클립보드를 통한 데이터의 무단유출을 막는 보안시스템이 구체적으로 제시되지 않고 있어, 클립보드에 저장된 정보에 대한 보안시스템이 요구되는 실정이다.However, since a security system that prevents unauthorized leakage of data through the clipboard has not been presented in detail, a security system for information stored in the clipboard is required.

이에 본 발명은 상기와 같은 문제를 해소하기 위해 안출된 것으로, 클립보드를 통한 데이터 또는 파일 이동 시 해당 데이터 또는 파일의 무단유출을 막고, 이를 통해 특정 정보를 허가되지 않은 방법으로 유출하는 것을 차단할 수 있는 클립보드 보안방법의 제공을 기술적 과제로 한다.Accordingly, the present invention has been made to solve the above problems, it is possible to prevent unauthorized leakage of the data or files when moving the data or files through the clipboard, thereby preventing the leakage of specific information in an unauthorized manner. The technical problem is to provide a clipboard security method.

상기의 기술적 과제를 달성하기 위하여 본 발명은,The present invention to achieve the above technical problem,

실행된 어플리케이션이 보안 대상 어플리케이션인지 여부를 확인하는 어플리케이션 확인단계;An application verification step of confirming whether the executed application is a security target application;

보안 대상 어플리케이션으로 확인되면, 상기 보안 대상 어플리케이션에서 선택된 데이터를 클립보드에 입력하거나 클립보드로부터 출력하기 위해 호출되는 API 함수를 훅하는 후킹단계;Hooking an API function that is called to input or output data selected from the security target application to the clipboard when the security target application is identified;

클립보드로의 데이터 입력을 위한 API 함수 호출시, 상기 후킹단계에서 후킹한 입력 API 함수를 대신하여 대체 입력 함수를 통해 상기 데이터를 암호화한 후, 상기 입력 API 함수를 정상 호출하여 암호화된 데이터를 클립보드에 저장하는 데이터 암호화단계; 및When calling the API function for data input to the clipboard, the data is encrypted through an alternative input function in place of the input API function hooked in the hooking step, and then the input API function is normally called to clip the encrypted data. Encrypting data stored on the board; And

클립보드로의 데이터 출력을 위한 출력 API 함수 호출시, 상기 후킹단계에서 후킹한 해당 출력 API 함수를 대신하여 대체 출력 함수를 통해 상기 데이터를 복호화한 후, 상기 출력 API 함수를 정상 호출하여 복호화된 데이터를 보안 대상 어플 리케이션에 출력하는 데이터 복호화단계;When calling the output API function for outputting data to the clipboard, the data is decoded through a substitute output function in place of the corresponding output API function hooked in the hooking step, and then the data is decrypted by normally calling the output API function. Decrypting the data to be output to the security target application;

를 포함하는 클립보드 보안방법이다.Clipboard security method that includes.

이상 상기와 같은 본 발명에 따르면, 보안이 요구되는 데이터가 클립보드에 저장될 경우, 보안 대상 어플리케이션들 간에는 자유로이 데이터의 복사 및 잘라내어 붙여넣기가 가능하나, 비보안 대상 어플리케이션에서 클립보드에 접근하여 데이터를 불러올 수 없어, 클립보드를 통한 데이터의 유출을 방지할 수 있다.According to the present invention as described above, when the data that requires security is stored in the clipboard, it is possible to freely copy and cut and paste the data between the security target applications, but access the data from the non-security target application to access the clipboard. It can't be loaded, preventing data from leaking through the clipboard.

이하 본 발명을 첨부된 예시도면에 의거하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 클립보드 보안방법에 따라 실시되는 데이터의 흐름을 도시한 블록도이고, 도 2는 본 발명에 따른 클립보드 보안방법의 실시모습을 순차적으로 도시한 플로우차트인 바, 이를 참조하여 설명한다.1 is a block diagram showing the flow of data carried out according to the clipboard security method according to the present invention, Figure 2 is a flowchart sequentially showing an embodiment of the clipboard security method according to the present invention, this It demonstrates with reference.

널리 알려진 바와 같이, 클립보드(20)는 동일한 제1어플리케이션(11) 또는 서로 다른 제1,2어플리케이션(11, 12)에서 구동하는 파일 내 임의 데이터(D)를 복사하거나 붙여넣기 할 때 상기 데이터(D)가 임시로 기록 및 저장되는 메모리 공간이다. 즉, 상기 클립보드(20)는 사용자가 복사 또는 잘라내기를 목적으로 선택한 데이터(D)가 임시로 보관되는 장소인 것이다.As is well known, the clipboard 20 is used when copying or pasting arbitrary data D in a file driven by the same first application 11 or different first and second applications 11 and 12. (D) is a memory space temporarily recorded and stored. That is, the clipboard 20 is a place where the data D selected by the user for copying or cutting is temporarily stored.

일반적으로, 제1,2어플리케이션(11, 12)에서 복사 또는 잘라내기를 실행할 시(클립보드 정보 쓰기) 'SetClipboardData'라는 API 함수가 불리고, 상기 제1,2어플리케이션(11, 12)에서 붙여넣기를 실행할 시(클립보드 정보 읽기) 'GetClipboardData'라는 API 함수가 불린다.In general, when a copy or cut is executed in the first and second applications 11 and 12 (write clipboard information), an API function called 'SetClipboardData' is called and the first and second applications 11 and 12 are called. When executed (reading clipboard information), an API function called 'GetClipboardData' is called.

상기 API 함수는 사용자가 복사 또는 잘라내기를 시도함으로서 지정된 데이터(D)를 클립보드(20)에 임시로 저장하거나, 클립보드(20)에 저장된 데이터(D)를 해당 제1,2어플리케이션(11, 12)으로 옮길 수 있도록 한다.The API function temporarily stores the specified data D in the clipboard 20 as the user attempts to copy or cut the data, or stores the data D stored in the clipboard 20 in the first and second applications 11, 11. 12).

본 발명의 기술적 사상을 좀 더 상세히 설명하기 위해 도 2에 도시한 플로우차트에 따라 본 발명을 설명한다.In order to explain the technical idea of the present invention in more detail, the present invention will be described according to the flowchart shown in FIG. 2.

S10 ; 어플리케이션 실행단계S10; Application execution stage

WINDOWTM와 같이 멀티태스킹 운영체계에서는 다수의 어플리케이션을 동시에 실행할 수 있다. 한편, 클립보드를 통한 데이터(D)의 입출력은 실행된 어플리케이션을 통해 이루어진다. 따라서, 보안대상 데이터(D)를 실행할 수 있는 해당 어플리케이션을 실행한다.Multitasking operating systems such as WINDOW TM can run multiple applications simultaneously. On the other hand, the input and output of the data (D) through the clipboard is made through the executed application. Therefore, the corresponding application capable of executing the security target data D is executed.

S12 ; 어플리케이션 확인단계S12; Application Verification Step

어플리케이션 중 보안대상으로 지정된 어플리케이션의 실행이 완료되면, 본 발명에 따른 보안시스템은 그 구동을 시작한다.When the execution of the application designated as the security target among the applications is completed, the security system according to the present invention starts its operation.

일반적으로, 사용자는 특정 데이터(D)를 복사 또는 잘라내기 위해 상기 데이터(D)가 위치한 창(윈도우)을 선택한다. WINDOWTM는 다수의 어플리케이션을 동시에 실행할 수 있으며, 이때 창이라는 GUI(그래픽 사용자 인터페이스)를 이용해 실행되고 있는 어플리케이션들을 사용자가 확인하고 이들 중 하나를 선택하여 각각 조작할 수 있다.In general, the user selects a window (window) in which the data D is located to copy or cut specific data D. FIG. WINDOW TM can run multiple applications at the same time, using a graphical user interface (GUI) called a window to allow users to see which applications are running and to select and manipulate one of them.

한편, 본 발명에 따른 클립보드 보안방법을 실시하기 위한 어플리케이션 확인모듈(110), 후킹모듈(120) 및 암복호화모듈(130)로 이루어진 보안시스템은 보안 대상 어플리케이션이 인스톨된 단말기가 부팅되면서 동시에 실행될 수도 있고(제1과정), 보안 대상 어플리케이션이 실행되면 그때부터 실행될 수도 있다(제2과정).On the other hand, the security system consisting of the application confirmation module 110, the hooking module 120 and the encryption and decryption module 130 for implementing the clipboard security method according to the present invention will be executed at the same time as the terminal on which the security target application is installed. It may be (step 1), or may be executed from then on when the security target application is executed (step 2).

상기 제1과정은 보안 대상 어플리케이션의 실행여부에 관계없이 상기 보안시스템이 동작하는바, 당해 보안시스템은 상기 단말기의 프로세서와 메모리를 항시 사용하므로 무리를 줄 수 있다. 반면, 상기 제2과정은 보안 대상 어플리케이션의 실행시에만 상기 보안시스템이 동작하므로, 상기 단말기의 운영효율에 유리할 것이다. In the first process, the security system operates regardless of whether the security target application is executed. Since the security system always uses the processor and the memory of the terminal, it may be unreasonable. On the other hand, since the security system operates only when the security target application is executed, the second process may be advantageous for operating efficiency of the terminal.

상기 제2과정의 경우, 보안 대상 어플리케이션에 패치파일을 설치하고, 상기 보안 대상 어플리케이션이 동작하면 보안 대상 어플리케이션의 실행여부가 상기 보안시스템으로 전달되어 이들이 동작하도록 한다.In the second process, the patch file is installed in the security target application, and when the security target application is operated, execution of the security target application is transmitted to the security system so that they operate.

여기서, 상기 제1,2과정의 구분없이 보안 대상 어플리케이션이 실행되고 있음을 전제로 본 발명에 따른 클립보드 보안방법의 실시예를 기술하므로, 본 발명의 기술적 사상은 권리범위는 상기 제1,2과정을 모두 포함할 것이다.Here, since the embodiment of the clipboard security method according to the present invention is described on the premise that the security target application is executed without distinguishing the first and second processes, the technical scope of the present invention is the scope of the first and second operations. It will cover everything.

계속해서, 어플리케이션이 실행되면 어플리케이션 확인모듈(110)은 실행된 제1어플리케이션(11)이 보안 대상 어플리케이션인지 여부를 확인한다. 예를 들어, 문서를 보안하기 위해 워드프로세서의 일종인 '한글'을 보안 대상 어플리케이션으로 설정하면, 상기 어플리케이션 확인모듈(110)은 현재 활성화된 창이 호출된 '한글'인지를 확인한다.Subsequently, when the application is executed, the application checking module 110 checks whether the executed first application 11 is a security target application. For example, in order to secure a document, when a word processor, 'Hangul' is set as a security target application, the application verification module 110 checks whether the currently activated window is called 'Hangul'.

확인방법은 일반적인 패치파일을 통해 이루어질 수 있고, 상기 패치파일은 제1어플리케이션(11)의 활성화 여부를 상기 어플리케이션 확인모듈(110)로 전송한다. 이러한 확인방법은 매우 다양할 뿐만 아니라 보안프로그램에서 널리 알려지고 적용되는 기술이므로 추가 설명은 생략한다.The verification method may be performed through a general patch file, and the patch file transmits whether the first application 11 is activated to the application verification module 110. Since these verification methods are very diverse and widely known and applied in security programs, further explanation is omitted.

S16 ; 후킹단계S16; Hooking step

제1어플리케이션(11)이 호출/활성화되고, 상기 어플리케이션 확인모듈(110)이 상기 제1어플리케이션(11)을 보안 대상 어플리케이션으로 확인하면, 제1어플리케이션에서 실행되는 API 함수에 대한 후킹이 이루어져서, 다른 함수로 대체된다.When the first application 11 is called / activated and the application verification module 110 confirms the first application 11 as a security target application, hooking is performed on an API function executed in the first application. Replaced by a function

후킹의 대상이 되는 API 함수는 제1어플리케이션(11) 내에서 특정 텍스트 또는 이미지 등(이하 제1데이터로 함)을 복사하거나 잘라낼 때 요청되는 'SetClipboardData' 등의 함수가 주가 될 것이다.The API function to be hooked will mainly be a function such as 'SetClipboardData' which is requested when copying or cutting out a specific text or an image (hereinafter referred to as the first data) in the first application 11.

S18 ; API 함수 호출단계(제1호출단계)S18; API function call step (first call step)

사용자는 제1어플리케이션(11) 내에서 제1데이터를 복사하거나 잘라내기 위해 키보드 또는 마우스 등과 같은 입력장치를 조작하여 필요한 API 함수(SetClipboardData)를 호출한다.The user calls an API function (SetClipboardData) required by manipulating an input device such as a keyboard or a mouse to copy or cut the first data in the first application 11.

이때, 해당 API 함수는 상기 후킹단계(S16)에서 이미 다른 함수로 대체되어 있으므로, 사용자가 해당 제1데이터를 복사하기 위해 API 함수를 호출하면, 정상적인 API 함수(SetClipboardData)가 아닌 다른 대체 함수가 우선적으로 호출된다.In this case, since the corresponding API function is already replaced by another function in the hooking step (S16), when the user calls the API function to copy the first data, the replacement function other than the normal API function (SetClipboardData) takes precedence. Is called.

따라서, 해당 제1데이터는 정상적인 API 함수의 처리로 클립보드에 기록되는 것이 아니고, 본 발명에 따른 보안시스템에 의해 다음과 같은 처리가 이루어진다. Therefore, the first data is not recorded on the clipboard as a normal API function, but the following processing is performed by the security system according to the present invention.

S20 ; 데이터 암호화단계S20; Data encryption step

본 발명에 따른 상기 보안시스템의 암복호화모듈(130)은 상기 제1데이터(D)를 수신하여 암호화한다.The encryption / decryption module 130 of the security system according to the present invention receives and encrypts the first data (D).

암호화는 매우 다양한 방식이 적용될 수 있는데, 대표적인 방법이 암호코드를 적용하는 것이다. 이러한 암호코드에는 숫자를 문자들로 치환하는 것, 알파벳 내에서 문자를 교체하는 것 등이 있으며, 좀 더 복잡한 암호코드는 디지털 신호 내의 데이터 비트들을 재배열하는 것이다.Encryption can be applied in a variety of ways, a typical method is to apply the encryption code. Such cipher codes include replacing numbers with letters, replacing characters within the alphabet, and more complex cipher codes rearrange the data bits in the digital signal.

본 발명에 따른 상기 암복호화모듈(130)은 다양한 암복호화 방식이 적용될 수 있으므로 이를 한정하는 것은 바람직하지 않으나, 본 발명에 따른 실시예에서 상기 암복호화모듈(130)이 수행하는 암복호화 방식을 아래에서 일실시예로 설명한다.Since the encryption / decryption module 130 according to the present invention may be applied to various encryption / decryption schemes, it is not preferable to limit the encryption / decryption module 130. In one embodiment will be described.

도 3은 본 발명에 따라 동작하는 데이터의 암호화 모습을 도시한 도면인 바, 이를 참조하여 설명한다.3 is a diagram illustrating an encryption of data operating according to the present invention, which will be described with reference to the drawing.

(a)도면의 클립보드(20)는 사용자가 정상적으로 복사 또는 잘라내기 한 제1데이터(D)가 클립보드(20)에 임시로 저장되기 전의 모습을 개념적으로 도시한 것으로, 사용자는 특정 제1데이터(D)를 복사 또는 잘라낼 목적으로 제1어플리케이션(11)에서 제1데이터(D)를 선택한다.(a) In the drawing, the clipboard 20 conceptually illustrates a state before the first data D, which the user normally copies or cuts, is temporarily stored in the clipboard 20. The first data D is selected by the first application 11 for the purpose of copying or cutting the data D. FIG.

(b)도면의 클립보드(20)는 사용자가 선택한 제1데이터(D)를 클립보드(20)에 임시저장하기 전, 클립보드(20)에 상기 제1데이터(D)를 임시저장하기 위해 호출되는 API 함수는 상기 후킹모듈(120)에 의해 훅되어 다른 함수로 대체되고, 상기 다른 함수는 암복호화모듈(130)을 실행시켜서 상기 제1데이터(D)를 암호화한다.(b) The clipboard 20 of the drawing may temporarily store the first data D in the clipboard 20 before temporarily storing the first data D selected by the user in the clipboard 20. The called API function is hooked by the hooking module 120 and replaced with another function, and the other function executes the encryption / decryption module 130 to encrypt the first data D.

바이트('1', '2', '3', '4'...) 단위로 상기 클립보드(20)에 저장되는 제1데이터(D)는 운영체제에서 클립보드(20)에 저장되는 제1데이터(D)를 인식하고 확인하기 위한 클립보드형식(uFORMAT)과, 상기 클립보드형식에 따라 구분되며 제1데이터(D)의 내용을 이루는 데이터부분(hMem)으로 구성되는데, 상기 암복호화모듈(130)은 별도의 메모리(131)를 갖추고 상기 데이터부분(hMem)의 일부를 잘라내어 상기 메모리(131)에 저장한다. 여기서, 일부가 잘려나간 데이터(D)의 남은 부분을 데이터 모체(M; 제3데이터)라 하고, 상기 일부는 데이터 자체(S; 제2데이터)라 명명한다.The first data D stored in the clipboard 20 in units of bytes ('1', '2', '3', '4' ...) is stored in the clipboard 20 in the operating system. The data format hMem comprises a clipboard format (uFORMAT) for recognizing and confirming one data (D) and a data portion (hMem) that forms the contents of the first data (D) according to the clipboard format. 130 includes a separate memory 131 and cuts a part of the data portion hMem and stores it in the memory 131. Here, the remaining part of the data D, which is partially cut off, is called a data mother M (third data), and the part is called data itself (S; second data).

제1데이터(D)의 일부가 분리되면 분리된 제2,3데이터는 정상적인 출력이 어려울 수 있으나, 보안성을 높이기 위해 제3데이터인 상기 데이터 모체(M)를 암호화할 수 있고, 이와 더불어 제2데이터인 상기 데이터 자체(S) 또한 암호화할 수 있다.When a part of the first data D is separated, the separated second and third data may have difficulty in normal output. However, in order to increase security, the second and third data may encrypt the data mother M, which is the third data. The data itself S, which is two data, can also be encrypted.

본 발명에 따른 암호화는 바이트 위치에 따라 배치된 제1데이터(D)에서 상기 바이트의 배열위치를 규칙에 따라 변경하거나, 각 바이트의 내용을 규칙에 따라 변경함으로서 이루어질 수 있으며, 이외에도 다양한 암호화방식이 적용될 수 있다. 하지만, 본 발명에서는 상기 제1데이터(D)를 암호화하기 전 데이터 모체(M)와 데이터 자체(S)로 이를 구분하고, 상기 데이터 자체(S)는 클립보드(20)와 분리된 별도 메모리(131)에 보관/저장한다.Encryption according to the present invention can be made by changing the arrangement position of the byte in the first data (D) arranged according to the byte position according to the rule, or by changing the contents of each byte according to the rule, in addition to various encryption schemes Can be applied. However, in the present invention, before encrypting the first data D, the data matrix M and the data itself S are distinguished, and the data itself S is a separate memory separated from the clipboard 20. 131).

한편, 상기 제1데이터(D)가 데이터 모체(M)와 데이터 자체(S)로 분리될 때, 제1데이터(D)에서 상기 데이터 자체(S)의 자리는 '0'으로 채워진다.On the other hand, when the first data (D) is separated into the data mother (M) and the data itself (S), the position of the data itself (S) in the first data (D) is filled with '0'.

본 발명에 따른 실시예에서는, 15 바이트의 크기를 갖는 제1데이터(D)에서 5 바이트를 데이터 자체(S)로 분리하여 메모리(131)에 저장하고, 남은 10 바이트만이 데이터 모체(M)에 남는데, 여기서 상기 데이터 자체(S)의 해당 바이트는 '0'으로 매꾼다. 이는 상기 클립보드(20)가 보안 대상 어플리케이션 이외에 비보안 대상 어플리케이션 또한 접근할 수 있고 클립보드(20)에 임시저장된 데이터를 붙여넣을 수 있기 때문에, 해당 제1데이터(D)를 데이터 모체(M)와 데이터 자체(S)로 구분하더라도 클립보드(20)에 저장된 데이터 모체(M)가 제1데이터(D) 생성 당시에 작성된 클립보드형식(uFORMAT)에 상응하는 크기를 유지하여 시스템이 오작동하거나 충돌하는 것을 방지하기 위함이다.In the embodiment according to the present invention, 5 bytes of the first data D having a size of 15 bytes are divided into the data itself S and stored in the memory 131, and only the remaining 10 bytes are stored in the data matrix M. , Where the corresponding byte of the data itself (S) is padded to '0'. This is because the clipboard 20 can access the non-secure target application in addition to the secure target application and paste the data temporarily stored in the clipboard 20, so that the corresponding first data D can be transferred to the data mother M. Even if the data is classified as itself S, the data mother M stored in the clipboard 20 maintains a size corresponding to the clipboard format uFORMAT created at the time of generating the first data D, thereby preventing the system from malfunctioning or crashing. This is to prevent.

상기 실시예에서 메모리(131)에 저장된 데이터 자체(S)의 크기는 5 바이트로 하였으나, 이는 실시예에 불과하며 다양한 크기로 결정될 수 있을 것이다. 하지만, 본 발명에 따른 보안시스템의 안정적인 구동을 위해 데이터 자체(S)의 크기는 제1데이터(D)의 크기에 상관없이 일정하게 유지시키는 것이 바람직하다.In the above embodiment, the size of the data itself S stored in the memory 131 is 5 bytes, but this is only an embodiment and may be determined in various sizes. However, for the stable driving of the security system according to the present invention, it is preferable to keep the size of the data itself S regardless of the size of the first data D.

한편, 본 발명에 따른 실시예와 같이 데이터 자체(S)의 크기를 5 바이트로 유지한 상황에서 제1데이터(D) 크기가 5 바이트 미만일 경우, 데이터 모체(M)는 모두 '0'이 되고 제1데이터(D) 모두가 상기 메모리(131)에 데이터 자체(S)로서 저장될 것이다.On the other hand, when the size of the first data (D) is less than 5 bytes in a situation where the size of the data itself (S) is maintained at 5 bytes as in the embodiment according to the present invention, the data mother (M) is all '0' All of the first data D will be stored in the memory 131 as the data itself S.

S22 ; API 함수 실행단계S22; API function execution steps

앞서 설명한 바와 같이 제1데이터(D)가 데이터 모체(M)와 데이터 자체(S)로 분리되고 암호화되면, 앞서 훅한 API 함수를 정상적으로 호출하여 데이터 모체(M)를 그대로 클립보드(20)에 임시저장한다.(S24 ; 클립보드 저장단계)As described above, when the first data D is separated into the data mother M and the data itself S and encrypted, the API function hooked above is normally called to temporarily leave the data mother M on the clipboard 20 as it is. Save (S24; clipboard save step)

S26 ; 어플리케이션 확인단계(제2확인단계)S26; Application confirmation step (second confirmation step)

사용자가 어플리케이션에서 붙여넣기를 시도할 경우, 상기 어플리케이션 확인모듈(110)은 현재의 어플리케이션을 확인한다. 상기 어플리케이션 확인모듈(110)은 현재의 어플리케이션이 보안 대상 어플리케이션인 제1어플리케이션(11) 인지, 비보안 대상 어플리케이션인 제2어플리케이션(12)인지 여부를 확인함으로서 다음 절차를 결정할 수 있는데, 어플리케이션 확인모듈(110)의 확인결과 현재 선택된 창이 비보안 대상 어플리케이션으로 확인되면 아래에서 기술되는 절차없이 클립보드(20)에 기록된 데이터 모체(M)가 제2어플리케이션(12)에 그대로 출력된다(S36). 물론, 상기 데이터 모체(M)는 데이터 자체(S)가 없는 불완전한 상태이면서, 암호화가 적용되었을 경우엔 제1데이터(D)가 깨진 상태이거나 클립보드(20) 내 데이터의 존재여부를 전혀 인식하지 못함으로서 데이터를 정상적으로 출력하지 못하므로, 비보안 대상 어플리케이션인 제2어플리케이션(12)에서는 제1데이터(D)를 정상적으로 확인할 수 없게 된다.When the user attempts to paste in an application, the application confirmation module 110 confirms the current application. The application checking module 110 may determine the next procedure by checking whether the current application is the first application 11 which is the security target application or the second application 12 which is the non-security target application. As a result of the check in step 110, if the currently selected window is identified as the non-security target application, the data parent M recorded in the clipboard 20 is output as it is to the second application 12 without the procedure described below (S36). Of course, the data mother (M) is incomplete state without the data itself (S), when encryption is applied, the first data (D) is broken or does not recognize the presence of data in the clipboard 20 at all Since the data cannot be output normally, the second application 12 which is an unsecured target application cannot normally check the first data D.

S28 ; API 함수 호출단계(제2호출단계)S28; API function call step (second call step)

사용자가 상기 제1어플리케이션(11)에 클립보드(20)에 저장된 제1데이터(D)를 붙여넣기를 시도하면, 'GetClipboardData' API 함수가 호출되고, 호출된 상기 API 함수는 클립보드(20)에 저장된 데이터 모체(M)를 불러낸다.When the user attempts to paste the first data D stored in the clipboard 20 to the first application 11, the 'GetClipboardData' API function is called, and the API function called is the clipboard 20 Recall the data parent (M) stored in.

그런데, 상기 데이터 모체(M)를 제1어플리케이션(11) 상에 그대로 출력하여 붙여넣을 수 없으므로, 해당 제1어플리케이션(11)이 실행되면서 후킹된 정상적인 API 함수를 대신하여 다른 대체 함수가 호출되고, 상기 대체 함수는 상기 암복호화모듈(30)을 실행시켜서 클립보드(20)로부터 데이터 모체(M)와 상기 데이터 모체(M)와 연결된 데이터 자체(S)를 상기 메모리(131)에서 불러낸다.(도 3(c) 참조)However, since the data mother M cannot be output and pasted as it is on the first application 11, another replacement function is called in place of the normal API function hooked while the first application 11 is executed. The substitution function executes the encryption / decryption module 30 to retrieve the data matrix M and the data itself S connected to the data matrix M from the clipboard 20 from the memory 131. See 3 (c))

S32 ; 데이터 복호화단계S32; Data decryption step

상기 암복호화모듈(130)은 데이터 모체(M)와 데이터 자체(S)를 클립보드(20) 및 메모리(131)로부터 각각 불러내어 이를 복호화한다.The encryption / decryption module 130 retrieves the data matrix M and the data itself S from the clipboard 20 and the memory 131 and decrypts them.

S34 ; 데이터 출력단계S34; Data output stage

상기 암복호화모듈(130)은 복호화된 데이터 모체(M)와 데이터 자체(S)를 결합하여 완전한 제1데이터(D)로 완성하고, 앞서 훅한 API 함수를 정상적으로 호출하여 완성된 제1데이터(D)를 상기 제1어플리케이션(11)에 출력한다.The encryption / decryption module 130 combines the decrypted data mother M and the data itself S to complete the first data D, and the first data D completed by normally calling the API function hooked above. ) Is output to the first application 11.

도 1은 본 발명에 따른 클립보드 보안방법에 따라 실시되는 데이터의 흐름을 도시한 블록도이고,1 is a block diagram showing the flow of data carried out according to the clipboard security method according to the present invention,

도 2는 본 발명에 따른 클립보드 보안방법의 실시모습을 순차적으로 도시한 플로우차트이고,2 is a flowchart sequentially showing an embodiment of the clipboard security method according to the present invention,

도 3은 본 발명에 따라 동작하는 데이터의 암호화 모습을 도시한 도면이다.3 is a diagram illustrating the encryption of data operating according to the present invention.

Claims (2)

실행된 어플리케이션이 보안 대상 어플리케이션인지 여부를 확인하는 어플리케이션 확인단계;An application verification step of confirming whether the executed application is a security target application; 보안 대상 어플리케이션으로 확인되면, 상기 보안 대상 어플리케이션에서 선택된 제1데이터를 클립보드에 입력하거나 클립보드로부터 출력하기 위해 호출되는 API 함수를 훅하는 후킹단계;Hooking an API function that is called to input or output from the clipboard the first data selected by the security target application when the security target application is identified; 클립보드로의 제1데이터 입력을 위한 API 함수 호출시, 상기 제1데이터의 정보를 바이트 단위로 둘 이상 분리하되, 분리한 제2데이터(데이터 자체)의 정보는 독립된 메모리에 별도 저장하고, 제1데이터의 사이즈를 유지하면서 제2데이터의 정보가 분리된 제3데이터(데이터 모체)는 제2데이터의 정보가 위치했던 바이트 자리가 특정값으로 대체되며, 상기 후킹단계에서 후킹한 입력 API 함수의 대체 입력 함수를 통해 상기 제2,3데이터를 암호화한 후, 상기 입력 API 함수를 정상 호출하여 암호화된 제3데이터를 클립보드에 저장하는 데이터 암호화단계; 및When calling the API function for inputting the first data into the clipboard, at least two pieces of information of the first data are separated by byte, and the information of the separated second data (data itself) is separately stored in an independent memory. In the third data (data matrix) in which the information of the second data is separated while maintaining the size of one data, the byte position where the information of the second data is located is replaced with a specific value, and the input API function hooked in the hooking step A data encryption step of encrypting the second and third data through a replacement input function and then normally calling the input API function to store encrypted third data in a clipboard; And 클립보드에서 데이터를 출력하기 위한 출력 API 함수 호출시, 상기 후킹단계에서 후킹한 해당 출력 API 함수를 대신하여 대체 출력 함수를 통해 상기 제2,3데이터를 복호화하면서 제2,3데이터를 결합시켜서 제1데이터를 완성한 후, 상기 출력 API 함수를 정상 호출하여 제1데이터를 보안 대상 어플리케이션에 출력하는 데이터 복호화단계;When calling an output API function for outputting data from the clipboard, the second and third data are combined by decoding the second and third data through an alternative output function in place of the corresponding output API function hooked in the hooking step. A data decrypting step of normally calling the output API function and outputting first data to a security target application after completion of 1 data; 를 포함하는 것을 특징으로 하는 클립보드 보안방법.Clipboard security method comprising a. 삭제delete
KR1020070083950A 2007-08-21 2007-08-21 Clip board security method KR100943318B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070083950A KR100943318B1 (en) 2007-08-21 2007-08-21 Clip board security method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070083950A KR100943318B1 (en) 2007-08-21 2007-08-21 Clip board security method

Publications (2)

Publication Number Publication Date
KR20090019484A KR20090019484A (en) 2009-02-25
KR100943318B1 true KR100943318B1 (en) 2010-02-19

Family

ID=40687292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070083950A KR100943318B1 (en) 2007-08-21 2007-08-21 Clip board security method

Country Status (1)

Country Link
KR (1) KR100943318B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064143B1 (en) * 2010-08-20 2011-09-15 주식회사 파수닷컴 System for protecting data stored in clipboard in digital rights management environment and recording medium storing program for executing method of the same in computer
KR101480033B1 (en) 2013-03-07 2015-01-07 (주) 사이냅소프트 Document editing apparatus for supporting copy and paste function on random kind of web browser
KR102310219B1 (en) * 2021-04-06 2021-10-08 주식회사 위엔 Apparatus for enhancementing personal information security and method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102516345B1 (en) * 2018-07-10 2023-04-03 삼성전자주식회사 Method for determining illegal modification of data and electronic device supporting the same
KR102215231B1 (en) * 2019-08-05 2021-02-10 충남대학교 산학협력단 Anti-hooking system for android application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391932B1 (en) * 2002-11-22 2003-07-16 Fasoo Com Co Ltd Method for protecting digital data through real-time system api controller without modifying application program
JP2006054669A (en) 2004-08-11 2006-02-23 Toshiba Corp Information equipment remote control system and information equipment
KR20060059759A (en) * 2004-11-29 2006-06-02 주식회사 안철수연구소 Method for preventing from inventing data of memory in a computer application program
KR20070027383A (en) * 2005-09-06 2007-03-09 엘지전자 주식회사 Method for management of file system and data processing apparatus thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391932B1 (en) * 2002-11-22 2003-07-16 Fasoo Com Co Ltd Method for protecting digital data through real-time system api controller without modifying application program
JP2006054669A (en) 2004-08-11 2006-02-23 Toshiba Corp Information equipment remote control system and information equipment
KR20060059759A (en) * 2004-11-29 2006-06-02 주식회사 안철수연구소 Method for preventing from inventing data of memory in a computer application program
KR20070027383A (en) * 2005-09-06 2007-03-09 엘지전자 주식회사 Method for management of file system and data processing apparatus thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064143B1 (en) * 2010-08-20 2011-09-15 주식회사 파수닷컴 System for protecting data stored in clipboard in digital rights management environment and recording medium storing program for executing method of the same in computer
WO2012023674A1 (en) * 2010-08-20 2012-02-23 주식회사 파수닷컴 Clipboard protection system in drm environment and recording medium in which program for executing method in computer is recorded
US9098713B2 (en) 2010-08-20 2015-08-04 Fasoo.Com Co., Ltd Clipboard protection system in DRM environment and recording medium in which program for executing method in computer is recorded
KR101480033B1 (en) 2013-03-07 2015-01-07 (주) 사이냅소프트 Document editing apparatus for supporting copy and paste function on random kind of web browser
KR102310219B1 (en) * 2021-04-06 2021-10-08 주식회사 위엔 Apparatus for enhancementing personal information security and method thereof

Also Published As

Publication number Publication date
KR20090019484A (en) 2009-02-25

Similar Documents

Publication Publication Date Title
US8886956B2 (en) Data storage apparatus having cryption and method thereof
US20190278583A1 (en) Method for updating firmware, terminal and computer readable non-volatile storage medium
JP2012090286A (en) Memory system having encryption/decryption function of in stream data
CN103617401A (en) Method and device for protecting data files
US8880903B2 (en) Removable drive with data encryption
CN110084599B (en) Key processing method, device, equipment and storage medium
US20100250968A1 (en) Device for data security using user selectable one-time pad
KR100943318B1 (en) Clip board security method
JP2013516642A (en) System, apparatus and method for encrypting and decrypting data transmitted over a network
JP5389401B2 (en) Encryption device, decryption device, and encryption system
CN112069555A (en) Safe computer architecture based on double-hard-disk cold switching operation
CN110826099A (en) Safe storage method and system suitable for embedded real-time operating system
JP5467155B1 (en) Document processing system, document processing method and program
JP2009059008A (en) File management system
Benadjila et al. Secure storage—Confidentiality and authentication
CN103516722B (en) A kind of automatic encryption and decryption method and device of user class file
US10275604B2 (en) Security record transfer in a computing system
US9203607B2 (en) Keyless challenge and response system
US20050102508A1 (en) Method, computer readable storage, and system to provide security printing using a printer driver
CN109710899B (en) Method and device for decrypting and obtaining evidence of file in storage medium
CN114579337A (en) Method and system for generating core dump in user equipment
JP2011123229A (en) Program code encryption device and program
US20200382484A1 (en) Password streaming
US20220156449A1 (en) System and method for providing steganographic text encoding
CN113591140B (en) Resource data tamper-proof method, system, computer equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130205

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140210

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170310

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190208

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200204

Year of fee payment: 11