KR20220153917A - Secure instant messaging method and apparatus thereof - Google Patents

Secure instant messaging method and apparatus thereof Download PDF

Info

Publication number
KR20220153917A
KR20220153917A KR1020210061515A KR20210061515A KR20220153917A KR 20220153917 A KR20220153917 A KR 20220153917A KR 1020210061515 A KR1020210061515 A KR 1020210061515A KR 20210061515 A KR20210061515 A KR 20210061515A KR 20220153917 A KR20220153917 A KR 20220153917A
Authority
KR
South Korea
Prior art keywords
chat room
file
client
key
instant messaging
Prior art date
Application number
KR1020210061515A
Other languages
Korean (ko)
Other versions
KR102507864B1 (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 KR1020210061515A priority Critical patent/KR102507864B1/en
Publication of KR20220153917A publication Critical patent/KR20220153917A/en
Application granted granted Critical
Publication of KR102507864B1 publication Critical patent/KR102507864B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A security instant messaging method and a device thereof are disclosed. According to an embodiment, the security instant messaging method is performed by an instant messaging server. The messaging method comprises the following steps of: storing a file transmitted through a chat room generated in a messaging server in a file server; receiving a first ciphertext in which a storage path of the file is encrypted with an encryption key of a chat room from a client that transmitted the file; storing the first ciphertext to correspond to the chat room; and transmitting a message including the first ciphertext to a client participating in the chat room through the chat room.

Description

보안 인스턴트 메시징 방법 및 장치{SECURE INSTANT MESSAGING METHOD AND APPARATUS THEREOF}Secure instant messaging method and apparatus {SECURE INSTANT MESSAGING METHOD AND APPARATUS THEREOF}

아래 실시예들은 보안 인스턴트 메시징 방법 및 장치에 관한 것으로, 구체적으로는 종단간 암호화 방식을 이용한 보안 인스턴트 메시징 방법 및 장치에 관한 것이다.Embodiments below relate to methods and devices for secure instant messaging, and specifically to methods and devices for secure instant messaging using end-to-end encryption.

인스턴트 메시징(instant messaging) 서비스 또는 인스턴트 메신저는 두 명 이상의 사용자가 네트워크를 통해 실시간으로 텍스트, 사진, 음성 등을 송수신하는 메신저 서비스이다. 인스턴트 메시징 서비스는 사용자 간의 데이터 통신을 위해 메시징 서버를 경유하게 되므로, 통신 데이터가 서버에 저장될 수 있다. 이는 서버에 대한 해킹 등으로 인한 데이터 유출 및 변조가 가능하다는 보안 상의 취약점을 가진다. 이에, 인스턴트 메시징 서비스를 이용한 데이터 통신 과정에서 데이터 유출 방지 등 보안을 위한 암호화 기술이 적용되어야 한다. An instant messaging service or instant messenger is a messenger service in which two or more users transmit and receive text, pictures, voices, etc. in real time through a network. Since the instant messaging service passes through a messaging server for data communication between users, communication data may be stored in the server. This has a security vulnerability in that data leakage and alteration are possible due to hacking of the server. Accordingly, an encryption technology for security, such as data leakage prevention, should be applied in a data communication process using an instant messaging service.

종단간 암호화(End to End Encryption; E2EE)란 메시지를 보내는 곳부터 받는 곳까지 모든 과정에서 암호화된 상태로 메시지를 전달하는 암호화 방식으로, 단대단 암호화라고도 한다. 종단간 암호화를 이용하면, 메시지를 전송하는 사람과 수신하는 사람만 그 내용을 볼 수 있고, 중간에 있는 서버 등은 내용을 볼 수 없어, 인스턴트 메시징 서비스를 통해 송수신되는 데이터를 보호하기 위한 기술로 개발되고 있다.End to End Encryption (E2EE) is an encryption method that transmits a message in an encrypted state in all processes from the sender to the receiver. It is also called end-to-end encryption. When end-to-end encryption is used, only the sender and receiver of the message can see the contents, and the server in the middle cannot see the contents, so it is a technology for protecting data transmitted and received through instant messaging services. are being developed

아래 실시 예들을 통해 인스턴트 메시징 서비스에서 종단간 암호화 방식을 이용하여 파일을 송수신할 수 있는 기술을 제공할 수 있다. 보다 구체적으로, 파일 자체를 암호화지 않고 파일의 저장 경로를 암호화하는 방식으로 인스턴트 메시징 서버를 통해 파일을 송수신 및 저장할 수 있는 기술을 제공할 수 있다.Through the following embodiments, a technology capable of transmitting and receiving a file using an end-to-end encryption method in an instant messaging service can be provided. More specifically, a technology capable of transmitting, receiving, and storing a file through an instant messaging server in a manner of encrypting a storage path of a file without encrypting the file itself may be provided.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical challenges are not limited to the above-described technical challenges, and other technical challenges may exist.

일 측에 따른 인스턴트 메시징 서버에서 수행되는 보안 인스턴트 메시징 방법은 상기 메시징 서버에서 생성된 채팅방을 통해 전송된 파일을 파일 서버에 저장하는 단계; 상기 파일을 전송한 클라이언트로부터 상기 파일의 저장 경로를 상기 채팅방의 암호화 키로 암호화한 제1 암호문(ciphertext)을 수신하는 단계; 상기 채팅방에 대응하여 상기 제1 암호문을 저장하는 단계; 및 상기 채팅방을 통해 상기 채팅방에 참여 중인 클라이언트에 상기 제1 암호문을 포함하는 메시지를 전송하는 단계를 포함한다.A secure instant messaging method performed in an instant messaging server according to one aspect includes storing a file transmitted through a chat room created in the messaging server in a file server; Receiving a first ciphertext obtained by encrypting a storage path of the file with an encryption key of the chat room from a client transmitting the file; storing the first ciphertext in response to the chat room; and transmitting a message including the first cipher text to a client participating in the chat room through the chat room.

상기 제1 암호문을 수신하는 단계는 상기 파일 서버로부터 상기 파일의 저장 경로를 수신하는 단계; 상기 파일의 저장 경로를 상기 파일을 전송한 클라이언트에 전송하는 단계; 및 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는 단계를 포함할 수 있다.The receiving of the first cipher text may include receiving a storage path of the file from the file server; transmitting the storage path of the file to the client that transmitted the file; and receiving the first cipher text from a client that has transmitted the file.

상기 제1 암호문을 수신하는 단계는 상기 파일 서버로부터 상기 파일의 저장을 확인하는 신호를 수신하는 단계; 상기 신호를 상기 파일을 전송한 클라이언트에 전송하는 단계; 및 상기 신호에 기초하여, 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는 단계를 포함할 수 있다.The receiving of the first cipher text may include receiving a signal confirming storage of the file from the file server; transmitting the signal to the client that transmitted the file; and receiving the first cipher text from a client that has transmitted the file, based on the signal.

상기 파일의 저장을 확인하는 신호는 상기 파일 서버에서 상기 파일을 식별하기 위한 정보를 포함할 수 있다.The signal for confirming storage of the file may include information for identifying the file in the file server.

상기 제1 암호문은 상기 채팅방의 복호화 키로 복호화될 수 있다.The first cipher text may be decrypted with a decryption key of the chat room.

상기 채팅방의 복호화 키는 상기 채팅방에 참여 중인 클라이언트에 저장될 수 있다.The decryption key of the chat room may be stored in a client participating in the chat room.

상기 채팅방의 암호화 키 및 상기 채팅방의 복호화 키는 상기 채팅방에 대응하는 대칭 키로 생성될 수 있다.The chat room encryption key and the chat room decryption key may be generated with a symmetric key corresponding to the chat room.

상기 보안 인스턴트 메시징 방법은 상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 전송 순서에 따라 저장하는 단계; 및 상기 채팅방에 접속한 클라이언트에 상기 채팅방에 대응하여 저장된 상기 제1 암호문 및 상기 제2 암호문을 전송하는 단계를 더 포함할 수 있다.The secure instant messaging method may include storing the first cipher text and a second cipher text obtained by encrypting a text message transmitted through the chat room with an encryption key of the chat room, in accordance with a transmission order, in correspondence with the chat room; and transmitting the first encrypted text and the second encrypted text stored in correspondence to the chat room to a client accessing the chat room.

상기 채팅방에 참여 중인 클라이언트는 상기 메시징 서버에서 제공하는 인스턴트 메시징 서비스에 가입된 사용자 계정에 로그인된 사용자 단말을 포함할 수 있다.A client participating in the chat room may include a user terminal logged into a user account subscribed to an instant messaging service provided by the messaging server.

상기 파일 서버는 상기 채팅방을 통해 전송된 파일을 저장하는 데이터베이스를 포함할 수 있다.The file server may include a database for storing files transmitted through the chat room.

일 측에 따른 클라이언트에서 수행되는 보안 인스턴트 메시징 방법은 보안 인스턴트 메시징 서비스를 제공하는 메시징 서버로부터 상기 클라이언트에 대응하는 유저 퍼블릭 키(public key)로 암호화된 채팅방의 키를 수신하는 단계; 상기 암호화된 채팅방의 키를 상기 클라이언트에 저장된 유저 프라이빗 키(private key)로 복호화하는 단계; 상기 메시징 서버로부터 상기 채팅방을 통해 암호화된 파일의 저장 경로를 포함하는 메시지를 수신하는 단계; 상기 암호화된 파일의 저장 경로를 상기 채팅방의 키로 복호화하는 단계; 및 상기 복호화된 파일의 저장 경로에 기초하여, 파일 서버로부터 상기 파일을 수신하는 단계를 포함할 수 있다.A secure instant messaging method performed by a client according to one aspect includes receiving a chat room key encrypted with a user public key corresponding to the client from a messaging server providing a secure instant messaging service; Decrypting the encrypted chat room key with a user private key stored in the client; Receiving a message including a storage path of an encrypted file through the chat room from the messaging server; Decrypting the storage path of the encrypted file with the key of the chat room; and receiving the file from a file server based on the storage path of the decrypted file.

상기 채팅방의 키는 상기 채팅방에 대응하여 생성된 대칭 키를 포함할 수 있다.The key of the chat room may include a symmetric key generated corresponding to the chat room.

상기 암호화된 파일의 저장 경로는 상기 파일의 저장 경로를 상기 채팅방의 키로 암호화한 제1 암호문을 포함할 수 있다.The storage path of the encrypted file may include a first ciphertext obtained by encrypting the storage path of the file with a key of the chat room.

일 측에 따른 인스턴트 메시징 서버는 생성된 채팅방을 통해 전송된 파일을 파일 서버에 저장하고, 상기 파일을 전송한 클라이언트로부터 상기 파일의 저장 경로를 상기 채팅방의 암호화 키로 암호화한 제1 암호문(ciphertext)을 수신하고, 상기 채팅방에 대응하여 상기 제1 암호문을 저장하고, 상기 채팅방을 통해 상기 채팅방에 참여 중인 클라이언트에 상기 제1 암호문을 포함하는 메시지를 전송하는, 적어도 하나의 프로세서를 포함한다.An instant messaging server according to one side stores a file transmitted through a chat room in a file server, and receives a first ciphertext obtained by encrypting a storage path of the file with an encryption key of the chat room from a client that has transmitted the file. Receives, stores the first cipher text corresponding to the chat room, and transmits a message including the first cipher text to a client participating in the chat room through the chat room, and at least one processor.

상기 프로세서는, 상기 제1 암호문을 수신함에 있어서, 상기 파일 서버로부터 상기 파일의 저장 경로를 수신하고, 상기 파일의 저장 경로를 상기 파일을 전송한 클라이언트에 전송하며, 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신할 수 있다.In receiving the first cipher text, the processor receives a storage path of the file from the file server, transmits the storage path of the file to a client that has transmitted the file, and transmits the storage path of the file from the client that has transmitted the file. A first cipher text may be received.

상기 프로세서는, 상기 제1 암호문을 수신함에 있어서, 상기 파일 서버로부터 상기 파일의 저장을 확인하는 신호를 수신하고, 상기 신호를 상기 파일을 전송한 클라이언트에 전송하며, 상기 신호에 기초하여, 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신할 수 있다.In receiving the first ciphertext, the processor receives a signal confirming storage of the file from the file server, transmits the signal to a client that has transmitted the file, and based on the signal, the file The first ciphertext may be received from the client that has transmitted the .

상기 인스턴트 메시징 서버는 상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 저장하는 메모리를 더 포함할 수 있다.The instant messaging server may further include a memory for storing the first cipher text and a second cipher text obtained by encrypting a text message transmitted through the chat room with an encryption key of the chat room, in correspondence with the chat room.

상기 프로세서는, 상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 전송 순서에 따라 상기 메모리에 저장하고, 상기 채팅방에 접속한 클라이언트에 상기 채팅방에 대응하여 저장된 상기 제1 암호문 및 상기 제2 암호문을 전송할 수 있다.The processor, corresponding to the chat room, stores the first cipher text and the second cipher text obtained by encrypting the text message transmitted through the chat room with the encryption key of the chat room in the memory according to the order of transmission, and accesses the chat room. The first cipher text and the second cipher text stored in correspondence to the chat room may be transmitted to the client.

일 측에 따른 클라이언트는 보안 인스턴트 메시징 서비스를 제공하는 메시징 서버로부터, 대응하는 유저 퍼블릭 키(public key)로 암호화된 채팅방의 키를 수신하고, 상기 암호화된 채팅방의 키를 유저 프라이빗 키(private key)로 복호화하고, 상기 메시징 서버로부터 상기 채팅방을 통해 암호화된 파일의 저장 경로를 포함하는 메시지를 수신하고, 상기 암호화된 파일의 저장 경로를 상기 채팅방의 키로 복호화하며, 상기 복호화된 파일의 저장 경로에 기초하여, 파일 서버로부터 상기 파일을 수신하는, 적어도 하나의 프로세서를 포함한다.A client according to one side receives a chat room key encrypted with a corresponding user public key from a messaging server providing a secure instant messaging service, and converts the encrypted chat room key into a user private key , and receives a message including a storage path of an encrypted file through the chat room from the messaging server, decrypts the storage path of the encrypted file with a key of the chat room, and based on the storage path of the decrypted file. and at least one processor for receiving the file from the file server.

상기 클라이언트는 로그인된 사용자 계정에 대응하는 상기 유저 프라이빗 키를 저장하는 메모리를 더 포함한다.The client further includes a memory for storing the user private key corresponding to the logged-in user account.

상기 채팅방의 키는 상기 채팅방에 대응하여 생성된 대칭 키를 포함할 수 있다.The key of the chat room may include a symmetric key generated corresponding to the chat room.

상기 암호화된 파일의 저장 경로는 상기 파일의 저장 경로를 상기 채팅방의 키로 암호화한 제1 암호문을 포함할 수 있다.The storage path of the encrypted file may include a first ciphertext obtained by encrypting the storage path of the file with a key of the chat room.

아래 실시 예들은 인스턴트 메시징 서버를 통해 공유되는 파일의 보안을 강화할 수 있으며, 보안을 위한 암호화의 연산 시간 및 저장되는 데이터의 양을 감소시킬 수 있는 종단간 암호화 방식을 이용한 인스턴트 메시징 서비스를 제공할 수 있다.The following embodiments can enhance the security of files shared through an instant messaging server, and provide an instant messaging service using an end-to-end encryption method that can reduce the computation time of encryption for security and the amount of stored data. have.

도 1은 일 실시 예에 따른 보안 인스턴트 메시징 시스템 구성의 예시도이다.
도 2는 일 실시 예에 따른 인스턴트 메시징 서버에 저장되는 데이터를 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 인스턴트 메시징 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 4 및 도 5는 일 실시 예에 따른 보안 인스턴트 메시징 방법의 구체적인 동작을 설명하기 위한 도면들이다.
도 6은 일 실시 예에 따른 클라이언트에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 7은 일 실시예에 따른 보안 인스턴트 메시징 시스템의 하드웨어 구성의 예시도이다.
1 is an exemplary diagram of a secure instant messaging system configuration according to an embodiment.
2 is a diagram for explaining data stored in an instant messaging server according to an exemplary embodiment.
3 is an operation flowchart of a secure instant messaging method performed in an instant messaging server according to an embodiment.
4 and 5 are diagrams for explaining specific operations of a secure instant messaging method according to an embodiment.
6 is an operation flowchart of a secure instant messaging method performed in a client according to an embodiment.
7 is an exemplary diagram of a hardware configuration of a secure instant messaging system according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 일 실시 예에 따른 보안 인스턴트 메시징 시스템 구성의 예시도이다.1 is an exemplary diagram of a secure instant messaging system configuration according to an embodiment.

도 1을 참조하면, 일실시예에 따른 보안 인스턴트 메시징 시스템은 클라이언트(110), 인스턴트 메시징 서버(120) 및 파일 서버(130)를 포함할 수 있다. 도 1에 도시된 시스템의 구성은 발명의 설명을 위한 일 예로 시스템에 포함되는 클라이언트의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.Referring to FIG. 1 , a secure instant messaging system according to an embodiment may include a client 110 , an instant messaging server 120 and a file server 130 . The configuration of the system shown in FIG. 1 is an example for explanation of the invention, and the number of clients or servers included in the system is not limited as shown in FIG. 1 .

일 실시 예에 따른 보안 인스턴트 메시징 시스템은 보안 인스턴트 메시징 서비스를 제공하는 시스템으로, 서비스 이용자 간의 텍스트 메시지 및 문서, 사진, 동영상, 음향의 데이터를 포함하는 파일과 같은 데이터를 송수신할 수 있는 서비스를 제공할 수 있다. 이하에서, 일실시예에 따른 보안 인스턴트 메시징 시스템은 ‘시스템’으로 간략하게 지칭될 수 있다.A secure instant messaging system according to an embodiment is a system that provides a secure instant messaging service, and provides a service capable of transmitting/receiving data such as text messages between service users and files including documents, photos, videos, and sound data. can do. Hereinafter, a secure instant messaging system according to an embodiment may be briefly referred to as a 'system'.

일 실시 예에 따르면, 보안 인스턴트 메시징 서비스는 보안이 강화된 인스턴트 메시징 서비스로, 종단간 암호화(end-to-end encryption) 방식으로 데이터를 암호화(encryption)하여 송수신하는 인스턴트 메시징 서비스를 포함할 수 있다. 인스턴트 메시징 서비스는 사용자가 네트워크를 통해 실시간으로 텍스트 메시지 및 문서, 사진, 동영상, 음향의 데이터를 포함하는 파일과 같은 데이터를 송수신하는 메신저 서비스이다. 이하에서, 보안 인스턴트 메시징 서비스는 간략하게 '서비스'로 지칭될 수 있다.According to an embodiment, the secure instant messaging service is a security-enhanced instant messaging service, and may include an instant messaging service that encrypts and transmits/receives data using an end-to-end encryption method. . The instant messaging service is a messenger service that allows users to transmit and receive data such as text messages and files including documents, pictures, videos, and sound data in real time through a network. Hereinafter, the secure instant messaging service may be simply referred to as 'service'.

일 실시 예에 따른 인스턴트 메시징 서버(120)는 클라이언트(110)에 인스턴트 메시징 서비스를 제공하는 서버를 포함할 수 있다. 일 예로, 인스턴트 메시징 서버(120)는 클라이언트(110)에 설치된 서비스와 연동된 어플리케이션을 통해 사용자에게 메신저 서비스를 제공할 수 있다. 인스턴트 메시징 서버(120)는 사용자의 인스턴트 메시징 서비스의 가입 절차에 따라 사용자 별로 사용자 계정을 생성할 수 있다. 이하에서, 인스턴트 메시징 서버(120)는 간략하게 '메시징 서버'로 지칭될 수 있다.The instant messaging server 120 according to an embodiment may include a server providing an instant messaging service to the client 110 . For example, the instant messaging server 120 may provide a messenger service to a user through an application linked to a service installed in the client 110 . The instant messaging server 120 may create a user account for each user according to a user's instant messaging service subscription procedure. Hereinafter, the instant messaging server 120 may be simply referred to as a 'messaging server'.

일 실시 예에 따른 클라이언트(110)는 메시징 서버(120)에서 제공하는 인스턴트 메시징 서비스에 가입된 사용자 계정에 로그인된 사용자 단말을 포함할 수 있다.The client 110 according to an embodiment may include a user terminal logged in to a user account subscribed to an instant messaging service provided by the messaging server 120 .

일 실시 예에 따르면, 메시징 서버(120)는 사용자가 지정한 상대방과 텍스트, 파일과 같은 데이터를 메시지의 형태로 송수신할 수 있는 채팅방을 제공할 수 있으며, 채팅방을 통해 송수신된 데이터를 표시하여 사용자에게 메시지를 제공할 수 있다. 하나의 채팅방에는 하나 이상의 사용자의 계정이 포함될 수 있으며, 단수의 사용자의 계정만 포함하여 자신과의 채팅방을 생성하여 메시지를 송수신하는 것도 가능하다. 채팅방에 포함된 사용자(들)의 계정(들)은 채팅방을 통해 송수신된 텍스트 메시지의 내용 및 파일을 공유할 수 있다.According to an embodiment, the messaging server 120 may provide a chat room in which data such as text and files can be transmitted and received in the form of a message with a user designated counterpart, and display the data transmitted and received through the chat room to the user. message can be provided. One chat room may include one or more user accounts, and it is also possible to send and receive messages by creating a chat room with only one user account. The account(s) of the user(s) included in the chat room may share contents and files of text messages transmitted and received through the chat room.

일 실시 예에 따른 메시징 서버(120)는 보안 인스턴트 메시징 서비스에 관한 데이터를 저장할 수 있다. 보안 인스턴트 메시징 서비스에 관한 데이터는 보안 인스턴트 메시징 서비스 제공을 위해 서버에서 관리하는 데이터로, 예를 들어, 보안 인스턴트 메시징 서비스에 가입된 사용자 계정들의 식별 정보, 사용자 계정에 대응하는 채팅방 정보, 채팅방을 통해 송수신된 텍스트 메시지 정보를 포함할 수 있다. 메시징 서버(120)는 보안 인스턴트 메시징 서비스에 관한 데이터를 저장하기 위한 데이터베이스를 포함할 수 있다. 이하에서, 메시징 서버(120)에 포함된 데이터베이스는 '제1 데이터베이스'로 지칭될 수 있다.The messaging server 120 according to an embodiment may store data related to a secure instant messaging service. Data on the secure instant messaging service is data managed by the server to provide the secure instant messaging service, for example, identification information of user accounts subscribed to the secure instant messaging service, chat room information corresponding to the user account, and chat room information. It may include transmitted/received text message information. Messaging server 120 may include a database for storing data regarding secure instant messaging services. Hereinafter, the database included in the messaging server 120 may be referred to as a 'first database'.

일 실시 예에 따른 파일 서버(130)는 시스템에서 채팅방을 통해 전송된 파일을 저장하는 메모리 또는 데이터베이스를 포함할 수 있다. 메시징 서버(120)는 파일 서버(130)에 채팅방을 통해 전송된 파일의 저장을 요청할 수 있다. 파일 서버(130)에 저장된 파일은 파일 서버(130) 내 파일의 저장 경로를 통해 액세스될 수 있다. 이하에서, 파일 서버(130)에 포함된 데이터베이스는 '제2 데이터베이스'로 지칭될 수 있다.The file server 130 according to an embodiment may include a memory or a database for storing files transmitted through a chat room in the system. The messaging server 120 may request the file server 130 to store the file transmitted through the chat room. A file stored in the file server 130 may be accessed through a file storage path in the file server 130 . Hereinafter, the database included in the file server 130 may be referred to as a 'second database'.

일 실시 예에 따른 클라리언트(110) 및 메시징 서버(120)의 구체적인 하드웨어 구성은 이하의 도 7을 통해 상술한다.A specific hardware configuration of the client 110 and the messaging server 120 according to an embodiment will be described in detail with reference to FIG. 7 below.

일 실시 예에 따르면, 시스템에서 송수신되는 데이터 및/또는 시스템에 저장되는 데이터는 보안을 위해 암호화된 데이터에 해당할 수 있다. 보다 구체적으로, 보안 인스턴트 메시징 시스템을 통해 송수신되는 데이터 및/또는 메시징 서버(120)에 저장되는 데이터는 지정된 수신자가 해독할 수 있도록 종단간 암호화 방식으로 암호화될 수 있다. 지정된 수신자는 다양한 방식으로 데이터를 수신하는 대상으로 지정된 사용자를 포함할 수 있으며, 예를 들어, 발신자에 의해 수신자로 지정될 수도 있고, 특정 그룹에 속하여 자동으로 수신자로 지정될 수 있으며, 보안 인스턴트 메시징 서비스에서 데이터가 발신된 채팅방에 포함된 사용자(들)이 수신자로 지정될 수 있다. 시스템에서 메시징 서버(120)를 통해 송수신되는 데이터 및/또는 메시징 서버(120)에 저장되는 데이터는 종단간 암호화 방식으로 암호화된 데이터이므로, 메시징 서버(120) 및 메시징 서버(120)에 접근한 제3자는 원래의 데이터를 참조하거나 위/변조할 수 없어 보안이 강화된 보안 인스턴트 메시징 서비스가 제공될 수 있다.According to an embodiment, data transmitted and received by the system and/or data stored in the system may correspond to data encrypted for security. More specifically, data transmitted and received through the secure instant messaging system and/or data stored in the messaging server 120 may be encrypted using an end-to-end encryption method so that a designated recipient can decrypt it. Designated recipients may include users who are designated as targets for receiving data in various ways, for example, may be designated as recipients by the sender, may be automatically designated as recipients belonging to a specific group, and secure instant messaging In the service, a user(s) included in a chat room in which data is transmitted may be designated as a receiver. Since the data transmitted and received by the system through the messaging server 120 and/or the data stored in the messaging server 120 are data encrypted by the end-to-end encryption method, access to the messaging server 120 and the messaging server 120 is restricted. A secure instant messaging service with enhanced security can be provided as a third party cannot refer to or forge/falsify the original data.

상술한 바와 같이, 메시징 서버(120)는 보안 인스턴트 메시징 서비스에 관한 데이터를 저장하기 위한 제1 데이터베이스를 포함할 수 있다. 일 예로, 도 2를 참조하면, 제1 데이터베이스(200)는 보안 인스턴트 메시징 서비스에 가입된 사용자 계정(User_x)에 대응하여, 해당 사용자 계정의 유저 퍼블릭 키(user public key)(Ue x-) 및 해당 사용자 계정이 참여 중인 채팅방의 목록(Chat_1, Chat_2, .., Chat_n)을 저장할 수 있다. As described above, the messaging server 120 may include a first database for storing data related to secure instant messaging services. For example, referring to FIG. 2 , the first database 200 corresponds to a user account (User_x) subscribed to the secure instant messaging service, and generates a user public key (U e x- ) of the corresponding user account. and a list of chat rooms (Chat_1, Chat_2, .., Chat_n) in which the corresponding user account is participating may be stored.

보다 구체적으로, 제1 데이터베이스는 보안 인스턴트 메시징 서비스에 가입된 사용자 계정 각각에 대응하여, 해당 사용자 계정의 유저 퍼블릭 키를 저장할 수 있다. 제1 데이터베이스는 보안 인스턴트 메시징 서비스에 가입된 복수의 사용자 계정들에 대응하는 유저 퍼블릭 키들을 저장할 수 있으며, 유저 퍼블릭 키들 각각은 사용자 계정에 대응하여 저장될 수 있다. 사용자의 퍼블릭 키는 사용자의 계정으로 인덱싱되어 제1 데이터베이스에 저장될 수 있다.More specifically, the first database may store a user public key of a corresponding user account corresponding to each user account subscribed to the secure instant messaging service. The first database may store user public keys corresponding to a plurality of user accounts subscribed to the secure instant messaging service, and each of the user public keys may be stored corresponding to a user account. The user's public key may be indexed to the user's account and stored in the first database.

일 실시 예에 따른 유저 퍼블릭 키는 사용자 계정에 대응하여 클라이언트(110)인 해당 사용자 계정으로 로그인된 사용자 단말에서 생성될 수 있으며, 유저 퍼블릭 키로 암호화한 데이터를 복호화(decryption)할 수 있는 유저 프라이빗 키(user private key)가 함께 생성될 수 있다. 이하에서, 사용자 계정에 대응하는 유저 퍼블릭 키 및 이에 대응하는 유저 프라이빗 키의 쌍은 유저 키(user key)로 지칭될 수 있다. 다시 말해, 사용자 계정에 대응하는 유저 키는 비대칭키로, 암호화 키인 유저 퍼블릭 키 및 복호화 키인 유저 프라이빗 키를 포함할 수 있다.A user public key according to an embodiment may be generated in a user terminal logged in with a corresponding user account, which is the client 110, in correspondence with a user account, and a user private key capable of decrypting data encrypted with the user public key. (user private key) can be created together. Hereinafter, a pair of a user public key corresponding to a user account and a user private key corresponding thereto may be referred to as a user key. In other words, the user key corresponding to the user account is an asymmetric key and may include a user public key as an encryption key and a user private key as a decryption key.

일 실시 예에 따르면, 사용자 단말은 사용자 계정에 대응하는 유저 키를 생성하여, 유저 키 중 유저 프라이빗 키를 사용자 단말에 저장하고, 유저 키 중 유저 퍼블릭 키를 메시징 서버(120)에 전송할 수 있다. 메시징 서버(120)는 사용자 단말로부터 유저 퍼블릭 키를 수신하여, 제1 데이터베이스에 저장할 수 있다. 다시 말해, 사용자 계정에 대응하는 유저 키 중 유저 퍼블릭 키는 메시징 서버(120)에 의해 제1 데이터베이스에 저장되고, 유저 키 중 유저 프라이빗 키는 사용자 단말에 저장될 수 있다. 메시징 서버(120)는 유저 키 중 유저 프라이빗 키를 보유하고 있지 않으므로, 메시징 서버(120)에서 사용자 계정에 대응하는 유저 퍼블릭 키로 암호화된 데이터를 복호화할 수 없다. 유저 키 중 유저 퍼블릭 키는 사용자 단말에도 저장될 수 있다.According to an embodiment, the user terminal may generate a user key corresponding to a user account, store a user private key among user keys in the user terminal, and transmit a user public key among user keys to the messaging server 120 . The messaging server 120 may receive the user public key from the user terminal and store it in the first database. In other words, a user public key among user keys corresponding to a user account may be stored in the first database by the messaging server 120, and a user private key among user keys may be stored in the user terminal. Since the messaging server 120 does not hold a user private key among user keys, the messaging server 120 cannot decrypt data encrypted with a user public key corresponding to a user account. Among user keys, a user public key may be stored in a user terminal.

또 일 예로, 도 2를 참조하면, 제1 데이터베이스(200)는 보안 인스턴트 메시징 서비스를 통해 생성된 채팅방(Chat_x)에 대응하여, 해당 채팅방의 복호화 키를 해당 채팅방에 참여 중인 사용자 계정 각각의 유저 퍼블릭 키로 암호화한 암호문(ciphertext)들(210)을 저장할 수 있다. 도 2에서 Ue k는 사용자 계정 k의 유저 퍼블릭 키, Ce x은 채팅방 Chat_x의 암호화 키, Cd x은 채팅방 Chat_x의 복호화 키를 의미한다. Ue k (Cd x)는 사용자 계정 k의 유저 퍼블릭 키로 채팅방 Chat_x의 복호화 키를 암호화한 암호문으로, 암호문들(210)은 채팅방 Chat_x에 참여중인 사용자 계정 1 내지 M 각각의 유저 퍼블릭 키로 채팅방 Chat_x의 복호화 키를 암호화한 암호문들을 포함할 수 있다.As another example, referring to FIG. 2 , the first database 200 corresponds to a chat room (Chat_x) created through a secure instant messaging service, and converts the decryption key of the chat room to the user public of each user account participating in the chat room. Ciphertexts 210 encrypted with the key may be stored. In FIG. 2, U e k denotes a user public key of user account k, C e x denotes an encryption key of chat room Chat_x, and C d x denotes a decryption key of chat room Chat_x. U e k (C d x ) is a cipher text obtained by encrypting the decryption key of the chat room Chat_x with the user public key of the user account k, and the cipher texts 210 are the decryption keys of the chat room Chat_x with the user public keys of each of the user accounts 1 to M participating in the chat room Chat_x. It may include ciphertexts that have been encrypted.

예를 들어, 채팅방의 복호화 키를 해당 채팅방에 참여 중인 사용자 계정 각각의 유저 퍼블릭 키로 암호화한 암호문들은 해당 채팅방의 생성을 요청한 클라이언트로부터 생성되어 메시징 서버에 저장될 수 있다. 채팅방의 생성을 요청한 클라이언트는 채팅방 참여자를 지정할 수 있으며, 채팅방 참여자에 대응하는 사용자 계정의 유저 퍼블릭 키를 메시징 서버로부터 획득할 수 있다. 채팅방의 생성을 요청한 클라이언트는 획득된 채팅방 참여자에 대응하는 각각의 사용자 계정의 유저 퍼블릭 키를 이용하여 채팅방의 복호화 키를 암호화한 암호문을 생성하여, 이를 메시징 서버에 저장되도록 전송할 수 있다.For example, cipher texts obtained by encrypting a chat room decryption key with a user public key of each user account participating in the chat room may be generated from a client requesting creation of the chat room and stored in the messaging server. A client requesting creation of a chat room may designate a chat room participant and obtain a user public key of a user account corresponding to the chat room participant from a messaging server. A client requesting creation of a chat room may generate a ciphertext by encrypting a decryption key of the chat room using the obtained user public key of each user account corresponding to the chat room participant, and transmit the ciphertext to be stored in the messaging server.

또 예를 들어, 채팅방의 복호화 키를 해당 채팅방에 참여 중인 사용자 계정의 유저 퍼블릭 키로 암호화한 암호문은 해당 채팅방의 참여를 요청한 클라이언트로부터 생성되어 메시징 서버에 저장될 수 있다. 클라이언트에서 생성된 채팅방에 참여를 요청할 수 있는 경우, 채팅방의 참여를 요청한 클라이언트는 채팅방의 복호화 키를 획득하고, 해당 복호화 키를 자신의 유저 퍼블릭 키로 암호화한 암호문을 메시징 서버에 저장되도록 전송할 수 있다. 채팅방의 복호화 키가 채팅방의 참여를 요청한 클라이언트에 전달되는 과정에서, 채팅방의 복호화 키는 채팅방의 참여를 요청한 클라이언트가 복호화 가능한 암호화 알고리즘으로 암호화되어 전달될 수 있다.Also, for example, a cipher text obtained by encrypting a chat room decryption key with a user public key of a user account participating in the chat room may be generated from a client requesting participation in the chat room and stored in the messaging server. When participation in a chat room created by a client can be requested, the client requesting participation in the chat room obtains a decryption key of the chat room, and transmits ciphertext obtained by encrypting the decryption key with its own user public key to be stored in the messaging server. In the course of transmitting the chat room decryption key to the client requesting participation in the chat room, the chat room decryption key may be encrypted with an encryption algorithm decryptable by the client requesting chat room participation and then delivered.

일 실시 예에 따르면, 채팅방의 암호화 키 및 복호화 키는 서로 다른 비 대칭 키에 해당할 수도 있고, 서로 동일한 대칭 키에 해당할 수도 있다. 예를 들어, 채팅방의 암호화 키 및 복호화 키가 대칭 키인 경우, 도 2에서 Cd x 및 Ce x는 서로 동일한 키에 해당할 수 있다. 일 실시 예에 따르면, 메시징 서버는 채팅방의 복호화 키가 해당 채팅방에 참여 중인 사용자 계정의 유저 퍼블릭 키로 암호화된 암호문을 저장할 수도 있고, 혹은 채팅방의 대칭 키가 해당 채팅방에 참여 중인 사용자 계정의 유저 퍼블릭 키로 암호화된 암호문을 저장할 수도 있다. 이하에서, 채팅방의 암호화 키 및 복호화 키는 서로 동일한 대칭 키인 경우를 예로 들어 설명한다.According to an embodiment, the encryption key and the decryption key of the chat room may correspond to different asymmetric keys or to the same symmetric key. For example, when an encryption key and a decryption key of a chat room are symmetric keys, C d x and C e x in FIG. 2 may correspond to the same key. According to an embodiment, the messaging server may store a ciphertext encrypted with a user public key of a user account participating in the chat room as a decryption key of the chat room, or a symmetric key of the chat room as the user public key of the user account participating in the chat room. You can also store encrypted ciphertext. Hereinafter, a case where the encryption key and the decryption key of the chat room are the same symmetric key will be described as an example.

일 실시 예에 따르면, 채팅방의 암호화된 대칭 키는 사용자 계정에 대응하여 제1 데이터베이스에 저장될 수도 있다. 예를 들어, 제1 사용자 계정에 대응하는 퍼블릭 키로 암호화된 채팅방의 대칭 키는 제1 사용자 계정으로 인덱싱되어 저장될 수도 있고, 제1 사용자 계정에 대응하는 퍼블릭 키로 인덱싱되어 저장될 수도 있다.According to one embodiment, the encrypted symmetric key of the chat room may be stored in the first database in correspondence with the user account. For example, a symmetric key of a chat room encrypted with a public key corresponding to a first user account may be indexed and stored as the first user account, or may be indexed and stored as a public key corresponding to the first user account.

일 실시 예에 따르면, 메시징 서버(120)에는 유저 키 중 유저 프라이빗 키가 저장되지 않으므로, 메시징 서버(120)에서 사용자 계정에 대응하는 유저 퍼블릭 키로 암호화된 채팅방의 대칭 키를 복호화할 수 없다. 메시징 서버(120)에 채팅방의 대칭 키를 암호화하여 저장함으로써, 채팅방 정보가 제3자에게 노출되는 것을 방지할 수 있다.According to an embodiment, since a user private key among user keys is not stored in the messaging server 120, the messaging server 120 cannot decrypt a symmetric key of a chat room encrypted with a user public key corresponding to a user account. By encrypting and storing the symmetric key of the chat room in the messaging server 120, it is possible to prevent chat room information from being exposed to a third party.

일 예로, 도 2를 참조하면, 제1 데이터베이스(200)는 보안 인스턴트 메시징 서비스를 통해 생성된 채팅방(Chat_x)에 대응하여, 해당 채팅방에서 송수신된 데이터를 해당 채팅방의 암호화 키로 암호화한 암호문들(220)을 저장할 수 있다. 채팅방에서 송수신된 데이터를 해당 채팅방의 암호화 키로 암호화한 암호문들은 해당 채팅방을 통해 전송된 파일의 저장 경로(예: addr_1, addr_2)를 해당 채팅방의 암호화 키(Ce x)로 암호화한 제1 암호문(예: Ce x(addr_1), Ce x(addr_2)) 및 해당 채팅방을 통해 전송된 텍스트 메시지(예: msg_1, msg_2)를 해당 채팅방의 암호화 키로 암호화한 제2 암호문(예: Ce x(msg_1), Ce x(msg_2))을 포함할 수 있다.As an example, referring to FIG. 2 , the first database 200 corresponds to a chat room (Chat_x) created through a secure instant messaging service, and cipher texts 220 obtained by encrypting data transmitted and received in the corresponding chat room with an encryption key of the corresponding chat room. ) can be stored. The ciphertexts that encrypt the data transmitted and received in the chat room with the encryption key of the chat room are the first cipher text (eg, the storage path of the file transmitted through the chat room (eg addr_1, addr_2) encrypted with the encryption key (C e x ) of the chat room). Example: C e x (addr_1), C e x (addr_2)) and a second cipher text (eg C e x ( msg_1), C e x (msg_2)).

