KR102667293B1 - Method and appratus for providing blackchain-based secure messenger service - Google Patents

Method and appratus for providing blackchain-based secure messenger service Download PDF

Info

Publication number
KR102667293B1
KR102667293B1 KR1020210004233A KR20210004233A KR102667293B1 KR 102667293 B1 KR102667293 B1 KR 102667293B1 KR 1020210004233 A KR1020210004233 A KR 1020210004233A KR 20210004233 A KR20210004233 A KR 20210004233A KR 102667293 B1 KR102667293 B1 KR 102667293B1
Authority
KR
South Korea
Prior art keywords
token
message
blockchain
messenger
fungible
Prior art date
Application number
KR1020210004233A
Other languages
Korean (ko)
Other versions
KR20220066801A (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 포항공과대학교 산학협력단
Publication of KR20220066801A publication Critical patent/KR20220066801A/en
Application granted granted Critical
Publication of KR102667293B1 publication Critical patent/KR102667293B1/en

Links

Images

Classifications

    • 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]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • 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/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

블록체인 기반의 보안 메신저 서비스를 제공하는 방법 및 장치가 개시된다. 블록체인 기반 보안 메신저 서비스 방법은, 송신자의 제1 사용자 단말에 의해 실행되는 블록체인 기반 보안 메신저 서비스 방법으로서, 수신자의 제2 사용자 단말에게 전송할 메시지를 암호화하는 단계, 암호화된 메시지를 중앙 집중식 메신저 서버로 전달하는 단계, 중앙 집중식 메신저 서버로 전달한 입력 메시지 데이터를 획득하는 단계, 입력 메시지 데이터에 대한 블록체인 기반 대체불가능 토큰을 발행하는 단계 및 대체불가능 토큰을 제2 사용자 단말에게 전송하는 단계를 포함한다.A method and device for providing a blockchain-based secure messenger service are disclosed. The blockchain-based secure messenger service method is a blockchain-based secure messenger service method executed by the sender's first user terminal, comprising the steps of encrypting a message to be transmitted to the recipient's second user terminal, and sending the encrypted message to a centralized messenger server. It includes the steps of transmitting to the centralized messenger server, obtaining the input message data transmitted to the centralized messenger server, issuing a blockchain-based non-fungible token for the input message data, and transmitting the non-fungible token to the second user terminal. .

Figure R1020210004233
Figure R1020210004233

Description

블록체인 기반 보안 메신저 서비스 방법 및 장치{METHOD AND APPRATUS FOR PROVIDING BLACKCHAIN-BASED SECURE MESSENGER SERVICE}Blockchain-based secure messenger service method and device {METHOD AND APPRATUS FOR PROVIDING BLACKCHAIN-BASED SECURE MESSENGER SERVICE}

본 발명은 보안 메신저 서비스에 관한 것으로, 보다 상세하게는, 블록체인 기반의 보안 메신저 서비스를 제공하는 방법 및 장치에 관한 것이다.The present invention relates to a secure messenger service, and more specifically, to a method and device for providing a blockchain-based secure messenger service.

메신저 서비스는 스마트폰 도입 이후 가장 활발히 사용되고 있는 의사소통 수단이다. 대표적인 상용 메신저 서비스에는 카카오톡, 라인, 텔레그램 등이 있다. 이러한 상용 메신저 서비스 환경에서 사용자는 메시지를 송신하거나 수신할 때 모든 것을 중앙 집중식 메신저 서비스 제공자에게 의존해야 한다.Messenger services are the most actively used means of communication since the introduction of smartphones. Representative commercial messenger services include KakaoTalk, Line, and Telegram. In this commercial messenger service environment, users must rely on the centralized messenger service provider for everything when sending or receiving messages.

사용자가 메신저 서비스를 통해 법적인 의미를 가지는 매우 중요한 메시지를 송ㆍ수신할 때, 다음과 같은 4가지 추가 기능을 필요로 한다. 즉, 메시지 상대방 신원 인증, 송ㆍ수신 메시지 내용 기밀성 보장, 송ㆍ수신 메시지 내용 무결성 증명, 메시지 송ㆍ수신 행위 부인 방지 증명이 필요하다.When a user sends and receives very important messages with legal implications through a messenger service, the following four additional functions are required. In other words, it is necessary to authenticate the identity of the message recipient, ensure confidentiality of the contents of the transmitted and received messages, prove the integrity of the contents of the transmitted and received messages, and prove the non-repudiation of the actions of sending and receiving messages.

그러나, 사용자가 모든 기능을 전적으로 의존해야 하는 중앙 집중식 메신저 서비스는 내부 관리자에 의한 위변조 혹은 외부 해킹 공격에 취약하므로 법적 메시지 송ㆍ수신에 필수적으로 요구되는 4가지 기능을 지원할 수 없는 문제가 있다.However, the centralized messenger service, on which users must rely entirely on all functions, is vulnerable to forgery and forgery by internal administrators or external hacking attacks, so there is a problem in that it cannot support the four functions essential for sending and receiving legal messages.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위해 도출된 것으로, 본 발명의 목적은 사용자가 법적인 의미를 가지는 중요한 메시지를 전송할 때 상용 메신저 서비스를 활용하면서도, 필수적으로 지원이 필요한 메시지 상대방 신원 인증, 송ㆍ수신 메시지 내용 기밀성 보장, 송ㆍ수신 메시지 내용 무결성 증명, 메시지 송ㆍ수신 행위 부인 방지 증명의 4가지 기능을 지원할 수 있는, 블록체인 기반의 보안 메시지 서비스 방법을 제공하는데 있다.The present invention was derived to solve the problems of the prior art described above. The purpose of the present invention is to use a commercial messenger service when a user transmits an important message with legal significance, while also authenticating the identity of the message party, which essential support is required. The goal is to provide a blockchain-based secure message service method that can support four functions: guaranteeing the confidentiality of transmitted and received message contents, proof of integrity of transmitted and received message contents, and non-repudiation proof of message transmission and reception actions.

본 발명의 다른 목적은 전술한 블록체인 기반의 보안 메시지 서비스 방법을 위한 블록체인 기반의 보안 메시지 서비스 장치를 제공하는 데 있다.Another object of the present invention is to provide a blockchain-based secure message service device for the above-described blockchain-based secure message service method.

상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 보안 메신저 서비스 방법은, 송신자의 제1 사용자 단말에 의해 실행되는 블록체인 기반 보안 메신저 서비스 방법으로서, 수신자의 제2 사용자 단말에게 전송할 메시지나 첨부파일을 암호화하는 단계; 상기 암호화하는 단계에서 암호화된 메시지를 중앙 집중식 메신저 서버를 통한 제2 사용자 단말에게 전송하는 단계; 암호화된 메시지에 대응하는 블록체인 기반 대체불가능 토큰을 발행하는 단계; 및 대체불가능 토큰을 제2 사용자 단말에게 전송하는 단계를 포함한다.The blockchain-based secure messenger service method according to one aspect of the present invention for solving the above technical problem is a blockchain-based secure messenger service method executed by the first user terminal of the sender, which transmits to the second user terminal of the recipient. Encrypting messages or attachments; transmitting the encrypted message in the encrypting step to a second user terminal through a centralized messenger server; issuing a blockchain-based non-fungible token corresponding to the encrypted message; and transmitting the non-fungible token to the second user terminal.

일실시예에서, 상기 암호화하는 단계는 수신자의 공개키를 이용하여 메시지 또는 첨부파일을 암호화한다.In one embodiment, the encrypting step encrypts the message or attachment using the recipient's public key.

일실시예에서, 블록체인 기반 보안 메신저 서비스 방법은, 상기 발행하는 단계 후에 상기 대체불가능 토큰의 소유자를 상기 수신자로 변경하는 단계를 더 포함할 수 있다.In one embodiment, the blockchain-based secure messenger service method may further include the step of changing the owner of the non-fungible token to the recipient after the issuing step.

일실시예에서, 상기 제1 사용자 단말 및 상기 제2 사용자 단말은 인증기관(Certificate Authority)에서 인증하는 공개키 기반(Public Key Infrastructure) 키 쌍을 보유할 수 있다.In one embodiment, the first user terminal and the second user terminal may possess a public key infrastructure key pair authenticated by a Certificate Authority.

일실시에에서, 상기 대체불가능 토큰의 속성은 토큰 식별자(ID), 토큰 타입, 소유자 정보, 송신자 메신저 ID, 수신자 메신저 ID, 메시지 내용 암호화 대칭키 정보, 유효기간 및 토큰 조회 상태 정보를 포함할 수 있다.In one embodiment, the properties of the non-fungible token may include a token identifier (ID), token type, owner information, sender messenger ID, recipient messenger ID, message content encryption symmetric key information, expiration date, and token inquiry status information. there is.

일실시예에서, 상기 대체불가능 토큰은 토큰 생성 및 전송 트랜잭션 처리 정보에 대한 토큰 속성을 포함하고, 여기서 송신자 또는 수신자는 토큰 생성 및 전송 트랜잭션 처리 정보를 통해 메시지의 송신 여부 또는 수신 여부에 대한 부인 방지 증명을 획득할 수 있다.In one embodiment, the non-fungible token includes token attributes for token creation and transmission transaction processing information, wherein the sender or recipient provides non-repudiation of whether the message was sent or received via the token creation and transmission transaction processing information. Proof can be obtained.

일실시예에서, 상기 대체불가능 토큰은 유효기간에 대한 토큰 속성을 포함하고, 여기서 송신자 또는 수신자는 유효기간을 통해 메시지 유효성을 자체 판단할 수 있다.In one embodiment, the non-fungible token includes a token attribute for a validity period, where the sender or receiver can self-determine message validity through the validity period.

일실시예에서, 상기 제1 사용자 단말과 상기 제2 사용자 단말은 중앙 집중식 메신저 서버를 통해 신호 및 데이터의 송수신하는 메신저 클라이언트들이며, XMPP(Extensible Messaging and Presence Protocol) 또는 메신저 자체 프로토콜을 사용할 수 있다.In one embodiment, the first user terminal and the second user terminal are messenger clients that transmit and receive signals and data through a centralized messenger server, and may use XMPP (Extensible Messaging and Presence Protocol) or the messenger's own protocol.

일실시예에서, 상기 송신자는 대체불가능 토큰의 토큰 조회 상태 속성을 통해 수신자의 수신 부인 방지를 검증할 수 있다. 혹은, 상기 수신자는 대체불가능 토큰을 조회하여 대체불가능 토큰에 기록되어 있는 송신자 서명과 메신저 ID를 확인하여 송신자의 신원을 검증하거나, 수신자의 공개키에 대응하는 메시지 암호화 대칭키를 통해 암호화된 메시지를 복호화할 수 있다.In one embodiment, the sender may verify the recipient's non-repudiation of receipt through the token lookup status attribute of the non-fungible token. Alternatively, the recipient verifies the identity of the sender by looking up the non-fungible token and checking the sender's signature and messenger ID recorded in the non-fungible token, or sends a message encrypted using a message encryption symmetric key corresponding to the recipient's public key. It can be decrypted.

일실시예에서, 상기 제1 사용자 단말이나 상기 제2 사용자 단말에서 비보안 메시지 전송과 보안 메시지 전송을 선택하는 사용자 인터페이스에서 사용자 입력이나 명령을 획득하는 단계를 더 포함하며, 상기 사용자 입력이나 명령에 따라 상기 메시지를 암호화하는 단계, 상기 암호화된 메시지를 전송하는 단계, 상기 메시지 토큰을 발행하는 단계 및 상기 메시지 토큰을 전송하는 단계를 포함한 일련의 과정이 수행될 수 있다.In one embodiment, the method further includes obtaining a user input or command from a user interface for selecting transmission of a non-secure message or a secure message from the first user terminal or the second user terminal, according to the user input or command. A series of processes may be performed including encrypting the message, transmitting the encrypted message, issuing the message token, and transmitting the message token.

일실시예에서, 상기 메시지에 포함되는 사진, 동영상, 문서 데이터 또는 이들 조합의 첨부파일은 네트워크를 통해 접근가능한 오프체인 공간에 저장되며, 상기 대체불가능 토큰은 첨부파일에 대한 오프체인 공간의 저장 경로를 기록할 수 있다.In one embodiment, attachments such as photos, videos, document data, or a combination thereof included in the message are stored in an off-chain space accessible through a network, and the non-fungible token is a storage path in the off-chain space for the attachment. can be recorded.

