KR100943318B1 - Clip board security method - Google Patents
Clip board security method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012905 input function Methods 0.000 claims abstract description 3
- 230000006870 function Effects 0.000 claims description 43
- 238000012795 verification Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools 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 함수를 정상 호출하여 복호화된 데이터를 보안 대상 어플리케이션에 출력하는 데이터 복호화단계를 포함하는 것이다.
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.
Description
본 발명은 클립보드 보안방법에 관한 것이다.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
일반적으로, 제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
상기 API 함수는 사용자가 복사 또는 잘라내기를 시도함으로서 지정된 데이터(D)를 클립보드(20)에 임시로 저장하거나, 클립보드(20)에 저장된 데이터(D)를 해당 제1,2어플리케이션(11, 12)으로 옮길 수 있도록 한다.The API function temporarily stores the specified data D in the
본 발명의 기술적 사상을 좀 더 상세히 설명하기 위해 도 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
상기 제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
확인방법은 일반적인 패치파일을 통해 이루어질 수 있고, 상기 패치파일은 제1어플리케이션(11)의 활성화 여부를 상기 어플리케이션 확인모듈(110)로 전송한다. 이러한 확인방법은 매우 다양할 뿐만 아니라 보안프로그램에서 널리 알려지고 적용되는 기술이므로 추가 설명은 생략한다.The verification method may be performed through a general patch file, and the patch file transmits whether the
S16 ; 후킹단계S16; Hooking step
제1어플리케이션(11)이 호출/활성화되고, 상기 어플리케이션 확인모듈(110)이 상기 제1어플리케이션(11)을 보안 대상 어플리케이션으로 확인하면, 제1어플리케이션에서 실행되는 API 함수에 대한 후킹이 이루어져서, 다른 함수로 대체된다.When the
후킹의 대상이 되는 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
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
이때, 해당 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 /
암호화는 매우 다양한 방식이 적용될 수 있는데, 대표적인 방법이 암호코드를 적용하는 것이다. 이러한 암호코드에는 숫자를 문자들로 치환하는 것, 알파벳 내에서 문자를 교체하는 것 등이 있으며, 좀 더 복잡한 암호코드는 디지털 신호 내의 데이터 비트들을 재배열하는 것이다.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 /
도 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
(b)도면의 클립보드(20)는 사용자가 선택한 제1데이터(D)를 클립보드(20)에 임시저장하기 전, 클립보드(20)에 상기 제1데이터(D)를 임시저장하기 위해 호출되는 API 함수는 상기 후킹모듈(120)에 의해 훅되어 다른 함수로 대체되고, 상기 다른 함수는 암복호화모듈(130)을 실행시켜서 상기 제1데이터(D)를 암호화한다.(b) The
바이트('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
제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
한편, 상기 제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
상기 실시예에서 메모리(131)에 저장된 데이터 자체(S)의 크기는 5 바이트로 하였으나, 이는 실시예에 불과하며 다양한 크기로 결정될 수 있을 것이다. 하지만, 본 발명에 따른 보안시스템의 안정적인 구동을 위해 데이터 자체(S)의 크기는 제1데이터(D)의 크기에 상관없이 일정하게 유지시키는 것이 바람직하다.In the above embodiment, the size of the data itself S stored in the
한편, 본 발명에 따른 실시예와 같이 데이터 자체(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
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
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
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
그런데, 상기 데이터 모체(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
S32 ; 데이터 복호화단계S32; Data decryption step
상기 암복호화모듈(130)은 데이터 모체(M)와 데이터 자체(S)를 클립보드(20) 및 메모리(131)로부터 각각 불러내어 이를 복호화한다.The encryption /
S34 ; 데이터 출력단계S34; Data output stage
상기 암복호화모듈(130)은 복호화된 데이터 모체(M)와 데이터 자체(S)를 결합하여 완전한 제1데이터(D)로 완성하고, 앞서 훅한 API 함수를 정상적으로 호출하여 완성된 제1데이터(D)를 상기 제1어플리케이션(11)에 출력한다.The encryption /
도 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)
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)
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)
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)
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 |
-
2007
- 2007-08-21 KR KR1020070083950A patent/KR100943318B1/en active IP Right Grant
Patent Citations (4)
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)
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 |