일 실시 예에 따르면, 채팅방에 대응하는 제1 암호문 및 제2 암호문은 전송 순서에 따라 제1 데이터베이스에 저장될 수 있다. 예를 들어, 채팅방을 통해 제1 텍스트 메시지, 제1 파일, 제2 파일, 제2 텍스트 메시지의 순서로 데이터가 전송된 경우, 제1 데이터베이스에는 제1 텍스트 메시지가 암호화된 암호문, 제1 파일의 저장 경로가 암호화된 암호문, 제2 파일의 저장 경로가 암호화된 암호문 및 제2 텍스트 메시지가 암호화된 암호문의 순서로 저장될 수 있다. 일 실시 예에 따르면, 제1 데이터베이스는 채팅방을 통해 전송된 데이터의 암호문에 대응하여, 해당 데이터의 전송 시간에 관한 정보를 함께 저장할 수 있다.According to one embodiment, the first ciphertext and the second ciphertext corresponding to the chat room may be stored in the first database according to the order of transmission. For example, when data is transmitted in the order of a first text message, a first file, a second file, and a second text message through a chat room, the first database includes an encrypted cipher text of the first text message and a second text message. The encrypted ciphertext of the storage path, the encrypted ciphertext of the storage path of the second file, and the encrypted ciphertext of the second text message may be stored in the order. According to one embodiment, the first database may store information about the transmission time of the corresponding data together with the encrypted text of the data transmitted through the chat room.