일실시예에서, 상기 블록체인 기반 보안 메신저 서비스 방법은, 상기 제1 사용자 단말의 메신저 화면에 첨부파일의 암호화된 첨부파일 데이터를 획득하고, 암호화된 첨부파일 데이터에 대한 블록체인 기반 대체불가능 추가 토큰을 발행하고, 대체불가능 추가 토큰을 제2 사용자 단말에 전송하기 위한 사용자 인터페이스를 제공하는 단계를 더 포함할 수 있다.In one embodiment, the blockchain-based secure messenger service method obtains encrypted attachment data of an attachment on the messenger screen of the first user terminal, and obtains a blockchain-based non-fungible additional token for the encrypted attachment data. It may further include providing a user interface for issuing and transmitting an additional non-fungible token to a second user terminal.

상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 블록체인 기반 보안 메신저 서비스 장치는, 송신자의 제1 사용자 단말에 탑재되는 블록체인 기반 보안 메신저 서비스 장치로서, 수신자의 제2 사용자 단말에게 전송할 메시지나 첨부파일의 암호화된 메시지를 중앙 집중식 메신저 서버를 통해 상기 제2 사용자 단말에게 전송하는 메시지 처리부; 및 상기 암호화된 메시지에 대한 입력 메시지 데이터를 획득하고 상기 입력 메시지 데이터에 대한 블록체인 기반 대체불가능 토큰을 발행하며, 상기 대체불가능 토큰을 상기 제2 사용자 단말에게 전송하는 토큰 처리부를 포함한다.A blockchain-based secure messenger service device according to an aspect of the present invention for solving the above technical problem is a blockchain-based secure messenger service device mounted on a first user terminal of a sender, and a message to be transmitted to a second user terminal of a recipient. a message processing unit that transmits the encrypted message of the attached file to the second user terminal through a centralized messenger server; And a token processing unit that acquires input message data for the encrypted message, issues a blockchain-based non-fungible token for the input message data, and transmits the non-fungible token to the second user terminal.

일실시예에서, 상기 토큰 처리부는, 암호화된 메시지에 대한 입력 메시지 데이터를 획득하고 입력 메시지 데이터에 대한 블록체인 기반 대체불가능 토큰을 발행하는 토큰 발행 모듈; 대체불가능 토큰을 제2 사용자 단말에게 전송하는 토큰 전송 모듈; 및 대체불가능 토큰의 소유자를 수신자로 변경하는 토큰 수정 모듈을 구비한다.In one embodiment, the token processing unit includes a token issuance module that obtains input message data for an encrypted message and issues a blockchain-based non-fungible token for the input message data; a token transmission module that transmits a non-fungible token to a second user terminal; and a token modification module that changes the owner of the non-fungible token to the recipient.

일실시예에서, 상기 토큰 처리부는, 메시지 토큰의 속성을 조회하는 트랜잭션을 생성하고 생성한 트랜잭션을 블록체인으로 전송하여 메시지 토큰의 암호화 대칭키를 조회하는 토큰 조회 모듈을 더 구비한다.In one embodiment, the token processing unit further includes a token inquiry module that generates a transaction to query the properties of the message token and transmits the generated transaction to the blockchain to query the encryption symmetric key of the message token.

일실시예에서, 상기 토큰 처리부는, 토큰 발행 모듈, 토큰 전송 모듈 및 토큰 수정 모듈에 의한 메시지 토큰에 대한 동작 결과가 블록체인에 최종적으로 저장될 때, 블록체인으로부터 이벤트를 받는 이벤트 관리 모듈을 더 구비한다.In one embodiment, the token processing unit further includes an event management module that receives events from the blockchain when the results of operations on the message token by the token issuance module, token transfer module, and token modification module are finally stored in the blockchain. Equipped with

일실시예에서, 상기 토큰 처리부는, 토큰 검증 모듈을 호출하여 메시지 토큰에 기록된 상대방 메신저 ID를 확인하고, 상대방 메신저 ID에 대응하는 사용자 정보 및 공개키와 상대방의 사용자 정보 및 공개키와의 일치 여부를 비교함으로써, 상대방의 사용자 신원을 인증한다.In one embodiment, the token processing unit calls a token verification module to check the other party's messenger ID recorded in the message token, and matches the user information and public key corresponding to the other party's messenger ID with the other party's user information and public key. By comparing whether or not, the other party's user identity is authenticated.

일실시예에서, 메신저 처리부와 토큰 처리부를 포함하는 보안 메신저는 사용자 단말의 메신저 서비스 화면에 제공되는 사용자 인터페이스에서의 특정 입력 혹은 명령에 따라 비보안 메시지 전송과 보안 메시지 전송을 선택할 수 있다.In one embodiment, a secure messenger including a messenger processing unit and a token processing unit can select between transmitting a non-secure message and transmitting a secure message according to a specific input or command in a user interface provided on the messenger service screen of the user terminal.

전술한 본 발명에 의하면, 사용자가 송신하는 메시지는 암호화하여 전송되고, 해당 메시지의 암호화 키 정보, 송신 정보, 수신자 ID 등 관련 메타 데이터를 블록체인 상에 대체불가능 토큰으로 저장하고 수신자에게 전송함으로써, 메시지 내용에 대한 무결성과 기밀성을 블록체인의 보안 수준으로 보장할 수 있다.According to the present invention described above, the message sent by the user is encrypted and transmitted, and related metadata such as encryption key information, transmission information, and recipient ID of the message are stored as a non-fungible token on the blockchain and transmitted to the recipient. The integrity and confidentiality of message content can be guaranteed at the security level of blockchain.

또한, 본 발명에 의하면, 사용자는 전송하는 메시지의 중요도에 따라서 블록체인을 활용하지 않는 일반적인 평문 메시지를 전송하거나, 블록체인 기반 보안 메신저 서비스를 활용하여 보안 메시지를 전송할 수 있으므로, 기존의 중앙 집중식 메신저 서비스와 블록체인 기반 보안 메신저 서비스를 함께 사용할 수 있고, 특히 기존의 상용 메신저 서비스의 부가 기능으로 구현할 수 있으므로, 그 활용성을 높은 장점이 있다.In addition, according to the present invention, depending on the importance of the message being transmitted, the user can transmit a general plaintext message that does not utilize blockchain, or transmit a secure message using a blockchain-based secure messenger service, so that the user can transmit a secure message using a blockchain-based secure messenger service. The service and blockchain-based secure messenger service can be used together, and in particular, it can be implemented as an additional function of an existing commercial messenger service, so it has the advantage of high usability.

또한, 본 발명에 의하면, 블록체인 상의 대체불가능 토큰 생성 및 전송과 토큰 소유자의 변경을 통해 블록체인 상의 토큰 소유자 정보를 활용하여 메시지 송ㆍ수신자에 대한 신원 인증을 획득할 수 있고, 또한 토큰 생성 및 전송 트랜잭션 처리 정보를 통해 메시지 송ㆍ수신 여부에 대해 부인 방지 증명을 블록체인의 보안 수준으로 제공할 수 있다.In addition, according to the present invention, it is possible to obtain identity authentication for the message sender and receiver by utilizing the token owner information on the blockchain through the creation and transmission of non-fungible tokens on the blockchain and the change of the token owner. In addition, token generation and Through transmission transaction processing information, non-repudiation proof of whether a message has been sent or received can be provided at the security level of blockchain.

또한, 본 발명에 의하면, 대체불가능 토큰의 유효기간을 토큰 속성으로 설정함으로써, 중앙 집중식 상용 메신저 서비스에서 독자적으로 메시지 보관 정책을 실시하더라도, 토큰 유효기간을 통해 해당 메시지 유효성을 사용자가 직접 최종 판단하도록 할 수 있다.In addition, according to the present invention, by setting the validity period of the non-fungible token as a token attribute, even if the centralized commercial messenger service independently implements a message storage policy, the user can make the final judgment on the validity of the message through the token validity period. can do.

또한, 본 발명에 의하면, 사용자는 기본적으로 상용 메신저 서비스를 활용하여 메시지를 전송하기 때문에, 메시지에 다양한 데이터 예컨대, 사진, 동영상, 문서 등을 첨부할 수 있으며, 해당 첨부파일 데이터에 대한 암호화 처리도 메시지 내용과 유사한 형태로 처리할 수 있으므로, 메시지 데이터뿐 아니라 첨부 데이터에 대한 보안성도 함께 지원할 수 있다.In addition, according to the present invention, since the user basically sends a message using a commercial messenger service, various data such as photos, videos, documents, etc. can be attached to the message, and encryption processing for the attached file data is also performed. Since it can be processed in a form similar to the message content, the security of not only the message data but also the attached data can be supported.

아울러, 본 발명에 의하면, 블록체인 특성을 이용하여 메시지 송ㆍ수신자 신원 인증, 메시지 내용 기밀성 및 무결성 보장, 그리고 메시지 송ㆍ수신 행위 부인 방지 증명 등을 블록체인의 보안 수준으로 지원하므로 높은 보안성을 요구하는 군용 또는 금융 분야 등의 분야에 적극 활용할 수 있는 장점이 있다.In addition, according to the present invention, high security is achieved by using blockchain characteristics to support authentication of the identity of the message sender and receiver, guarantee of message content confidentiality and integrity, and non-repudiation of message transmission and reception actions at the level of blockchain security. It has the advantage of being able to be actively utilized in fields that require it, such as military or financial fields.

도 1 은 본 발명의 일실시예에 따른 블록체인 기반 보안 메신저 서비스 시스템의 전체적인 구성도이다.
도 2는 도 1의 블록체인 기반 보안 메신저 서비스 시스템의 메신저 클라이언트에 대응하는 보안 메신저의 기능을 설명하기 위한 예시도이다.
도 3은 도 2의 보안 메신저에서 발생되는 대체불가능 토큰에 채용할 수 있는 데이터 구조에 대한 예시도이다.
도 4는 도 1의 블록체인 기반 보안 메신저 서비스 시스템에 의한 보안 메신저 서비스의 작동 원리를 설명하기 위한 예시도이다.
도 5는 본 발명의 일실시예에 따른 블록체인 기반 보안 메신저 서비스 방법에 대한 흐름도이다.
도 6 및 도 7은 도 5의 보안 메신저 서비스 방법의 사용자 단말에서 채용할 수 있는 인터페이스를 나타낸 예시도들이다.
Figure 1 is an overall configuration diagram of a blockchain-based secure messenger service system according to an embodiment of the present invention.
FIG. 2 is an example diagram for explaining the functions of a secure messenger corresponding to the messenger client of the blockchain-based secure messenger service system of FIG. 1.
Figure 3 is an example diagram of a data structure that can be adopted for a non-fungible token generated in the secure messenger of Figure 2.
FIG. 4 is an example diagram to explain the operating principle of a secure messenger service by the blockchain-based secure messenger service system of FIG. 1.
Figure 5 is a flowchart of a blockchain-based secure messenger service method according to an embodiment of the present invention.
Figures 6 and 7 are exemplary diagrams showing an interface that can be employed in a user terminal of the secure messenger service method of Figure 5.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. While describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, B, etc. may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be named a second component without departing from the scope of the present invention, and similarly, the second component may also be named a first component. The term “and/or” includes any of a plurality of related stated items or a combination of a plurality of related stated items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless explicitly defined in the present application, should not be interpreted in an ideal or excessively formal sense. No.

본 발명의 바람직한 실시예를 설명하기에 앞서 주요 용어를 살펴보면 다음과 같다.Before explaining the preferred embodiment of the present invention, key terms are as follows.

블록체인(blockchain)은 분산화된 거래장부를 네트워크에 참여하는 노드들이 유지하는 시스템을 의미한다. 즉, 블록체인은 트랜잭션(transaction)들의 집합으로 구성된 블록이 이전 블록의 해시(hash)값을 담아 모든 블록을 체인 형식으로 연결하는 데이터 구조로서, 블록체인 네트워크에 참여하는 모든 노드(node)가 상기 데이터 구조를 동일하게 유지하고, 합의 알고리즘(consensus algorithm)을 기반으로 새로운 블록을 생성하여 연결하는 분산 원장 기술(distributed ledger technology)이다. 특정 노드의 블록체인 데이터가 임의로 조작되더라도 블록 간에 이전 블록의 해시값을 가지고 있으므로 데이터 조작을 바로 탐지할 수 있으며, 조작된 데이터는 노드 간에 합의된 것이 아니기 때문에 블록체인에 반영되지 않는다. 이처럼 블록체인은 데이터를 임의로 위변조하는 것이 불가능하여 데이터의 무결성 및 투명성을 보장해준다.Blockchain refers to a system in which nodes participating in a network maintain a decentralized transaction ledger. In other words, blockchain is a data structure in which a block composed of a set of transactions contains the hash value of the previous block and connects all blocks in a chain format, and all nodes participating in the blockchain network are It is a distributed ledger technology that keeps the data structure the same and creates and connects new blocks based on a consensus algorithm. Even if the blockchain data of a specific node is arbitrarily manipulated, data manipulation can be detected immediately because each block has the hash value of the previous block, and the manipulated data is not reflected in the blockchain because it is not agreed upon between nodes. In this way, blockchain ensures the integrity and transparency of data by making it impossible to arbitrarily forge or falsify data.

