KR20230165084A - 보안 메시징 서비스 제공 방법 - Google Patents

보안 메시징 서비스 제공 방법 Download PDF

Info

Publication number
KR20230165084A
KR20230165084A KR1020220080348A KR20220080348A KR20230165084A KR 20230165084 A KR20230165084 A KR 20230165084A KR 1020220080348 A KR1020220080348 A KR 1020220080348A KR 20220080348 A KR20220080348 A KR 20220080348A KR 20230165084 A KR20230165084 A KR 20230165084A
Authority
KR
South Korea
Prior art keywords
user
chat room
terminal
encryption key
message
Prior art date
Application number
KR1020220080348A
Other languages
English (en)
Inventor
손지민
여승민
위다혜
구도연
이대열
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to US18/200,203 priority Critical patent/US20230388112A1/en
Priority to EP23174690.0A priority patent/EP4283926A1/en
Publication of KR20230165084A publication Critical patent/KR20230165084A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • G06Q50/30
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

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

Abstract

보안 메시징 서비스 제공 방법 및 그 방법이 적용된 시스템이 제공된다. 본 개시의 일 실시예에 따른 방법은 대화방에 초대할 상대방 사용자의 공개키(Public Key)를 조회하는 단계와, 상기 조회된 공개키와 대화방 개설 사용자의 개인키(Private Key)를 이용하여, 상기 대화방과 관련된 암호화 키를 생성하는 단계와, 상기 생성된 암호화 키가 상기 상대방 사용자의 단말에 전달되도록, 상기 암호화 키를 송신하는 단계를 포함한다.

Description