일 실시 예에 따르면, 채팅방에 클라이언트가 접속한 경우, 메시징 서버(120)는 해당 채팅방에 대응하여 제1 데이터베이스에 저장된 제1 암호문 및 제2 암호문을 채팅방에 접속한 클라이언트에 전송할 수 있다. 채팅방에 접속한 클라이언트는 해당 채팅방을 통해 송수신된 데이터를 전송 순서에 따라 수신할 수 있다.According to an embodiment, when a client accesses a chat room, the messaging server 120 may transmit the first cipher text and the second cipher text stored in the first database in correspondence with the chat room to the client accessing the chat room. A client accessing a chat room may receive data transmitted and received through the corresponding chat room according to a transmission order.

일 실시 예에 따르면, 채팅방을 통하여 송수신되는 텍스트 메시지 및 채팅방을 통하여 송수신된 파일의 저장 경로는 채팅방의 대칭 키로 암호화되어 사용자 간 송수신될 수 있으며, 암호화된 메시지는 채팅방에 대응하여 메시징 서버(120)에 저장될 수 있다. 메시징 서버(120)에는 채팅방의 대칭 키가 암호화된 암호문이 저장되므로, 메시징 서버(120)는 채팅방의 대칭 키를 알 수 없어 채팅방의 대칭 키로 암호화된 텍스트 메시지 및 파일의 저장 경로를 복호화할 수 없다. 메시징 서버(120)에 텍스트 메시지 및 파일의 저장 경로를 채팅방의 대칭 키로 암호화하여 저장함으로써, 텍스트 메시지 및 파일의 저장 경로의 정보가 제3자에게 노출되는 것을 방지할 수 있다.According to an embodiment, the storage path of text messages transmitted and received through the chat room and files transmitted and received through the chat room may be encrypted with a symmetric key of the chat room to be transmitted and received between users, and the encrypted message may correspond to the chat room, and the messaging server 120 can be stored in Since the messaging server 120 stores the cipher text encrypted with the symmetric key of the chat room, the messaging server 120 cannot decrypt the storage path of the text message and the file encrypted with the symmetric key of the chat room because it does not know the symmetric key of the chat room. . By encrypting and storing the storage path of the text message and the file in the messaging server 120 with the symmetric key of the chat room, information on the storage path of the text message and the file can be prevented from being exposed to a third party.