블록체인은 비허가형 블록체인(permissionless blockchain)과 허가형 블록체인(permissioned blockchain)으로 구분된다. 비허가형 블록체인은 사용자 및 노드가 아무런 제약 없이 블록체인 네트워크에 참여할 수 있는 블록체인이다. 대표적인 비허가형 블록체인으로는 비트코인(Bitcoin) 및 이더리움(Ethereum)이 있다. 허가형 블록체인은 허가된 사용자 및 노드들만 블록체인 네트워크에 참여할 수 있는, 비즈니스 환경에서 활용하기에 적합한 블록체인이다. 대표적인 허가형 블록체인으로는 하이퍼레저 패브릭(Hyperledger Fabric)이 있다.Blockchain is divided into permissionless blockchain and permissioned blockchain. A permissionless blockchain is a blockchain that allows users and nodes to participate in the blockchain network without any restrictions. Representative permissionless blockchains include Bitcoin and Ethereum. Permissioned blockchain is a blockchain suitable for use in a business environment where only authorized users and nodes can participate in the blockchain network. A representative permissioned blockchain is Hyperledger Fabric.

스마트 컨트랙트(smart contract)란 블록체인을 기반으로 공증, 부동산 계약 등 다양한 형태의 계약을 체결하고 이행하는 계약을 말한다. 스마트 컨트랙트를 통해 비즈니스 로직을 구성하여 탈중앙화 애플리케이션(distributed application, dApp)을 개발 및 운영할 수 있다. 스마트 컨트랙트는 제 3자의 개입 없이 요청을 비즈니스 로직에 따라 자동으로 실행한다는 장점을 갖고 있다. 대표적인 dApp으로 토큰(token)이 있다.A smart contract is a contract that concludes and implements various types of contracts, such as notarization and real estate contracts, based on blockchain. You can develop and operate a distributed application (dApp) by configuring business logic through smart contracts. Smart contracts have the advantage of automatically executing requests according to business logic without third party intervention. A representative dApp is token.

토큰은 디지털 자산(digital asset)을 블록체인 상에 표현한 것이다. 블록체인에 디지털 자산을 토큰화하면 디지털 자산의 소유권 증명, 투명성 및 유동성 보장 등의 장점을 확보할 수 있다. 토큰은 대체가능 토큰(fungible token)과 대체불가능 토큰(non-fungible token)으로 구분된다. 대체가능 토큰은 쪼개질 수 있는 디지털 자산을 표현한 토큰이고, 대체불가능 토큰은 쪼개질 수 없는 디지털 자산을 표현한 토큰이다.A token is a representation of a digital asset on the blockchain. Tokenizing digital assets on the blockchain can secure advantages such as proof of ownership of digital assets, transparency, and guaranteed liquidity. Tokens are divided into fungible tokens and non-fungible tokens. A fungible token is a token that represents a digital asset that can be split, and a non-fungible token is a token that represents a digital asset that cannot be split.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings.

도 1 은 본 발명의 일실시예에 따른 블록체인 기반 보안 메신저 서비스 시스템의 전체적인 구성도이다.Figure 1 is an overall configuration diagram of a blockchain-based secure messenger service system according to an embodiment of the present invention.

도 1을 참조하면, 블록체인 기반 보안 메신저 서비스 시스템은, 메신저 송신자 단말기(100a), 메신저 수신자 단말기(100b), 중앙 집중식 메신저 서버(200) 및 블록체인 기반 보안 메신저 서비스 장치(500)로 구성된다. 여기서, 중앙 집중식 메신저 서버(200)는 외부 메신저 서비스를 통해 메신저 송신기 단말기(100a)와 메신저 수신기 단말기(100b) 간의 메시지 송ㆍ수신 기능을 지원한다.Referring to Figure 1, the blockchain-based secure messenger service system consists of a messenger sender terminal 100a, a messenger receiver terminal 100b, a centralized messenger server 200, and a blockchain-based secure messenger service device 500. . Here, the centralized messenger server 200 supports message transmission and reception functions between the messenger transmitter terminal 100a and the messenger receiver terminal 100b through an external messenger service.

메신저 송신자 단말기(100a)와 메신저 수신자 단말기(100b)는 스마트 폰, 퍼스널 컴퓨터(personal computer, PC), 개인휴대통신 단말 등을 포함하며, 송ㆍ수신을 위한 메시지 및 다양한 형태의 첨부 데이터 입력을 담당한다. 메시지 및 첨부 데이터 암호화는 단말기 상에서 암호화키를 생성하고 처리될 수 있다.The messenger sender terminal 100a and the messenger receiver terminal 100b include a smart phone, a personal computer (PC), a personal mobile communication terminal, etc., and are responsible for inputting messages for sending and receiving and various types of attached data. do. Encryption of messages and attached data can be processed by generating an encryption key on the terminal.

또한 메신저 송신자 단말기(100a)와 메신저 수신자 단말기(100b)는 중앙 집중식 메신저 서버(200)와 연동하는 메신저 클라이언트를 탑재할 수 있고, 이 경우 메신저 클라이언트는 블록체인 기반 보안 메신저 서비스 장치를 구현한 소프트웨어 모듈을 포함하거나, 블록체인 기반 보안 메신저 서비스 장치 혹은 이를 구현한 소프트웨어 모듈과 연동할 수 있다.In addition, the messenger sender terminal 100a and the messenger receiver terminal 100b may be equipped with a messenger client that interfaces with the centralized messenger server 200, and in this case, the messenger client is a software module that implements a blockchain-based secure messenger service device. It can be integrated with a blockchain-based security messenger service device or a software module that implements it.

또한, 메신저 송신자 단말기(100a)는 일반 메시지와 보안 메시지 중 어느 하나를 선택하여 메시지를 전송할 수 있다. 이때, 보안 메신저(300)는 메신저 송신자 단말기(100a)에서 선택한 메시지 형태에 따라서, 일반 메시지 송신을 원하는 경우 종래의 메신저 서비스와 동일하게 메신저 API SDK(320)을 통해 중앙 집중식 메신저 서버(200)로 일반적인 메시지를 전송하고, 보안 메시지를 전송하고자 할 경우에는 보안 메신저(300) 내 블록체인 SDK(310)에서 블록체인 트랜잭션을 블록체인(400)에 전송하여 메시지와 연계된 블록체인 대체불가능 토큰을 생성하고, 동시에 메신저 API SDK(320)를 통해 중앙 집중식 메신저 서버(200)로 해당 메시지를 전송할 수 있다.Additionally, the messenger sender terminal 100a can transmit a message by selecting either a normal message or a secure message. At this time, if a general message is desired to be transmitted according to the message type selected by the messenger sender terminal 100a, the secure messenger 300 is sent to the centralized messenger server 200 through the messenger API SDK 320 in the same manner as a conventional messenger service. If you want to send a general message or a secure message, send a blockchain transaction to the blockchain (400) in the blockchain SDK (310) within the secure messenger (300) to create a blockchain non-fungible token linked to the message. And at the same time, the message can be transmitted to the centralized messenger server (200) through the messenger API SDK (320).

중앙 집중식 메신저 서버(200)는 인터넷 환경에서 메시지 송ㆍ수신 서비스를 지원한다. 현재 상용화 서비스를 제공하고 있는 카카오톡, 라인, 텔레그램 등 메시지 송ㆍ수신 서비스 API를 제공하는 메신저 서비스들을 포함할 수 있다. 이 경우, 상용화 메신저 서비스는 본 실시예의 보안 메신저 서비스의 내용과는 독립적인 서비스로 간주할 수 있다.The centralized messenger server 200 supports message sending and receiving services in an Internet environment. This may include messenger services that provide message sending and receiving service APIs, such as KakaoTalk, Line, and Telegram, which are currently providing commercial services. In this case, the commercialized messenger service can be considered a service independent of the contents of the secure messenger service of this embodiment.

블록체인 기반 보안 메신저 서비스 장치(500)는 보안 메신저(300)와 블록체인(400)으로 구성된다. 보안 메신저(300)는 블록체인과의 연계를 담당하는 블록체인 SDK(software development kit, 310)와 중앙 집중식 메신저 서버(200)와의 연계를 담당하는 메신저 API SDK(320)로 구성된다. 블록체인 기반 보안 메신저 서비스 장치(500)는 본 실시예에 따른 블록체인을 활용한 보안 메신저 서비스를 제공한다.The blockchain-based secure messenger service device 500 consists of a secure messenger 300 and a blockchain 400. The secure messenger (300) consists of a blockchain SDK (software development kit, 310) that is responsible for linking with the blockchain and a messenger API SDK (320) that is responsible for linking with the centralized messenger server (200). The blockchain-based secure messenger service device 500 provides a secure messenger service using blockchain according to this embodiment.

블록체인 기반 보안 메신저 서비스 장치(500)가 중앙 집중식 메신저 서버(200)와 연계하는 일례로서 도 1에서는 REST(Representational State Transfer) 기반으로 API(application programming interface)를 제공하는 웹 서비스를 총칭하는 RESTful 형태의 API로 연계됨을 표현하고 있다.As an example in which the blockchain-based secure messenger service device 500 connects with the centralized messenger server 200, Figure 1 shows the RESTful form, which collectively refers to web services that provide an API (application programming interface) based on REST (Representational State Transfer). It expresses that it is connected to the API of .

보안 메신저(300)의 메신저 API SDK(320)는 메신저 송신자 단말기(100a)에 의한 메시지 송신을 외부 중앙 집중식 메신저 서버(200)를 통해 처리한다. 그리고, 블록체인 SDK(310)는 블록체인 기반 대체불가능 토큰을 생성하거나 관리한다. 보안 메신저(300)는 메신저 수신자 단말기(100b)에서 메시지 확인을 위해 대체불가능 토큰의 조회를 블록체인 SDK(310)를 통해 지원한다.The messenger API SDK 320 of the secure messenger 300 processes message transmission by the messenger sender terminal 100a through the external centralized messenger server 200. And, the blockchain SDK (310) creates or manages blockchain-based non-fungible tokens. The secure messenger 300 supports inquiry of non-fungible tokens through the blockchain SDK 310 to confirm the message at the messenger recipient terminal 100b.

블록체인(400)은 허가형 혹은 비허가형 블록체인 등 어떤 형태의 블록체인이든 가능하며, 블록체인 기반 보안 메신저 서비스 장치의 블록체인 기반 보안 메신저 서비스와는 독립적으로 구성 가능하다.The blockchain 400 can be any type of blockchain, such as a permissioned or permissionless blockchain, and can be configured independently from the blockchain-based security messenger service of the blockchain-based security messenger service device.

블록체인(400)은 메시지 내용을 관장하는 기관의 노드가 참여 노드로 구성될 수 있으며, 생성된 메시지 토큰을 블록에 담아 관리하는 역할을 한다. 이때, 메신저 서버(200)가 비즈니스 목적을 위해 활용되는 경우 블록체인 네트워크의 참여자를 제한하기 위해 허가형 블록체인으로 구성 가능하며, 기타 다른 경우에서는 비허가형인 퍼블릭 블록체인으로도 구성 가능하다.The blockchain 400 may consist of nodes of organizations that manage message content as participating nodes, and serves to manage the generated message tokens by storing them in blocks. At this time, when the messenger server 200 is used for business purposes, it can be configured as a permissioned blockchain to limit participants in the blockchain network, and in other cases, it can be configured as a non-permissioned public blockchain.

도 2는 도 1의 블록체인 기반 보안 메신저 서비스 시스템의 메신저 클라이언트에 대응하는 보안 메신저의 기능을 설명하기 위한 예시도이다.FIG. 2 is an example diagram for explaining the functions of a secure messenger corresponding to the messenger client of the blockchain-based secure messenger service system of FIG. 1.

