KR20180094157A - 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법 - Google Patents

안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법 Download PDF

Info

Publication number
KR20180094157A
KR20180094157A KR1020170019176A KR20170019176A KR20180094157A KR 20180094157 A KR20180094157 A KR 20180094157A KR 1020170019176 A KR1020170019176 A KR 1020170019176A KR 20170019176 A KR20170019176 A KR 20170019176A KR 20180094157 A KR20180094157 A KR 20180094157A
Authority
KR
South Korea
Prior art keywords
process module
queue
session key
message
key
Prior art date
Application number
KR1020170019176A
Other languages
English (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 KR1020170019176A priority Critical patent/KR20180094157A/ko
Publication of KR20180094157A publication Critical patent/KR20180094157A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

인증 장치가 개시된다. 상기 인증 장치는 제1 프로세스를 실행하는 제1 프로세스 모듈과 제2 프로세스를 실행하는 제2 프로세스 모듈을 포함하고, 상기 제1 프로세스 모듈은 상기 제2 프로세스 모듈을 포함하는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐를 생성하는 큐 생성부 및 상기 제1 큐를 통해 상기 제2 프로세스 모듈로부터 수신한 메시지에 포함된 암호화된 세션키를 복호화하여 세션키를 추출하는 복호화부를 포함하고, 상기 제2 프로세스 모듈은 상기 제1 프로세스 모듈과의 IPC(Inter Process Communication, 프로세스 간 통신)을 위한 상기 세션키를 생성하는 세션키 생성부 및 상기 제1 프로세스 모듈의 공개키를 이용하여 상기 세션키를 암호화하여 상기 암호화된 세션키를 생성하고, 상기 암호화된 세션키를 포함하는 상기 메시지를 상기 제1 큐를 통해 상기 제1 프로세스 모듈로 송신하는 메시지 송신부를 포함하고, 상기 큐 생성부는 상기 제2 프로세스 모듈과 데이터를 송수신하기 위한 제2 큐를 생성한다.

Description

안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법{DEVICE AND METHOD OF MUTUAL PROCESS AUTHENTICATION FOR SECURE INTER PROCESS COMMUNICATION}
본 발명의 개념에 따른 실시 예는 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법에 관한 것으로, 특히 공유된 세션키를 통한 암호화 통신 및 큐(queue) 접근 제어를 통해 안전한 IPC를 보장할 수 있는 인증 장치 및 방법에 관한 것이다.
IPC(Inter Process Communication, 프로세스 간 통신)란 프로세스 간 데이터를 공유하기 위한 통신을 통칭하는 용어로써, file, signal, socket, message queue, pipe, named pipe, semaphore, shared memory, message passing, memory mapped file과 같은 다양한 접근 방식을 통해 구현될 수 있다.
그러나, 일반적인 IPC에서는 보안적인 요소가 고려되지 않고 있다. 특히, 통신 데이터에 대한 기밀성, 통신하는 프로세스 간 상호 인증 기능을 제공하지 않기 때문에 이러한 보안 서비스를 제공하는 안전한(secure) IPC에 대한 설계가 요구되고 있는 실정이다.
리눅스 IPC의 경우 UID(User ID)로 접근 제어를 적용할 수 있지만 루트 권한을 가진 공격자의 경우에는 모든 IPC 채널에 접근 가능하다. 일반적인 IPC 환경에서 발생할 수 있는 보안 취약점과 이를 완화하기 위한 보안 요구사항은 다음과 같다.
·통신 데이터 노출 : 일반적인 IPC 상에서 통신 데이터는 평문으로 전송되므로 루트 권한을 가진 공격자 프로세스는 모든 IPC 채널에 접근하여 통신 데이터를 도청할 수 있게 된다. 그러므로, 데이터에 대한 기밀성을 보장할 수 있는 방안이 요구된다.
·프로세스 위장 : IPC 상에서는 데이터를 전송하는 프로세스에 대한 정보를 알 수 없다. 즉, 공격자 프로세스가 정상 프로세스로 위장하여 데이터를 송수신하거나 정상 프로세스 간 통신 사이에서 MitM(Man-in-the-Middle) 공격을 수행할 수도 있다. 그러므로, 프로세스 간 인증을 통해 이러한 보안 취약점을 완화해야 한다.
대한민국 공개특허 제2000-0004083호 (2000.01.25. 공개) 대한민국 공개특허 제2002-0051560호 (2002.06.29. 공개) 미합중국 공개특허 제2016-0226835호 (2016.08.04. 공개)
본 발명이 이루고자 하는 기술적인 과제는 IPC 환경에서 발생할 수 있는 보안 취약점을 해결할 수 있는 인증 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시 예에 따른 인증 장치는 제1 프로세스를 실행하는 제1 프로세스 모듈과 제2 프로세스를 실행하는 제2 프로세스 모듈을 포함하고, 상기 제1 프로세스 모듈은 상기 제2 프로세스 모듈을 포함하는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐를 생성하는 큐 생성부 및 상기 제1 큐를 통해 상기 제2 프로세스 모듈로부터 수신한 메시지에 포함된 암호화된 세션키를 복호화하여 세션키를 추출하는 복호화부를 포함하고, 상기 제2 프로세스 모듈은 상기 제1 프로세스 모듈과의 IPC(Inter Process Communication, 프로세스 간 통신)를 위한 상기 세션키를 생성하는 세션키 생성부 및 상기 제1 프로세스 모듈의 공개키를 이용하여 상기 세션키를 암호화하여 상기 암호화된 세션키를 생성하고, 상기 암호화된 세션키를 포함하는 상기 메시지를 상기 제1 큐를 통해 상기 제1 프로세스 모듈로 송신하는 메시지 송신부를 포함하고, 상기 큐 생성부는 상기 제2 프로세스 모듈과 데이터를 송수신하기 위한 제2 큐를 생성한다.
본 발명의 일 실시 예에 따른 인증 방법은 제1 프로세스를 실행하는 제1 프로세스 모듈과 제2 프로세스를 실행하는 제2 프로세스 모듈을 포함하는 인증 장치에 의해 수행되고, 상기 제1 프로세스 모듈에 포함된 큐 생성부가 상기 제2 프로세스 모듈을 포함하는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐를 생성하는 단계, 상기 제2 프로세스 모듈에 포함된 세션키 생성부가 상기 제1 프로세스 모듈과의 IPC(Inter Process Communication, 프로세스 간 통신)를 위한 세션키를 생성하는 단계, 상기 제2 프로세스 모듈에 포함된 메시지 송신부가 상기 제1 프로세스 모듈의 공개키를 이용하여 상기 세션키를 암호화하여 암호화된 세션키를 생성하고, 상기 암호화된 세션키를 포함하는 메시지를 상기 제1 큐를 통해 상기 제2 프로세스 모듈로 송신하는 단계, 상기 제1 프로세스 모듈에 포함된 복호화부가 상기 제1 큐를 통해 상기 제1 프로세스 모듈로부터 수신한 상기 메시지에 포함된 상기 암호화된 세션키를 복호화하여 상기 세션키를 추출하는 단계 및 상기 큐 생성부는 상기 제2 프로세스 모듈과 데이터를 송수신하기 위한 제2 큐를 생성하는 단계를 포함한다.
본 발명의 실시 예에 따른 인증 장치 및 인증 방법에 의할 경우, 제1 프로세스와 제2 프로세스가 데이터를 안전하게 송수신할 수 있는 IPC 환경을 제공할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 의한 인증 장치의 기능 블럭도이다.
도 2와 도 3은 도 1에 도시된 인증 장치에 의해 수행되는 인증 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 발명의 대상이 되는 IPC(Inter Process Communication) 환경은 하나의 서버 프로세스가 적어도 하나의 클라이언트 프로세스와 통신을 수행하는 환경으로, 데몬(daemon) 프로세스가 구체적인 예시가 될 수 있다. 데몬 프로세스의 경우, 백그라운드에서 실행되면서 다수의 프로세스들로부터 요청을 받아 이를 처리하는 것이 일반적이다. 여기서, 데몬 프로세스를 서버 프로세스로, 요청 프로세스를 클라이언트 프로세스로 바라보면 본 발명의 대상 환경과 정확히 일치할 수 있다.
상술한 IPC 환경에서, 서버 프로세스와 클라이언트 프로세스는 데이터를 안전하게 송수신해야 하는 상황이 발생할 수 있다. 예를 들어, 클라이언트 프로세스는 자신의 고유한 키가 필요하고 이 키를 서버 프로세스를 통해 키 발급 / 통합 저장 / 통합 관리하는 환경을 가정하면 IPC를 통해 전송되는 데이터는 클라이언트 프로세스 고유의 키가 될 수 있다. 이러한 키는 정상적인 클라이언트 프로세스에게만 전송(또는 발급)되어야 한고 다른 프로세스에게 노출이 되어선 안되기 때문에 앞서 설명한 보안 요구사항들이 만족되어야 한다. 이하에서는, 이러한 환경을 토대로 보안 요구사항을 만족하는 안전한 IPC 수행 절차에 대해 설명한다.
우선 본 명세서에서 사용되는 용어에 대한 정의는 아래의 표 1과 같다.
용어 설명
Server 복수의 클라이언트 프로세스와 통신을 하는 프로세스로서 클라이언트 프로세스로부터 위탁받은 데이터를 통합 저장 및 관리한다. 클라이언트 프로세스로부터 위탁받은 데이터에 대해서 안전하게 보관해야 하며, 클라이언트 프로세스가 그 데이터를 요청할 경우 이전에 그 데이터를 위탁한 클라이언트 프로세스인지를 식별할 수 있는 정보를 갖고 있다.
Client 서버 프로세스에게 데이터의 저장 및 관리를 위탁하는 프로세스이다. 클라이언트 프로세스가 서버 프로세스에게 이전에 저장한 데이터 요청시 자신이 저장을 요청한 프로세스인지에 대한 검증이 필요하다.
PK, SK 서버 프로세스의 공개키(PK)와 개인키(SK) 쌍
PE{ } 공개키 암호 알고리즘(ex. RSA)
E{ } 대칭키 암호 알고리즘(ex. AES)
Session Key 서버 및 클라이언트 프로세스 간 통신하는 세션에서 사용되는 키, 매 세션마다 클라이언트가 랜덤으로 생성할 수 있다.
도 1은 본 발명의 일 실시 예에 의한 인증 장치의 기능 블럭도이다.
도 1을 참조하면, IPC(Inter Process Communication, 프로세스 간 통신) 장치, 프로세스 인증 장치 등으로 명명될 수도 있는 인증 장치(10)는 제1 프로세스 모듈(100)과 제2 프로세스 모듈(300)을 포함한다. 도 1에는 하나의 제1 프로세스 모듈(100)과 하나의 제2 프로세스 모듈(300)만이 도시되어 있으나, 본 발명의 권리범위가 제1 프로세스 모듈(100)과 제2 프로세스 모듈(300)의 개수에 제한되는 것은 아니며, 실시 예에 따라 복수 개의 제1 프로세스 모듈(100)과 복수 개의 제2 프로세스 모듈(300)이 구현될 수 있다.
제1 프로세스 모듈(100)은 제1 프로세스를 실행(또는 동작)시킬 수 있고, 제2 프로세스 모듈(300)은 제2 프로세스를 실행(또는 동작)시킬 수 있다. 상기 제1 프로세스는 서버 프로세스(server process)일 수 있으며, 상기 제2 프로세스는 클라이언트 프로세스(client process)일 수 있다. 또한, 상기 서버 프로세스의 일 예로 데몬(deamon) 프로세스를 들 수 있다.
제1 프로세스 모듈(100)은 큐 생성부(110), 복호화부(130) 및 암호화부(150)를 포함한다. 실시 예에 따라, 제1 프로세스 모듈(100)은 키 생성부(170)를 더 포함할 수도 있다.
큐 생성부(110)는 제2 프로세스 모듈(300) 또는 제2 프로세스로부터 메시지를 수신하기 위한 제1 큐(queue)를 생성할 수 있다. 인증 장치(10)에 포함된 복수의 제2 프로세스들(또는 복수의 제2 프로세스 모듈들) 각각은 상기 제1 큐로 메시지를 전송할 수 있지만, 상기 제1 큐로 전송된 메시지는 제1 프로세스 모듈(100)만 확인(또는 리드)할 수 있다. 이를 위해 상기 제1 큐에 대한 접근 제어가 필요하다. 본 발명에서는 상기 제1 큐의 생성 및 접근 권한 API의 수정을 통하여 상기 복수의 제2 프로세스들 또는 상기 복수의 제2 프로세스 모듈들 각각이 상기 제1 큐로 메시지를 전송할 수 있지만, 제1 프로세스 모듈(100) 또는 제1 프로세스만이 상기 제1 큐에 전송된 메시지를 확인할 수 있도록 하였다. 또한, 상기 복수의 제2 프로세스 또는 상기 복수의 제2 프로세스 모듈들 각각이 상기 제1 큐로 전송하는 메시지에는 상기 메시지를 송신한 제2 프로세스 또는 제2 프로세스 모듈을 식별할 수 있는 식별 정보를 포함될 수 있다. 이때, 악의적인 프로세스가 자신의 식별 정보를 위조하는 등의 문제를 해결하기 위하여, 상기 식별 정보는 커널(kernel) 레벨에서 자동으로 포함시키도록 하였다. 즉, 상기 식별 정보는 커널에 의해 상기 메시지에 삽입될 수 있다. 상기 식별 정보는 해당 메시지를 송신한 제2 프로세스 또는 제2 프로세스 모듈을 식별할 수 있는 정보로써, PID(Process ID), Priority, 코드 영역의 해시값 등이 될 수 있다.
또한, 큐 생성부(110)는 미리 정해진 제2 프로세스 모듈(300) 또는 미리 정해진 제2 프로세스만이 접근할 수 있는 제2 큐를 생성할 수 있다. 상기 제2 큐를 통하여 제1 프로세스 모듈(100) 또는 제1 프로세스는 제2 프로세스 모듈(300) 또는 제2 프로세스와 데이터를 주고 받을 수 있다. 여기서, 특정한 제2 프로세스(또는 특정한 제2 프로세스 모듈) 만이 큐에 접근할 수 있다는 의미는 복수의 제2 프로세스 모듈들(또는 복수의 제2 프로세스들) 중 상기 특정한 제2 프로세스 모듈(또는 상기 특정한 제2 프로세스)만이 상기 제2 큐로 데이터를 송신하거나 상기 제2 큐에 저장된 데이터를 확인(리드)할 수 있음을 의미할 수 있다.
큐 생성부(110)에 의한 큐 생성 시 해당 큐에 접근하여 메시지를 수신할 수 있는 프로세스가 무엇인지 명시할 필요가 있다. 이를 위해 PID(Process ID), Priority 등을 식별 정보로 활용할 수 있다. 큐 생성 시에는 이러한 식별 정보를 추가 인자로 활용하여 큐 구조체에 명시하도록 API를 수정하여야 한다.
큐에 접근 시에는 생성 시에 명시한 식별 정보에 기반하여 접근 제어가 적용되어야 한다. 큐에 접근하려는 프로세스의 식별 정보와 큐 구조체에 명시된 식별 정보가 동일한지를 판단할 수 있도록 큐 접근 API를 수정해야 한다.
복호화부(130)는 제2 프로세스 모듈(300)에 의해 제1 큐에 저장된 메시지에 포함된 암호화된 세션키를 복호화함으로써 세션키를 획득할 수 있다. 구체적으로, 복호화부(13)는 제1 프로세스 모듈(100)의 비밀키를 이용하여 상기 암호화된 세션키를 복호화함으로써 상기 세션키를 획득할 수 있다.
또한, 복호화부(130)는 상기 메시지에 포함된 식별 정보를 이용하여 상기 메시지를 송신한 제2 프로세스 모듈(300)을 인증할 수 있다. 즉, 상기 메시지에 포함된 상기 식별 정보는 커널에 의해 상기 메시지에 삽입되기 때문에 변조나 위조가 불가능하다. 따라서, 상기 식별 정보를 통해 악의적인 제2 프로세스 모듈(300) 또는 제2 프로세스를 탐지할 수 있고, 정당한 제2 프로세스나 정당한 제2 프로세스 모듈(300)이 아니라고 판단되는 경우, IPC를 중단할 수 있다. 이를 위해, 복호화부(130)는 상기 식별 정보를 제1 프로세스 모듈(100)에 미리 저장되어 있을 수 있는 식별 정보와 비교하여 상기 메시지를 송신한 제2 프로세스 모듈(300)을 인증할 수 있다. 또한, 세션키를 암호화하는 과정에서 이용된 공개키에 대응하는 비밀키를 가진 제1 프로세스 모듈(300)만이 상기 암호화된 세션키를 복호화할 수 있기 때문에 제1 프로세스 모듈(300)에 대한 암묵적인 인증이 수행된다고 볼 수 있다.
암호화부(150)는 제2 프로세스 또는 제2 프로세스 모듈(300)로 전송하고자 하는 데이터를 세션키를 이용하여 암호화하고 암호화된 데이터를 제2 큐로 송신할 수 있다. 암호화부(150)에 의해 상기 제2 큐에 저장된 암호화된 데이터는 제2 프로세스 또는 제2 프로세스 모듈(300)에 의해 복호화되고 상기 제2 프로세스 또는 제2 프로세스 모듈(300)에 의해 사용될 수 있다. 상기 데이터의 일 예로 상기 제2 프로세스 또는 제2 프로세스 모듈(300)이 사용할 키(key)를 들 수 있다.
키 생성부(170)는 소정의 키 생성 알고리즘을 이용하여 제1 프로세스 모듈(100)의 공개키와 비밀키 쌍을 생성할 수 있다. 키 생성부(170)에 의해 생성된 공개키는 키 생성부(170)에 의해 공개되거나 복수이 제2 프로세스들 또는 복수의 제2 프로세스 모듈들 각각으로 송신될 수 있다. 키 생성부(170)에 의해 송신되거나 공개되는 공개키는 제2 프로세스 모듈 또는 제2 프로세스에 의해 송신되는 세션키를 암호화하는 과정에서 활용될 수 있다.
실시 예에 따라, 키 생성부(170)는 상기 제2 프로세스 또는 제2 프로세스 모듈에서 사용될 키를 생성할 수도 있다. 즉, 상기 제2 프로세스 또는 제2 프로세스 모듈(300)이 키를 요청하는 메시지를 송신하는 경우, 키 생성부(170)에 의해 생성된 키가 제2 큐를 통해 상기 제2 프로세스 또는 제2 프로세스 모듈(300)로 송신될 수 있다. 이때, 키 생성부(170)에 의해 생성된 키는 세션키를 이용한 암호화 과정을 거친 후 송신되어야 한다.
제2 프로세스 모듈(300)은 세션키 생성부(310), 메시지 송신부(330), 복호화부(350)를 포함한다. 실시 예에 따라, 제2 프로세스 모듈(300)은 암호화부(370)를 더 포함할 수도 있다.
세션키 생성부(310)는 소정의 키 생성 알고리즘을 수행하여 IPC에 사용될, 즉 제1 프로세스 모듈(100)과의 통신 과정에서 사용하기 위한 세션키를 생성할 수 있다. 상기 세션키는 매 세션마다 생성될 수 있다.
메시지 송신부(330)는 메시지를 제1 프로세스 모듈(100)로 송신할 수 있다. 상기 메시지는 임의의 데이터를 상기 제1 프로세스 모듈(100)에 저장하기 위한 저장 요청 메시지, 임의의 데이터에 송신을 요청하는 송신 요청 메시지, 임의의 데이터에 대한 상기 제1 프로세스 모듈(100)의 수신을 요청하는 수신 요청 메시지 또는 상기 제2 프로세스 또는 제2 프로세스 모듈(300)에서 사용될 키를 요청하는 키 요청 메시지를 의미할 수 있다. 또한, 상기 제1 메시지는 암호화된 세션키를 포함할 수도 있다. 상기 암호화된 세션키를 생성하기 위해 메시지 송신부(330)는 소정의 공개키 암호 알고리즘(예컨대, RSA 알고리즘)을 이용하여 상기 세션키를 암호화할 수 있다. 구체적으로, 메시지 송신부(330)는 제1 프로세스 또는 제1 프로세스 모듈(100)의 공개키를 이용하여 상기 세션키를 암호화함으로써 상기 암호화된 세션키를 생성할 수 있다.
복호화부(350)는 제1 프로세스 모듈(100)로부터 송신된 데이터, 구체적으로 제1 프로세스 모듈(100)에 의해 제2 큐로 송신되어 저장된 암호화된 데이터를 복호화함으로써 데이터를 획득할 수 있다. 여기서, 상기 암호화된 데이터는 세션키를 이용한 대칭키 암호화 알고리즘을 이용하여 암호화된 데이터를 의미할 수 있다.
암호화부(370)는 제1 프로세스 모듈(100) 또는 제1 프로세스로 송신할 데이터를 암호화하고, 암호화된 데이터를 제2 큐로 송신함으로써, 상기 암호화된 데이터를 제1 프로세스 모듈(100) 또는 상기 제1 프로세스로 송신할 수 있다.
도 1에 도시된 인증 장치(10)는 컴퓨팅 장치로서, PC(personal computer), 서버, 태블릿 PC, 노트북(notebook), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현되거나, 모바일폰(mobile phone) 또는 스마트폰(smart phone) 등과 같은 핸드헬드 장치(handheld device)로 구현될 수 있다.
또한, 도 1에 도시된 인증 장치(10)의 구성들 각각은 기능 및 논리적으로 분리될 수 있음으로 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것이 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.
또한, 본 명세서에서 "모듈" 또는 "~부"라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.
도 2와 도 3은 도 1에 도시된 인증 장치에 의한 인증 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 3을 참조하면, 제1 프로세스 모듈(100)의 큐 생성부(110)는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐를 생성한다(S100, step 1). 상기 복수의 제2 프로세스 모듈들 중 어떠한 제2 프로세스 모듈이라도 상기 제1 큐로 메시지를 송신할 수 있으나, 상기 제1 큐로 전송된 메시지는 상기 제1 프로세스 모듈만이 확인할 수 있다.
제2 프로세스 모듈(300)의 세션키 생성부(310)는 제1 프로세스 모듈(100)과의 통신, 즉 프로세스 간 통신(Inter Process Communication, IPC)에 이용되는 세션키(session key)를 생성할 수 있다(S200, step 2).
또한, 제2 프로세스 모듈(300)의 메시지 송신부(330)는 암호화된 세션키를 포함하는 메시지를 제1 큐를 통해 제1 프로세스 모듈(100)로 송신할 수 있다(S300, step 3). 이때, 상기 메시지에는 상기 메시지를 송신한 제2 프로세스 모듈(300)을 식별할 수 있는 식별 정보를 포함할 수 있으며, 상기 식별 정보는 커널에 의해 상기 메시지에 삽입될 수 있다.
상기 제1 큐를 통해 상기 메시지를 수신한 제1 프로세스 모듈(100)의 복호화부(130)는 상기 메시지에 포함된 암호화된 세션키를 제1 프로세스 모듈(100)의 비밀키를 이용하여 복호화함으로써 IPC를 위한 세션키를 획득(또는 추출)할 수 있다(S400, step 4). 또한, 복호화부(130)는 상기 메시지에 포함된 식별 정보를 이용하여 상기 메시지가 정당한 제2 프로세스 모듈에 의해 송신되었는지 여부를 결정할 수 있다. 즉, 복호화부(130)는 상기 식별 정보를 이용하여 상기 제2 프로세스 모듈(300)을 인증할 수 있다. 인증이 성공적으로 수행된 경우 절차 진행을 계속하고, 인증이 성공적으로 수행되지 않은 경우 절차 진행이 중단될 수 있다.
인증이 성공적으로 수행된 경우, 제1 프로세스 모듈(100)의 큐 생성부(110)는 상기 제2 프로세스 모듈(300)과의 IPC 통신을 위한 제2 큐를 생성할 수 있다(S500, step 5).
또한, 제1 프로세스 모듈(100)의 암호화부(150)는 상기 제2 프로세스 모듈(300)로부터 송신된 메시지에 대응하는 데이터를 세션키를 이용하여 암호화하고, 암호화된 데이터를 상기 제2 큐를 통하여 상기 제2 프로세스 모듈(300)로 송신할 수 있다(S600, step 6). 상기 데이터는 상기 제2 프로세스 모듈(300)이 요청한 데이터(예컨대, 키)를 의미할 수 있다.
상기 암호화된 데이터를 수신한 제2 프로세스 모듈(300)의 복호화부(350)는 상기 세션키를 이용하여 상기 암호화된 데이터를 복호화함으로써 데이터를 획득할 수 있다(S700).
실시 예에 따라, 제2 프로세스 모듈(300)이 소정의 데이터를 제1 프로세스 모듈(100)로 송신하는 경우가 발생할 수 있다. 이 경우, 상술한 S600 단계와 S700 단계 대신에 제2 프로세스 모듈(300)의 암호화부(370)가 세션키를 이용하여 상기 소정의 데이터를 암호화하고 암호화된 데이터를 제1 프로세스 모듈(100)로 송신하는 단계와 제1 프로세스 모듈(100)의 복호화부(130)이 상기 암호화된 데이터를 복호화하는 단계를 포함할 수도 있다.
또한, IPC 통신 방법으로 명명될 수도 있는 상기 인증 방법은 제1 프로세스 모듈(100)의 키 생성부(170)가 제1 프로세스 모듈(100)의 개인키와 비밀키 쌍을 생성하는 단계 및/또는 키 생성부(170)가 제2 프로세스 모듈(100)이 요청한 키를 생성하는 단계를 더 포함할 수도 있다.
도 2에 시계열적으로 도시된 각 단계는 상충되지 않는 범위 내에서 그 선후가 변경될 수 있음은 자명하다. 또한, 본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 인증 장치
100 : 제1 프로세스 모듈
110 : 큐 생성부
130 : 복호화부
150 : 암호화부
170 : 키 생성부
300 : 제2 프로세스 모듈
310 : 세션키 생성부
330 : 메시지 송신부
350 : 복호화부
370 : 암호화부

Claims (10)

  1. 제1 프로세스를 실행하는 제1 프로세스 모듈과 제2 프로세스를 실행하는 제2 프로세스 모듈을 포함하는 인증 장치에 있어서,
    상기 제1 프로세스 모듈은,
    상기 제2 프로세스 모듈을 포함하는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐(queue)를 생성하는 큐 생성부; 및
    상기 제1 큐를 통해 상기 제2 프로세스 모듈로부터 수신한 메시지에 포함된 암호화된 세션키를 복호화하여 세션키를 추출하는 복호화부를 포함하고,
    상기 제2 프로세스 모듈은,
    상기 제1 프로세스 모듈과의 IPC(Inter Process Communication, 프로세스 간 통신)를 위한 상기 세션키를 생성하는 세션키 생성부; 및
    상기 제1 프로세스 모듈의 공개키를 이용하여 상기 세션키를 암호화하여 상기 암호화된 세션키를 생성하고, 상기 암호화된 세션키를 포함하는 상기 메시지를 상기 제1 큐를 통해 상기 제1 프로세스 모듈로 송신하는 메시지 송신부를 포함하고,
    상기 큐 생성부는 상기 제2 프로세스 모듈과 데이터를 송수신하기 위한 제2 큐를 생성하는,
    인증 장치.
  2. 제1항에 있어서,
    상기 제1 프로세스 모듈은 암호화부를 더 포함하고,
    상기 암호화부는 상기 메시지에 대응하는 데이터를 상기 세션키를 이용하여 암호화하여 암호화된 데이터를 생성하고 상기 암호화된 데이터를 상기 제2 큐를 통해 상기 제2 프로세스 모듈로 송신하는,
    인증 장치.
  3. 제2항에 있어서,
    상기 데이터는 상기 제2 프로세스 모듈의 키(key)를 포함하는,
    인증 장치.
  4. 제2항에 있어서,
    상기 제2 프로세스 모듈은 제2 복호화부를 포함하고,
    상기 제2 복호화부는 상기 세션키를 이용하여 상기 암호화된 데이터를 복호화하여 상기 데이터를 추출하는,
    인증 장치.
  5. 제1항에 있어서,
    상기 메시지는 상기 메시지를 송신한 상기 제2 프로세스 모듈을 식별할 수 있는 식별 정보를 포함하고,
    상기 식별 정보는 커널에 의해 상기 메시지에 삽입되는,
    인증 장치.
  6. 제1항에 있어서,
    상기 제1 프로세스 모듈은 상기 공개키와 비밀키를 생성하는 키 생성부를 더 포함하고,
    상기 복호화부는 상기 비밀키를 이용하여 상기 암호화된 세션키를 복호화하는,
    인증 장치.
  7. 제1항에 있어서,
    상기 제1 프로세스는 서버 프로세스(server process)이고, 상기 제2 프로세스는 클라이언트 프로세스(client process)인,
    인증 방법.
  8. 제1 프로세스를 실행하는 제1 프로세스 모듈과 제2 프로세스를 실행하는 제2 프로세스 모듈을 포함하는 인증 장치에 의해 수행되는 인증 방법에 있어서,
    상기 제1 프로세스 모듈에 포함된 큐 생성부가 상기 제2 프로세스 모듈을 포함하는 복수의 제2 프로세스 모듈들로부터 메시지를 수신하기 위한 제1 큐를 생성하는 단계;
    상기 제2 프로세스 모듈에 포함된 세션키 생성부가 상기 제1 프로세스 모듈과의 IPC(Inter Process Communication, 프로세스 간 통신)를 위한 세션키를 생성하는 단계;
    상기 제2 프로세스 모듈에 포함된 메시지 송신부가 상기 제1 프로세스 모듈의 공개키를 이용하여 상기 세션키를 암호화하여 암호화된 세션키를 생성하고, 상기 암호화된 세션키를 포함하는 메시지를 상기 제1 큐를 통해 상기 제1 프로세스 모듈로 송신하는 단계;
    상기 제1 프로세스 모듈에 포함된 복호화부가 상기 제1 큐를 통해 상기 제2 프로세스 모듈로부터 수신한 상기 메시지에 포함된 상기 암호화된 세션키를 복호화하여 상기 세션키를 추출하는 단계; 및
    상기 큐 생성부는 상기 제2 프로세스 모듈과 데이터를 송수신하기 위한 제2 큐를 생성하는 단계를 포함하는,
    인증 방법.
  9. 제8항에 있어서,
    상기 제1 프로세스는 서버 프로세스이고,
    상기 제2 프로세스는 클라이언트 프로세스이고,
    상기 인증 방법은 상기 제1 프로세스 모듈에 포함된 암호화부가 상기 메시지에 대응하는 데이터를 상기 세션키를 이용하여 암호화하여 암호화된 데이터를 생성하고 상기 암호화된 데이터를 상기 제2 큐를 통해 상기 제2 프로세스 모듈로 송신하는 단계를 더 포함하는,
    인증 방법.
  10. 제9항에 있어서,
    상기 데이터는 상기 제2 프로세스 모듈의 키(key)를 포함하고,
    상기 인증 방법은 상기 제2 프로세스 모듈에 포함된 제2 복호화부가 상기 세션키를 이용하여 상기 암호화된 데이터를 복호화하여 상기 데이터를 추출하는 단계를 더 포함하고,
    상기 메시지는 상기 메시지를 송신한 상기 제2 프로세스 모듈을 식별할 수 있는 식별 정보를 포함하고,
    상기 식별 정보는 커널에 의해 상기 메시지에 삽입되고,
    상기 제1 큐에 저장된 상기 메시지는 상기 제1 프로세스 모듈만이 리드(read)할 수 있고,
    상기 제2 큐에 저장된 상기 암호화된 데이터는 상기 복수의 제2 프로세스 모듈들 중 상기 메시지를 송신한 제2 프로세스 모듈과 상기 제1 프로세스 모듈만이 리드(read)할 수 있은,
    인증 방법.
KR1020170019176A 2017-02-13 2017-02-13 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법 KR20180094157A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170019176A KR20180094157A (ko) 2017-02-13 2017-02-13 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170019176A KR20180094157A (ko) 2017-02-13 2017-02-13 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20180094157A true KR20180094157A (ko) 2018-08-23

Family

ID=63454604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170019176A KR20180094157A (ko) 2017-02-13 2017-02-13 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20180094157A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662935B1 (ko) * 2023-02-24 2024-05-07 (주)아이링크시스템 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000004083A (ko) 1998-06-30 2000-01-25 윤종용 그래픽 사용자 인터페이스 프로그래밍 환경에서 네트워크관리 시스템 운영 방법 및 이를 위한 통신 장치
KR20020051560A (ko) 2000-12-22 2002-06-29 엘지전자 주식회사 이동통신 시스템에서의 운용자 명령 처리 방법
US20160226835A1 (en) 2015-01-29 2016-08-04 Blackrock Financial Management, Inc. Authenticating Connections and Program Identity in a Messaging System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000004083A (ko) 1998-06-30 2000-01-25 윤종용 그래픽 사용자 인터페이스 프로그래밍 환경에서 네트워크관리 시스템 운영 방법 및 이를 위한 통신 장치
KR20020051560A (ko) 2000-12-22 2002-06-29 엘지전자 주식회사 이동통신 시스템에서의 운용자 명령 처리 방법
US20160226835A1 (en) 2015-01-29 2016-08-04 Blackrock Financial Management, Inc. Authenticating Connections and Program Identity in a Messaging System

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662935B1 (ko) * 2023-02-24 2024-05-07 (주)아이링크시스템 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Similar Documents

Publication Publication Date Title
US9875368B1 (en) Remote authorization of usage of protected data in trusted execution environments
RU2756048C2 (ru) Адресация доверенной среды исполнения с использованием ключа шифрования
US10742626B2 (en) Method for key rotation
KR101641809B1 (ko) 일회용 비밀번호를 이용한 분산된 오프-라인 로그온을 위한 방법 및 시스템
US9954826B2 (en) Scalable and secure key management for cryptographic data processing
EP2905925B1 (en) System and method for remote access, Remote digital signature
JP2022507151A (ja) 安全な無線ファームウェアアップグレード
US10594479B2 (en) Method for managing smart home environment, method for joining smart home environment and method for connecting communication session with smart device
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
US9288054B2 (en) Method and apparatus for authenticating and managing application using trusted platform module
KR102510785B1 (ko) 데이터를 안전하게 전송하는 방법 및 시스템
US20170230365A1 (en) Method and system for securing electronic data exchange between an industrial programmable device and a portable programmable device
CN110505055B (zh) 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统
CN113556230B (zh) 数据安全传输方法、证书相关方法、服务端、系统及介质
CN112651037A (zh) 区块链系统的链外数据访问方法和系统
CN111316596B (zh) 具有身份验证的加密芯片
CN112822021B (zh) 一种密钥管理方法和相关装置
KR20180094157A (ko) 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법
US9135449B2 (en) Apparatus and method for managing USIM data using mobile trusted module
KR20110114990A (ko) 키보드 보안 장치 및 방법
KR20190007336A (ko) 보안채널 생성 방법 및 그 장치와 이를 이용한 보안정보의 송수신 방법 및 그 장치
CN114584299A (zh) 数据处理方法、装置、电子设备和存储介质
JP2022522555A (ja) セミトラステッドな中継者を使用したセキュアなメッセージ受け渡し
JP2022091498A (ja) 暗号通信システム、暗号通信方法および暗号通信装置
JP2018006896A (ja) 端末登録方法、及び端末登録システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application