일 실시 예에 따른 채팅방을 통해 전송된 파일의 저장 경로를 저장하기 위한 보안 인스턴트 메시징 방법의 구체적인 동작은 이하에서 상술한다.A specific operation of a secure instant messaging method for storing a storage path of a file transmitted through a chat room according to an embodiment will be described in detail below.

도 3은 일 실시 예에 따른 인스턴트 메시징 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.3 is an operation flowchart of a secure instant messaging method performed in an instant messaging server according to an embodiment.

도 3을 참조하면, 인스턴트 메시징 서버(예: 도 1의 메시징 서버(120))에서 수행되는 보안 인스턴트 메시징 방법은 채팅방을 통해 전송된 파일을 파일 서버(예: 도 1의 파일 서버(130))에 저장하는 단계(310), 파일을 전송한 클라이언트(예: 도 1의 클라이언트(110))로부터 제1 암호문을 수신하는 단계(320), 채팅방에 대응하여 제1 암호문을 저장하는 단계(330), 및 채팅방을 통해 제1 암호문을 포함하는 메시지를 전송하는 단계(340)를 포함할 수 있다.Referring to FIG. 3, the secure instant messaging method performed in an instant messaging server (eg, the messaging server 120 of FIG. 1) transfers a file transmitted through a chat room to a file server (eg, the file server 130 of FIG. 1). Step 310 of storing in , Step 320 of receiving the first ciphertext from the client (e.g., the client 110 of FIG. 1) that transmitted the file, Step 330 of storing the first ciphertext corresponding to the chat room , and transmitting a message including the first encrypted text through the chat room (340).

일 실시 예에 따른 단계(310)는 메시징 서버에서 생성된 채팅방을 통해 전송된 파일을 파일 서버에 저장하는 단계에 해당할 수 있다. 파일은 컴퓨터에서 처리 가능한 데이터를 포함하는 정보 단위로, 예를 들어 사진 파일, 동영상 파일, 음향 파일, 문서 파일과 같은 다양한 형태의 데이터 파일을 포함할 수 있다.Step 310 according to an embodiment may correspond to a step of storing a file transmitted through a chat room created in a messaging server in a file server. A file is an information unit including data that can be processed by a computer, and may include various types of data files such as, for example, photo files, video files, sound files, and document files.

일 실시 예에 따르면, 채팅방을 통해 전송된 파일은 해당 채팅방에 참여 중인 클라이언트로부터 전송된 파일에 해당할 수 있다. 다시 말해, 채팅방을 통해 텍스트 메시지 뿐 아니라 파일이 전송될 수 있으며, 채팅방을 통해 전송된 파일은 해당 채팅방에 참여 중인 다른 클라이언트와 공유될 수 있다.According to an embodiment, a file transmitted through a chat room may correspond to a file transmitted from a client participating in a corresponding chat room. In other words, text messages as well as files may be transmitted through the chat room, and files transmitted through the chat room may be shared with other clients participating in the chat room.

일 실시 예에 따르면, 메시징 서버는 파일 서버에 채팅방을 통해 전송된 파일의 저장을 요청할 수 있다. 파일 서버는 파일 서버에 대응하는 데이터베이스에 해당 파일을 저장할 수 있으며, 해당 파일의 저장 경로를 반환할 수 있다. 파일의 저장 경로는 파일 서버에 대응하는 데이터베이스 내 해당 파일이 저장된 주소 또는 해당 파일에 접근 가능한 주소를 포함할 수 있다.According to an embodiment, the messaging server may request the file server to store the file transmitted through the chat room. The file server may store the corresponding file in a database corresponding to the file server, and may return a storage path of the corresponding file. The storage path of the file may include an address where the corresponding file is stored in a database corresponding to the file server or an address accessible to the corresponding file.