도 2를 참조하면, 본 실시예에 따른 블록체인 기반 보안 메신저 서비스 장치의 보안 메신저(300)는, 블록체인 SDK(310)와 메신저 API SDK(320)를 구비하며, 메시지 당 블록체인 토큰 생성, 전송, 검색 등의 기능을 지원함으로써 메시지를 관리한다.Referring to FIG. 2, the secure messenger 300 of the blockchain-based secure messenger service device according to this embodiment includes a blockchain SDK 310 and a messenger API SDK 320, and generates a blockchain token per message. Manages messages by supporting functions such as transmission and search.

이를 위해 블록체인 SDK(310)는 토큰 발행 모듈(311), 토큰 전송 모듈(312), 토큰 수정 모듈(313), 토큰 조회 모듈(314), 블록체인 상에서 발생하는 이벤트를 전달받는 이벤트 모듈 (315), 토큰 검증 모듈(316)을 정의한다. 그리고 메신저 API SDK(320)는 중앙 집중식 메신저 서버(200)와 통신하는 API 모듈(321)을 정의한다.For this purpose, the blockchain SDK (310) includes a token issuance module (311), a token transfer module (312), a token modification module (313), a token inquiry module (314), and an event module (315) that receives events occurring on the blockchain. ), defines the token verification module 316. And the messenger API SDK 320 defines an API module 321 that communicates with the centralized messenger server 200.

토큰 발행 모듈(311)은 메시지 토큰을 발행하는 트랜잭션을 생성하고 생성한 트랜잭션을 블록체인(400)으로 전송한다. 보다 구체적으로는, 메신저 송신자 단말기(100a)가 보안 메시지 전송을 요청하면, 보안 메신저(300)는 토큰 발행 모듈(311)을 호출하여 블록체인 트랜잭션을 생성하고, 블록체인(400) 상에 메시지 토큰을 발행한다. 최초 메시지 토큰을 발행하면 이를 발행한 주체가 토큰의 소유자가 된다. 블록체인 토큰의 데이터 구조는 도 3을 참조하는 아래의 상세 설명에서 설명하기로 한다.The token issuance module 311 creates a transaction issuing a message token and transmits the generated transaction to the blockchain 400. More specifically, when the messenger sender terminal 100a requests to transmit a secure message, the secure messenger 300 calls the token issuance module 311 to create a blockchain transaction and generates a message token on the blockchain 400. issues. When the first message token is issued, the entity that issued it becomes the owner of the token. The data structure of the blockchain token will be explained in the detailed description below with reference to FIG. 3.

토큰 전송 모듈(312)은 메시지 토큰을 특정 대상에게 전송하는 트랜잭션을 블록체인(400)으로 전송한다. 보다 구체적으로는, 최초 메시지 토큰의 소유자인 메신저 송신자 단말기(100a)가 메신저 수신자 단말기(100b) 정보를 담아 토큰 전송 모듈(312)을 호출하여 트랜잭션을 생성하고, 메신저 수신자 단말기(100b)에게 메시지 토큰의 소유권을 양도한다. 즉, 토큰 전송 모듈(312) 호출이 완료되면 토큰의 소유자가 상기 메신저 수신자 단말기(100b)로 변경된다.The token transmission module 312 transmits a transaction sending a message token to a specific target to the blockchain 400. More specifically, the messenger sender terminal 100a, the owner of the first message token, calls the token transmission module 312 with information about the messenger receiver terminal 100b to create a transaction, and sends the message token to the messenger receiver terminal 100b. transfer the ownership of That is, when the token transfer module 312 call is completed, the owner of the token is changed to the messenger receiver terminal 100b.

이때, 메시지 토큰에서 토큰 전송 모듈(312)의 호출 권한이 소유자, 피승인자, 운영자에게 존재하지만, 본 실시예에서는 피승인자, 운영자 역할은 사용하지 않기 때문에 토큰 전송 모듈(312) 호출 권한은 소유자에게만 있다. 하지만. 본 발명의 다른 실시예에서는 피승인자 혹은 운영자에게도 호출 권한을 부여할 수 있다.At this time, the right to call the token transfer module 312 in the message token exists for the owner, approver, and operator, but in this embodiment, the grantee and operator roles are not used, so the right to call the token transfer module 312 is available only to the owner. there is. but. In another embodiment of the present invention, call authority can also be granted to an approved person or operator.

토큰 수정 모듈(313)은 메시지 토큰의 확장 속성의 하위 속성값을 기록하는 트랜잭션을 생성하고 블록체인(400)으로 전송한다. 보다 구체적으로는, 토큰 수정 모듈(313)에 대한 호출 권한은 소유자에게만 있으나, 본 실시예에서는 보안 메신저(500)에 의해 메신저 송신자 단말기(100a)와 메신저 수신자 단말기(100b)가 토큰 수정 모듈(313)을 호출할 수 있도록 구성된다.The token modification module 313 creates a transaction recording the lower attribute value of the extended attribute of the message token and transmits it to the blockchain 400. More specifically, only the owner has the authority to call the token modification module 313, but in this embodiment, the messenger sender terminal 100a and the messenger receiver terminal 100b are connected to the token modification module 313 by the security messenger 500. ) is configured so that it can be called.

메신저 송신자 단말기(100a)가 토큰 전송 모듈(313)을 호출하여 보안 메시지를 메신저 수신자 단말기(100b)에게 전송하면, 메신저 수신자 단말기(100b)는 보안 메시지를 수신했다는 것을 토큰 수정 모듈(313)을 호출하여 토큰 조회 상태 속성에 기록할 수 있다. 이를 통해 메신저 송ㆍ수신자 단말기(100a, 100b)는 각각 보안 메시지를 송ㆍ수신했다는 사실을 추후 증명할 수 있다.When the messenger sender terminal 100a calls the token transmission module 313 to transmit a security message to the messenger receiver terminal 100b, the messenger receiver terminal 100b calls the token modification module 313 to indicate that the security message has been received. This can be recorded in the token inquiry status attribute. Through this, the messenger sender and receiver terminals 100a and 100b can later prove that they have transmitted and received a secure message, respectively.

토큰 조회 모듈(314)은 메시지 토큰의 속성을 조회하는 트랜잭션을 생성하고 블록체인(400)으로 전송한다. 보안 메시지가 수신되면, 메신저 수신자 단말기(100b)는 토큰 조회 모듈(314)을 호출하여 메신저 송신자 단말기(100a)가 전송한 메시지 토큰의 암호화 대칭키 속성을 조회하고, 조회한 암호화 대칭키로 보안 메시지를 복호화하여 메시지 내용을 열람할 수 있다.The token inquiry module 314 creates a transaction that queries the properties of the message token and transmits it to the blockchain 400. When a secure message is received, the messenger receiver terminal (100b) calls the token inquiry module 314 to query the encryption symmetric key attribute of the message token transmitted by the messenger sender terminal (100a), and sends the security message using the searched encryption symmetric key. You can decrypt and view the contents of the message.

보안 메신저(300)가 블록체인(400)으로부터 이벤트를 받으면, 이벤트 관리 모듈(315)은 호출한 주체에게 알림을 보내는 기능을 한다. 토큰 발행 모듈(311), 토큰 전송 모듈(312), 그리고 토큰 수정 모듈(313)이 호출된 후 메시지 토큰에 대한 동작 결과가 블록체인(400)에 최종적으로 저장되면 보안 메신저(300)는 블록체인(400)으로부터 이벤트를 받을 수 있다.When the security messenger 300 receives an event from the blockchain 400, the event management module 315 functions to send a notification to the calling subject. After the token issuance module 311, token transfer module 312, and token modification module 313 are called and the result of the operation on the message token is finally stored in the blockchain 400, the security messenger 300 is stored in the blockchain 400. You can receive events from (400).

일례로, 메신저 송신자 단말기(100a)가 토큰 발행 모듈(311)을 통해 블록체인(400) 상에 메시지 토큰을 발행하면, 이벤트 관리 모듈(315)은 성공적인 메시지 토큰 발행을 메신저 송신자 단말기(100a)에게 알린다.For example, when the messenger sender terminal 100a issues a message token on the blockchain 400 through the token issuance module 311, the event management module 315 reports successful message token issuance to the messenger sender terminal 100a. inform.

또한, 메신저 송신자 단말기(100a)가 토큰 전송 모듈(312)을 통해 블록체인(400) 상에 존재하는 메시지 토큰의 소유권을 양도하면, 이벤트 관리 모듈(315)은 토큰 전송 모듈(312)을 호출한 주체에게 성공적인 소유권 양도를 알린다.In addition, when the messenger sender terminal 100a transfers ownership of the message token existing on the blockchain 400 through the token transfer module 312, the event management module 315 calls the token transfer module 312. Notifies the subject of a successful transfer of ownership.

또한, 메신저 송신자 단말기(100a)와 메신저 수신자 단말기(100b)가 토큰 수정 모듈(313)을 통해 메시지 토큰의 확장 속성의 하위 속성값을 수정하게 되면, 이벤트 관리 모듈(315)은 성공적인 수정 내용을 메신저 송ㆍ수신자 단말기(100a, 100b)에게 성공적인 수정을 알릴 수 있다.In addition, when the messenger sender terminal 100a and the messenger receiver terminal 100b modify the lower attribute value of the extended attribute of the message token through the token modification module 313, the event management module 315 sends the successful modification content to the messenger. Successful modification can be notified to the sender and receiver terminals 100a and 100b.

토큰 검증 모듈(316)은 대체불가능 토큰을 발행한 사용자의 신원을 인증하는 기능을 담당한다. 즉, 대체불가능 토큰을 발행한 사용자가 실제 자신에게 메시지를 전송한 사용자인지 판단 기준을 제공하는 기능을 한다.The token verification module 316 is responsible for authenticating the identity of the user who issued the non-fungible token. In other words, it functions to provide a standard for determining whether the user who issued the non-fungible token is actually the user who sent the message.

모든 사용자는 사용자 신원을 검증받은 후 블록체인에 등록되므로, 자신의 서명 정보를 기반으로 트랜잭션을 생성할 수 있다. 따라서, 메시지 토큰 수신자는 토큰 검증 모듈(316)을 호출하여 송신자가 발행한 메시지 토큰에 기록된 송신자 메신저 ID를 확인하고, 송신자 메신저 ID와 대응되는 사용자 정보 및 공개키가 송신자의 사용자 정보 및 공개키와의 일치 여부를 비교함으로써, 송신자의 사용자 신원 인증을 수행한다.All users are registered on the blockchain after their user identity is verified, so they can create transactions based on their signature information. Therefore, the message token receiver calls the token verification module 316 to check the sender messenger ID recorded in the message token issued by the sender, and the user information and public key corresponding to the sender messenger ID are the sender's user information and public key. By comparing whether it matches or not, authentication of the sender's user identity is performed.

메신저 API SDK(320)의 API 모듈(321)은 중앙 집중식 메신서 서버(200)와 통신하는 기능을 한다. 보안 메신저(300)를 통해 송신자가 메시지 토큰을 성공적으로 발행하면 암호화된 메시지 내용을 API 모듈(321)을 통해 중앙 집중식 메신저 서버(200)로 전송한다. 최종적으로, 보안 메시지를 전송받은 중앙 집중식 메신저 서버(200)는 이를 수신자에게 전송할 수 있다.The API module 321 of the messenger API SDK 320 functions to communicate with the centralized messenger server 200. When the sender successfully issues a message token through the secure messenger 300, the encrypted message content is transmitted to the centralized messenger server 200 through the API module 321. Finally, the centralized messenger server 200 that has received the secure message can transmit it to the recipient.

본 실시예에 따른 블록체인 기반 보안 메신저 서비스 장치의 보안 메신저는 암호화된 송신 메시지 즉, 입력 메시지 데이터에 대해 블록체인 상에 생성하는 대체불가능 토큰을 생성하며, 이때 생성되는 대체불가능 토큰의 데이터 구조를 예시하면 도 3과 같다.The secure messenger of the blockchain-based secure messenger service device according to this embodiment generates a non-fungible token on the blockchain for the encrypted transmitted message, that is, input message data, and the data structure of the non-fungible token generated at this time is The example is as shown in Figure 3.

도 3은 도 2의 보안 메신저에서 발생되는 대체불가능 토큰에 채용할 수 있는 데이터 구조에 대한 예시도이다.Figure 3 is an example diagram of a data structure that can be adopted for a non-fungible token generated in the secure messenger of Figure 2.