보안 메시징 서비스 제공 방법 {METHOD FOR PROVIDING SECURE MESSAGING SERVICE}
본 개시는 보안 메시징 서비스 제공 방법에 관한 것이다. 보다 자세하게는, 메시지를 암호화하여 송수신 하는 방법 및 그 방법이 적용된 장치에 대한 것이다.
인스턴트 메시징 서비스 등의 메시징 서비스가 제공된다. 범용 인스턴트 메시징 서비스의 보안 취약성을 고려하여, 보안 측면에서 보완된 보안 인스턴트 메시징 서비스도 제공되고 있다.
다만, 보안 인스턴트 메시징 서비스라 하더라도 입장 비밀번호 또는 입장을 위한 인증 토큰 등이 요구될 뿐이고, 이러한 입장 비밀번호 또는 인증 토큰이 유출되면 대화방의 대화 내용이 유출될 가능성이 있다.
따라서, 대화 내용의 보안에 대하여 민감한 대화방 사용자들의 불안감을 해소하고, 동일 대화방 내 사용자들 사이에서만 적용 가능한 보안 메시징 서비스 방법의 제공이 요구된다.
한국등록특허 제2048750호 (2019.11.20 등록) 한국등록특허 제1767958호 (2017.08.08 등록)
본 개시의 몇몇 실시예들에서 해결하고자 하는 기술적 과제는, 대화방 구성원에 종속되는 암호화 키를 이용하여 메시지를 암호화하는 보안 메시징 방법 및 그 방법이 적용된 장치를 제공하는 것이다.
본 개시의 몇몇 실시예들에서 해결하고자 하는 다른 기술적 과제는, 대화방 구성원의 단말에 따라서 메시지를 암호화하는 암호화 키가 다르게 제공되는 방법 및 그 방법이 적용된 장치를 제공하는 것이다.
본 개시의 몇몇 실시예들에서 해결하고자 하는 또 다른 기술적 과제는, 신규의 대화방 구성원이 참여하는 시점에 새롭게 갱신되는 암호화 키를 이용하여 메시지를 암호화하는 보안 메시징 방법 및 그 방법이 적용된 장치를 제공하는 것이다.
본 개시의 몇몇 실시예들에서 해결하고자 하는 또 다른 기술적 과제는, 대화방 구성원별 승인되는 단말을 하나로 제한하여 승인되지 않는 단말의 접근을 허용하지 않는 보안 메시징 방법 및 그 방법이 적용된 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 보안 메시지 송수신 방법은, 대화방에 초대할 상대방 사용자의 공개키(Public Key)를 조회하는 단계와, 상기 조회된 공개키와 대화방 개설 사용자의 개인키(Private Key)를 이용하여, 상기 대화방과 관련된 암호화 키를 생성하는 단계와 상기 생성된 암호화 키가 상기 상대방 사용자의 단말에 전달되도록, 상기 암호화 키를 송신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 조회된 공개키는, 상기 상대방 사용자의 단말이 보안 메시징 서비스에 로그인 될 때 상기 상대방 사용자의 단말에 의하여 생성되고, 서비스 서버에 등록된 것일 수 있다.
이 때, 상기 조회된 공개키는, 상기 상대방 사용자의 단말에 의하여, 상기 상대방 사용자의 단말의 식별정보를 이용하여 생성된 것일 수 있다.
일 실시예에서, 상기 암호화 키를 생성하는 단계는, 상기 상대방 사용자의 단말에 대화방 초대 메시지를 송신하는 단계와, 상기 대화방 초대 메시지에 대하여 승인 응답을 수신하는 것에 응답하여, 상기 조회된 공개키 중 상기 승인 응답을 송신한 상대방 사용자의 공개키를 식별하고, 상기 식별된 공개키와 상기 개인키를 이용하여, 상기 암호화 키를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 암호화 키를 생성하는 단계는, 상기 암호화 키의 생성 시점의 타임스탬프(Time Stamp)를 더 이용하여, 상기 대화방과 관련된 암호화 키를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 암호화 키를 생성하는 단계는, 상기 상대방 사용자의 단말에 대화방 초대 메시지를 송신하는 단계와, 상기 대화방 초대 메시지에 대한 승인 응답을 수신하면, 상기 승인 응답에 포함된 패스워드를 더 이용하여, 상기 암호화 키를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 보안 메시지 송수신 방법은 상기 대화방 개설 사용자에 의하여 상기 대화방에 입력되는 메시지를, 상기 암호화 키로 암호화하여 송신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 보안 메시지 송수신 방법은 상기 대화방의 속성 정보를, 상기 암호화 키로 암호화하여 송신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 보안 메시지 송수신 방법은 신규 사용자에 대한 초대 명령을 입력받는 단계와, 상기 신규 사용자의 공개키와, 상기 대화방의 상기 상대방 사용자의 공개키와, 상기 대화방 개설 사용자의 개인키를 이용하여, 상기 대화방과 관련된 암호화 키를 갱신하는 단계와, 상기 갱신된 암호화 키가 상기 상대방 사용자의 단말 및 상기 신규 사용자의 단말에 전달되도록, 상기 갱신된 암호화 키를 송신하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 실시예에 따른 보안 메시지 송수신 방법은, 제1 사용자의 단말로부터 제2 사용자에 대한 대화방 초대 요청을 수신하되, 상기 제2 사용자는 복수의 사용자 단말을 등록한 사용자인, 단계와, 상기 제2 사용자의 복수의 사용자 단말 각각에 상기 대화방 초대 요청을 송신하는 단계와, 상기 제2 사용자의 복수의 사용자 단말 중 어느 하나로부터, 상기 대화방 초대 요청에 대한 승인 신호를 수신하는 단계와, 상기 제2 사용자의 복수의 사용자 단말 중, 상기 승인 신호를 송신한 사용자 단말인 승인 단말을 제외한 나머지 모든 사용자 단말에, 상기 대화방 초대 요청에 대한 알림 메시지 삭제 명령을 송신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 알림 메시지 삭제 명령은, 상기 알림 메시지 삭제 명령을 수신한 사용자 단말로 하여금, 상기 대화방 초대 요청의 표시를 제거하고, 상기 대화방 초대 요청에 대한 로컬 DB의 레코드를 삭제하도록 하는 명령일 수 있다.
일 실시예에서, 상기 보안 메시지 송수신 방법은 상기 대화방 초대 요청에 따른 대화방과 관련된 암호화 키를 생성하기 위한 상기 제1 사용자의 단말의 요청에 응답하여, 상기 제2 사용자의 공개키를 송신하는 단계와, 상기 제1 사용자의 단말에 의하여 상기 제1 사용자의 개인키 및 상기 제2 사용자의 공개키를 이용하여 생성된 암호화 키를, 상기 제1 사용자의 단말로부터 수신하는 단계와, 상기 수신된 암호화 키를, 상기 제2 사용자의 단말에 송신하는 단계를 더 포함할 수 있다.
이 때, 상기 제2 사용자의 공개키를 송신하는 단계는, 상기 승인 단말의 식별정보를 더 송신하는 단계를 포함할 수 있다.
이 때, 상기 암호화 키는, 상기 승인 단말의 식별정보를 더 이용하여 생성된 것일 수 있다.
이 때, 보안 메시지 송수신 방법은 상기 제1 사용자의 단말로부터, 상기 암호화 키를 이용하여 암호화된 메시지를 수신하는 단계와, 상기 암호화된 메시지를, 상기 제2 사용자의 복수의 사용자 단말 중 상기 승인 단말에만 송신하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법은, 제1 상대방 사용자의 공개키와 대화방 개설 사용자의 개인키를 이용하여, 상기 제1 상대방 사용자와의 대화를 위한 제1 대화방과 관련된 제1 암호화 키를 생성하는 단계와, 상기 제1 대화방에 입력된 메시지를 상기 제1 암호화 키를 이용하여 암호화하여 송신하는 단계와, 상기 제1 상대방 사용자의 상기 공개키와, 제2 상대방 사용자의 공개키와, 상기 대화방 개설 사용자의 상기 개인키를 이용하여, 상기 제1 상대방 사용자 및 상기 제2 상대방 사용자와의 대화를 위한 제2 대화방과 관련된 제2 암호화 키를 생성하는 단계와, 상기 제2 대화방에 입력된 메시지를 상기 제2 암호화 키를 이용하여 암호화하여 송신하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 장치는, 하나 이상의 프로세서와, 네트워크 인터페이스와, 메모리와, 상기 메모리에 로딩되어 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램이 기록된 스토리지 장치를 포함할 수 있다. 이 때, 상기 컴퓨터 프로그램은, 사용자의 단말로부터 공개키를 수신받아 저장하는 인스트럭션(instruction)과, 대화방을 개설한 사용자의 단말에서 수신된 공개키 조회 요청에 응답하여, 대화방 초대 대상인 상대방 사용자의 공개키를, 상기 대화방을 개설한 사용자의 단말에게 송신하는 인스트럭션과, 상기 대화방을 개설한 사용자의 단말로부터, 상기 대화방과 관련된 암호화 키를 수신받는 인스트럭션과, 상기 수신된 암호화 키를 상기 상대방 사용자의 단말에 전달하는 인스트럭션을 포함할 수 있다. 이 때, 상기 암호화 키는 상기 상대방 사용자의 공개키 및 상기 대화방을 개설한 사용자의 비밀키를 이용하여 생성된 것일 수 있다.
도 1은, 본 개시의 일 실시예에 따른 보안 메시징 서비스 제공 시스템의 구성도이다.
도 2는, 본 개시의 다른 실시예에 따른 보안 메시지 송수신 방법의 순서도이다.
도 3은, 도 2를 참조하여 설명한 일부 동작을 자세하게 설명하기 위한 상세 순서도이다.
도 4는, 도 2를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다.
도 5는, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법의 순서도이다.
도 6은, 도 5를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다.
도 7은, 본 개시의 또 다른 실시예에 따른 보안 메시징 서비스 제공 시스템의 구성도이다.
도 8은, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법의 순서도이다.
도 9는, 도 8을 참조하여 설명한 일부 동작을 자세하게 설명하기 위한 상세 순서도이다.
도 10은, 도 8 및 도 9를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다.
도 11 내지 도 13은, 본 개시의 몇몇 실시예들의 수행 결과, 사용자의 단말에 표시될 수 있는 예시적인 화면을 도시한 도면들이다.
도 14는, 본 개시의 몇몇 실시예들에서 구성요소로서 사용될 수 있는 컴퓨팅 시스템의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다. 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 이하, 도면들을 참조하여 본 개시의 몇몇 실시예들을 설명한다.
먼저, 본 개시의 일 실시예에 따른, 보안 메시징 서비스 제공 시스템을 도 1을 참조하여 설명하기로 한다. 이하, 본 기재에서 상기 보안 메시징 서비스 제공 시스템은 ‘보안 메시지 송수신 시스템’으로 지칭하기로 한다.
본 실시예에 따른 보안 메시지 송수신 방법은, 하나 이상의 컴퓨팅 시스템에 의하여 수행될 수 있다. 이하, 본 실시예에 따른 방법을 설명함에 있어서, 일부 동작의 수행 주체에 대한 기재가 생략될 수 있다. 이 때, 해당 동장의 수행 주체는 상기 컴퓨팅 시스템인 것으로 이해되어야 한다.
도 1은 본 개시의 일 실시예에 따른, 보안 메시지 송수신 시스템의 구성도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 보안 메시지 송수신 시스템은 서비스 서버(10) 및 사용자 단말들(20, 30, 40)을 포함할 수 있다. 이해의 편의를 돕기 위해, 도1에는 사용자 단말들이 대화방 개설자의 단말(20) 및 대화방에 초대된 상대방 사용자의 단말(30, 40)로 구분되어 도시되었다.
각 사용자 단말들(20, 30, 40)은, 암호화 키를 생성하고 저장하는 암호화 키 관리부(21, 31, 41)와 메시지를 교환하는 메시지 수발신부(22, 32, 42) 및 교환할 메시지를 암호화 및 복호화로 표시해주는 메시지 암복호화부(23, 33, 43)를 포함할 수 있다.
암호화 키 관리부(21, 31, 41)는, 각 사용자 단말들(20, 30, 40)이 보안 메시징 서비스에 로그인 할 때 공개키 및 개인키(Private Key)를 생성하고, 상기 생성된 공개키를 공개키 관리 서버(11)에 송신할 수 있다.
메시지 수발신부(22, 32, 42)에서는, 각 사용자 단말들(20, 30, 40)간 혹은 각 사용자 단말들(20, 30, 40)과 서비스 서버(10) 사이의 메시지를 송수신할 수 있다.
메시지 암복화부(22, 33, 43)는, 메시지 송신 시, 사용자로부터 입력 받은 메시지를 암호화 키를 이용하여 암호화된 메시지로 변환할 수 있다. 또한, 암호화된 메시지 수신 시, 상기 암호화 키를 이용하여 수신된 메시지를 복호화할 수 있다.
상기 암호화 키는 대화방 개설자 단말(20)에 의하여 생성될 수 있다. 즉, 상기 암호화 키는 대화방 종속적으로 생성될 수 있으며, 상기 대화방을 개설한 사용자의 단말(20)에 의하여 생성될 수 있는 것이다. 또한, 대화방 개설자 단말(20)은 대화방 개설자의 비밀키 및 하나 이상의 상대방 사용자들의 공개키들을 이용하여 상기 암호화 키를 생성할 수 있다. 이외에도 다양한 방식으로 상기 암호화 키가 생성될 수 있으며, 자세한 암호화 키의 생성 방법들에 대하여는 후술하기로 한다.
또한, 도 1에 도시된 바와 같이, 서비스 서버(10)는, 각 사용자 단말들(20, 30, 40)과 네트워크로 연결되어 있으며, 공개키 관리 서버(11)와 메신저 서비스 서버(12)를 포함할 수 있다. 공개키 관리 서버(11) 및 메신저 서비스 서버(12) 각각은 소프트웨어 모듈의 형태로 구현될 수 있다. 또한, 공개키 관리 서버(11) 및 메신저 서비스 서버(12) 각각은 클라우드 환경에 프로비저닝(provisioning)된 개별적인 가상 머신(virtual machine)으로 구현될 수도 있을 것이다.
공개키 관리 서버(11)는, 각 사용자 단말(20, 30, 40)로부터 공개키(Public Key)를 수신하여 저장할 수 있다. 몇몇 실시예들에서, 각 사용자 단말(20, 30, 40)은 보안 메시징 서비스에 로그인 할 때 공개키 및 개인키를 생성할 수 있다. 즉, 공개키 관리 서버(11)는, 상기 보안 메시징 서비스에 대한 로그인 시점에 각 사용자 단말(20, 30, 40)로부터 공개키(Public Key)를 수신할 수 있는 것이다.
또한, 대화방 개설자의 단말(20)로부터 상대방 사용자의 단말(30, 40)의 공개키 조회 요청에 응답하여, 저장되어 있는 상대방 사용자 단말(30, 40)의 공개키를 제공할 수 있다.
또한, 각 사용자 단말(20, 30, 40)은, 보안 메시징 서비스에 로그인 할 때 공개키 및 개인키의 생성을 공개키 관리 서버(11)에 요청할 수도 있다. 이 때, 각 사용자 단말(20, 30, 40)은 공개키 및 개인키의 생성을 요청하면서, 각 사용자 단말(20, 30, 40)의 단말의 식별정보를 공개키 관리 서버(11)에 송신할 수 있다. 이 때, 공개키 관리 서버(11)는 생성된 공개키 및 개인키를 각 사용자 단말(20, 30, 40)에 송신하고, 공개키는 저장하되, 그 개인키는 완전 삭제할 수 있다.
또한, 각 사용자 단말(20, 30, 40)은 보안 메시징 서비스에 로그인 한 이후에도, 주기적으로 공개키 및 개인키를 생성하고, 생성된 공개키를 공개키 관리 서버(11)에 송신할 수 있다.
또한, 각 사용자 단말(20, 30, 40)은 보안 메시징 서비스에 로그인 한 이후에도, 주기적으로 공개키 및 개인키의 생성을 공개키 관리 서버(11)에 요청할 수도 있다.
메신저 서비스 서버(12)는, 대화방 개설자의 단말(20)로부터 대화방 생성요청을 수신하여 대화방을 생성할 수 있다. 또한, 메신저 서비스 서버(12)는, 예상 대화방 참여자들인 상대방 사용자의 단말(30, 40)로 대화방 초대 메시지를 송신하는 등 대화방의 생성 및 사용자 구성에 관한 메시지들을 각 사용자 단말들로(20, 30, 40) 전달하는 기능을 할 수 있다.
몇몇 실시예들에서, 서비스 서버(10)는 최소한의 송수신 메시지 만을 저장할 수 있다. 예를 들어, 서비스 서버(10)는 특정 대화방을 통하여 송수신 되는 메시지를, 상기 특정 대화방의 모든 구성원 단말이 다운로드 할 때까지만 저장할 수 있다.
다른 몇몇 실시예들에서, 서비스 서버(10)는 대화방의 생성 및 삭제 등 대화방의 관리와 관련된 동작만을 수행하고, 대화방을 통한 메시지 송수신은 대화방의 각 구성원 단말이 p2p(peer-to-peer) 방식으로 직접 송수신하도록 중개할 수 있다.
즉, 서비스 서버(10)는 최소한의 메시지 만을 저장하거나, 아예 메시지 송수신 자체에는 관여하지 않음으로써, 서비스 서버(10)의 해킹에 의한 대화 내용 유출 가능성을 최소화할 수 있는 것이다. 만에 하나 서비스 서버(10)의 해킹에 의한 메시지 유출이 발생되더라도 그 메시지는 암호화되어 있고, 또한, 암호화 키가 대화방 마다 모두 상이하므로, 암호화 키의 유출 가능성이 매우 낮은 바, 결국 메시지 원문의 유출 가능성은 매우 낮다.
다음으로, 본 개시에 따른 전체적인 보안 메시지 송수신 방법을 도 2 내지 도 4를 참조하여 설명하도록 한다. 본 실시예에 따른 보안 메시지 송수신 방법은 하나 이상의 컴퓨팅 장치에 의하여 수행될 수 있다. 즉, 본 실시예에 따른 보안 메시지 송수신 방법은 하나의 컴퓨팅 장치에 의하여 모든 동작이 수행될 수도 있고, 일부의 동작이 다른 컴퓨팅 장치에 의하여 수행될 수도 있다.
예를 들어, 일부의 동작은 제1 서버 시스템에 의하여 수행되고, 다른 동작은 제2 서버 시스템에 의하여 수행될 수도 있다. 또한, 예를 들어, 일부의 동작은 서버 시스템에 의하여 수행되고, 다른 동작은 사용자 단말에 의하여 수행될 수도 있다. 예를 들어, 일부의 동작은 제1 사용자 단말에 의하여 수행되고, 다른 동작은 제2 사용자 단말에 의하여 수행될 수도 있다.
또한, 서버 시스템이 클라우드 컴퓨팅 노드 상에 구현됨에 따라, 하나의 서버 시스템에 의하여 수행되는 동작들도 복수의 클라우드 컴퓨팅 노드 상에서 나뉘어 수행될 수도 있을 것이다. 이하, 본 실시예에 따른 보안 메시지 송수신 방법을 설명함에 있어서, 일부 동작의 수행 주체에 대한 기재가 생략될 수 있으며, 이 경우 그 수행 주체는 도 1을 참조하여 설명한 대화방 개설자 단말(20)일 수 있다.
이하, 본 개시의 다른 실시예에 따른 보안 메시지 송수신 방법을 도 2 내지 도 4를 참조하여 설명하기로 한다. 먼저, 도 2를 참조하여 설명한다.
단계 S100에서, 각 사용자 단말들이 공개키와 개인키를 생성할 수 있다. 예를 들어, 각 사용자 단말들은 보안 메시징 서비스 로그인 시 공개키와 개인키를 생성할 수 있다. 그 중, 상기 공개키는 공개키 관리서버에 등록될 수 있다. 상기 공개키와는 달리 상기 개인키는 각 사용자 단말들 내부의 보안 영역에 저장될 수 있다.
상기 공개키 및 상기 개인키 중 적어도 하나는 각 사용자 단말의 식별 정보를 이용하여 생성될 수 있다. 예를 들어, 상기 사용자 단말의 식별정보는 시리얼 넘버, MAC Address, IMEI값 등을 포함할 수 있는데, 이러한 설명은 예시적인 것으로서 이에 한정되지 않고, 사용자 단말에 종속된 고유의 값이라고 이해할 수 있을 것이다.
또한, 몇몇 실시예들에서, 상기 공개키 및 상기 개인키 중 적어도 하나는 각 사용자 단말의 사용자의 생체 정보를 더 이용하여 생성될 수 있다. 예를 들어, 상기 생체 정보로서, 홍채 정보, 지문 정보 및 성문 정보 중 적어도 일부가 사용될 수 있다.
또한, 몇몇 실시예들에서, 상기 공개키 및 상기 개인키 중 적어도 하나는 타임스탬프(timestamp)를 더 이용하여 생성될 수 있다. 예를 들어, 상기 타임스탬프는 보안 메시징 서비스에 대한 로그인 시점에 획득된 것일 수 있다.
또한, 몇몇 실시예들에서, 상기 공개키 및 상기 개인키 중 적어도 하나는 비대칭(Assymmetric) 암호화 알고리즘에 의하여 생성될 수 있다. 이 때, 공개키 암호화 방식으로는 비대칭 암호화 알고리즘으로서 DSA(Digital Signature Algorithm), RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptography) 등이 포함될 수 있는데, 이러한 설명은 예시적인 것으로서 이에 한정되지 않는다.
또한, 몇몇 실시예들에서, 각 사용자 단말들은 로그인 이후에도 주기적 또는 비주기적으로 공개키와 개인키를 재생성하고, 그 중 공개키를 상기 공개키 관리 서버에 등록할 수 있다. 예를 들어, 각 사용자 단말들은 매일 주기적으로 공개키와 개인키를 재생성할 수 있다.
또한, 예를 들어, 각 사용자 단말들 중 대화방을 생성한 단말들은 공개키와 개인키를 재생성할 수 있다. 상술한 바와 같이, 대화방의 암호화 키는 대화방 개설자의 비밀키 및 상대방의 공개키를 이용하여 생성될 수 있는데, 각 사용자 단말들이 대화방 생성 시 공개키와 개인키를 재생성하도록 함으로써, 암호화 키가 빈번하게 갱신되도록 할 수 있다. 즉, 동일한 개설자 및 상대방이 대화방 구성원이 되더라도 그 대화방의 암호화 키가 빈번하게 갱신되도록 함으로써, 메시징 서비스의 보안이 강화될 수 있을 것이다.
단계 S200에서, 대화방 개설자 단말이 대화방 생성 요청을 메신저 서비스 서버에 송신하는 것에 응답하여, 상기 메신저 서비스 서버가 대화방을 생성할 수 있다. 상기 대화방 생성 요청은 상대방 사용자에 대한 정보를 포함할 수 있다. 상기 메신저 서비스 서버는 상기 상대방 사용자의 단말에 대화방 초대 메시지를 송신할 수 있다.
단계 S300에서, 공개키 관리 서버는, 상기 상대방 사용자의 공개키를 조회하고, 조회된 상대방 사용자의 공개키를 상기 대화방 개설자 단말에 송신할 수 있다. 상기 공개키 관리 서버가 상기 상대방 사용자의 공개키를 상기 대화방 개설자 단말에 송신하는 것은, 상기 메신저 서비스 서버가 상기 대화방 생성 요청을 수신하는 것에 연계되어 수행될 수도 있고, 상기 대화방 개설자 단말이 상기 대화방 생성 요청을 상기 메신저 서비스 서버에 송신하는 것에 이어서 상대방 공개키 조회 요청을 상기 공개키 관리 서버에 송신하는 것에 응답하여 수행될 수도 있을 것이다.
단계 S400에서, 대화방 개설자 단말은 상기 조회된 상대방 사용자 단말의 공개키와, 대화방 개설자의 비밀키를 이용하여 상기 대화방의 암호화 키를 생성할 수 있다. 이 때, 생성된 암호화 키는 상기 대화방에 입력되는 메시지에 한하여 사용되는 것이 바람직 할 것이다.
즉, 동일한 구성원을 가지는 제1 대화방 및 제2 대화방을 동일한 대화방 개설자가 생성하더라도, 상기 제1 대화방을 위한 암호화 키와, 상기 제2 대화방을 위한 암호화 키는 서로 다른 것이 바람직할 것이다. 이를 위해, 대화방 개설자 단말은 상대방 사용자 단말의 공개키, 대화방 개설자의 비밀키 및 타임스탬프를 이용하여 암호화 키를 생성할 수 있다.
물론, 다른 몇몇 실시예들에서, 동일한 구성원을 가지며 동일한 대화방 개설자가 생성한 대화방들은 암호화 키가 동일할 수도 있을 것이다. 이 때는, 상술한 바와 같이, 상기 암호화 키가 대화방 개설자의 비밀키 및 상대방 사용자의 공개키 만으로 생성될 수 있을 것이다.
이하, 도 3을 참조하여, 단계 S400의 암호화 키 생성 관련 동작을 보다 상세하게 설명한다.
도 3에 도시된 바와 같이, 상기 암호화 키 생성에 이용되는 상대방 사용자의 공개키는, 대화방 개설자 단말이 송신(S410)한 대화방 초대 메시지에 대하여 초대 승인 신호를 송신한 사용자의 공개키에 한정될 수 있다. 즉, 상기 공개키 관리 서버는 조회된 상대방 사용자의 공개키들 중, 상기 초대 승인 신호를 송신한 사용자의 공개키를 식별하고(S420), 식별된 공개키 만을 상기 대화방 개설자 단말에 송신할 수 있다. 상기 대화방 개설자 단말은 대화방 개설자의 비밀키와, 상기 초대 승인 신호를 송신한 사용자의 공개키를 이용하여 대화방의 암호화 키를 생성할 수 있다(S430).
다시, 도 2로 돌아와서 설명한다.
상기 대화방 개설자 단말은, 상기 생성된 암호화 키를 메신저 서비스 서버를 통해 상대방 사용자 단말에 전달할 수 있다(S500). 이로써, 대화방에 참여하는 각각의 사용자 단말은 모두 상기 암호화 키를 보유하게 된다.
상술한 바와 같이 각각의 사용자 단말은 메시지 암복호화부를 가질 수 있다. 상기 메시지 암복호화부는 각 사용자 단말이 입력받은 메시지 원본을 암호화할 수 있다. 예를 들어, 상기 메시지 암복호화부는 AES-256(Advanced Encryption Standard) 알고리즘, SHA(Secure Hash Algorithm) 알고리즘 등을 이용하여 대칭형 암호화 방식으로 메시지 원본을 암호화하고, 암호화된 메시지를 복호화할 수 있다.
이후, 각 사용자 단말은 메시지의 원문을 상기 암호화 키를 이용하여 암호화하고, 암호화된 메시지를 메신저 서비스 서버에 송신하고, 암호화된 메시지를 상기 암호화 키를 이용하여 복호화할 수 있다(S600).
이 때, 몇몇 실시예들에 따라, 각 사용자 단말에 입력되는 메시지의 원문은 텍스트, 이미지, 음성 형태의 파일을 포함할 수 있으며, 이러한 설명은 예시적인 것으로서 이에 한정되지 않는다.
몇몇 실시예들에서, 상기 암호화 키는 대화방 탈퇴 또는 대화방 지움에 따라 대화방과 함께 삭제될 수 있다. 또한, 몇몇 실시예들에서, 상기 암호화 키는 메신저 서비스 로그아웃에 따라 삭제될 수 있다. 이 때, 대화방 탈퇴 또는 대화방 지움과 함께 상기 암호화 키가 제거됨으로써 기존의 메시지 원본 확인이 불가능해지고, 로그아웃 후, 다시 로그인하는 경우에도 기존의 메시지 원본 확인이 불가능해질 것이다.
한편, 몇몇 실시예들에서, 대화방의 속성정보가 설정될 수 있다.
상기 대화방의 속성정보는, 대화방의 암호, 대화방 개설자의 단말 및 대화방 사용자의 단말들에 관한 정보 및 암호화 키에 관한 정보를 포함할 수 있다. 또한, 예를 들어, 해당 대화방 내에서만 사용할 수 있는 각 사용자의 프로필 사진, 이름, 대화방 개설자 정보, 대화방 합류 시점에 대한 정보, 메시지 통계 정보 등이 상기 대화방의 속성 정보로서 더 포함될 수 있다.
또한, 상기 대화방의 속성 정보는 상기 대화방의 암호화 키를 이용하여 암호화되고, 암호화된 대화방의 속성 정보가 대화방 사용자의 단말들로 송신될 수 있다. 또한, 대화방 사용자의 단말은 상기 암호화 키를 이용하여 상기 대화방의 암호화된 속성 정보를 복호화 하여 표시할 수 있다. 따라서, 민감한 내용을 포함할 수 있는 대화방의 속성 정보도, 대화방 사용자 이외의 단말에서는 확인될 수 없게 될 것이다.
이하, 이해를 돕기 위해, 관련 도면들을 참조하여 본 실시예에 따른 보안 메시지 송수신 방법을 보다 자세히 설명하도록 한다. 도 4는, 본 실시예에 따른 보안 메시지 송수신 방법의 신호 흐름도이다.
로그인 관련 동작(S10)을 설명한다. 대화방 개설자의 단말(20) 및 상대방 사용자의 단말(30)은 로그인 시점에 개인키와 공개키를 생성하고(S11), 생성된 공개키를 공개키 관리 서버(11)에 등록한다(S12).
대화방 초대 관련 동작(S20)을 설명한다. 대화방 개설자 단말의 메시지 수발신부(22)는 대화방 생성 요청을 메신저 서비스 서버(12)에 송신한다(S21). 또한, 대화방 개설자 단말의 메시지 수발신부(22)는 상기 대화방에 초대하고자 하는 상대방 사용자의 공개키 조회 요청을 공개키 관리 서버(11)에 송신한다.
공개키 관리 서버(11)는 상기 대화방에 초대하고자 하는 상대방 사용자의 공개키를 대화방 개설자 단말의 메시지 수발신부(22)에 송신할 수 있다.
또한, 대화방 개설자 단말의 메시지 수발신부(22)는 메신저 서비스 서버(12)에 상기 대화방에 초대하고자 하는 상대방 사용자에 대한 식별정보를 포함한 대화방 초대 메시지를 송신한다(S23). 메신저 서비스 서버(12)는 상기 대화방 초대 메시지를 상대방 사용자의 단말에 송신한다(S24).
초대 승인 관련 동작(S30)을 설명한다. 대화방 개설자가 초대한 상대방 사용자들 중, 초대 승인 사용자 단말의 메시지 수발신부(32)는 초대 승인 신호를 메신저 서비스 서버(12)에 송신한다(S31). 메신저 서비스 서버(12)는 초대 승인한 상대방 사용자에 대한 정보를 대화방 개설자 단말의 메시지 수발신부(22)에 송신할 것이다.
몇몇 실시예들에서, 초대 승인 사용자 단말의 메시지 수발신부(32)는 사용자로부터 초대 승인 패스워드를 입력 받고, 상기 초대 승인 패스워드를 메신저 서비스 서버(12)를 통하여 대화방 개설자 단말 메시지 수발신부(22)에 송신할 수 있다. 상기 초대 승인 패스워드는 초대 승인 사용자의 공개키에 의하여 암호화되고, 암호화된 초대 승인 패스워드가 메신저 서비스 서버(12)를 통하여 대화방 개설자 단말 메시지 수발신부(22)에 송신될 수 있을 것이다.
대화방 암호화 키 생성 관련 동작(S40)을 설명한다. 대화방 개설자 단말은 공개키 관리 서버(11)로부터 수신한 대화방 초대 사용자의 공개키 중에서, 초대 승인한 상대방 사용자의 공개키를 식별한다(S41). 대화방 개설자 단말은 대화방 개설자의 비밀키 및 초대 승인한 상대방 사용자의 공개키를 이용하여 암호화 키를 생성하고, 생성된 암호화 키를 공개키 관리 서버(11)를 통해 상대방 사용자 단말(30)에 공유할 수 있다(S42, S43).
몇몇 실시예들에서, 대화방 개설자 단말은 대화방 개설자의 비밀키, 초대 승인한 상대방 사용자의 공개키 및 상기 초대 승인 패스워드를 이용하여 암호화 키를 생성할 수 있다.
몇몇 실시예들에서, 대화방 개설자 단말은 대화방 개설자의 비밀키, 초대 승인한 상대방 사용자의 공개키 및 암호화 키 생성 시점에 획득된 타임스탬프를 이용하여 암호화 키를 생성할 수 있다.
몇몇 실시예들에서, 대화방 개설자 단말은 대화방 개설자의 비밀키, 초대 승인한 상대방 사용자의 공개키, 상기 초대 승인 패스워드 및 암호화 키 생성 시점에 획득된 타임스탬프를 이용하여 암호화 키를 생성할 수 있다.
암호화된 메시지 교환 관련 동작(S50)을 설명한다. 상기 대화방의 참여자 단말들(20, 30)은 입력된 메시지를 암호화하고(S51, S53), 암호화된 메시지를 송수신할 수 있다(S52).
다음으로, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법을 도 5 및 도 6을 참조하여 설명하도록 한다. 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법은 기존 대화방이 생성된 이후, 신규 사용자 단말이 상기 대화방에 추가되는 단계를 포함한다.
도 5는, 본 개시의 또 다른 실시예에 따른 보안 메시지 송수신 방법의 순서도이고, 도 6은, 도 5를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다. 이하, 도 5 및 도 6을 참조한 본 개시의 또 다른 실시예에서는, 기존의 '상대방 사용자'는 ‘제1 사용자’로 약칭하도록 하고, ‘신규 사용자 ’는 ‘제2 사용자 ’로 약칭하도록 한다.
단계 S700에서, 대화방 개설자의 단말이 대화방 개설 단말의 개인키와 제1 사용자의 단말의 공개키를 이용하여, 제1 암호화 키를 생성할 수 있다. 그 중, 상기 공개키는 공개키 관리서버에 등록될 수 있고, 상기 개인키는 상기 대화방 개설자 단말 내부의 보안 영역에 저장될 수 있다.
단계 S800에서, 대화방 개설자의 단말(20)에서는 신규 사용자인 제2 사용자의 단말(40)로 대화방 초대 메시지를 송신(S61)할 수 있다.
이 때, 대화방 개설자의 단말(20)에서는 상기 대화방 초대 메시지에 응답하여 초대 승인(S63)한 제2 사용자의 단말(40)의 공개키를 추가로 이용하여 제2 암호화 키를 생성(S1000)할 수 있다. 이후, 제2 대화방의 단말들(20, 30, 40)사이에서는, 제2 암호화 키를 이용하여 암호화된 메시지를 송수신(S1100) 할 수 있다.
이 때, 생성된 제2 암호화 키는 대화방 개설자의 단말(20)의 개인키와 제1 사용자의 단말(30)의 공개키 및 제2 사용자의 단말(40)의 공개키를 이용하여 생성(S72)된 암호화 키로, 제1 암호화 키로부터 갱신된 것이라고 이해할 수 있을 것이다. 상기 갱신된 제2 암호화 키는 제1 사용자의 단말(30) 및 제2 사용자의 단말(40)로 송신(S73)될 수 있다.
이 때, 상기 제2 암호화 키가 사용되는 제2 대화방은, 제2 사용자의 단말(40)의 추가로 새롭게 생성되는 대화방이 아닌, 제1 대화방에서 대화방 사용자의 단말의 구성만이 추가된 것으로, 이 역시 제1 대화방으로부터 갱신된 것이라고 이해할 수 있을 것이다.
이처럼, 신규 사용자인 제2 사용자의 단말(40)이 제1 대화방의 구성원 단말로 새롭게 추가됨에 따라, 기존의 제1 암호화 키를 더 이상 사용하지 않고, 새롭게 생성된 제2 암호화 키를 사용함으로써, 제2 사용자의 단말(40)이 대화방의 구성원으로서 포함되기 전의 대화는 제2 사용자의 단말에서 복호화 되지 않도록 할 수 있다.
즉, 제2 대화방이 생성된 시점 이후부터는, 기존의 제1 대화방에서 메시지를 암복호화 하는데 사용되었던 제1 암호화 키의 사용이 불가해지고, 송수신된 제2 암호화 키를 통해서만 메시지가 암복호화 될 수 있다.
지금까지 기존의 대화방 개설자의 단말(20)의 개인키와 제1 사용자의 단말(30)의 공개키를 이용하여 제1 암호화 키를 생성(S700)하고, 이를 이용하여 제1 대화방에서 암호화된 메시지를 송수신(S800)하는 단계에서 신규사용자인 제2 사용자의 단말(40)이 추가되는 실시예를 설명하였다.
즉, 신규 사용자인 제2 사용자의 단말(40)의 대화방 초대 승인(S900)에 의하여, 제1 대화방이 제2 대화방으로 갱신되고, 제1 암호화 키의 구성에 제2 사용자의 단말(40)의 공개키를 더 이용하여 제2 암호화 키를 생성(S1000)하는 단계를 순서대로 설명하였다. 이해를 돕기 위해, 관련 도면들을 참조하여 보다 자세히 설명하도록 한다.
도 6은, 도 5를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다.
도 6을 참조하면, 신규 사용자인 제2 사용자의 단말(40)로 대화방 초대 메시지를 송신(S61, S62)하여, 서버로부터 초대 승인(S63, S64)한 제2 사용자의 단말(40)의 공개키를 식별(S71) 및 이용하여 제2 암호화 키를 생성(S72)하고, 제2 암호화 키를 이용해 메시지를 암복호화하여 송수신하는 과정이 단계별로 도시되어 있다.
한편, 상술한 바와 같이, 본 실시예에서도 암호화 키의 생성에 대화방 개설자의 개인키 및 상대방의 공개키 뿐만 아니라, 암호화 키 생성 시점에 획득된 타임스탬프 또는 초대 승인 시 상대방에 의하여 입력된 초대 승인 패스워드가 더 이용될 수 있음은 물론이다.
이처럼, 본 실시예에 따른 보안 메시지 송수신 방법은 하나의 대화방 개설자 단말(20)과 하나의 상대방 사용자의 단말(30)이 연결되어 수행될 수 있다. 또한, 하나의 대화방 개설자의 단말(20)과 서로 다른 상대방 사용자의 단말들이 동시에 연결되어 수행될 수 있다.
이하, 도 7 내지 도 10을 참조하여, 본 개시의 또 다른 실시예들에 따른 보안 메시지 송수신 시스템 및 그 방법을 설명한다. 이하, 한명의 사용자가 복수의 단말들을 메신저 서비스 서버에 등록하여 사용하는 경우에, 본 개시의 실시예들이 어떻게 동작하는지 설명한다.
도 7은, 본 실시예에 따른 보안 메시지 서비스 제공 시스템의 구성도이며, 도 8은 본 실시예에 따른 보안 메시지 서비스 제공 방법의 순서도이다. 대화방 개설자를 이하 ‘제1 사용자’라 약칭하고, 복수의 단말들을 등록한 사용자를 이하, ‘제2 사용자'라고 약칭하도록 한다.
제1 사용자의 단말(20)에서 제2 사용자를 상대방으로 하여 대화방 초대 메시지를 송신하면, 제2 사용자의 모든 단말들(50, 60)로 상기 대화방 초대 메시지가 송신될 것이다(S1200). 즉, 제2 사용자의 모든 단말들(50, 60)은 상기 대화방 초대 메시지를 표시할 것이다.
이후, 제2 사용자가 복수의 단말 중 어느 하나에 초대 승인 신호를 입력함으로써, 상기 초대 승인 신호가 입력된 단말(50)로부터 초대 승인 신호를 수신(S1300)할 수 있다. 제2 사용자의 모든 단말들(50, 60) 중, 제2 사용자가 초대 승인을 입력한 단말을 ‘승인 단말’(50)로 약칭하도록 한다.
승인 단말(50)로부터 초대 승인을 수신한 메신저 서비스 서버는 승인 단말(50)을 제외한 제2 사용자의 나머지 단말(60)로 대화방 초대 알림 메시지 삭제 명령을 송신(S1400)할 수 있다.
승인 단말(50)을 제외한 제2 사용자의 나머지 단말(60)은 상기 대화방 초대 알림 메시지 삭제 명령을 수신하여, 화면에 표시되는 대화방 초대 요청 표시를 제거할 수 있다. 또한, 제2 사용자의 나머지 단말(60)은, 대화방 초대 요청에 대한 로컬 DB의 레코드를 삭제할 수도 있을 것이다.
이로써, 대화방에 등록된 제2 사용자의 단말은 승인 단말(50)이 유일하게 되어, 승인 단말(50)을 제외한 나머지 단말(60)에 의해서 의도치 않게 발생할 수 있는 대화 내용의 유출 위험이 경감될 수 있다.
이후, 제2 사용자가 등록한 복수의 단말 중 승인 단말(50)의 공개키 만을 제1 사용자의 단말(20)이 공개키 관리 서버(11)로부터 수신(S1310)하는 단계, 승인 단말(50)의 공개키와 제1 사용자의 단말(20)의 개인키를 이용하여 암호화 키를 생성(S1320)하는 단계, 및 상기 생성된 암호화 키를 승인 단말(50)로 송신하는 단계(S1330)는 앞서 상술한 단계 S420, S430 및 S500과 동일하게 진행될 수 있다.
본 실시예에서, 제2 사용자가 제1 사용자와의 대화에 이용하는 단말을 승인 단말(50)에서 나머지 단말들 중 어느 하나(60)로 변경하는 경우, 제2 사용자는 나머지 단말들 중 어느 하나(60)를 이용하여 제1 사용자의 단말(20)에 초대 메시지를 송신할 수 있을 것이다. 이 때, 제1 사용자가 상기 초대 메시지에 대하여 승인 입력을 송신하면, 승인 단말(50)은 상기 대화방 초대 알림 메시지 삭제 명령을 수신하게 될 것이다. 이로써, 승인 단말(50)에는 더 이상 제1 사용자와의 대화방이 표시되지 않게 된다.
즉, 본 실시예에 따르면, 한 사용자가 복수의 단말을 이용하여 보안 메시지 서비스를 제공 받는 것 자체는 허용하되, 특정 시점에는 상기 복수의 단말 중 단 하나의 단말 만이 상대방과의 대화방을 표시하는 것을 보장함으로써, 상기 복수의 단말 중 사용 중이지 않은 단말을 통하여 대화 내용이 유출되는 것을 방지할 수 있을 것이다.
도 10은, 도 8 및 도 9를 참조하여 설명한 보안 메시지 송수신 방법의 신호 흐름도이다.
도 10을 참조하면, 제2 사용자가 복수의 사용자 단말을 등록한 사용자인 경우, 복수의 사용자 단말 모두(50, 60)로 대화방 초대 메시지를 송신(S82, S83)하고, 서버로부터 초대 승인(S84, S85)한 승인 단말(50)의 공개키를 식별(S91)하여, 제2 암호화 키를 생성(S92) 및 이용하여 메시지를 암호화하여 송수신(S93)하는 과정이 단계별로 도시되어 있다.
대화방 초대 관련 동작(S80)을 설명한다. 제1 사용자의 단말(20)은 메신저 서비스 서버(12)에 대화방에 초대하고자 하는 상대방인 제2 사용자에 대한 식별정보를 포함한 대화방 초대 메시지를 송신한다(S81). 메신저 서비스 서버(12)는 상기 대화방 초대 메시지를 제2 사용자의 단말들(50, 60) 모두에 송신한다(S82, S83).
초대 승인 관련 동작(S80)을 설명한다. 제2 사용자의 단말들 중 승인 단말(50)에 제2 사용자의 초대 승인 입력이 입력되는 경우, 승인 단말(50)은 메시지 관리 서버(12)에 초대 승인 신호를 송신한다(S84).
메시지 관리 서버(12)는 상기 초대 승인 신호를 제1 사용자의 단말(20)에 송신한다(S85). 또한, 메시지 관리 서버(12)는 대화방 초대 알림 메시지 삭제 명령을 제2 사용자의 단말들 중 승인 단말(50)을 제외한 모든 나머지 단말들(60)에 송신한다(S86).
대화방 암호화 키 생성 관련 동작(S90)을 설명한다. 제1 사용자의 단말(20)은 공개키 관리 서버(11)로부터 제2 사용자의 공개키를 수신한다(S91). 제1 사용자의 단말(20)은 제1 사용자의 비밀키 및 제2 사용자의 공개키를 이용하여 암호화 키를 생성(S92)하고, 생성된 암호화 키를 공개키 관리 서버(11)를 통해 제2 사용자의 승인 단말(50)에 공유할 수 있다(S93).
한편, 상술한 바와 같이, 본 실시예에서도 암호화 키의 생성에 대화방 개설자의 개인키 및 상대방의 공개키 뿐만 아니라, 암호화 키 생성 시점에 획득된 타임스탬프 또는 초대 승인 시 상대방에 의하여 입력된 초대 승인 패스워드가 더 이용될 수 있음은 물론이다.
대화방의 참여자 단말들(20, 50)은 입력된 메시지를 암호화하고, 암호화된 메시지를 송수신할 수 있다(S90).
도 11은, 앞서 상술한 몇몇 실시예들의 결과로서, 대화방 개설자 단말(20)에서 메시지를 입력 받아 송신하게 되면, 상기 개설자의 단말(20)이 암호화 키를 이용하여 메시지를 암호화하여 송신하는 예시적인 화면이 도시되어 있다.
이 때, 상기 화면에는 보안 메시징 서비스가 제공되는 대화방을 의미하는 아이콘(70) 및 상기 메시지는 송수신 시 암복호화 대상임을 나타내는 아이콘(80)을 추가로 표시할 수 있다.
도 12 및 도 13은, 앞서 상술한 몇몇 실시예들의 결과로서, 상대방 사용자 단말(30)이 대화방 개설자 단말에게 대화방 초대 메시지(90)를 수신 받는 화면과 상기 대화방 초대 메시지에 응답하여, 초대 승인과 함께 패스워드를 설정(100)하는 몇몇 실시예에 대한 결과의 예시적인 화면이 도시되어 있다.
도 14는 본 개시의 몇몇 실시예들에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 14를 참조하면, 컴퓨팅 시스템(2000)은, 하나 이상의 프로세서(2100), 시스템버스(2700), 통신 인터페이스(2200), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램(2500)을 로드(load)하는 메모리(2300)와, 컴퓨터 프로그램(2500)과 로컬 DB(2600)를 저장하는 스토리지(2400)를 포함할 수 있다. 예를 컴퓨팅 시스템(2000)은, 도 1을 참조하여 설명한 사용자 단말들(20, 30, 40) 또는 서비스 서버(10)일 수 있다.
프로세서(2100)는 컴퓨팅 시스템(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(2100)는 본 개시의 다양한 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 메모리(2300)는 각종 데이터, 명령 및 정보를 저장한다. 메모리(2300)는 본 개시의 다양한 실시예들에 따른 방법들을 실행하기 위하여 스토리지 (2400)로부터 하나 이상의 컴퓨터 프로그램(2500)과 로컬 DB(2600)를 로드(load) 할 수 있다. 스토리지(2400)는 하나 이상의 컴퓨터 프로그램(2500)을 비임시적으로 저장할 수 있다. 컴퓨터 프로그램(2500)은 본 개시의 다양한 실시예들에 따른 방법들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 컴퓨터 프로그램 (2500)이 메모리(2300)에 로드 되면, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 개시의 다양한 실시예들에 따른 방법들을 수행할 수 있다.
컴퓨터 프로그램(2500)은, 사용자의 단말로부터 공개키를 수신받아 저장하는 인스트럭션과, 대화방을 개설한 사용자의 단말에서 수신된 공개키 조회 요청에 응답하여, 대화방 초대 대상인 상대방 사용자의 공개키를, 상기 대화방을 개설한 사용자의 단말에게 송신하는 인스트럭션과, 상기 대화방을 개설한 사용자의 단말로부터, 상기 대화방과 관련된 암호화 키를 수신받는 인스트럭션과, 상기 수신된 암호화 키를 상기 상대방 사용자의 단말에 전달하는 인스트럭션을 포함할 수 있다. 이 때, 상기 암호화 키는 상기 상대방 사용자의 공개키 및 상기 대화방을 개설한 사용자의 개인키를 이용하여 생성된 것일 수 있다.
로컬 DB(2600)는 본 개시의 다양한 실시예들에 따른 하나 이상의 관련된 레코드들(records)를 포함할 수 있다. 로컬 DB(2600)가 메모리(2300)에 로드 되면, 프로세서(2100)는 상기 하나 이상의 관련된 레코드들을 읽어 들여옴으로써 본 개시의 다양한 실시예들에 따른 방법들을 수행할 수 있다.
로컬 DB(2600)는, 상기 사용자의 단말들에서 수신하여 저장한 공개키와 관련된 레코드와, 상기 사용자 단말들 사이의 대화방 초대 메시지에 관련된 레코드와, 상기 공개키와 대화방 개설자의 개인키로 생성한 암호화 키를 상기 사용자 단말들로 전달하는데 관련된 레코드를 포함할 수 있다.
지금까지 도 1 내지 도 14을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 컴퓨팅 시스템에 의하여 수행되는 방법에 있어서,
    대화방에 초대할 상대방 사용자의 공개키(Public Key)를 조회하는 단계;
    상기 조회된 공개키와 대화방 개설 사용자의 개인키(Private Key)를 이용하여, 상기 대화방과 관련된 암호화 키를 생성하는 단계; 및
    상기 생성된 암호화 키가 상기 상대방 사용자의 단말에 전달되도록, 상기 암호화 키를 송신하는 단계를 포함하는,
    보안 메시지 송수신 관리 방법.
  2. 제1 항에 있어서,
    상기 조회된 공개키는,
    상기 상대방 사용자의 단말이 보안 메시징 서비스에 로그인 될 때 상기 상대방 사용자의 단말에 의하여 생성되고, 서비스 서버에 등록된 것인,
    보안 메시지 송수신 방법.
  3. 제2 항에 있어서,
    상기 조회된 공개키는,
    상기 상대방 사용자의 단말에 의하여, 상기 상대방 사용자의 단말의 식별정보를 이용하여 생성된 것인,
    보안 메시지 송수신 방법.
  4. 제1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 상대방 사용자의 단말에 대화방 초대 메시지를 송신하는 단계; 및
    상기 대화방 초대 메시지에 대하여 승인 응답을 수신하는 것에 응답하여, 상기 조회된 공개키 중 상기 승인 응답을 송신한 상대방 사용자의 공개키를 식별하고, 상기 식별된 공개키와 상기 개인키를 이용하여, 상기 암호화 키를 생성하는 단계를 포함하는,
    보안 메시지 송수신 방법.
  5. 제1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 암호화 키의 생성 시점의 타임스탬프(Time Stamp)를 더 이용하여, 상기 대화방과 관련된 암호화 키를 생성하는 단계를 포함하는,
    보안 메시지 송수신 방법.
  6. 제1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 상대방 사용자의 단말에 대화방 초대 메시지를 송신하는 단계; 및
    상기 대화방 초대 메시지에 대한 승인 응답을 수신하면, 상기 승인 응답에 포함된 패스워드를 더 이용하여, 상기 암호화 키를 생성하는 단계를 포함하는,
    보안 메시지 송수신 방법.
  7. 제1 항에 있어서,
    상기 대화방 개설 사용자에 의하여 상기 대화방에 입력되는 메시지를, 상기 암호화 키로 암호화하여 송신하는 단계를 더 포함하는,
    보안 메시지 송수신 방법.
  8. 제1 항에 있어서,
    상기 대화방의 속성 정보를, 상기 암호화 키로 암호화하여 송신하는 단계를 더 포함하는,
    보안 메시지 송수신 방법.
  9. 제1 항에 있어서,
    신규 사용자에 대한 초대 명령을 입력받는 단계;
    상기 신규 사용자의 공개키와, 상기 대화방의 상기 상대방 사용자의 공개키와, 상기 대화방 개설 사용자의 개인키를 이용하여, 상기 대화방과 관련된 암호화 키를 갱신하는 단계; 및
    상기 갱신된 암호화 키가 상기 상대방 사용자의 단말 및 상기 신규 사용자의 단말에 전달되도록, 상기 갱신된 암호화 키를 송신하는 단계를 더 포함하는,
    보안 메시지 송수신 방법.
  10. 컴퓨팅 시스템에 의하여 수행되는 방법에 있어서,
    제1 사용자의 단말로부터 제2 사용자에 대한 대화방 초대 요청을 수신하되, 상기 제2 사용자는 복수의 사용자 단말을 등록한 사용자인, 단계;
    상기 제2 사용자의 복수의 사용자 단말 각각에 상기 대화방 초대 요청을 송신하는 단계;
    상기 제2 사용자의 복수의 사용자 단말 중 어느 하나로부터, 상기 대화방 초대 요청에 대한 승인 신호를 수신하는 단계; 및
    상기 제2 사용자의 복수의 사용자 단말 중, 상기 승인 신호를 송신한 사용자 단말인 승인 단말을 제외한 나머지 모든 사용자 단말에, 상기 대화방 초대 요청에 대한 알림 메시지 삭제 명령을 송신하는 단계를 포함하는,
    보안 메시지 송수신 방법.
  11. 제10 항에 있어서,
    상기 알림 메시지 삭제 명령은,
    상기 알림 메시지 삭제 명령을 수신한 사용자 단말로 하여금, 상기 대화방 초대 요청의 표시를 제거하고, 상기 대화방 초대 요청에 대한 로컬 DB의 레코드를 삭제하도록 하는 명령인,
    보안 메시지 송수신 방법.
  12. 제10 항에 있어서,
    상기 대화방 초대 요청에 따른 대화방과 관련된 암호화 키를 생성하기 위한 상기 제1 사용자의 단말의 요청에 응답하여, 상기 제2 사용자의 공개키를 송신하는 단계;
    상기 제1 사용자의 단말에 의하여 상기 제1 사용자의 개인키 및 상기 제2 사용자의 공개키를 이용하여 생성된 암호화 키를, 상기 제1 사용자의 단말로부터 수신하는 단계; 및
    상기 수신된 암호화 키를, 상기 제2 사용자의 단말에 송신하는 단계를 더 포함하는,
    보안 메시지 송수신 방법.
  13. 제12 항에 있어서,
    상기 제2 사용자의 공개키를 송신하는 단계는,
    상기 승인 단말의 식별정보를 더 송신하는 단계를 포함하는,
    보안 메시지 송수신 방법.
  14. 제13 항에 있어서,
    상기 암호화 키는,
    상기 승인 단말의 식별정보를 더 이용하여 생성된 것인,
    보안 메시지 송수신 방법.
  15. 제12 항에 있어서,
    상기 제1 사용자의 단말로부터, 상기 암호화 키를 이용하여 암호화된 메시지를 수신하는 단계; 및
    상기 암호화된 메시지를, 상기 제2 사용자의 복수의 사용자 단말 중 상기 승인 단말에만 송신하는 단계를 더 포함하는,
    보안 메시지 송수신 방법.
  16. 컴퓨팅 시스템에 의하여 수행되는 방법에 있어서,
    제1 상대방 사용자의 공개키와 대화방 개설 사용자의 개인키를 이용하여, 상기 제1 상대방 사용자와의 대화를 위한 제1 대화방과 관련된 제1 암호화 키를 생성하는 단계;
    상기 제1 대화방에 입력된 메시지를 상기 제1 암호화 키를 이용하여 암호화하여 송신하는 단계;
    상기 제1 상대방 사용자의 상기 공개키와, 제2 상대방 사용자의 공개키와, 상기 대화방 개설 사용자의 상기 개인키를 이용하여, 상기 제1 상대방 사용자 및 상기 제2 상대방 사용자와의 대화를 위한 제2 대화방과 관련된 제2 암호화 키를 생성하는 단계; 및
    상기 제2 대화방에 입력된 메시지를 상기 제2 암호화 키를 이용하여 암호화하여 송신하는 단계를 포함하는,
    상기 보안 메시지 송수신 방법.
  17. 하나 이상의 프로세서;
    네트워크 인터페이스;
    메모리; 및
    상기 메모리에 로딩되어 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램이 기록된 스토리지 장치를 포함하되,
    상기 컴퓨터 프로그램은,
    사용자의 단말로부터 공개키를 수신받아 저장하는 인스트럭션(instruction);
    대화방을 개설한 사용자의 단말에서 수신된 공개키 조회 요청에 응답하여, 대화방 초대 대상인 상대방 사용자의 공개키를, 상기 대화방을 개설한 사용자의 단말에게 송신하는 인스트럭션;
    상기 대화방을 개설한 사용자의 단말로부터, 상기 대화방과 관련된 암호화 키를 수신받는 인스트럭션; 및
    상기 수신된 암호화 키를 상기 상대방 사용자의 단말에 전달하는 인스트럭션을 포함하되,
    상기 암호화 키는 상기 상대방 사용자의 공개키 및 상기 대화방을 개설한 사용자의 비밀키를 이용하여 생성된 것인,
    보안 메시지 송수신 장치.
KR1020220080348A 2022-05-26 2022-06-30 보안 메시징 서비스 제공 방법 KR20230165084A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/200,203 US20230388112A1 (en) 2022-05-26 2023-05-22 Method and apparatus for providing secure messaging service
EP23174690.0A EP4283926A1 (en) 2022-05-26 2023-05-23 Method and apparatus for providing secure messaging service

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220064771 2022-05-26
KR1020220064771 2022-05-26

Publications (1)

Publication Number Publication Date
KR20230165084A true KR20230165084A (ko) 2023-12-05

Family

ID=89157345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220080348A KR20230165084A (ko) 2022-05-26 2022-06-30 보안 메시징 서비스 제공 방법

Country Status (1)

Country Link
KR (1) KR20230165084A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101767958B1 (ko) 2015-09-22 2017-08-14 주이스 주식회사 업무용 메신저 서버장치 및 이를 이용한 업무용 메신저 시스템
KR102048750B1 (ko) 2018-03-06 2019-11-26 라인플러스 주식회사 보안 메시지 제공 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101767958B1 (ko) 2015-09-22 2017-08-14 주이스 주식회사 업무용 메신저 서버장치 및 이를 이용한 업무용 메신저 시스템
KR102048750B1 (ko) 2018-03-06 2019-11-26 라인플러스 주식회사 보안 메시지 제공 방법 및 시스템

Similar Documents

Publication Publication Date Title
US9832016B2 (en) Methods, systems and computer program product for providing verification code recovery and remote authentication
CN108768988B (zh) 区块链访问控制方法、设备及计算机可读存储介质
CN107113286B (zh) 跨设备的漫游内容擦除操作
US9286477B2 (en) Secure app ecosystem with key and data exchange according to enterprise information control policy
US8379857B1 (en) Secure key distribution for private communication in an unsecured communication channel
CN111191286A (zh) Hyperledger Fabric区块链隐私数据存储与访问系统及其方法
CN110061983B (zh) 一种数据处理方法及系统
US20140050317A1 (en) Cloud Key Management System
US20190222414A1 (en) System and method for controlling usage of cryptographic keys
CN112887087B (zh) 数据管理方法、装置、电子设备及可读存储介质
CN116097615B (zh) 使用密钥协商的认证
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
KR20210109667A (ko) 보안 전자 데이터 전송을 위한 시스템 및 방법
Nagy et al. Peershare: A system secure distribution of sensitive data among social contacts
KR20230165084A (ko) 보안 메시징 서비스 제공 방법
EP4283926A1 (en) Method and apparatus for providing secure messaging service
US11848754B1 (en) Access delegation leveraging private keys on keystores read by provisioned devices
KR102544084B1 (ko) 보안 인스턴트 메시징 방법 및 장치
US20230370270A1 (en) Anti-cloning architecture for device identity provisioning
WO2022142555A1 (zh) Vnfm与vnf建立数据安全连接的方法、设备及系统
CN115208630B (zh) 基于区块链的数据获取方法、系统及区块链系统
US11522691B2 (en) Techniques for virtual cryptographic key ceremonies
US20240022418A1 (en) Cryptographic processing
Mahesh et al. Review of Security Threats in Cloud Computing and its Protection
CN115277615A (zh) 即时通信方法、系统、计算机设备和存储介质