일 실시 예에 따른 단계(320)는 파일을 전송한 클라이언트로부터 파일의 저장 경로를 채팅방의 암호화 키로 암호화한 제1 암호문을 수신하는 단계에 해당할 수 있다. 일 실시 예에 따른 파일의 저장 경로는 파일 서버로부터 획득될 수 있다. 클라이언트에서 파일 서버로부터 파일의 저장 경로를 획득하는 구체적인 동작은 이하의 도 4 및 5를 통해 상술한다.Step 320 according to an embodiment may correspond to a step of receiving a first cipher text obtained by encrypting a storage path of a file with an encryption key of a chat room from a client that has transmitted the file. A file storage path according to an embodiment may be obtained from a file server. A specific operation of obtaining a storage path of a file from a file server in a client will be described in detail with reference to FIGS. 4 and 5 below.

일 실시 예에 따른 파일을 전송한 클라이언트는 획득된 파일의 저장 경로를 채팅방의 암호화 키로 암호화하여 제1 암호문을 생성할 수 있다. 채팅방의 암호화 키는 해당 채팅방에 대응하여 생성된 암호화 키로, 해당 채팅방에 참여 중인 클라이언트에서 획득할 수 있다. 상술한 바와 같이, 채팅방의 암호화 키 및 복호화 키는 대칭 키일 수도 있고, 비대칭 키일 수도 있다.The client that has transmitted the file according to an embodiment may generate the first cipher text by encrypting the storage path of the obtained file with the encryption key of the chat room. The encryption key of the chat room is an encryption key generated corresponding to the chat room and can be obtained from a client participating in the chat room. As described above, the encryption key and the decryption key of the chat room may be symmetric keys or asymmetric keys.

일 실시 예에 따르면, 채팅방의 암호화 키 및 복호화 키가 비 대칭 키인 경우, 채팅방의 암호화 키는 퍼블릭 키에 해당할 수 있다. 퍼블릭 키는 공개되는 키에 해당하므로, 클라이언트는 퍼블릭 키인 채팅방의 암호화 키를 획득할 수 있다.According to an embodiment, when the encryption key and the decryption key of the chat room are asymmetric keys, the encryption key of the chat room may correspond to a public key. Since the public key corresponds to a public key, the client can obtain the public key, the encryption key of the chat room.

이하에서, 채팅방의 암호화 키 및 복호화 키는 대칭 키인 경우를 예로 들어 설명한다. 일 실시 예에 따르면, 채팅방의 암호화 키 및 복호화 키가 대칭 키인 경우, 상술한 바와 같이 채팅방의 대칭 키는 메시징 서버에 채팅방에 참여 중인 사용자 계정의 유저 퍼블릭 키로 암호화되어 저장될 수 있다. 상술한 바와 같이, 사용자 계정의 유저 프라이빗 키는 클라이언트인 사용자 단말에 저장되므로, 클라이언트는 저장된 유저 프라이빗 키로 암호화된 채팅방의 대칭 키를 복호화하여 채팅방의 대칭 키를 획득할 수 있다. 일 실시 예에 따르면, 채팅방의 대칭 키가 암호화된 암호문이 클라이언트에서 복호화되어 채팅방의 대칭 키가 획득된 경우, 클라이언트는 획득된 채팅방의 대칭 키를 저장할 수 있다. 다시 말해, 클라이언트는 참여 중인 채팅방의 대칭 키의 암호문을 메시징 서버로부터 수신하여, 암호문을 저장되어 있는 유저 프라이빗 키로 복호화함으로써 채팅방의 대칭 키를 획득할 수도 있고, 이미 획득되어 저장된 채팅방의 대칭 키를 이용할 수도 있다. Hereinafter, a case where the encryption key and the decryption key of the chat room are symmetric keys will be described as an example. According to an embodiment, when the encryption key and the decryption key of the chat room are symmetric keys, the symmetric key of the chat room may be encrypted with a user public key of a user account participating in the chat room and stored in the messaging server as described above. As described above, since the user private key of the user account is stored in the user terminal, which is a client, the client can obtain the symmetric key of the chat room by decrypting the symmetric key of the chat room encrypted with the stored user private key. According to an embodiment, when the ciphertext in which the symmetric key of the chat room is encrypted is decrypted by the client to obtain the symmetric key of the chat room, the client may store the obtained symmetric key of the chat room. In other words, the client may obtain the symmetric key of the chat room by receiving the cipher text of the symmetric key of the participating chat room from the messaging server and decrypting the cipher text with the stored user private key, or use the already obtained and stored symmetric key of the chat room. may be

일 실시 예에 따르면, 메시징 서버는 클라이언트에서 생성된 제1 암호문을 수신(320)할 수 있다. 메시징 서버에 수신된 제1 암호문은 채팅방에 대응하여 메시징 서버에 저장(330)될 수 있다. 다시 말해, 메시징 서버에는 채팅방에 전송된 파일의 저장 경로가 그대로 저장되지 않고, 파일의 저장 경로를 채팅방의 암호화 키로 암호화한 제1 암호문이 저장될 수 있다.According to an embodiment, the messaging server may receive 320 the first ciphertext generated by the client. The first passphrase received by the messaging server may be stored in the messaging server in response to a chat room (330). In other words, the storage path of the file transmitted to the chat room may not be stored in the messaging server as it is, and the first ciphertext obtained by encrypting the file storage path with the chat room encryption key may be stored.

일 실시 예에 따르면, 메시징 서버는 채팅방을 통해 해당 채팅방에 참여 중인 클라이언트에 제1 암호문을 포함하는 메시지를 전송(340)할 수 있다. 메시지는 푸쉬 메시지를 포함할 수 있다. 다시 말해, 메시징 서버는 채팅방에 제1 암호문을 포함하는 메시지를 전송함으로써, 특정 클라이언트로부터 파일이 전송되었음을 채팅방에 참여 중인 다른 클라이언트에 알릴 수 있다.According to an embodiment, the messaging server may transmit (340) a message including the first cipher text to a client participating in a corresponding chat room through a chat room. The message may include a push message. In other words, the messaging server may notify other clients participating in the chat room that a file has been transmitted from a specific client by transmitting a message including the first cipher text to the chat room.

일 실시 예에 따르면, 제1 암호문은 채팅방의 대칭 키 혹은 채팅방의 복호화 키로 복호화될 수 있다. 채팅방에 참여 중인 클라이언트는 제1 암호문을 복호화하기 위한 채팅방의 대칭 키 혹은 채팅방의 복호화 키를 획득할 수 있으며, 채팅방의 대칭 키를 저장할 수 있다. 클라이언트는 메시지에 포함된 제1 암호문을 복호화함으로써, 메시지에 포함된 파일의 저장 경로를 획득할 수 있다. 클라이언트에서 수행되는 보안 인스턴트 메시징 방법의 구체적인 동작은 이하에서 상술한다.According to an embodiment, the first ciphertext may be decrypted with a chat room symmetric key or a chat room decryption key. A client participating in the chat room may obtain a symmetric key of the chat room or a decryption key of the chat room for decrypting the first ciphertext, and may store the symmetric key of the chat room. The client may obtain the storage path of the file included in the message by decrypting the first cipher text included in the message. A specific operation of the secure instant messaging method performed by the client will be described in detail below.

도 4 및 도 5는 일 실시 예에 따른 보안 인스턴트 메시징 방법의 구체적인 동작을 설명하기 위한 도면들이다.4 and 5 are diagrams for explaining specific operations of a secure instant messaging method according to an embodiment.

도 4 및 도 5에 도시된 클라이언트, 메시징 서버 및 파일 서버는 각각 도 1에 도시된 클라이언트(110), 메시징 서버(120) 및 파일 서버(130)에 대응될 수 있다.The client, messaging server, and file server shown in FIGS. 4 and 5 may correspond to the client 110, messaging server 120, and file server 130 shown in FIG. 1, respectively.

도 3에서 상술한 바와 같이 일 실시 예에 따른 메시징 서버(예: 도 1의 메시징 서버(120))는 채팅방을 통해 파일을 전송한 클라이언트(예: 도 1의 클라이언트(110))로부터 파일의 저장 경로를 해당 채팅방의 암호화 키로 암호화한 제1 암호문을 수신하는 단계(예: 도 3의 단계(320))를 포함할 수 있다.As described above with reference to FIG. 3, the messaging server (eg, the messaging server 120 of FIG. 1) according to an embodiment stores a file from a client (eg, the client 110 of FIG. 1) that transmits a file through a chat room. A step of receiving a first cipher text obtained by encrypting a path with an encryption key of a corresponding chat room (eg, step 320 of FIG. 3 ) may be included.

도 4를 참조하면, 일 실시 예에 따른 메시징 서버의 제1 암호문을 수신하는 단계(예: 도 3의 단계(320))는 파일 서버로부터 채팅방을 통해 전송된 파일의 저장 경로를 수신하는 단계(440), 파일의 저장 경로를 파일을 전송한 클라이언트에 전송하는 단계(450) 및 파일을 전송한 클라이언트로부터 제1 암호문을 수신하는 단계(460)를 포함할 수 있다. 다시 말해, 메시징 서버는 클라이언트로부터 채팅방을 통해 전송된 파일을 수신(410)할 수 있으며, 수신된 파일을 파일 서버에 전송(420)하여 저장을 요청할 수 있다. 파일 서버는 파일 서버에 포함된 제2 데이터베이스에 수신된 파일을 저장(430)하고, 해당 파일의 저장 경로를 메시징 서버를 통해 클라이언트에 전송(440, 450)할 수 있다.Referring to FIG. 4 , receiving a first cipher text of a messaging server (eg, step 320 of FIG. 3 ) according to an embodiment includes receiving a storage path of a file transmitted through a chat room from a file server ( 440), transmitting the file storage path to the client that transmitted the file (450), and receiving a first cipher text from the client that transmitted the file (460). In other words, the messaging server may receive (410) a file transmitted from a client through a chat room, transmit (420) the received file to a file server, and request storage. The file server may store the received file in a second database included in the file server (430) and transmit the storage path of the corresponding file to the client through the messaging server (440, 450).

도 4를 참조하면, 메시징 서버로부터 파일의 저장 경로를 수신한 클라이언트는 수신된 파일의 저장 경로를 채팅방의 대칭 키로 암호화환 제1 암호문을 생성(460)할 수 있다. 상술한 바와 같이, 클라이언트에서 생성된 제1 암호문은 메시징 서버에 전송(470) 및 저장(480)될 수 있다.Referring to FIG. 4 , the client receiving the storage path of the file from the messaging server may generate first ciphertext by encrypting the storage path of the received file with the symmetric key of the chat room (460). As described above, the first cipher text generated at the client may be transmitted 470 and stored 480 to the messaging server.

도 5를 참조하면, 일 실시 예에 따른 메시징 서버의 제1 암호문을 수신하는 단계(예: 도 3의 단계(320))는 파일 서버로부터 상기 파일의 저장을 확인하는 저장 확인 신호를 수신하는 단계(540), 저장 확인 신호를 상기 파일을 전송한 클라이언트에 전송하는 단계(550) 및 저장 확인 신호에 기초하여, 파일을 전송한 클라이언트로부터 제1 암호문을 수신하는 단계(590)를 포함할 수 있다. 다시 말해, 메시징 서버는 클라이언트로부터 채팅방을 통해 전송된 파일을 수신(510)할 수 있으며, 수신된 파일을 파일 서버에 전송(520)하여 저장을 요청할 수 있다. 파일 서버는 파일 서버에 포함된 제2 데이터베이스에 수신된 파일을 저장(530)하고, 해당 파일이 저장되었음을 확인하는 저장 확인 신호를 메시징 서버를 통해 클라이언트에 전송(540, 550)할 수 있다.Referring to FIG. 5 , receiving a first cipher text of a messaging server (eg, step 320 of FIG. 3 ) according to an embodiment includes receiving a storage confirmation signal confirming storage of the file from a file server. (540), transmitting a storage confirmation signal to the client that transmitted the file (550), and receiving a first cipher text from the client that transmitted the file based on the storage confirmation signal (590). . In other words, the messaging server may receive (510) a file transmitted from a client through a chat room, transmit (520) the received file to a file server, and request storage. The file server may store the received file in a second database included in the file server (530) and transmit a storage confirmation signal confirming that the file is stored to the client through the messaging server (540, 550).