도 3을 참조하면, 입력 메시지 데이터의 메시지 토큰(30)인 대체불가능 토큰의 데이터 구조는 표준 속성(32)과 확장 속성(34)을 포함한다. 표준 속성(32)은 토큰 식별자(id), 토큰 타입(type), 소유자(owner) 및 피승인자(approvee)를 포함하며, 확장 속성(34)은 온체인 확장 속성(xattr)과 오프체인 확장 속성을 포함하고, 온체인 확장 속성(xattr)의 하위 속성으로 송ㆍ수신자 메신저 ID, 암호화 대칭키, 유효기간 및 토큰 조회 상태를 정의하고, 오프체인 확장 하위 속성으로 경로, 해쉬를 정의한다.Referring to Figure 3, the data structure of the non-fungible token, which is the message token 30 of the input message data, includes a standard attribute 32 and an extended attribute 34. Standard attributes (32) include token identifier (id), token type (type), owner and approvee, and extended attributes (34) include on-chain extended attributes (xattr) and off-chain extended attributes. It includes the sender/receiver messenger ID, encryption symmetric key, expiration date, and token inquiry status as sub-properties of the on-chain extended attribute (xattr), and defines the path and hash as the off-chain extended sub-attributes.

또한, 메시지 토큰은 전송 메시지 당 새롭게 생성될 수도 있고, 송ㆍ수신자 메시지 통신 세션 당 새롭게 생성될 수도 있다. 송신 메시지 하나 하나가 중요한 내용을 담고 있는 경우에는 전송 메시지 당 하나의 메시지 토큰을 생성하며, 메시지 하나하나보다 송ㆍ수신자 간에 주고 받은 전체 메시지들의 내용이 중요하다면 송ㆍ수신자 메시지 통신 세션 당 하나의 메시지 토큰을 생성함으로써 오버헤드를 줄일 수 있다. 본 실시예에서는 전송 메시지 당 하나의 메시지 토큰을 생성하는 것으로 일례를 서술하고 있으나, 송ㆍ수신자 메시지 통신 세션 당 메시지 토큰을 생성하는 방법도 본 실시예의 범위에 포함된다.Additionally, a message token may be newly created per transmitted message or per sender/receiver message communication session. If each transmitted message contains important content, one message token is generated per transmitted message. If the content of all messages exchanged between the sender and receiver is more important than each individual message, one message is created per message communication session between the sender and receiver. Overhead can be reduced by creating tokens. In this embodiment, an example of generating one message token per transmitted message is described, but a method of generating a message token per sender and receiver message communication session is also included in the scope of this embodiment.

송ㆍ수신자 메신저 ID 속성에는 각각 송신자와 수신자의 중앙 집중식 메신저의 ID 정보를 입력할 수 있다. 암호화 대칭키 속성에는 송신자가 전송하는 메시지 내용을 암호화할 때 사용하는 대칭키를 수신자의 공개키로 암호화한 대칭키를 입력할 수 있다. 유효기간 속성에는 토큰의 유효기간을 입력함으로써 해당 메시지 유효성을 메신저 서버와 관계없이 송신자 또는 수신자가 최종 판단할 수 있다. 마지막으로, 수신자가 토큰을 전송받은 후, 토큰 조회 시 자신의 서명 정보를 토큰 조회 상태 속성에 입력할 수 있다.In the sender and receiver messenger ID properties, you can enter the ID information of the centralized messenger of the sender and receiver, respectively. In the encryption symmetric key attribute, you can enter a symmetric key that encrypts the symmetric key used to encrypt the message content sent by the sender with the recipient's public key. By entering the validity period of the token in the validity period attribute, the sender or receiver can make the final decision on the validity of the message regardless of the messenger server. Finally, after the recipient receives the token, he or she can enter his/her signature information into the token inquiry status attribute when querying the token.

본 실시예의 메시지 토큰에 의하면, 토큰 타입 메시지(Message)인 메시지 토큰의 표준 속성으로서 토큰 식별자(id), 토큰 타입(type), 소유자(owner) 및 피승인자(approvee)를 설정하고, 온체인 확장 속성(xattr)의 하위 속성으로 중앙 집중식 메신저 서버(200)에 가입한 송ㆍ수신자 메신저 ID, 암호화 대칭키, 유효기간, 토큰 조회 상태 속성을 설정하고, 오픈체인 확장 하위 속성으로 경로, 해쉬 속성을 설정함으로써, 메시지 송ㆍ수신에 따른 사용자 인증, 메시지 무결성 검증, 송ㆍ수신 부인방지 기능을 효과적으로 제공할 수 있다.According to the message token of this embodiment, token identifier (id), token type (type), owner (owner), and approvee (approvee) are set as standard properties of the message token of token type Message, and on-chain expansion is performed. As sub-properties of the attribute (xattr), set the messenger ID, encryption symmetric key, expiration date, and token inquiry status attributes of the sender and receiver who joined the centralized messenger server (200), and set the path and hash attributes as the open chain extension sub-properties. By setting it up, it is possible to effectively provide user authentication, message integrity verification, and non-repudiation of transmission and reception functions according to message transmission and reception.

도 4는 도 1의 블록체인 기반 보안 메신저 서비스 시스템에 의한 보안 메신저 서비스의 작동 원리를 설명하기 위한 예시도이다.FIG. 4 is an example diagram to explain the operating principle of a secure messenger service by the blockchain-based secure messenger service system of FIG. 1.

본 실시예에 따른 블록체인 기반 보안 메신저 서비스 시스템의 전체적인 작동 원리는 도 4에 도시한 바와 같다.The overall operating principle of the blockchain-based secure messenger service system according to this embodiment is as shown in FIG. 4.

도 4를 참조하면, 메신저 송ㆍ수신자 단말기(100a, 100b)와 중앙 집중식 메신저 서버(200)는 모두 블록체인(400)에 등록된 사용자이며, 등록 시 사용자 신원을 인증한다. 또한, 인증된 사용자는 PKI 기반 공개키와 비밀키를 발급받는다.Referring to FIG. 4, the messenger sender/receiver terminals 100a and 100b and the centralized messenger server 200 are all registered users in the blockchain 400, and the user's identity is authenticated upon registration. Additionally, authenticated users are issued PKI-based public and private keys.

메신저 송ㆍ수신자 단말기(100a, 100b)와 중앙 집중식 메신저 서버(200)는 네트워크를 통해 보안 메신저 서비스 장치(500)와 연결될 수 있다. 본 실시예에서 보안 메신저 서비스 장치(500)는 거시 측면에서 보안 메신저(300)와 블록체인(400)을 포함할 수 있고, 미시 측면에서 보안 메신저(300)을 구비하고 블록체인(400)과 연결되거나 연동할 수 있다.The messenger sender/receiver terminals 100a and 100b and the centralized messenger server 200 may be connected to the secure messenger service device 500 through a network. In this embodiment, the security messenger service device 500 may include a security messenger 300 and a blockchain 400 from a macro perspective, and may include a security messenger 300 and connect to the blockchain 400 from a micro perspective. It can be done or linked.

보안 메신저(300)는 블록체인에 접근할 수 있는 사용자를 제어하기 위해 사용자들의 정보와 공개키를 저장한다. 이에, 허가된 사용자는 보안 메신저(300)에서 관리하는 자신의 공개키를 이용하여 블록체인 기반 대체불가능 토큰을 통한 사용자 인증을 수행할 수 있다.The secure messenger 300 stores users' information and public keys to control users who can access the blockchain. Accordingly, authorized users can perform user authentication through blockchain-based non-fungible tokens using their public keys managed by the secure messenger 300.

메신저 송신자 단말기(100a)에서 보안 메시지를 전송하고자 하면, 메시지 내용을 입력한 후 메시지 내용을 암호화하기 위해 대칭키를 생성하고 보안 메신저(300)를 통해 수신자의 공개키를 획득한다.When the messenger sender terminal 100a wants to transmit a secure message, the message content is input, a symmetric key is generated to encrypt the message content, and the recipient's public key is obtained through the secure messenger 300.

또한, 보안 메시지를 전송하고자 하면, 송신자가 생성한 대칭키로 메시지 내용을 암호화하고, 메시지 내용을 암호화한 대칭키는 보안 메신저(300)의 블록체인 SDK(310)를 통해 수신자의 공개키로 암호화되어 블록체인(400)의 메시지 토큰 속성에 기록된다. 따라서, 블록체인(400)의 메시지 토큰은 제 3자가 접근할 수 있으나, 암호화된 메시지 내용을 복호화하기 위해서는 수신자의 개인키가 필요하다.In addition, when a secure message is to be transmitted, the message content is encrypted with a symmetric key generated by the sender, and the symmetric key encrypting the message content is encrypted with the recipient's public key through the blockchain SDK (310) of the secure messenger (300) to create a block. It is recorded in the message token attribute of the chain 400. Therefore, the message token of the blockchain 400 can be accessed by a third party, but the recipient's private key is required to decrypt the encrypted message content.

구체적으로, 메신저 송신자 단말기(100a)에서 보안 메시지를 전송하면 블록체인 기반 보안 메신저 서비스(500)의 동작 과정은 다음과 같다.Specifically, when a secure message is transmitted from the messenger sender terminal 100a, the operation process of the blockchain-based secure messenger service 500 is as follows.

먼저, 메신저 송신자 단말기(100a)는 토큰 발행 모듈을 호출하여 블록체인(400) 상에 보안 메신저 메시지 기반의 메시지 토큰(토큰 id는 T0)을 발행한다(S110). 메시지 토큰은 확장 속성의 하위 속성으로 메신저 송신자 단말기(100a)의 ID, 메신저 수신자 단말기(100b)의 ID, 수신자의 공개키로 암호화한 대칭키 정보, 보안 메시지의 유효기간 그리고 토큰 조회 상태 속성을 포함한다.First, the messenger sender terminal 100a calls the token issuance module and issues a message token (token id is T 0 ) based on the secure messenger message on the blockchain 400 (S110). The message token is a sub-property of the extended attribute and includes the ID of the messenger sender terminal (100a), the ID of the messenger receiver terminal (100b), symmetric key information encrypted with the recipient's public key, the validity period of the security message, and the token inquiry status attribute. .

다음, 보안 메신저(300)의 이벤트 관리 모듈은 메신저 송신자 단말기(100a)에 메시지 토큰(T0)의 발행이 완료되었음을 알리며, 메신저 송신자 단말기(100a)는 토큰 전송 모듈을 통해 메신저 수신자 단말기(100b)에게 메시지 토큰(T0)를 전송한다(S120).Next, the event management module of the secure messenger 300 notifies the messenger sender terminal 100a that the issuance of the message token (T 0 ) has been completed, and the messenger sender terminal 100a sends the message to the messenger receiver terminal 100b through the token transmission module. A message token (T 0 ) is transmitted to (S120).

다음, 보안 메신저(300)의 이벤트 관리 모듈로부터 토큰 전송에 대한 성공 알림을 받은 메신저 송신자 단말기(100a)는 메시지 토큰(T0)과 전송 메시지 내용을 포함한 보안 메시지를 네트워크를 통해 중앙 집중식 메신저 서버(200)로 전송한다(S210).Next, the messenger sender terminal (100a), which has received a notification of success in token transmission from the event management module of the secure messenger (300), sends a security message including the message token (T 0 ) and the transmitted message content to the centralized messenger server ( 200) (S210).

다음, 중앙 집중식 메신저 서버(200)는 수신한 보안 메시지를 메신저 수신자 단말기(100b)에게 전송한다(S220).Next, the centralized messenger server 200 transmits the received security message to the messenger recipient terminal 100b (S220).

다음, 메신저 수신자 단말기(100b)는 전송받은 보안 메시지를 검증하기 위해 검증 모듈(316)을 호출한다(S310). 메신저 수신자 단말기(100b)는 송신자의 서명을 기반으로 발행된 메시지 토큰을 검증하여 송신자의 신원을 확인한다. 즉, 제 3자가 송신자로 신원을 위장하여 메시지를 전송하기 위해서는 송신자의 서명을 기반으로 메시지 토큰을 발행해야 하므로 메시지 전송이 불가능하다. 따라서, 수신자는 송신자가 발행한 메시지 토큰에 기록된 송신자 메신저 ID를 확인하고, 송신자 메신저 ID와 관련된 사용자 정보 및 공개키가 수신자가 알고 있는 송신자의 사용자 정보 및 공개키와 일치하는지 여부를 비교함으로써, 송신자 신원 인증을 수행한다.Next, the messenger recipient terminal 100b calls the verification module 316 to verify the received security message (S310). The messenger receiver terminal 100b confirms the identity of the sender by verifying the issued message token based on the sender's signature. In other words, in order for a third party to disguise the identity of the sender and transmit a message, a message token must be issued based on the sender's signature, making message transmission impossible. Therefore, the receiver checks the sender's messenger ID recorded in the message token issued by the sender and compares whether the user information and public key related to the sender's messenger ID match the sender's user information and public key known to the receiver. Perform sender identity authentication.