일 실시 예에 따른 저장 확인 신호는 파일 서버에서 저장된 파일을 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 저장 확인 신호는 파일 서버에 저장된 파일의 ID 정보를 포함할 수 있다. 일 실시 예에 따른 클라이언트는 수신된 저장 확인 신호에 기초하여, 파일 서버에 파일의 저장 경로를 요청(560)할 수 있다. 예를 들어, 클라이언트는 저장 확인 신호에 포함된 파일의 ID를 파일 서버에 전달하여, 해당 ID를 갖는 파일의 저장 경로를 요청할 수 있다. 파일 서버는 요청 신호에 반응하여, 클라이언트로 요청된 파일의 저장 경로를 전송(570)할 수 있다. 일 실시 예에 따르면, 클라이언트는 메시징 서버를 거치지 않고 파일 서버로부터 파일의 저장 경로를 획득할 수 있다.A storage confirmation signal according to an embodiment may include information for identifying a file stored in a file server. For example, the storage confirmation signal may include ID information of a file stored in the file server. According to an embodiment, the client may request a storage path of the file from the file server based on the received storage confirmation signal (560). For example, the client may transfer the ID of the file included in the storage confirmation signal to the file server and request a storage path of the file having the ID. The file server may transmit the storage path of the requested file to the client in response to the request signal (570). According to an embodiment, a client may obtain a file storage path from a file server without going through a messaging server.

도 6은 일 실시 예에 따른 클라이언트에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.6 is an operation flowchart of a secure instant messaging method performed in a client according to an embodiment.

도 6을 참조하면, 일 실시 예에 따른 클라이언트(예: 도 1의 클라이언트(110))에서 수행되는 보안 인스턴트 메시징 방법은 클라이언트에 대응하는 유저 퍼블릭 키로 암호화된 채팅방의 키를 수신하는 단계(610), 암호화된 채팅방의 키를 클라이언트에 저장된 유저 프라이빗 키로 복호화하는 단계(620), 메시징 서버로부터 채팅방을 통해 암호화된 파일의 저장 경로를 포함하는 메시지를 수신하는 단계(630), 암호화된 파일의 저장 경로를 채팅방의 키로 복호화하는 단계(640), 및 복호화된 파일의 저장 경로에 기초하여, 파일 서버(예: 도 1의 파일 서버(130))로부터 파일을 수신하는 단계(650)를 포함할 수 있다.Referring to FIG. 6 , a secure instant messaging method performed by a client (eg, the client 110 of FIG. 1 ) according to an embodiment includes receiving a chat room key encrypted with a user public key corresponding to the client (610). , Decrypting the key of the encrypted chat room with the user private key stored in the client (620), Receiving a message including the storage path of the encrypted file through the chat room from the messaging server (630), The storage path of the encrypted file It may include decrypting with the key of the chat room (640), and receiving a file from a file server (eg, the file server 130 of FIG. 1) based on the storage path of the decrypted file (650). .

일 실시 예에 따른 단계(610)는 메시징 서버(예: 도 1의 메시징 서버(120))로부터 클라이언트에 대응하는 유저 퍼블릭 키로 암호화된 채팅방의 키를 수신하는 단계를 포함할 수 있다. 상술한 바와 같이 채팅방에 참여 중인 사용자 계정의 유저 퍼블릭 키로 암호화된 채팅방의 키는 메시징 서버의 제1 데이터베이스에 해당 채팅방에 대응하여 저장될 수 있다. 단계(610)에서 수신되는 암호화된 채팅방의 키는 클라이언트가 로그인된 사용자 계정을 통해 참여 중인 채팅방의 키가 해당 사용자 계정의 유저 퍼블릭 키로 암호화된 채팅방의 키에 해당할 수 있다. 일 실시 예에 따르면, 채팅방의 키는 해당 채팅방에 대응하여 생성된 대칭 키를 포함할 수 있다.Step 610 according to an embodiment may include receiving a chat room key encrypted with a user public key corresponding to a client from a messaging server (eg, the messaging server 120 of FIG. 1 ). As described above, the chat room key encrypted with the user public key of the user account participating in the chat room may be stored in the first database of the messaging server in correspondence with the corresponding chat room. The key of the encrypted chat room received in step 610 may correspond to the key of the chat room in which the key of the chat room in which the client is participating through the logged-in user account is encrypted with the user public key of the corresponding user account. According to an embodiment, the chat room key may include a symmetric key generated in correspondence with the corresponding chat room.

일 실시 예에 따른 단계(620)는 클라이언트에서 획득된 암호화된 채팅방의 키를 유저 프라이빗 키로 복호화함으로써, 채팅방의 키를 획득하는 단계를 포함할 수 있다. 획득된 채팅방의 키는 클라이언트에 저장될 수 있다. 클라이언트는 로그인된 사용자 계정에 대응하는 유저 프라이빗 키를 획득할 수 있다. 예를 들어, 사용자 계정에 대응하여 생성된 유저 프라이빗 키는 해당 사용자 계정으로 로그인된 클라이언트에 저장될 수 있다.Step 620 according to an embodiment may include obtaining a chat room key by decrypting an encrypted chat room key obtained from a client with a user private key. The obtained chat room key may be stored in the client. The client may obtain a user private key corresponding to the logged-in user account. For example, a user private key generated in correspondence with a user account may be stored in a client logged in with a corresponding user account.

일 실시 예에 따른 단계(630)는 메시징 서버로부터 채팅방을 통해 전송된 파일의 저장 경로를 채팅방의 키로 암호화한 제1 암호문을 수신하는 단계를 포함할 수 있다. 제1 암호문은 메시지의 형태로 클라이언트에 전송될 수 있다.Step 630 according to an embodiment may include receiving a first cipher text obtained by encrypting a storage path of a file transmitted through a chat room from a messaging server with a key of the chat room. The first ciphertext may be transmitted to the client in the form of a message.

일 실시 예에 따른 단계(640)는 제1 암호문을 단계(620)에서 획득된 채팅방의 키로 복호화함으로써, 파일의 저장 경로를 획득하는 단계를 포함할 수 있다.Step 640 according to an embodiment may include obtaining a storage path of a file by decrypting the first ciphertext with the key of the chat room obtained in step 620 .

일 실시 예에 따른 단계(650)는 획득된 파일의 저장 경로에 기초하여, 클라이언트에서 파일 서버에 저장된 해당 파일에 액세스하는 단계를 포함할 수 있다. 파일 서버는 저장 경로에 기초하여 액세스될 수 있으며, 클라이언트는 저장 경로에 기초하여 파일 서버에 액세스함으로써, 파일 서버에 저장된 파일을 참조하거나 다운로드할 수 있다.Step 650 according to an embodiment may include accessing a corresponding file stored in a file server from a client based on the storage path of the acquired file. The file server can be accessed based on the storage path, and a client can refer to or download a file stored in the file server by accessing the file server based on the storage path.

도 7은 일 실시예에 따른 보안 인스턴트 메시징 시스템의 하드웨어 구성의 예시도이다.7 is an exemplary diagram of a hardware configuration of a secure instant messaging system according to an embodiment.

도 7을 참조하면, 일 실시 예에 따른 보안 인스턴트 메시징 시스템은 네트워크(730)를 통해 연결된 클라이언트(110)(예: 도 1의 클라이언트(110)), 메시징 서버(120) (예: 도 1의 메시징 서버(120)) 및 파일 서버(130) (예: 도 1의 파일 서버(130))를 포함할 수 있다.Referring to FIG. 7 , a secure instant messaging system according to an embodiment includes a client 110 (eg, the client 110 of FIG. 1 ) connected through a network 730 and a messaging server 120 (eg, the client 110 of FIG. 1 ). messaging server 120) and file server 130 (eg, file server 130 of FIG. 1).

일 실시 예에 따른 클라이언트(110)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 예를 들면, 클라이언트(110)은 스마트폰(smart phone), 휴대폰, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC를 포함할 수 있다. 일 예로 클라이언트(110)는 무선 또는 유선 통신 방식을 이용하여 네트워크(730)를 통해 메시징 서버(120), 파일 서버(130) 및/또는 다른 전자 기기들과 통신할 수 있다.The client 110 according to an embodiment may be a fixed terminal implemented as a computer device or a mobile terminal. For example, the client 110 may include a smart phone, a mobile phone, a computer, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), and a tablet PC. For example, the client 110 may communicate with the messaging server 120, the file server 130, and/or other electronic devices through the network 730 using a wireless or wired communication method.