또한, 메시지 내용의 무결성을 보장하기 위해 메시지 송신자는 메시지 내용을 기반으로 대체불가능 토큰을 발행하여 블록체인 상에 등록한다. 따라서 암호화된 메시지 내용은 메시지 토큰 내 저장된 대칭키를 통해 복호화할 수 있고, 그에 따라 메신저 수신자 단말기(100b)에서 메시지 내용을 확인할 수 있다(S320).Additionally, to ensure the integrity of the message content, the message sender issues a non-fungible token based on the message content and registers it on the blockchain. Therefore, the encrypted message content can be decrypted using the symmetric key stored in the message token, and the message content can be confirmed at the messenger recipient terminal (100b) (S320).

또한, 메시지 송ㆍ수신 행위 부인 방지 증명에 대해서는, 메신저 송신자 단말기(100a)의 서명 정보를 기반으로 토큰을 발행하므로 송신 행위에 대한 부인 방지 증빙이 가능하다. 추가적으로 발행된 메시지 토큰을 메신저 수신자 단말기(100b)가 수신하고, 메시지 내용을 확인하기 위해 토큰에 기록되어 있는 대칭키 조회시 보안 메신저(300)의 토큰 수정 모듈을 호출하여 수신자가 메시지 토큰을 조회했다는 사실을 메시지 토큰의 토큰 조회 상태 속성에 수신자의 서명 정보를 기록함으로써 수신 행위 부인 방지 증빙을 제공한다.In addition, regarding non-repudiation proof of message sending and receiving actions, a token is issued based on the signature information of the messenger sender terminal 100a, so non-repudiation proof of sending actions is possible. The messenger receiver terminal (100b) receives the additionally issued message token, and when looking up the symmetric key recorded in the token to check the message contents, the token modification module of the secure messenger (300) is called to indicate that the receiver has looked up the message token. In fact, non-repudiation of reception action is provided by recording the recipient's signature information in the token inquiry status attribute of the message token.

본 실시예에 따르면 블록체인 기반 보안 메신저 서비스 방법 및 장치는 사용자 신원 인증, 메시지 내용 무결성 및 기밀성 보장, 그리고 송신/수신 행위 부인 방지 증명을 블록체인을 통해 해결할 수 있으며, 특히 대체불가능 토큰을 모델링하여 메신저에서 보안이 강화된 메시지를 전송하거나 수신하도록 할 수 있다.According to this embodiment, the blockchain-based secure messenger service method and device can solve user identity authentication, message content integrity and confidentiality, and non-repudiation of transmission/reception actions through blockchain, especially by modeling a non-fungible token. You can send or receive messages with enhanced security in Messenger.

한편, 본 실시예에 따른 블록체인 기반 보안 메신저 서비스 장치(500)가 네트워크를 통해 메신저 송ㆍ수신자 단말기(100a, 100b) 및 중앙 집중식 메신저 서버(200)와 연결되는 별도의 장치 형태인 것으로 설명하였으나, 본 발명은 그러한 구성으로 한정되지 않고, 응용 어플리케이션 형태로 메신저 송신자 단말기(100a)와 메신저 수신자 단말기(100b)에 각각 설치되는 설치 구조를 가질 수 있다.Meanwhile, it was explained that the blockchain-based secure messenger service device 500 according to this embodiment is a separate device connected to the messenger sender and receiver terminals 100a and 100b and the centralized messenger server 200 through a network. , the present invention is not limited to such a configuration, and may have an installation structure installed in the messenger sender terminal 100a and the messenger receiver terminal 100b, respectively, in the form of an application.

도 5는 본 발명의 일실시예에 따른 블록체인 기반 보안 메신저 서비스 방법에 대한 흐름도이다.Figure 5 is a flowchart of a blockchain-based secure messenger service method according to an embodiment of the present invention.

본 실시예에서 특정 메시지의 송신자에 대응하는 제1 사용자 단말(100A)은 제1 보안 메신저(300a)를 구비하고, 상기의 특정 메시지의 수신자에 대응하는 제2 사용자 단말(100B)은 제2 보안 메신저(300b)를 구비한다. 보안 메신저는 중앙 집중식 메신저 서버와 연동하는 메신저 클라이언트에 대응될 수 있다.In this embodiment, the first user terminal 100A corresponding to the sender of a specific message is equipped with a first security messenger 300a, and the second user terminal 100B corresponding to the recipient of the specific message is equipped with a second security messenger 300a. A messenger 300b is provided. A secure messenger may correspond to a messenger client that interfaces with a centralized messenger server.

제1 보안 메신저(300a)와 제2 보안 메신저(300b)는 도 2를 참조하여 앞서 설명한 블록체인 SDK 및 메신저 API SDK를 각각 구비할 수 있다. 블록체인 SDK는 토큰 발행 모듈, 토큰 전송 모듈, 토큰 수정 모듈, 토큰 조회 모듈, 이벤트 관리 모듈 및 토큰 검증 모듈을 구비하고, 메신저 API SDK는 API 모듈을 구비할 수 있다.The first secure messenger 300a and the second secure messenger 300b may each be equipped with the blockchain SDK and messenger API SDK described above with reference to FIG. 2. The blockchain SDK includes a token issuance module, token transfer module, token modification module, token inquiry module, event management module, and token verification module, and the messenger API SDK may include an API module.

도 5를 참조하면, 네트워크 상에서 메신저 서비스의 메시지를 통해 대화하는 제1 사용자와 제2 사용자가 있을 때, 제1 사용자 단말(100A)은 제1 보안 메신저(300a)를 통해 수신자 공개키를 이용해 메시지를 암호화하고(S51), 암호화된 메시지를 중앙 집중식 메신저 서버(200)를 통해 제2 사용자 단말(100B)에게 전달한다(S52, S53). 이때 메신저 서버(200)는 복호화를 위한 대칭키가 없으므로 암호화된 메시지의 내용을 볼 수 없다.Referring to FIG. 5, when there is a first user and a second user communicating through a message of a messenger service on a network, the first user terminal 100A sends the message using the recipient public key through the first secure messenger 300a. is encrypted (S51), and the encrypted message is delivered to the second user terminal (100B) through the centralized messenger server (200) (S52, S53). At this time, the messenger server 200 cannot view the contents of the encrypted message because there is no symmetric key for decryption.

다음, 제1 사용자 단말(100A)에서 제2 사용자 단말(100B)로 암호화된 메시지 즉, 보안 메시지가 전송됨에 따라, 제1 보안 메신저(300a)는 입력 메시지 데이터를 획득한다(S54). 입력 메시지 데이터는 앞서 제1 사용자 단말(100A)이 제2 사용자 단말(100B)에게 보낸 암호화된 메시지 혹은 이와 관련된 고유 식별자를 포함할 수 있다.Next, as the encrypted message, that is, the security message, is transmitted from the first user terminal 100A to the second user terminal 100B, the first secure messenger 300a obtains input message data (S54). The input message data may include an encrypted message previously sent from the first user terminal 100A to the second user terminal 100B or a unique identifier related thereto.

다음, 제1 보안 메신저(300a)는 입력 메시지 데이터 기반의 메시지 토큰을 블록체인 상에 발행한다. 예컨대, 제1 보안 메신저(300a)는 입력 메시지 데이터 기반의 메시지 토큰을 발행하기 위한 메시지 토큰 발행 요청 신호를 블록체인(400)에 전달하고(S55) 메시지 토큰 발행 요청 신호에 응하여 메시지 토큰을 발행한 블록체인(400)으로부터 메시지 토큰을 전달받을 수 있다(S56, S57).Next, the first secure messenger 300a issues a message token based on the input message data on the blockchain. For example, the first security messenger 300a transmits a message token issuance request signal for issuing a message token based on input message data to the blockchain 400 (S55) and issues a message token in response to the message token issuance request signal. A message token can be received from the blockchain 400 (S56, S57).

다음, 제1 보안 메신저(300a)는 메시지 토큰의 소유자를 제2 사용자 단말(100B)로 변경한다(S58). 그리고, 소유자가 변경된 메시지 토큰을 제2 사용자 단말(100B)에게 전송한다(S59).Next, the first security messenger (300a) changes the owner of the message token to the second user terminal (100B) (S58). Then, the owner transmits the changed message token to the second user terminal (100B) (S59).

한편, 앞서 암호화된 메시지를 수신한 제2 사용자 단말(100B)의 제2 보안 메신저(300b)는 메시지 토큰의 수신에 응하여 메시지 토큰을 디코딩하고(S61), 디코딩을 통해 얻은 토큰 아이디로 블록체인(400)에 토큰을 조회하고(S620) 송신자의 신원을 검증받을 수 있다(S63).Meanwhile, the second security messenger 300b of the second user terminal 100B, which previously received the encrypted message, decodes the message token in response to receipt of the message token (S61), and uses the token ID obtained through decoding to use the blockchain ( 400), the token can be searched (S620) and the sender's identity can be verified (S63).

또 한편으로, 메시지 토큰의 수신 이전이나 이후에 상관없이 제2 사용자 단말(100B)은 암호화된 메시지의 수신 시, 자신이 소유한 대칭키로 메시지를 복호화하여 메시지 내용을 확인할 수 있다. 이때, 대칭키는 암호화된 메시지의 암호화에 사용된 공개키와 쌍을 이루는 키를 지칭한다.On the other hand, regardless of whether before or after receiving the message token, when receiving the encrypted message, the second user terminal 100B can decrypt the message with a symmetric key owned by the second user terminal 100B and check the message content. At this time, the symmetric key refers to a key paired with the public key used to encrypt the encrypted message.

이와 같이, 본 실시예의 구성에 의하면, 사용자 단말의 프로세서에 탑재되는 응용 어플리케이션의 형태인 보안 메신저를 통해 상용 메신저 서비스에서 사용자들의 메시지를 효과적으로 보안하여 비밀 혹은 비공개 대화가 가능하도록 할 수 있다.In this way, according to the configuration of this embodiment, it is possible to effectively secure users' messages in a commercial messenger service through a secure messenger in the form of an application application mounted on the processor of the user terminal to enable secret or private conversations.

한편, 전술한 실시예의 보안 메신저 서비스 방법이나 장치에 채용할 수 있는 블록체인(400)은 대체불가능 토큰을 지원하는 체인코드(chaincode) 또는 허가형 블록체인 시스템을 포함할 수 있고, 또한 블록체인(400)은 스마트 컨트랙트(smart contract)를 이용하여 블록체인 상에 유일성을 갖는 객체에 대한 대체불가능 토큰(non-fungible token)을 생성하는 피어 서버를 포함할 수 있다. 이 경우, 탈중앙화 애플리케이션(decentralized application, dApp)를 통해 특정 객체에 대한 대체불가능 토큰의 발행이 요청되면, 피어 서버는 토큰관리부를 통해 토큰 발행함수를 호출하여 토큰 식별자, 토큰타입, 및 소유자를 포함하는 기본속성과 토큰타입 별로 설정되는 확장속성으로 구성된 데이터 구조를 갖는 대체불가능 토큰을 발행하고, 발행된 대체불가능 토큰의 현재 상태(state)를 데이터베이스에 기록할 수 있다.Meanwhile, the blockchain 400 that can be employed in the secure messenger service method or device of the above-described embodiment may include a chaincode or permissioned blockchain system supporting non-fungible tokens, and may also include a blockchain ( 400) may include a peer server that generates a non-fungible token for an object with uniqueness on the blockchain using a smart contract. In this case, when the issuance of a non-fungible token for a specific object is requested through a decentralized application (dApp), the peer server calls the token issuance function through the token management unit and includes the token identifier, token type, and owner. You can issue a non-fungible token with a data structure consisting of basic properties and extended properties set for each token type, and record the current state of the issued non-fungible token in the database.

여기서 대체불가능 토큰은 메시지 토큰에 대응될 수 있다. 대체불가능 토큰이 이더리움(Ethereum) 등의 공개형 블록체인인 경우, 대체불가능 토큰은 표준(standard) 데이터 구조와 확장(extensible) 데이터 구조를 구비하고, ERC-721, 디폴트(default) 등의 표준 인터페이스와 확장 인터페이스를 구비할 수 있다. 그리고 대체불가능 토큰을 위한 보안 메신저 서비스 장치의 프레임워크에서는 dApp과의 통신을 위해 표준 프로토콜과 확장 프로토콜을 구비할 수 있다. 여기서 표준 프로토콜은 ERC-721 프로토콜과 디폴트 프로토콜로 구성될 수 있다. ERC-721 프로토콜은 패브릭 환경(fabric environment)에서 이더리움 ERC-721 토큰 표준 인터페이스를 제공하기 위해 정의되고, 디폴트 프로토콜은 표준 데이터 구조에 정의된 속성들을 위한 함수들을 정의한다. 그리고 확장 프로토콜은 확장 데이터 구조를 관리하는 xattr과 uri를 위한 getter와 setter 함수들을 정의한다.Here, the non-fungible token may correspond to a message token. If the non-fungible token is a public blockchain such as Ethereum, the non-fungible token has a standard data structure and an extensible data structure, and supports standards such as ERC-721 and default. An interface and an extended interface can be provided. And in the framework of the secure messenger service device for non-fungible tokens, standard protocols and extended protocols can be provided for communication with dApps. Here, the standard protocol may consist of the ERC-721 protocol and the default protocol. The ERC-721 protocol is defined to provide a standard interface for Ethereum ERC-721 tokens in a fabric environment, and the default protocol defines functions for properties defined in the standard data structure. And the extension protocol defines getter and setter functions for xattr and uri that manage extended data structures.

이때, 프로토콜에 정의된 함수는 데이터 구조에서 속성에 직접 접근하지 못하고 속성 관리 함수를 통해 접근하도록 구현될 수 있다. 예를 들어, 온체인 확장 데이터 구조를 IType 인터페이스와 Adapter 디자인 패턴으로 구현할 수 있다. IType 인터페이스에는 xattr 하위 속성을 위한 속성 관리 함수들이 정의되어 있다.타입1을 추가하는 경우, 타입1 클래스에 xattr 하위 속성을 정의하고, IType 인터페이스를 상속하여 속성 관리 함수들을 구현할 수 있다. 그리고 Adapter 디자인 패턴을 통해 토큰 타입에 따라 다른 xattr 하위 속성을 지정할 수 있도록 XAttrAdapter 클래스에 타입1을 등록할 수 있다.At this time, the function defined in the protocol cannot directly access the property in the data structure, but may be implemented to access it through a property management function. For example, on-chain extended data structures can be implemented with the IType interface and Adapter design pattern. The IType interface defines property management functions for xattr sub-properties. When adding Type 1, you can define xattr sub-properties in the Type 1 class and implement property management functions by inheriting the IType interface. And through the Adapter design pattern, Type 1 can be registered in the XAttrAdapter class so that different xattr sub-properties can be specified depending on the token type.

또한, 전술한 보안 메신저 서비스 방법에 채용할 수 있는 제1 보안 메신저(300a) 혹은 제2 보안 메신저(300b)는 카카오톡, 라인, 텔레그램 등의 기존의 상용 메신저 서비스에 보안 기능이 추가된 형태로 구현될 수 있으나, 이에 한정되지 않고, 별도의 메신저 기능 확장 응용 애플리케이션으로서 기존의 상용 메신저 서비스에 결합되는 형태를 구비하거나, 별도로 본 실시예의 보안 기능을 갖춘 메신저 응용 애플리케이션의 형태로 구현될 수 있다.In addition, the first security messenger (300a) or the second security messenger (300b) that can be employed in the above-described security messenger service method is a form in which security functions are added to existing commercial messenger services such as KakaoTalk, Line, and Telegram. It can be implemented as, but is not limited to, a separate messenger function extension application that is combined with an existing commercial messenger service, or it can be implemented separately in the form of a messenger application with the security function of this embodiment. .

도 6 및 도 7은 도 5의 보안 메신저 서비스 방법을 구현하는 사용자 단말에서 채용할 수 있는 인터페이스를 나타낸 예시도들이다.Figures 6 and 7 are exemplary diagrams showing interfaces that can be employed in a user terminal that implements the secure messenger service method of Figure 5.

도 6을 참조하면, 보안 메신저가 탑재된 사용자 단말(100A)은 메신저 화면(110)에 선택된 단일 메시지나 그룹 메시지의 암호화, 암호화된 메시지의 전송, 메시지 토큰의 발행, 메시지 토큰 전송 등의 일련의 보안 메신저 동작 실행을 명령하는 사용자 인터페이스를 구비할 수 있다. 이러한 사용자 인터페이스는 비보안 메시지 전송과 보안 메시지 전송을 선택하는 메시지 전송 사용자 인터페이스를 포함한다. 본 실시예에서 메시지 전송 사용자 인터페이스는 메신저 화면(110)의 하단에 '보안'으로 표시된 버튼(120) 형태를 구비하나, 이에 한정되지는 않고 이미지, 음성, 진동 등 다양한 사용자 입력 형태가 단일 혹은 조합으로 사용될 수 있다.Referring to FIG. 6, the user terminal 100A equipped with a secure messenger performs a series of functions such as encryption of a single message or group message selected on the messenger screen 110, transmission of an encrypted message, issuance of a message token, and transmission of a message token. A user interface may be provided to command execution of secure messenger operations. This user interface includes a message transfer user interface that selects between sending a non-secure message and sending a secure message. In this embodiment, the message transmission user interface is provided in the form of a button 120 marked 'Security' at the bottom of the messenger screen 110, but is not limited to this and various user input types such as image, voice, and vibration can be used singly or in combination. It can be used as

아울러, 도 7에 도시한 바와 같이, 본 실시예에 따른 보안 메신저 서비스 방법이나 장치에 채용할 수 있는 사용자 단말(100A)은 메신저 서비스 중에 전송되는 텍스트 파일, 문서 파일, 이미지 파일, 영상 파일, 음성 파일 등을 포함하는 첨부파일에 대하여도 도 5 등을 참조하여 설명한 방법과 유사하게 첨부파일을 암호화하여 수신자측의 사용자 단말에 전송하고, 암호화된 첨부파일에 대한 입력 첨부파일 데이터를 획득하고, 입력 첨부파일 데이터에 대한 블록체인 기반 대체불가능 추가 토큰을 발행하고, 대체불가능 추가 토큰을 수신자측의 사용자 단말에 전송하는 것 등의 일련의 보안 메신저 동작의 실행을 명령하는 사용자 인터페이스를 구비할 수 있다. 이러한 사용자 인터페이스는 도 7의 메신저 화면(110)의 상단에 '첨부보안'으로 표시된 버튼(130) 형태를 구비하나, 이에 한정되지는 않는다.In addition, as shown in FIG. 7, the user terminal 100A that can be employed in the secure messenger service method or device according to this embodiment is a text file, document file, image file, video file, and voice transmitted during the messenger service. For attached files including files, etc., similarly to the method described with reference to FIG. 5, the attached file is encrypted and transmitted to the recipient's user terminal, and input attached file data for the encrypted attached file is obtained and input. It may be provided with a user interface that commands the execution of a series of secure messenger operations, such as issuing a blockchain-based non-fungible additional token for the attached file data and transmitting the non-fungible additional token to the user terminal of the recipient. This user interface is provided in the form of a button 130 marked 'Attachment Security' at the top of the messenger screen 110 in FIG. 7, but is not limited to this.

또한, 도면에 도시하지는 않았지만, 보안 메신저를 탑재한 사용자 단말이 암호화된 메시지를 수신하거나 메시지 토큰을 수신하는 경우에, 메신저 화면에는 '보안해제', '디코딩' 등의 버튼으로 표시되는 암호화 메시지의 복호화용 사용자 인터페이스나 메시지 토큰의 디코딩용 사용자 인터페이스를 구비할 수 있다.In addition, although not shown in the drawing, when a user terminal equipped with a secure messenger receives an encrypted message or a message token, the encrypted message is displayed as a button such as 'Desecure' or 'Decode' on the messenger screen. A user interface for decoding or a user interface for decoding a message token may be provided.

한편, 전술한 실시예에 따른 보안 메신저 서비스 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있는 저장소나 데이터베이스를 포함할 수 있다.Meanwhile, the operation of the secure messenger service method according to the above-described embodiment can be implemented as a computer-readable program or code on a computer-readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. Additionally, the computer-readable recording medium may include a storage or database distributed over a networked computer system in which computer-readable programs or codes can be stored and executed in a distributed manner.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Additionally, computer-readable recording media may include hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Program instructions may include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter, etc.

또한, 본 실시예에 따른 보안 메신저 서비스 방법의 일련의 절차 중 적어도일부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해 혹은 하드웨어 장치를 이용하여 구현될 수 있다. 또한, 필드 프로그머블 게이트 어레이 등의 프로그램 가능한 로직 장치가 여기서 설명된 방법들의 기능 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In addition, at least some of the series of procedures of the secure messenger service method according to this embodiment may be implemented by or using a hardware device, such as a microprocessor, a programmable computer, or an electronic circuit. Additionally, programmable logic devices, such as field programmable gate arrays, may be used to perform some or all of the functionality of the methods described herein. In embodiments, a field programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device.

이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described above with reference to preferred embodiments, those skilled in the art can make various modifications and changes to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will be able to understand.

Claims (20)