일 실시 예에 따른 메시징 서버(120) 및 파일 서버(130)는 클라이언트(110) 및/또는 다른 서버와 네트워크(730)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 통신 방식은 제한되지 않으며, 네트워크(730)가 포함할 수 있는 통신망(예: 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식, 기기들 간의 근거리 무선 통신 방식을 포함할 수 있다. 예를 들어, 네트워크(730)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다.The messaging server 120 and the file server 130 according to an embodiment communicate with the client 110 and/or other servers through the network 730 to provide commands, codes, files, content, services, and the like. Alternatively, it may be implemented in a plurality of computer devices. The communication method is not limited, and may include a communication method utilizing a communication network (eg, mobile communication network, wired Internet, wireless Internet, broadcasting network) that the network 730 may include, and a short-distance wireless communication method between devices. For example, the network 730 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , one or more arbitrary networks such as the Internet.

일 실시 예에 따르면, 메시징 서버(120)는 네트워크(730)를 통해 접속한 클라이언트(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 클라이언트(110)은 메시징 서버(120)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한, 클라이언트(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(예: 브라우저 또는 설치된 어플리케이션)의 제어에 따라 메시징 서버(120)에 접속하여 메시징 서버(120)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들어, 클라이언트(110)이 어플리케이션의 제어에 따라 네트워크(730)를 통해 서비스 요청 메시지를 메시징 서버(120)로 전송하면, 메시징 서버(120)는 서비스 요청 메시지에 대응하는 코드를 클라이언트(110)로 전송할 수 있고, 클라이언트(110)은 어플리케이션의 제어에 따라 코드에 따른 화면을 구성하여 표시함으로써 사용자에게 컨텐츠를 제공할 수 있다.According to an embodiment, the messaging server 120 may provide a file for installing an application to the client 110 connected through the network 730 . In this case, the client 110 may install an application using a file provided from the messaging server 120 . In addition, a service provided by the messaging server 120 by accessing the messaging server 120 under the control of an operating system (OS) included in the client 110 and at least one program (eg, a browser or an installed application). I can provide content. For example, when the client 110 transmits a service request message to the messaging server 120 through the network 730 under the control of an application, the messaging server 120 transmits a code corresponding to the service request message to the client 110. ), and the client 110 can provide content to the user by constructing and displaying a screen according to the code under the control of the application.

일 실시 예에 따르면, 클라이언트(110)과 메시징 서버(120)는 메모리(711, 721), 프로세서(713, 723), 통신 모듈(715, 725) 및 입출력 인터페이스(717, 727)를 포함할 수 있다.According to an embodiment, the client 110 and the messaging server 120 may include memories 711 and 721, processors 713 and 723, communication modules 715 and 725, and input/output interfaces 717 and 727. have.

일 실시 예에 따른 프로세서(713, 723)는 도 1 내지 도 6를 통하여 전술한 적어도 하나의 동작을 수행할 수 있다. 예를 들어, 프로세서(713)는 도 1 내지 도 6을 통하여 전술한 클라이언트(110)에서 수행되는 보안 인스턴트 메시징 방법의 동작들을 수행할 수 있고, 프로세서(723)는 도 1 내지 도 6을 통하여 전술한 메시징 서버(120)에서 수행되는 보안 인스턴트 메시징 방법의 동작들을 수행할 수 있다. 프로세서(713, 723)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(711, 721) 또는 통신 모듈(715, 725)에 의해 프로세서(713, 723)로 제공될 수 있다.The processors 713 and 723 according to an embodiment may perform at least one operation described above through FIGS. 1 to 6 . For example, the processor 713 may perform operations of the secure instant messaging method performed in the client 110 described above through FIGS. 1 to 6, and the processor 723 may perform the above described operations through FIGS. 1 to 6 Operations of the secure instant messaging method performed in one messaging server 120 may be performed. The processors 713 and 723 may be configured to process commands of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processors 713 and 723 by the memories 711 and 721 or the communication modules 715 and 725.

메모리(711, 721)는 컴퓨터에서 판독 가능한 기록 매체로서, 휘발성 메모리 또는 비휘발성 메모리일 수 있다. 일 실시 예에 따른 메모리(711, 721)는 도 1 내지 도 6을 통하여 전술한 보안 인스턴트 메시징 방법과 관련된 정보를 저장할 수 있다. 일 예로, 메모리(721)는 전술한 제1 데이터베이스를 포함할 수 있다. 또 일 예로, 메모리(711)는 전술한 클라이언트(110)에 로그인된 사용자 계정에 대응하는 유저 프라이빗 키를 저장할 수 있다.The memories 711 and 721 are computer-readable recording media and may be volatile memories or non-volatile memories. The memories 711 and 721 according to an embodiment may store information related to the secure instant messaging method described above with reference to FIGS. 1 to 6 . For example, the memory 721 may include the aforementioned first database. As another example, the memory 711 may store a user private key corresponding to a user account logged into the client 110 described above.

일 실시 예에 따른 메모리(711, 721)는 도 1 내지 도 6을 통하여 전술한 보안 인스턴트 메시징 방법이 구현된 프로그램을 저장할 수 있다. 일 예로, 전술한 보안 인스턴트 메시징 방법이 구현된 프로그램은 메시징 서버(120)에서 네트워크(730)를 통해 제공하는 파일들에 의해 클라이언트(110)에 설치되어 구동되는 브라우저나 어플리케이션을 위한 코드를 포함할 수 있다. The memories 711 and 721 according to an embodiment may store programs implementing the secure instant messaging method described above through FIGS. 1 to 6 . For example, the program implementing the above-described secure instant messaging method may include code for a browser or application that is installed and operated in the client 110 by files provided from the messaging server 120 through the network 730. can

일 실시 예에 따른 통신 모듈(715, 725)은 네트워크(730)를 통해 클라이언트(110), 메시징 서버(120) 및 파일 서버(130)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기 또는 다른 서버와 통신하기 위한 기능을 제공할 수 있다. 일 예로, 클라이언트(110)의 프로세서(713)가 메모리(711)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(715)의 제어에 따라 네트워크(730)를 통해 메시징 서버(120)로 전달될 수 있다. 일 예로, 메시징 서버(120)의 프로세서(723)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(725)과 네트워크(730)를 거쳐 클라이언트(110)의 통신 모듈(715)을 통해 클라이언트(110)로 수신될 수 있다. 예를 들어 통신 모듈(715)을 통해 수신된 메시징 서버(120)의 제어 신호나 명령 등은 프로세서(713)나 메모리(711)로 전달될 수 있고, 컨텐츠나 파일 등은 클라이언트(110)이 더 포함할 수 있는 저장 매체로 저장될 수 있다.The communication modules 715 and 725 according to an embodiment may provide functions for the client 110, the messaging server 120, and the file server 130 to communicate with each other through the network 730, and other electronic devices. Alternatively, it may provide functions for communicating with other servers. For example, a request generated according to a program code stored in a recording device such as a memory 711 by the processor 713 of the client 110 is transferred to the messaging server 120 through the network 730 under the control of the communication module 715. ) can be transmitted. For example, control signals, commands, contents, files, etc. provided under the control of the processor 723 of the messaging server 120 pass through the communication module 725 and the network 730 to the communication module 715 of the client 110. ) It may be received by the client 110 through. For example, control signals or commands of the messaging server 120 received through the communication module 715 may be transferred to the processor 713 or memory 711, and content or files may be transferred to the client 110 further. It can be stored in a storage medium that can include.

입출력 인터페이스(717, 727)는 입출력 장치(719)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로, 입출력 인터페이스(717)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 클라이언트(110)의 프로세서(713)는 메모리(711)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 메시징 서버(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(717)를 통해 디스플레이에 표시될 수 있다. 사용자로부터 수신된 입출력 장치(719)를 통한 입력은 입출력 인터페이스(717)를 통해 클라이언트(110)의 프로세서(713)에서 처리 가능한 형태로 제공될 수 있다.The input/output interfaces 717 and 727 may be means for interface with the input/output device 719 . For example, the input device may include a device such as a keyboard or mouse, and the output device may include a device such as a display for displaying a communication session of an application. As another example, the input/output interface 717 may be a means for interface with a device in which functions for input and output are integrated into one, such as a touch screen. As a more specific example, the processor 713 of the client 110 processes the command of the computer program loaded into the memory 711, and the service screen or content configured using the data provided by the messaging server 120 is an input/output interface. It can be displayed on the display through 717. Input through the input/output device 719 received from the user may be provided in a form processable by the processor 713 of the client 110 through the input/output interface 717 .

일 실시 예에 따르면, 클라이언트(110) 및 메시징 서버(120)는 도 7에 도시되지 않은 다른 구성 요소들을 포함할 수 있다. 예를 들어, 클라이언트(110)은 상술한 입출력 장치(719) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성 요소들을 더 포함할 수도 있다.According to one embodiment, the client 110 and the messaging server 120 may include other components not shown in FIG. 7 . For example, the client 110 is implemented to include at least some of the aforementioned input/output devices 719 or other components such as transceivers, Global Positioning System (GPS) modules, cameras, various sensors, databases, and the like. may include more.

일 실시 예에 따르면, 클라이언트(110), 메시징 서버(120) 및 파일 서버(130) 사이의 데이터 통신은 네트워크(730)를 통해 수행될 수 있다. 예를 들어, 메시징 서버(120) 및 클라이언트(110)는 보안 인스턴트 메시징 서비스에 관한 어플리케이션에 의해 형성된 네트워크(730)를 통해 데이터를 송수신할 수 있다. 메시징 서버(120) 및 파일 서버(130) 사이의 데이터 통신은 네트워크 암호화에 기초하여 수행될 수 있다.According to an embodiment, data communication between the client 110 , the messaging server 120 and the file server 130 may be performed through the network 730 . For example, the messaging server 120 and the client 110 may transmit and receive data through a network 730 formed by an application related to a secure instant messaging service. Data communication between messaging server 120 and file server 130 may be performed based on network encryption.

예를 들어, SSL(Secure Sockets Layer)에 따라, 메시징 서버(120)와 클라이언트(110) 사이에 데이터 통신이 수행될 수 있다. 보다 구체적으로, 메시징 서버(120) 및 클라이언트(110) 사이에서 송수신되는 데이터는 메시징 서버(120) 및 클라이언트(110) 간의 대칭 키로 암호화되어 송수신될 수 있다. 메시징 서버(120) 및 클라이언트(110) 간의 대칭 키는 서버에서 클라이언트에 배포한 퍼블릭 키로 암호화되어 메시징 서버(120)로 전송될 수 있고, 메시징 서버(120)는 퍼블릭 키에 대응하는 프라이빗 키로 복호화하여 대칭 키를 확인할 수 있다. 통신 세션에서 서버와 클라이언트는 대칭 키로 데이터를 암호화하여 데이터를 송수신함으로써, 보안을 유지할 수 있다. 파일 서버(130)와 클라이언트(110) 사이 및 메시징 서버(120)와 파일 서버(130) 사이의 통신도 메시징 서버(120)와 클라이언트(110) 사이의 데이터 통신과 유사한 원리로 수행될 수 있다.For example, data communication may be performed between the messaging server 120 and the client 110 according to Secure Sockets Layer (SSL). More specifically, data transmitted and received between the messaging server 120 and the client 110 may be transmitted and received after being encrypted with a symmetric key between the messaging server 120 and the client 110 . The symmetric key between the messaging server 120 and the client 110 may be encrypted with a public key distributed by the server to the client and transmitted to the messaging server 120, and the messaging server 120 may decrypt with a private key corresponding to the public key and You can check the symmetric key. In a communication session, the server and the client can maintain security by encrypting data with a symmetric key and transmitting and receiving data. Communication between the file server 130 and the client 110 and between the messaging server 120 and the file server 130 may also be performed on a principle similar to data communication between the messaging server 120 and the client 110.

상기 설명에서 설명의 편의를 위해 클라이언트(110), 메시징 서버(120) 및 파일 서버(130) 사이의 데이터 통신 과정에서 네트워크 암호화 방식에 따른 통신 과정을 생략하고 설명하겠으나, 일 실시 예에 따른 네트워크(730)를 통한 클라이언트(110), 메시징 서버(120) 및 파일 서버(130) 사이의 데이터 통신 과정은 네트워크 암호화 방식에 따라 암호화한 데이터를 송수신하는 과정을 포함할 수 있다.In the above description, for convenience of description, the communication process according to the network encryption method will be omitted in the data communication process between the client 110, the messaging server 120 and the file server 130, but the network according to an embodiment ( The process of data communication between the client 110, the messaging server 120, and the file server 130 through 730 may include a process of transmitting and receiving encrypted data according to a network encryption method.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. have. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (20)

인스턴트 메시징 서버에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
상기 메시징 서버에서 생성된 채팅방을 통해 전송된 파일을 파일 서버에 저장하는 단계;
상기 파일을 전송한 클라이언트로부터 상기 파일의 저장 경로를 상기 채팅방의 암호화 키로 암호화한 제1 암호문(ciphertext)을 수신하는 단계;
상기 채팅방에 대응하여 상기 제1 암호문을 저장하는 단계; 및
상기 채팅방을 통해 상기 채팅방에 참여 중인 클라이언트에 상기 제1 암호문을 포함하는 메시지를 전송하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
A secure instant messaging method performed in an instant messaging server, comprising:
storing a file transmitted through a chat room created in the messaging server in a file server;
Receiving a first ciphertext obtained by encrypting a storage path of the file with an encryption key of the chat room from a client transmitting the file;
storing the first ciphertext in response to the chat room; and
Transmitting a message including the first cipher text to a client participating in the chat room through the chat room
including,
A secure instant messaging method.
제1항에 있어서,
상기 제1 암호문을 수신하는 단계는
상기 파일 서버로부터 상기 파일의 저장 경로를 수신하는 단계;
상기 파일의 저장 경로를 상기 파일을 전송한 클라이언트에 전송하는 단계; 및
상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 1,
Receiving the first cipher text
Receiving a storage path of the file from the file server;
transmitting the storage path of the file to the client that transmitted the file; and
Receiving the first cipher text from a client that has transmitted the file
including,
A secure instant messaging method.
제1항에 있어서,
상기 제1 암호문을 수신하는 단계는
상기 파일 서버로부터 상기 파일의 저장을 확인하는 신호를 수신하는 단계;
상기 신호를 상기 파일을 전송한 클라이언트에 전송하는 단계; 및
상기 신호에 기초하여, 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 1,
Receiving the first cipher text
receiving a signal confirming storage of the file from the file server;
transmitting the signal to the client that transmitted the file; and
Based on the signal, receiving the first cipher text from a client that has transmitted the file.
including,
A secure instant messaging method.
제3항에 있어서,
상기 파일의 저장을 확인하는 신호는
상기 파일 서버에서 상기 파일을 식별하기 위한 정보를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 3,
The signal confirming the storage of the file is
Including information for identifying the file in the file server,
A secure instant messaging method.
제1항에 있어서,
상기 제1 암호문은 상기 채팅방의 복호화 키로 복호화되고,
상기 채팅방의 복호화 키는 상기 채팅방에 참여 중인 클라이언트에 저장되는,
보안 인스턴트 메시징 방법.
According to claim 1,
The first cipher text is decrypted with the decryption key of the chat room,
The decryption key of the chat room is stored in the client participating in the chat room,
A secure instant messaging method.
제5항에 있어서,
상기 채팅방의 암호화 키 및 상기 채팅방의 복호화 키는 상기 채팅방에 대응하는 대칭 키로 생성되는,
보안 인스턴트 메시징 방법.
According to claim 5,
The encryption key of the chat room and the decryption key of the chat room are generated with a symmetric key corresponding to the chat room.
A secure instant messaging method.
제1항에 있어서,
상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 전송 순서에 따라 저장하는 단계; 및
상기 채팅방에 접속한 클라이언트에 상기 채팅방에 대응하여 저장된 상기 제1 암호문 및 상기 제2 암호문을 전송하는 단계
를 더 포함하는,
보안 인스턴트 메시징 방법.
According to claim 1,
Corresponding to the chat room, storing the first cipher text and the second cipher text obtained by encrypting the text message transmitted through the chat room with the encryption key of the chat room according to transmission order; and
Transmitting the first cipher text and the second cipher text stored in correspondence to the chat room to a client accessing the chat room.
Including more,
A secure instant messaging method.
제1항에 있어서,
상기 채팅방에 참여 중인 클라이언트는
상기 메시징 서버에서 제공하는 인스턴트 메시징 서비스에 가입된 사용자 계정에 로그인된 사용자 단말을 포함하는
보안 인스턴트 메시징 방법.
According to claim 1,
Clients participating in the chat room
Including a user terminal logged in to a user account subscribed to an instant messaging service provided by the messaging server
A secure instant messaging method.
제1항에 있어서,
상기 파일 서버는
상기 채팅방을 통해 전송된 파일을 저장하는 데이터베이스를 포함하는
보안 인스턴트 메시징 방법.
According to claim 1,
The file server is
Including a database for storing files transmitted through the chat room
A secure instant messaging method.
클라이언트에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
보안 인스턴트 메시징 서비스를 제공하는 메시징 서버로부터 상기 클라이언트에 대응하는 유저 퍼블릭 키(public key)로 암호화된 채팅방의 키를 수신하는 단계;
상기 암호화된 채팅방의 키를 상기 클라이언트에 저장된 유저 프라이빗 키(private key)로 복호화하는 단계;
상기 메시징 서버로부터 상기 채팅방을 통해 암호화된 파일의 저장 경로를 포함하는 메시지를 수신하는 단계;
상기 암호화된 파일의 저장 경로를 상기 채팅방의 키로 복호화하는 단계; 및
상기 복호화된 파일의 저장 경로에 기초하여, 파일 서버로부터 상기 파일을 수신하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
A secure instant messaging method performed on a client, comprising:
receiving a chat room key encrypted with a user public key corresponding to the client from a messaging server providing a secure instant messaging service;
Decrypting the encrypted chat room key with a user private key stored in the client;
Receiving a message including a storage path of an encrypted file through the chat room from the messaging server;
Decrypting the storage path of the encrypted file with the key of the chat room; and
Receiving the file from a file server based on the storage path of the decrypted file
including,
A secure instant messaging method.
제10항에 있어서,
상기 채팅방의 키는 상기 채팅방에 대응하여 생성된 대칭 키를 포함하고,
상기 암호화된 파일의 저장 경로는 상기 파일의 저장 경로를 상기 채팅방의 키로 암호화한 제1 암호문을 포함하는,
보안 인스턴트 메시징 방법.
According to claim 10,
The key of the chat room includes a symmetric key generated in correspondence with the chat room,
The storage path of the encrypted file includes a first ciphertext obtained by encrypting the storage path of the file with the key of the chat room.
A secure instant messaging method.
하드웨어와 결합되어 제1항 내지 제11항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium to be combined with hardware to execute the method of any one of claims 1 to 11.
생성된 채팅방을 통해 전송된 파일을 파일 서버에 저장하고,
상기 파일을 전송한 클라이언트로부터 상기 파일의 저장 경로를 상기 채팅방의 암호화 키로 암호화한 제1 암호문(ciphertext)을 수신하고,
상기 채팅방에 대응하여 상기 제1 암호문을 저장하고,
상기 채팅방을 통해 상기 채팅방에 참여 중인 클라이언트에 상기 제1 암호문을 포함하는 메시지를 전송하는,
적어도 하나의 프로세서
를 포함하는,
인스턴트 메시징 서버.
Save the file transmitted through the created chat room to the file server,
Receiving a first ciphertext in which a storage path of the file is encrypted with an encryption key of the chat room from a client that has transmitted the file;
Storing the first cipher text in correspondence with the chat room;
Transmitting a message including the first cipher text to a client participating in the chat room through the chat room,
at least one processor
including,
Instant Messaging Server.
제13항에 있어서,
상기 프로세서는,
상기 제1 암호문을 수신함에 있어서,
상기 파일 서버로부터 상기 파일의 저장 경로를 수신하고,
상기 파일의 저장 경로를 상기 파일을 전송한 클라이언트에 전송하며,
상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는,
인스턴트 메시징 서버.
According to claim 13,
the processor,
In receiving the first cipher text,
Receiving a storage path of the file from the file server;
Transmitting the storage path of the file to the client that transmitted the file;
Receiving the first ciphertext from the client that transmitted the file,
Instant Messaging Server.
제13항에 있어서,
상기 프로세서는,
상기 제1 암호문을 수신함에 있어서,
상기 파일 서버로부터 상기 파일의 저장을 확인하는 신호를 수신하고,
상기 신호를 상기 파일을 전송한 클라이언트에 전송하며,
상기 신호에 기초하여, 상기 파일을 전송한 클라이언트로부터 상기 제1 암호문을 수신하는,
인스턴트 메시징 서버.
According to claim 13,
the processor,
In receiving the first cipher text,
Receiving a signal confirming storage of the file from the file server;
Transmitting the signal to the client that transmitted the file;
Based on the signal, receiving the first cipher text from the client that transmitted the file,
Instant Messaging Server.
제13항에 있어서,
상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 저장하는
메모리
를 더 포함하는,
인스턴트 메시징 서버.
According to claim 13,
Corresponding to the chat room, storing the first cipher text and a second cipher text obtained by encrypting the text message transmitted through the chat room with the encryption key of the chat room
Memory
Including more,
Instant Messaging Server.
제16항에 있어서,
상기 프로세서는,
상기 채팅방에 대응하여, 상기 제1 암호문 및 상기 채팅방을 통해 전송된 텍스트 메시지를 상기 채팅방의 암호화 키로 암호화한 제2 암호문을 전송 순서에 따라 상기 메모리에 저장하고,
상기 채팅방에 접속한 클라이언트에 상기 채팅방에 대응하여 저장된 상기 제1 암호문 및 상기 제2 암호문을 전송하는,
인스턴트 메시징 서버.
According to claim 16,
the processor,
Corresponding to the chat room, storing the first cipher text and a second cipher text obtained by encrypting the text message transmitted through the chat room with the encryption key of the chat room in the memory according to the order of transmission;
Transmitting the first cipher text and the second cipher text stored in correspondence to the chat room to a client connected to the chat room;
Instant Messaging Server.
보안 인스턴트 메시징 서비스를 제공하는 메시징 서버로부터, 대응하는 유저 퍼블릭 키(public key)로 암호화된 채팅방의 키를 수신하고,
상기 암호화된 채팅방의 키를 유저 프라이빗 키(private key)로 복호화하고,
상기 메시징 서버로부터 상기 채팅방을 통해 암호화된 파일의 저장 경로를 포함하는 메시지를 수신하고,
상기 암호화된 파일의 저장 경로를 상기 채팅방의 키로 복호화하며,
상기 복호화된 파일의 저장 경로에 기초하여, 파일 서버로부터 상기 파일을 수신하는,
적어도 하나의 프로세서
를 포함하는,
클라이언트.
Receiving a chat room key encrypted with a corresponding user public key from a messaging server providing a secure instant messaging service;
Decrypting the encrypted chat room key with a user private key;
Receiving a message including a storage path of an encrypted file through the chat room from the messaging server;
Decrypting the storage path of the encrypted file with the key of the chat room;
Receiving the file from a file server based on the storage path of the decrypted file;
at least one processor
including,
Client.
제18항에 있어서,
로그인된 사용자 계정에 대응하는 상기 유저 프라이빗 키를 저장하는 메모리
를 더 포함하는,
클라이언트.
According to claim 18,
Memory for storing the user private key corresponding to the logged-in user account
Including more,
Client.
제18항에 있어서,
상기 채팅방의 키는 상기 채팅방에 대응하여 생성된 대칭 키를 포함하고,
상기 암호화된 파일의 저장 경로는 상기 파일의 저장 경로를 상기 채팅방의 키로 암호화한 제1 암호문을 포함하는,
클라이언트.

According to claim 18,
The key of the chat room includes a symmetric key generated in correspondence with the chat room,
The storage path of the encrypted file includes a first ciphertext obtained by encrypting the storage path of the file with the key of the chat room.
Client.

KR1020210061515A 2021-05-12 2021-05-12 Secure instant messaging method and apparatus thereof KR102507864B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210061515A KR102507864B1 (en) 2021-05-12 2021-05-12 Secure instant messaging method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210061515A KR102507864B1 (en) 2021-05-12 2021-05-12 Secure instant messaging method and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20220153917A true KR20220153917A (en) 2022-11-21
KR102507864B1 KR102507864B1 (en) 2023-03-08

Family

ID=84233832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210061515A KR102507864B1 (en) 2021-05-12 2021-05-12 Secure instant messaging method and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102507864B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140025553A (en) * 2011-06-03 2014-03-04 애플 인크. System and method for secure instant messaging
KR20140131586A (en) * 2012-08-30 2014-11-13 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 A video file encryption and decryption method, device, and mobile terminal
KR20180053148A (en) * 2016-11-11 2018-05-21 삼성전자주식회사 A method and terminal device for encrypting a message
KR102245250B1 (en) * 2020-01-03 2021-04-27 주식회사 카카오 Method and apparatus for operating an instant server server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140025553A (en) * 2011-06-03 2014-03-04 애플 인크. System and method for secure instant messaging
KR20140131586A (en) * 2012-08-30 2014-11-13 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 A video file encryption and decryption method, device, and mobile terminal
KR20180053148A (en) * 2016-11-11 2018-05-21 삼성전자주식회사 A method and terminal device for encrypting a message
KR102245250B1 (en) * 2020-01-03 2021-04-27 주식회사 카카오 Method and apparatus for operating an instant server server

Also Published As

Publication number Publication date
KR102507864B1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
EP3210157B1 (en) Encrypted collaboration system and method
JP6138791B2 (en) Stateless application notification
US8379857B1 (en) Secure key distribution for private communication in an unsecured communication channel
US9078127B2 (en) Secure Communication Method
US20140052989A1 (en) Secure data exchange using messaging service
JP2018121334A (en) Safe transfer of user information between applications
KR101648364B1 (en) Method for improving encryption/decryption speed by complexly applying for symmetric key encryption and asymmetric key double encryption
US20140095878A1 (en) Key change management apparatus and key change management method
CN113949566A (en) Resource access method, device, electronic equipment and medium
CN115065487A (en) Privacy protection cloud computing method and cloud computing method for protecting financial privacy data
US11881940B2 (en) Method and system for providing secure message
KR102507864B1 (en) Secure instant messaging method and apparatus thereof
KR101701625B1 (en) Method and system for reproducing contents by secure acquiring decryption key for encrypted contents
KR102137540B1 (en) Method and system for providing social media using partition function
KR102538230B1 (en) Method and apparatus for digital content protection
WO2015156145A1 (en) Re-encryption method, re-encryption system, and re-encryption device
Mallick et al. Security aspects of social media applications
KR20200045820A (en) Apparatus and method for encryption and decryption
KR102544084B1 (en) Secure instant messaging method and attaratus thereof
Aziz et al. SIMSSP: Secure Instant Messaging System for Smart Phones
KR102387911B1 (en) Secure instant messaging method and attaratus thereof
US11201856B2 (en) Message security
CN114826616B (en) Data processing method, device, electronic equipment and medium
US20230421397A1 (en) Systems and methods for performing blockchain operations using multi-party computation cohort management groupings
US20230421540A1 (en) Systems and methods for generating secure, encrypted communications using multi-party computations in order to perform blockchain operations in decentralized applications

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right