송신자의 제1 사용자 단말에 의해 실행되는 블록체인 기반 보안 메신저 서비스 방법으로서,
수신자의 제2 사용자 단말에게 전송할 메시지나 첨부파일을 암호화하는 단계;
상기 암호화하는 단계에서 암호화된 메시지를 중앙 집중식 메신저 서버를 통한 상기 제2 사용자 단말에게 전송하는 단계;
상기 암호화된 메시지에 대응하는 블록체인 기반 대체불가능 토큰을 발행하는 단계; 및
상기 대체불가능 토큰을 상기 제2 사용자 단말에게 전송하는 단계;
를 포함하고,
상기 송신자는 상기 대체불가능 토큰의 토큰 조회 상태 속성을 통해 상기 수신자의 수신 부인 방지를 검증하는, 블록체인 기반 보안 메신저 서비스 방법.
A blockchain-based secure messenger service method executed by the sender's first user terminal,
Encrypting a message or attachment to be transmitted to the recipient's second user terminal;
transmitting the encrypted message in the encrypting step to the second user terminal through a centralized messenger server;
issuing a blockchain-based non-fungible token corresponding to the encrypted message; and
transmitting the non-fungible token to the second user terminal;
Including,
A blockchain-based secure messenger service method in which the sender verifies non-repudiation of receipt of the recipient through the token inquiry status attribute of the non-fungible token.
청구항 1에 있어서,
상기 암호화하는 단계는 상기 수신자의 공개키를 이용하여 상기 메시지 또는 상기 첨부파일을 암호화하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The encrypting step is a blockchain-based secure messenger service method in which the message or the attached file is encrypted using the recipient's public key.
청구항 1에 있어서,
상기 발행하는 단계 후에 상기 대체불가능 토큰의 소유자를 상기 수신자로 변경하는 단계를 더 포함하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
A blockchain-based secure messenger service method further comprising changing the owner of the non-fungible token to the recipient after the issuing step.
청구항 1에 있어서,
상기 제1 사용자 단말 및 상기 제2 사용자 단말은 인증기관(Certificate Authority)에서 인증하는 공개키 기반(Public Key Infrastructure) 키 쌍을 보유하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
A blockchain-based secure messenger service method in which the first user terminal and the second user terminal hold a public key infrastructure key pair authenticated by a Certificate Authority.
청구항 1에 있어서,
상기 대체불가능 토큰의 속성은 토큰 식별자(ID), 토큰 타입, 소유자 정보, 송신자 메신저 ID, 수신자 메신저 ID, 메시지 내용 암호화 대칭키 정보, 유효기간 및 토큰 조회 상태 정보를 포함하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The properties of the non-fungible token include token identifier (ID), token type, owner information, sender messenger ID, recipient messenger ID, message content encryption symmetric key information, expiration date, and token inquiry status information. Blockchain-based security messenger Service method.
청구항 1에 있어서,
상기 대체불가능 토큰은 토큰 생성 및 전송 트랜잭션 처리 정보에 대한 토큰 속성을 포함하고, 여기에서 상기 송신자 또는 상기 수신자는 상기 토큰 생성 및 전송 트랜잭션 처리 정보를 통해 상기 메시지의 송신 여부 또는 수신 여부에 대한 부인 방지 증명을 획득하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The non-fungible token includes token attributes for token creation and transmission transaction processing information, wherein the sender or the recipient non-repudiation whether the message was sent or received through the token creation and transmission transaction processing information. Blockchain-based secure messenger service method for obtaining proof.
청구항 1에 있어서,
상기 대체불가능 토큰은 유효기간에 대한 토큰 속성을 포함하고, 여기에서 상기 송신자 또는 상기 수신자는 상기 유효기간을 통해 메시지 유효성을 자체 판단하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The non-fungible token includes a token attribute for a validity period, where the sender or the receiver self-determines message validity through the validity period.
청구항 1에 있어서,
상기 제1 사용자 단말과 상기 제2 사용자 단말은 상기 중앙 집중식 메신저 서버를 통해 신호 및 데이터의 송수신하는 메신저 클라이언트들이며, XMPP(Extensible Messaging and Presence Protocol) 또는 메신저 자체 프로토콜을 사용하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The first user terminal and the second user terminal are messenger clients that transmit and receive signals and data through the centralized messenger server, and are blockchain-based security messengers that use XMPP (Extensible Messaging and Presence Protocol) or the messenger's own protocol. Service method.
청구항 1에 있어서,
상기 수신자는 상기 대체불가능 토큰을 조회하여 상기 대체불가능 토큰에 기록되어 있는 송신자 서명과 메신저 ID를 확인하여 상기 송신자의 신원을 검증하거나, 상기 수신자의 공개키에 대응하는 메시지 암호화 대칭키를 통해 암호화된 메시지를 복호화하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
The recipient verifies the identity of the sender by looking up the non-fungible token and checking the sender's signature and messenger ID recorded in the non-fungible token, or encrypts the message using a symmetric message encryption key corresponding to the public key of the recipient. A blockchain-based secure messenger service method that decrypts messages.
청구항 1에 있어서,
상기 제1 사용자 단말이나 상기 제2 사용자 단말에서 비보안 메시지 전송과 보안 메시지 전송을 선택하는 사용자 인터페이스에서 사용자 입력이나 명령을 획득하는 단계를 더 포함하며,
상기 사용자 입력이나 명령에 따라 상기 메시지를 암호화하는 단계, 상기 암호화된 메시지를 전송하는 단계, 상기 대체불가능 토큰을 발행하는 단계 및 상기 대체불가능 토큰을 전송하는 단계를 포함한 일련의 과정이 수행되는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
Further comprising obtaining a user input or command from a user interface for selecting transmission of a non-secure message and transmission of a secure message from the first user terminal or the second user terminal,
A block in which a series of processes including encrypting the message, transmitting the encrypted message, issuing the non-fungible token, and transmitting the non-fungible token are performed according to the user input or command. Chain-based secure messenger service method.
청구항 1에 있어서,
상기 메시지에 포함되는 사진, 동영상, 문서 데이터 또는 이들 조합의 첨부 파일은 네트워크를 통해 접근가능한 오프체인 공간에 저장되며, 상기 대체불가능 토큰은 상기 첨부파일에 대한 상기 오프체인 공간의 저장 경로를 기록하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 1,
Attached files of photos, videos, document data, or a combination thereof included in the message are stored in an off-chain space accessible through a network, and the non-fungible token records the storage path of the off-chain space for the attached file. , Blockchain-based secure messenger service method.
청구항 11에 있어서,
상기 제1 사용자 단말의 메신저 화면에 상기 첨부파일의 암호화된 첨부파일 데이터를 획득하고, 상기 암호화된 첨부파일 데이터에 대한 블록체인 기반 대체불가능 추가 토큰을 발행하고, 상기 대체불가능 추가 토큰을 상기 제2 사용자 단말에 전송하기 위한 사용자 인터페이스를 제공하는 단계를 더 포함하는, 블록체인 기반 보안 메신저 서비스 방법.
In claim 11,
Obtain encrypted attachment data of the attachment file on the messenger screen of the first user terminal, issue a blockchain-based non-fungible additional token for the encrypted attachment data, and send the non-fungible additional token to the second user terminal. A blockchain-based secure messenger service method further comprising providing a user interface for transmission to a user terminal.
송신자의 제1 사용자 단말에 탑재되는 블록체인 기반 보안 메신저 서비스 장치로서,
수신자의 제2 사용자 단말에게 전송할 메시지나 첨부파일의 암호화된 메시지를 중앙 집중식 메신저 서버를 통해 상기 제2 사용자 단말에게 전송하는 메시지 처리부; 및
상기 암호화된 메시지에 대한 입력 메시지 데이터를 획득하고 상기 입력 메시지 데이터에 대한 블록체인 기반 대체불가능 토큰을 발행하며, 상기 대체불가능 토큰을 상기 제2 사용자 단말에게 전송하는 토큰 처리부;
를 포함하고,
상기 송신자는 상기 대체불가능 토큰의 토큰 조회 상태 속성을 통해 상기 수신자의 수신 부인 방지를 검증하는, 블록체인 기반 보안 메신저 서비스 장치.
A blockchain-based secure messenger service device mounted on the sender's first user terminal,
a message processing unit that transmits an encrypted message of a message or an attached file to be transmitted to a recipient's second user terminal to the second user terminal through a centralized messenger server; and
a token processing unit that acquires input message data for the encrypted message, issues a blockchain-based non-fungible token for the input message data, and transmits the non-fungible token to the second user terminal;
Including,
A blockchain-based secure messenger service device in which the sender verifies non-repudiation of receipt of the recipient through the token inquiry status attribute of the non-fungible token.
청구항 13에 있어서, 상기 토큰 처리부는,
상기 암호화된 메시지에 대한 입력 메시지 데이터를 획득하고 상기 입력 메시지 데이터에 대한 블록체인 기반 대체불가능 토큰을 발행하는 토큰 발행 모듈;
상기 대체불가능 토큰을 상기 제2 사용자 단말에게 전송하는 토큰 전송 모듈; 및
상기 대체불가능 토큰의 소유자를 상기 수신자로 변경하는 토큰 수정 모듈;
을 구비하는 블록체인 기반 보안 메신저 서비스 장치.
The method of claim 13, wherein the token processing unit,
a token issuance module that obtains input message data for the encrypted message and issues a blockchain-based non-fungible token for the input message data;
a token transmission module that transmits the non-fungible token to the second user terminal; and
a token modification module that changes the owner of the non-fungible token to the recipient;
A blockchain-based secure messenger service device equipped with a.
청구항 14에 있어서,
상기 대체불가능 토큰의 속성을 조회하는 트랜잭션을 생성하고 생성한 트랜잭션을 블록체인으로 전송하여 상기 대체불가능 토큰의 암호화 대칭키를 조회하는 토큰 조회 모듈을 더 포함하는, 블록체인 기반 보안 메신저 서비스 장치.
In claim 14,
A blockchain-based secure messenger service device further comprising a token inquiry module that generates a transaction to query the properties of the non-fungible token and transmits the generated transaction to the blockchain to query the encryption symmetric key of the non-fungible token.
청구항 14에 있어서,
상기 토큰 발행 모듈, 상기 토큰 전송 모듈 및 상기 토큰 수정 모듈에 의한 대체불가능 토큰에 대한 동작 결과가 블록체인에 최종적으로 저장될 때, 상기 블록체인으로부터 이벤트를 받는 이벤트 관리 모듈을 더 포함하는 블록체인 기반 보안 메신저 서비스 장치.
In claim 14,
Blockchain-based further comprising an event management module that receives events from the blockchain when the results of operations on non-fungible tokens by the token issuance module, the token transfer module, and the token modification module are finally stored in the blockchain. Secure messenger service device.
청구항 13에 있어서,
상기 토큰 처리부는, 토큰 검증 모듈을 호출하여 상기 대체불가능 토큰에 기록된 상대방 메신저 ID를 확인하고, 상대방 메신저 ID에 대응하는 사용자 정보 및 공개키와 상대방의 사용자 정보 및 공개키와의 일치 여부를 비교함으로써, 상대방의 사용자 신원을 인증하는, 블록체인 기반 보안 메신저 서비스 장치.
In claim 13,
The token processing unit calls the token verification module to check the other party's messenger ID recorded in the non-fungible token, and compares whether the user information and public key corresponding to the other party's messenger ID match the other party's user information and public key. A blockchain-based secure messenger service device that authenticates the other party's user identity.
청구항 13에 있어서,
상기 제1 사용자 단말 또는 상기 제2 사용자 단말은 인증기관(Certificate Authority)에서 인증하는 공개키 기반(Public Key Infrastructure) 키 쌍을 보유하는, 블록체인 기반 보안 메신저 서비스 장치.
In claim 13,
The first user terminal or the second user terminal is a blockchain-based secure messenger service device that holds a public key infrastructure key pair authenticated by a Certificate Authority.
청구항 13에 있어서,
상기 대체불가능 토큰의 속성은 토큰 식별자(ID), 토큰 타입, 소유자 정보, 송신자 메신저 ID, 수신자 메신저 ID, 메시지 내용 암호화 대칭키 정보, 유효기간 및 토큰 조회 상태 정보를 포함하는, 블록체인 기반 보안 메신저 서비스 장치.
In claim 13,
The properties of the non-fungible token include token identifier (ID), token type, owner information, sender messenger ID, recipient messenger ID, message content encryption symmetric key information, expiration date, and token inquiry status information. Blockchain-based security messenger Service device.
청구항 13에 있어서,
상기 메시지 처리부와 상기 토큰 처리부를 포함하는 보안 메신저는 사용자 단말의 메신저 서비스 화면에 제공되는 사용자 인터페이스에서의 특정 입력 혹은 명령에 따라 비보안 메시지 전송과 보안 메시지 전송을 선택하는, 블록체인 기반 보안 메신저 서비스 장치.
In claim 13,
The secure messenger including the message processing unit and the token processing unit is a blockchain-based secure messenger service device that selects between transmitting a non-secure message and transmitting a secure message according to a specific input or command in a user interface provided on the messenger service screen of the user terminal. .
KR1020210004233A 2020-11-16 2021-01-12 Method and appratus for providing blackchain-based secure messenger service KR102667293B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200152547 2020-11-16
KR20200152547 2020-11-16

Publications (2)

Publication Number Publication Date
KR20220066801A KR20220066801A (en) 2022-05-24
KR102667293B1 true KR102667293B1 (en) 2024-05-20

Family

ID=81805716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210004233A KR102667293B1 (en) 2020-11-16 2021-01-12 Method and appratus for providing blackchain-based secure messenger service

Country Status (1)

Country Link
KR (1) KR102667293B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102474855B1 (en) * 2022-06-29 2022-12-06 주식회사 호패 Method, system and non-transitory computer-readable recording medium for providing messenger service

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016154001A1 (en) * 2015-03-20 2016-09-29 Rivetz Corp. Automated attestation of device integrity using the block chain
KR102205765B1 (en) * 2018-01-25 2021-01-21 김택균 Method And Apparatus for Providing Wallet for Enhancing Security And keeping Crypto-currency
KR102130651B1 (en) * 2018-08-13 2020-07-06 포항공과대학교 산학협력단 Method and apparatus for authenticating user based on blockchain
KR102191111B1 (en) * 2018-10-01 2020-12-15 명지대학교 산학협력단 System and method of providing anonymity message service using block chain

Also Published As

Publication number Publication date
KR20220066801A (en) 2022-05-24

Similar Documents

Publication Publication Date Title
US11651362B2 (en) Method and system for zero-knowledge and identity based key management for decentralized applications
TWI432000B (en) Provisioning of digital identity representations
TWI438642B (en) Provisioning of digital identity representations
KR101150108B1 (en) Peer-to-peer authentication and authorization
EP2834730B1 (en) Secure authentication in a multi-party system
US8788811B2 (en) Server-side key generation for non-token clients
US8196186B2 (en) Security architecture for peer-to-peer storage system
KR102177848B1 (en) Method and system for verifying an access request
US9137017B2 (en) Key recovery mechanism
US20160065571A1 (en) System and methods for secure file sharing and access management
US20100017599A1 (en) Secure digital content management using mutating identifiers
US20040255137A1 (en) Defending the name space
US20110296171A1 (en) Key recovery mechanism
KR20220011165A (en) Computer-implemented systems and methods
JP2017152880A (en) Authentication system, key processing coordination method, and key processing coordination program
US11722303B2 (en) Secure enclave implementation of proxied cryptographic keys
KR102667293B1 (en) Method and appratus for providing blackchain-based secure messenger service
US11983251B2 (en) Method and apparatus for simultaneous key generation on device and server for secure communication
US11804957B2 (en) Exporting remote cryptographic keys
KR20200134187A (en) Authentication method in a distributed circumstance
JP2007036845A (en) Ticket type member authentication apparatus and method
KR20200065940A (en) Apparatus and method for certificate status management by multiple certificate authorities
EP4047871A1 (en) Advanced security control implementation of proxied cryptographic keys
US20230396416A1 (en) Generating and managing group identities
US20150022844A1 (en) User credentials for performing multifunction device workflow action

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant