KR102120418B1 - 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션 - Google Patents

소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션 Download PDF

Info

Publication number
KR102120418B1
KR102120418B1 KR1020180124748A KR20180124748A KR102120418B1 KR 102120418 B1 KR102120418 B1 KR 102120418B1 KR 1020180124748 A KR1020180124748 A KR 1020180124748A KR 20180124748 A KR20180124748 A KR 20180124748A KR 102120418 B1 KR102120418 B1 KR 102120418B1
Authority
KR
South Korea
Prior art keywords
content
mutual authentication
acceptor
authentication
specific content
Prior art date
Application number
KR1020180124748A
Other languages
English (en)
Other versions
KR20200043858A (ko
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 KR1020180124748A priority Critical patent/KR102120418B1/ko
Priority to US16/655,518 priority patent/US11252153B2/en
Publication of KR20200043858A publication Critical patent/KR20200043858A/ko
Application granted granted Critical
Publication of KR102120418B1 publication Critical patent/KR102120418B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/01Social networking
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • 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 Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Bioethics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버가 소셜 미디어 서비스의 콘텐츠에 대해 상호 인증 참여자들의 상호 인증을 제공하는 방법으로서, 특정 콘텐츠에 대한 상호 인증을 요청한 요청자 단말에서 생성된 요청자 인증 정보를 입력받는 단계, 특정 콘텐츠에 대한 상호 인증을 수락한 수락자 단말에서 생성된 수락자 인증 정보를 입력받는 단계, 그리고 요청자 인증 정보와 수락자 인증 정보를 검증하고, 요청자 인증 정보와 수락자 인증 정보에 포함된 특정 콘텐츠를 요청자와 수락자의 상호 인증 완료 콘텐츠로 저장하는 단계를 포함한다. 요청자 인증 정보는 특정 콘텐츠, 그리고 특정 콘텐츠에 대한 요청자의 서명을 포함하고, 수락자 인증 정보는 특정 콘텐츠, 그리고 특정 콘텐츠에 대한 수락자의 서명을 포함한다. 특정 콘텐츠는 소셜 미디어 서비스에서 제공된 콘텐츠를 표시한 요청자 단말에서 선택된 후, 수락자 단말로 전송된다.

Description

소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션{METHOD FOR PROVIDING MUTUAL CERTIFICATION OF CONTENTS IN SOCIAL MEDIA SERVICE AND, SERVER, USER DEVICE AND APPLICATION IMPLEMENTING THE METHOD}
본 발명은 상호 인증에 관한 것이다.
카카오톡, 트위터, 페이스북, 인스타그램 등 다양한 소셜 미디어 서비스가 존재한다. 사용자는 소셜 미디어 서비스를 통해 상대방과 대화할 수 있고, 자신의 생각을 표현할 수 있다. 사용자는 카카오톡 등의 인스턴트 메시징 서비스를 통해 채팅방에서 친구들과 메시지를 교환한다.
지금까지 사용자는 채팅방에서 교환되는 메시지들을 보관하고자 하는 경우, 메시지들이 기록된 채팅방을 지우지 않고 계속 보관하거나, 채팅방을 캡쳐하여 이미지로 보관했다. 채팅방을 계속 유지하는 방법은 대화 내용이 계속 쌓이면 보관 대상인 메시지들을 찾기 어려울 수 있고, 상대방이 채팅방을 나갈 수 있으며, 상대방이 카카오톡을 탈퇴하는 경우, 상대방이 “알수없음”으로 표시되어 상대방 특정이 쉽지 않을 수 있다. 채팅방을 캡쳐하여 이미지로 저장하는 방법은 한 화면씩만 캡쳐되므로, 긴 대화 내용을 일일이 화면 캡쳐하여야 하는 단점이 있다. 또한, 이러한 보관 방법은 메시지 삭제나 이미지 변조가 가능해서, 대화 내용 증명으로서 법적 효력을 부여하는데 한계가 있거나 다툼이 있을 수 있다.
한편, 사용자는 채팅방에서 교환되는 메시지들을 개인적으로 보관할 수는 있지만, 나중에 메시지들이 실제로 교환되었는지 다툼이 있을 수 있다.
본 발명이 해결하고자 하는 과제는 인스턴트 메시징 서비스 등의 소셜 미디어 서비스에서 전송된 콘텐츠(예를 들면, 대화 내용)를 복수의 사용자들이 상호 인증하고, 상호 인증된 대화 내용을 저장하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션을 제공하는 것이다.
본 발명이 해결하고자 하는 과제는 인스턴트 메시징 서비스 등의 소셜 미디어 서비스에서 대화 내용을 편리하게 상호 인증하는 인터페이스 화면을 제공하는 것이다.
한 실시예에 따른 서버가 소셜 미디어 서비스의 콘텐츠에 대해 상호 인증 참여자들의 상호 인증을 제공하는 방법으로서, 특정 콘텐츠에 대한 상호 인증을 요청한 요청자 단말에서 생성된 요청자 인증 정보를 입력받는 단계, 상기 특정 콘텐츠에 대한 상호 인증을 수락한 수락자 단말에서 생성된 수락자 인증 정보를 입력받는 단계, 그리고 상기 요청자 인증 정보와 상기 수락자 인증 정보를 검증하고, 상기 요청자 인증 정보와 상기 수락자 인증 정보에 포함된 상기 특정 콘텐츠를 상기 요청자와 상기 수락자의 상호 인증 완료 콘텐츠로 저장하는 단계를 포함한다. 상기 요청자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 요청자의 서명을 포함하고, 상기 수락자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 수락자의 서명을 포함한다. 상기 특정 콘텐츠는 상기 소셜 미디어 서비스에서 제공된 콘텐츠를 표시한 상기 요청자 단말에서 선택된 후, 상기 수락자 단말로 전송된다.
상기 요청자의 서명은 상기 특정 콘텐츠의 해쉬값을 상기 요청자의 개인키로 암호화한 값이고, 상기 수락자의 서명은 상기 특정 콘텐츠의 해쉬값을 상기 수락자의 개인키로 암호화한 값일 수 있다. 상기 상호 인증 완료 콘텐츠로 저장하는 단계는 상기 요청자의 공개키를 이용하여 상기 요청자 인증 정보의 서명을 복호하고, 복호 결과를 기초로 상기 요청자가 상기 요청자 인증 정보에 포함된 상기 특정 콘텐츠를 전송한 것인지 검증하며, 상기 수락자의 공개키를 이용하여 상기 수락자 인증 정보의 서명을 복호하고, 복호 결과를 기초로 상기 수락자가 상기 수락자 인증 정보에 포함된 상기 특정 콘텐츠를 전송한 것인지 검증할 수 있다.
상기 상호 인증 완료 콘텐츠로 저장하는 단계는 상기 요청자 인증 정보와 상기 수락자 인증 정보를 검증하고, 상기 소셜 미디어 서비스에서 제공되는 원본을 저장하는 데이터베이스에 상기 특정 콘텐츠의 적어도 일부가 존재하는 경우, 상기 상호 인증 완료 콘텐츠의 적어도 일부가 원본임을 증명하는 서버 인증을 추가하여 저장할 수 있다.
상기 상호 인증 완료 콘텐츠로 저장하는 단계는 상기 특정 콘텐츠의 적어도 일부에 해당하는 원본 콘텐츠를 획득하고, 상기 특정 콘텐츠를 구성하는 그룹들의 해쉬 트리가 상기 원본 콘텐츠를 구성하는 그룹들의 해쉬 트리를 포함하는 경우, 상기 특정 콘텐츠의 적어도 일부를 원본으로 증명할 수 있다. 상기 특정 콘텐츠를 구성하는 그룹들의 해쉬 트리는 상기 요청자 인증 정보와 상기 수락자 인증 정보 중 적어도 하나에 포함될 수 있다.
상기 요청자 인증 정보는 상기 요청자 단말에서의 인증 상황 정보를 더 포함할 수 있다. 상기 수락자 인증 정보는 상기 수락자 단말에서의 인증 상황 정보를 더 포함할 수 있다.
상기 특정 콘텐츠는 상기 요청자 단말의 인스턴트 메시징 어플리케이션이 상기 요청자 단말의 화면에 표시한 채팅방 대화 내용 중에서 선택된 콘텐츠일 수 있다.
상기 요청자 단말의 화면에 표시한 채팅방 대화 내용은 상기 요청자 단말에 저장된 로컬 콘텐츠일 수 있다.
한 실시예에 따라 소셜 미디어 서비스의 어플리케이션을 탑재한 단말이 적어도 하나의 서버와 연동하여 상기 소셜 미디어 서비스의 콘텐츠에 대해 상호 인증하는 방법으로서, 상기 서버로부터, 요청자 단말에서 선택된 특정 콘텐츠에 대한 상호 인증을 요청하는 제1 메시지를 수신하는 단계, 상기 특정 콘텐츠를 표시하는 단계, 상기 특정 콘텐츠에 대한 인증 수락을 입력받으면, 상기 특정 콘텐츠에 대한 수락자 인증 정보를 생성하고, 상기 서버로 상기 수락자 인증 정보를 포함하는 제2 메시지를 전송하는 단계, 그리고 상기 서버로부터 상기 제2 메시지에 대한 응답으로 상기 특정 콘텐츠에 대한 상호 인증 결과를 수신하는 단계를 포함한다. 상기 상호 인증 결과는 상기 수락자 인증 정보와 상기 요청자 단말에서 생성된 요청자 인증 정보의 검증 결과로 생성된다. 상기 요청자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 요청자의 서명을 포함하며, 상기 수락자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 수락자의 서명을 포함한다.
상기 특정 콘텐츠를 표시하는 단계는 상기 서버로부터 수신한 상기 특정 콘텐츠를 인증 수락 화면에 표시할 수 있다.
상기 특정 콘텐츠를 표시하는 단계는 보관 중인 로컬 데이터에서 상기 특정 콘텐츠에 대응한 로컬 콘텐츠를 추출하고, 상기 서버로부터 수신한 상기 특정 콘텐츠와 상기 로컬 콘텐츠가 동일한 경우, 상기 특정 콘텐츠를 인증 수락 화면에 표시할 수 있다.
상기 상호 인증 방법은 상기 특정 콘텐츠와 상기 로컬 콘텐츠가 다른 경우, 상기 특정 콘텐츠에 대한 상호 인증을 종료하는 단계를 더 포함할 수 있다.
상기 특정 콘텐츠를 표시하는 단계는 보관 중인 로컬 데이터에서 상기 특정 콘텐츠에 대응한 로컬 콘텐츠를 추출하고, 상기 서버로부터 수신한 상기 특정 콘텐츠와 상기 로컬 콘텐츠가 다른 경우, 인증 수락 화면에 상기 특정 콘텐츠와 상기 로컬 콘텐츠의 다른 부분이 나타나도록 표시할 수 있다.
다른 실시예에 따른 서버가 인스턴트 메시징 어플리케이션의 채팅방 대화 내용에 대해 상호 인증 참여자들의 상호 인증을 제공하는 방법으로서, 요청자 단말로부터, 수락자에게 채팅방 대화 내용에 대한 상호 인증을 요청하는 상호 인증 요청 메시지를 수신하는 단계, 수락자 단말로 상기 채팅방 대화 내용에 대한 상호 인증 요청 알림 메시지를 전송하는 단계, 상기 수락자 단말로부터, 상기 채팅방 대화 내용에 대한 상호 인증 수락 메시지를 수신하는 단계, 상기 요청자 단말과 상기 수락자 단말 각각에서 전자서명으로 인증된 상기 채팅방 대화 내용을 상기 요청자와 상기 수락자의 상호 인증 완료 콘텐츠로 저장하는 단계, 그리고 상기 요청자 단말와 상기 수락자 단말로 상기 채팅방 대화 내용에 대한 상호 인증 결과 메시지를 전송하는 단계를 포함한다. 상기 상호 인증 요청 메시지는 상기 채팅방 대화 내용에 대한 요청자의 전자서명을 포함하고, 상기 상호 인증 수락 메시지는 상기 채팅방 대화 내용에 대한 수락자의 전자서명을 포함할 수 있다.
상기 상호 인증 요청 알림 메시지를 전송하는 단계는 상기 채팅방 대화 내용이 전송된 채팅방의 참여자를 상기 수락자로 결정하거나, 상기 요청자 단말로부터 지정된 사용자를 상기 수락자로 결정할 수 있다.
상기 채팅방 대화 내용은 상기 요청자 단말에 저장된 콘텐츠일 수 있다.
상기 상호 인증 수락 메시지를 수신하는 단계는 상기 수락자 단말에 상기 채팅방 대화 내용이 동일하게 저장된 경우, 상기 상호 인증 수락 메시지를 수신할 수 있다.
실시예에 따르면, 사용자들은 온라인에서 교환된 대화 내용 등의 콘텐츠를 손쉽게 상호 인증하여 저장하고, 상호 인증된 콘텐츠를 언제든지 확인할 수 있도록 관리 및 보관할 수 있다.
실시예에 따르면, 온라인에서 교환된 대화 내용 등의 콘텐츠를 상호 인증하여 특정 사용자에 의한 대화 내용 위변조 가능성을 없앨 수 있고, 상호 인증된 콘텐츠의 증거력을 높일 수 있다.
실시예에 따르면, 계약 당사자들이 전자서명한 계약 내용 등의 콘텐츠는 계약서로 사용될 수 있고, 신뢰할 수 있는 공증 서버나 블록체인과 같은 신뢰 시스템에 등록하여 계약서의 위변조를 방지하면서도 언제 어디서든 계약서를 확인할 수 있다.
도 1은 한 실시예에 따른 시스템의 구성도이다.
도 2와 도 3 각각은 한 실시예에 따른 상호 인증 방법의 흐름도이다.
도 4와 도 5 각각은 한 실시예에 따라 상호 인증 참여자들이 동일한 콘텐츠를 저장하는 경우에 진행되는 상호 인증 방법의 흐름도이다.
도 6은 한 실시예에 따른 공증 서버의 동작 방법의 흐름도이다.
도 7은 한 실시예에 따른 공증 서버의 추가 인증을 설명하는 도면이다.
도 8은 한 실시예에 따라 상호 인증 서비스로 진입하기 위한 인터페이스 화면의 예시이다.
도 9는 한 실시예에 따라 상호 인증 콘텐츠를 선택하는 사용자 인터페이스 화면의 예시이다.
도 10은 한 실시예에 따라 수락자가 상호 인증 콘텐츠에 대한 인증을 수락하는 사용자 인터페이스 화면의 예시이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
단말은 컴퓨터 판독 가능한 저장 매체에 저장되는 소프트웨어인 어플리케이션, 그리고 프로세서, 메모리, 디스플레이, 통신 모듈 등의 하드웨어를 포함한다. 프로세서는 하드웨어들과 협력하여 어플리케이션을 구동한다. 디스플레이는 어플리케이션에서 제공하는 사용자 인터페이스 화면을 표시하고, 사용자 입력을 수신할 수 있고, 예를 들면 터치 입력을 수신할 수 있다. 통신 모듈은 통신망을 통해 서버와 통신한다. 어플리케이션은 본 발명의 동작을 실행하는 명령어들을 포함한다.
단말은 다양한 형태로 구현될 수 있고, 모바일 단말을 예로 들어 설명하나, 스마트패드와 같은 패드형 단말, 랩탑 컴퓨터 등 각종 형태의 컴퓨터, 웨어러블 디바이스, TV 단말 등의 형태로 구현될 수 있다.
소셜 미디어 서비스로서 인스턴트 메시징 어플리케이션을 이용한 인스턴트 메시징 서비스를 주로 예로 들어 설명하나, 사용자들이 상호 인증하고자 하는 콘텐츠를 선택할 수 있는 다양한 소셜 미디어 서비스에 응용될 수 있다. 싱호 인증할 수 있는 콘텐츠는 채팅방에서 친구와 주고받은 메시지들로 한정할 필요 없이, 적어도 한 명의 사용자가 누군가가 볼 수 있도록 온라인에 게시한 콘텐츠이면 되고, 온라인에 게시된 콘텐츠를 복수의 사용자들이 상호 인증하여 저장할 수 있다. 또한, 콘텐츠는 메시지나 게시글과 같은 비정형 콘텐츠일 수 있고, 계약서, 위임장, 차용증 등과 같이 어플리케이션에서 제공하는 특정 양식의 콘텐츠일 수 있다.
도 1은 한 실시예에 따른 시스템의 구성도이다.
도 1을 참고하면, 소셜 미디어 어플리케이션을 설치한 단말들(100, 110)은 서버(200)에 접속하여 소셜 미디어 어플리케이션에서 제공하는 기능들을 이용한다.
소셜 미디어 어플리케이션으로서 인스턴트 메시징 어플리케이션을 예로 들어 설명하고, 서버(200)는 메시징 서버라고 부른다. 인스턴트 메시징 어플리케이션은 채팅방을 개설하고, 채팅방에서 참여자들이 메시지들을 교환하는 인터페이스 화면을 제공하고, 본 발명에서 설명하는 바에 따라 대화 내용의 상호 인증 서비스를 제공하는 프로그램이다. 인스턴트 메시징 어플리케이션은 사용자가 대화 내용을 편리하게 상호 인증하는 인터페이스 화면을 단말들에서 표시한다.
사용자들이 상호 인증할 수 있는 콘텐츠는 소셜 미디어 어플리케이션을 통해 단말에 표시되거나 서버에 저장된 콘텐츠이고, 설명을 위해, 인스턴트 메시징 어플리케이션을 통해 제공되는 메시지들로 구성된 대화 내용을 상호 인증 콘텐츠라고 가정한다.
사용자들 각각이 특정 대화 내용에 대해 인증한 인증 정보는 공증 서버(300)로 전달된다. 인증 정보는 사용자 단말들(100, 110)에서 공증 서버(300)로 전송되는데, (a)와 같이, 메시징 서버(200) 등을 경유하여 공증 서버(300)로 전송거나, (b)와 같이 사용자 단말들(100, 110)이 공증 서버(300)로 전송하도록 설계될 수 있다.
설명을 위해, 단말A(100)는 Aiden 단말, 단말B(110)는 Brian 단말이라고 가정하고, Aiden과 Brian이 채팅방에서 메시지를 주고받고, Aiden이 Brian에게 채팅방의 적어도 일부 대화 내용에 대해 상호 인증 요청하는 요청자이고, Brian이 수락자라고 가정한다. 요청자와 수락자를 상호 인증 참여자라고 부른다. 채팅방의 참여자가 3명 이상인 경우, 수락자들의 수는 늘어날 수 있다. 채팅방 참여자 수보다 상호 인증 참여자 수가 적을 수 있다. 즉, 채팅방의 대화 내용을 상호 인증할 필요성이 있는 참여자들만 상호 인증할 수 있다. 상호 인증 요청자가 수락자를 선택할 수 있으나, 채팅방의 참여자들이 자동으로 수락자로 정해질 수 있다.
상호 인증 요청을 알리는 알림 메시지는 상호 인증할 대화 내용이 표시된 채팅방에서, 요청자가 발신한 메시지로 표시될 수 있다. 한편, 채팅방의 일부 참여자들만 상호 인증에 관여할 수 있으므로, 알림 메시지는 상호 인증을 위해 요청자와 수락자들에 의해 개설된 별도 채팅방에 표시될 수 있다. 또는 가상의 상호 인증 친구(예를 들면, 카카오톡 플러스 친구, 라인의 공식 계정)가 수락자에게 알림 메시지를 전송할 수 있다.
상호 인증 서비스는 다양한 신뢰 수준으로 제공될 수 있고, 설명에서는 주로 제2 수준과 제3 수준의 상호 인증에 대해 설명한다.
예를 들어, 제1 수준은 요청자가 상호 인증 콘텐츠를 수락자에게 전송한 후, 수락자가 수신한 상호 인증 콘텐츠를 인증 수락한 경우에 상호 인증된다. 수락자가 요청된 상호 인증 콘텐츠를 확인하고 수락한 것으로서, 예를 들면, Aiden이 채팅방에서 계약 내용을 포함하는 메시지들을 상호 인증 콘텐츠로 선택한 후, Brian에게 상호 인증 요청한다. 그러면, Brian이 요청된 상호 인증 콘텐츠를 확인한 후, 수락할 수 있다. 또는, Aiden이 채팅방에서 계약서를 작성한 후, Brian에게 계약서에 대해 상호 인증을 요청하면, Brian이 수신한 계약서를 확인한 후, 수락할 수 있다.
제2 수준은 요청자가 선택한 상호 인증 콘텐츠가 상호 인증 참여자들의 단말들에 동일하게 저장된 경우에 상호 인증된다. 상호 인증 콘텐츠가 대화 내용인 경우, 수락자는 상호 인증 콘텐츠에 포함된 메시지들이 위변조되거나 삭제되지 않았는지 확인하기 어렵다. 따라서, 수락자의 단말은 요청된 상호 인증 콘텐츠가 자신이 보관한 대화 내용과 동일한지 판단하고, 동일하지 않은 경우에 상호 인증을 더 이상 진행하지 않을 수 있다. 또는 수락자가 대화 내용을 삭제할 수도 있으므로, 수락자의 단말은 상호 인증 콘텐츠가 보관한 대화 내용과 동일하지 않음을 알리고, 상호 인증을 계속 진행할 것인지 수락자에게 문의할 수 있다. 예를 들면, 단말A(100)의 채팅방에 표시된 대화 내용이 상호 인증 콘텐츠로 선택되고, 선택된 대화 내용이 단말B(110)로 전송될 수 있다. 이때, 단말B(110)는 상호 인증 요청된 대화 내용에 대응하여 자신이 저장 중인 대화 내용을 추출하고, 이들의 동일 여부를 비교할 수 있다. 요청자가 실제 대화 내용 중의 일부 메시지를 삭제하거나 메시지 내용을 변조한 후, 수락자에게 상호 인증을 요청할 수 있기 때문에, 로컬에 저장된 데이터들 사이의 동일성 검증이 필요할 수 있다. 로컬에 저장된 데이터들 사이의 동일성을 검증하는 방법은 다양할 수 있다. 메시지들을 하나씩 비교할 수 있고 또는 연속된 메시지들의 해쉬값을 비교할 수 있다. 즉, 상호 인증 요청된 대화 내용의 해쉬값과, 상호 인증 요청된 대화 내용에 대응하여 수락자의 단말에 저장된 대화 내용의 해쉬값을 비교할 수 있다. 이때, 대화 내용의 첫 번째 메시지부터 맨 마지막 메시지까지 순차적으로 이어지는 메시지들의 해쉬값이므로, 중간에 메시지가 누락되거나 메시지가 위변조되면 해쉬값이 달라지게 된다.
제3 수준은 요청자가 선택한 상호 인증 콘텐츠가 상호 인증 참여자들의 단말들에 동일하게 저장되고, 메시징 서버에도 동일하게 저장된 경우에 상호 인증된다. 제2 수준의 상호 인증의 경우라 하더라도, 상호 인증 참여자들이 합의하여 특정 메시지를 지우거나, 변조할 수 있어서 불완전한 합의라고 볼 수 있다. 더 높은 수준의 상호 인증을 위해 서버가 상호 인증 콘텐츠 전체 또는 적어도 일부에 대해서 위변조가 없었음을 증명할 수 있다.
상호 인증 콘텐츠는 누가 무슨 내용을 언제 게시 또는 전송했는지를 확인할 수 있는 데이터를 포함한다. 채팅방의 대화 내용을 상호 인증하는 경우, 상호 인증 콘텐츠는 포함된 메시지들 각각의 식별 정보로 구성된다. 식별 정보는 예를 들어, 채팅방 식별자, 메시지 입력자, 메시지 내용(예, 텍스트, 이미지, URL 등), 메시지 타입(예, text, scrape, 등), 메시지 입력 시점 등을 포함할 수 있다. 상호 인증 콘텐츠는 JSON 포맷과 같은 특정 포맷으로 추출될 수 있다. JSON 포맷의 예시는 표 1과 같다.
{
“mgs”: “메시지 내용”,
“type”:“text”
“created_at”: 메시지 입력 시점,
“from”: 메시지 입력자,
“to”: 채팅방 식별자
}
한편, 상호 인증 콘텐츠는 채팅방의 대화 내용을 캡쳐한 이미지로 전송될 수 있다.
상호 인증 콘텐츠는 메시징 서버(200)에 저장된 원본 데이터 중에서 선택되거나, 상호 인증 요청자의 단말에 저장된 콘텐츠 중에서 선택될 수 있다. 단말A(100)는 채팅방에 표시된 대화 내용이 상호 인증 콘텐츠로 선택되면, 대화 내용을 JSON 포맷으로 추출하여 전송할 수 있다.
한편, 단말A(100)는 선택된 대화 내용을 모두 전송하는 대신, 메시징 서버(200)나 단말B(110)가 상호 인증 콘텐츠로 선택된 대화 내용을 직접 추출할 수 있는 식별 정보(예를 들면, 대화 내용의 맨 처음 메시지 및 맨 마지막 메시지의 식별 정보)와 선택된 대화 내용의 해쉬값을 전송할 수 있다. 이 경우, 메시징 서버(200)가 식별 정보에 해당하는 원본 데이터를 추출해서 위변조되지 않은 원본 데이터를 사용자들이 상호 인증하도록 할 수 있다. 또는 단말B(110)가 로컬 데이터(즉, 자신의 채팅방에 표시된 대화 내용)에서, 수신한 식별 정보에 해당하는 대화 내용을 추출하고, 단말A(100)에서 선택된 대화 내용의 해쉬값과 로컬 데이터에서 추출한 대화 내용의 해쉬값을 비교하여 제2 수준의 상호 인증을 할 수 있다. 설명의 편의 상, 단말A(100)가 선택된 대화 내용을 메시징 서버(200)로 전송하고, 메시징 서버(200)가 이를 단말B(110)로 전송한다고 가정하나, 전송되는 데이터는 JSON 포맷의 대화 내용 및/또는 대화 내용을 추출할 수 있는 식별 정보일 수 있다.
메시징 서버(200)는 Aiden과 Brian이 채팅방에서 입력한 메시지들을 챗로그(chat log) 데이터베이스에 저장할 수 있다. 챗로그 데이터베이스에 저장된 메시지들은 채팅방에 표시되는 대화 내용의 원본 데이터이다. 메시징 서버(200)는 상호 인증 시작이 요청되면, 대화 내용의 원본 데이터를 요청자 단말에 제공하면서 원본 데이터에서 상호 인증 콘텐츠를 선택하도록 할 수 있다. 원본 데이터는 요청자 단말에서 선택된 상호 인증 콘텐츠의 위변조 검증이나 서버 인증에 이용될 수 있다.
공증 서버(300)는 상호 인증 참여자들의 단말들로부터 전송된 인증 정보들을 검증한 후, 검증된 콘텐츠를 상호 인증된 콘텐츠로 저장한다. 인증 정보는 상호 인증 콘텐츠에 대해 전자서명한 정보를 포함한다. 공증 서버(300)는 수신한 인증 정보들을 기초로 상호 인증 참여자들 각각이 동일한 콘텐츠에 대해 인증하였는지 검증한다. 공증 서버(300)는 다양한 인증 기술을 통해 수신한 인증 정보들을 검증할 수 있고, 예를 들면, 공개키와 개인키(비공개키 또는 비밀키라고도 함) 기반 암복호 기술(전자 서명이라고도 함)을 이용해 수신한 인증 정보를 검증할 수 있다.
사용자 단말들(100, 110), 메시징 서버(200) 그리고 공증 서버(300) 사이의 연동은 다양하게 설계될 수 있다. 예를 들어, 공증 서버(300)는 (a)와 같이, 메시징 서버(200)를 통해, 상호 인증 참여자들의 단말들로부터 전송된 인증 정보들을 수신하거나, 상호 인증 결과를 상호 인증 참여자들의 단말들로 전송할 수 있다.
또는 공증 서버(300)는 (b)와 같이, 상호 인증 참여자들의 단말들로부터 인증 정보들을 수신하거나, 상호 인증 결과를 상호 인증 참여자들의 단말들로 전송할 수 있다.
인증 정보에 포함된 정보들은 다양하게 정해질 수 있다. 예를 들면, 인증 정보는 상호 인증 콘텐츠, 각 상호 인증 참여자가 상호 인증 콘텐츠의 해쉬값을 자신의 개인키로 암호화한 서명값, 그리고 각 상호 인증 참여자의 개인키와 쌍을 이루는 공개키를 포함할 수 있다. 한편, 각 상호 인증 참여자의 공개키는 상호 인증 요청할 때마다 전송되거나, 미리 공증 서버(300)에 등록될 수 있다.
인증 정보는 각 상호 인증 참여자가 상호 인증 콘텐츠를 인증한 시각 등의 인증 상황 정보(context)를 더 포함할 수 있다. 이 경우, 서명값은 상호 인증 콘텐츠의 해쉬값과 인증 상황 정보의 해쉬값을 개인키로 서명한 값일 수 있다. 인증 상황 정보(context)는 인증 시각, 인증 절차가 실행된 단말 정보 등의 상황을 포함한다. 인증 상황 정보는 바이오 인증정보 등의 본인 인증 정보를 더 포함할 수 있다.
공증 서버(300)는 서명값을 해당 상호 인증 참여자의 공개키로 복호하여 해쉬값을 추출한다. 공증 서버(300)는 해당 상호 인증 참여자가 전송한 인증 정보에 포함된 상호 인증 콘텐츠 또는 상호 인증 콘텐츠 및 인증 상황 정보의 해쉬값과 비교한다. 이를 통해 공증 서버(300)는 상호 인증 콘텐츠를 상호 인증 참여자가 전송한 것으로 신원 판단할 수 있다.
공증 서버(300)는 각 상호 인증 참여자로부터 수신한 상호 인증 콘텐츠의 동일성 여부를 판단하여, 각 상호 인증 참여자가 동일한 상호 인증 콘텐츠에 대해 인증한 것으로 내용 판단할 수 있다. 공증 서버(300)는 상호 인증 콘텐츠의 해쉬값을 비교하여 간단히 동일 여부를 판단할 수 있다.
상호 인증 완료된 콘텐츠를 저장 및 열람하는 방법은 다양할 수 있다.
상호 인증 참여자들만이 상호 인증 완료된 콘텐츠를 열람할 수 있는 경우, 공증 서버(300)는 상호 인증 완료된 콘텐츠를 상호 인증 참여자들 각각의 공개키로 암호화하여 저장할 수 있다. 상호 인증 완료된 콘텐츠는 상호 인증 참여자들 각각의 개인키로 복호될 수 있다.
상호 인증 참여자들 이외의 사용자들도 상호 인증 완료된 콘텐츠를 열람할 수 있는 경우, 공증 서버(300)는 상호 인증 완료된 콘텐츠를 암호화를 하지 않고 저장하거나, 공증 서버(300)가 알고 있는 대칭키를 통해 암호화하여 저장할 수 있다.
상호 인증 참여자들에 의해 지정된 사용자들이나, 특정 조건을 만족하는 사용자들이 상호 인증 완료된 콘텐츠를 열람할 수 있는 경우, 공증 서버(300)는 지정된 사용자들에게 상호 인증 완료된 콘텐츠의 접근 권한을 부여하거나, 상호 인증 완료된 콘텐츠를 요청한 사용자들이 특정 조건을 만족하는지 판단하여 접근 권한을 부여할 수 있다.
공증 서버(300)는 인증 정보 중 적어도 일부를 신뢰할 수 있는 외부 시스템에 등록할 수 있다. 신뢰할 수 있는 외부 시스템은 분산 노드들로 구성된 공개된 블록체인 시스템일 수 있다. 예를 들면, 공증 서버(300)는 상호 인증된 콘텐츠의 해쉬값, 상호 인증 참여자들의 인증 상황 정보들 또는 이의 해쉬값들, 상호 인증 참여자들로부터 수신한 서명값들을 블록체인 시스템에 등록할 수 있다.
다음에서, 상호 인증 방법을 예로 들어 설명한다. 설명한 상호 인증 방법들은 서로 조합되어 새로운 상호 인증 방법으로 구현될 수 있다.
도 2와 도 3 각각은 한 실시예에 따른 상호 인증 방법의 흐름도이다.
도 2를 참고하면, 단말A(100)는 선택된 상호 인증 콘텐츠에 대한 상호 인증 시작을 요청받는다(S110). 예를 들어, 인스턴트 메시징 어플리케이션이 채팅방의 대화 내용에 대한 상호 인증 서비스를 제공하는 경우, 단말A(100)는 채팅방의 대화 내용을 선택할 수 있는 선택 화면을 표시한 후, 선택된 대화 내용에 대한 상호 인증 시작을 입력받을 수 있다. 이때, 요청자가 상호 인증 콘텐츠를 선택하는 방법은 다양할 수 있다. 상호 인증 콘텐츠는 단말A(100)에 저장된 로컬 데이터 중에서 선택되거나, 메시징 서버(200)에 저장된 원본 데이터 중에서 선택될 수 있다. 단말A(100)는 채팅방에서 상호 인증 절차로 진입하는 경우, 채팅방에 표시된 내화 내용 중 적어도 일부를 선택할 수 있는 선택 화면을 표시할 수 있다. 선택 화면은 채팅방 화면이거나, 채팅방에 오버레이되는 화면이거나, 채팅방 외부의 별도 상호 인증 화면일 수 있다. 예를 들면, Aiden은 선택 화면에 표시된 메시지1부터 메시지12를 상호 인증 콘텐츠로 선택할 수 있다.
단말A(100)는 상호 인증 콘텐츠의 요청자 인증 정보를 생성하고, 요청자 인증 정보를 포함하는 상호 인증 요청 메시지를 메시징 서버(200)로 전송한다(S120). 요청자 인증 정보는 예를 들면, 상호 인증 콘텐츠, 인증 시각 등의 인증 상황 정보, 상호 인증 콘텐츠와 인증 상황 정보 각각의 해쉬값을 개인키로 암호화한 서명값, 그리고 개인키와 쌍을 이루는 공개키를 포함할 수 있다.
메시징 서버(200)는 상호 인증 수락자의 단말B(110)로 상호 인증 요청 알림 메시지를 전송한다(S122). 상호 인증 수락자는 상호 인증 콘텐츠가 선택된 채팅방의 참여자들로 자동 결정될 수 있다. 또는 상호 인증 수락자는 상호 인증 요청자에 의해 개별적으로 선택될 수 있고, 이 경우, 상호 인증 수락자 정보는 단말A(100)로부터 메시징 서버(200)로 전송될 수 있다.
공증 서버(300)는 단말A(100)로부터 전송된 요청자 인증 정보를 수신한다(S130). 메시징 서버(200)가 단말A(100)의 상호 인증 요청 메시지에 포함된 요청자 인증 정보를 공증 서버(300)로 전달할 수 있다. 또는 요청자 인증 정보는 단말A(100)이 공증 서버(300)로 전송할 수 있다.
단말B(110)는 메시징 서버(200)로부터 상호 인증 요청 알림 메시지를 수신하고, 상호 인증 요청 알림 메시지에 대응된 상호 인증 콘텐츠를 표시한다(S140). 상호 인증 요청 알림 메시지는 상호 인증 요청자 또는 가상의 상호 인증 친구(예를 들면, 카카오톡 플러스 친구, 라인의 공식 계정)가 수락자에게 발신한 메시지로 표시될 수 있다. 상호 인증 콘텐츠는 상호 인증 요청 알림 메시지에 포함되어 전송되거나, 상호 인증 요청 알림 메시지가 선택되면 메시징 서버(200)가 단말B(110)로 전송할 수 있다. 단말B(110)는 메시징 서버(200)로부터 수신한 상호 인증 콘텐츠를 채팅방과 구분된 상호 인증 화면에 표시할 수 있다. 예를 들면, 단말B(110)는 웹뷰로 채팅방 상위 레이어에 수신한 상호 인증 콘텐츠를 표시할 수 있고, 또는 채팅방에서 상호 인증 화면으로 전환하여 수신한 상호 인증 콘텐츠를 표시할 수 있다. 단말B(110)는 수신한 상호 인증 콘텐츠(예를 들면, 메시지1부터 메시지12)를 수락자가 알 수 있도록 표시할 수 있다. 또는 단말B(110)는 수신한 상호 인증 콘텐츠(메시지1부터 메시지12)에 대응하여 자신이 보관 중인 콘텐츠(로컬 대화 내용)를 추출하고, 이들의 동일 여부를 비교할 수 있다. 단말B(110)는 로컬 콘텐츠의 일부 메시지가 삭제되어 상호 인증 콘텐츠(메시지1부터 메시지12)로 생성되거나, 로컬 콘텐츠 중 일부 메시지의 내용이 위변조되어 상호 인증 콘텐츠로 생성된 경우, 상호 인증 콘텐츠의 메시지2와 메시지3 사이에 삭제된 메시지가 있음을 표시하거나, 상호 인증 콘텐츠의 메시지2가 위변조 메시지임을 표시할 수 있다. 단말B(110)는 상호 인증 콘텐츠가 자신이 보관 중인 로컬 콘텐츠와 동일하지 않으면, 상호 인증을 더 이상 진행하지 않을 수 있다. 또는 단말B(110)는 상호 인증 콘텐츠가 자신이 보관 중인 로컬 콘텐츠와 동일하지 않음을 알리고, 상호 인증을 계속 진행할 것인지 수락자에게 문의할 수 있다.
단말B(110)는 상호 인증 콘텐츠에 대한 인증 수락을 Brian으로부터 입력받으면, 상호 인증 콘텐츠에 대한 수락자 인증 정보를 생성하고, 수락자 인증 정보를 포함하는 상호 인증 수락 메시지를 메시징 서버(200)로 전송한다(S150). 수락자 인증 정보는 예를 들면, 상호 인증 콘텐츠, 인증 시각 등의 인증 상황 정보, 상호 인증 콘텐츠와 인증 상황 정보 각각의 해쉬값을 개인키로 암호화한 서명값, 그리고 개인키와 쌍을 이루는 공개키를 포함할 수 있다.
메시징 서버(200)는 상호 인증 수락 메시지를 상호 인증 요청자의 단말A(100)로 전송한다(S152).
공증 서버(300)는 단말B(110)로부터 전송된 수락자 인증 정보를 수신한다(S160). 메시징 서버(200)가 단말B(110)의 상호 인증 수락 메시지에 포함된 수락자 인증 정보를 공증 서버(300)로 전달할 수 있다. 또는 수락자 인증 정보는 단말B(110)가 공증 서버(300)로 전송할 수 있다.
공증 서버(300)는 요청자 인증 정보와 수락자 인증 정보를 검증한 후, 검증 성공인 경우, 요청자 인증 정보와 수락자 인증 정보에 포함된 상호 인증 콘텐츠를 상호 인증 완료 콘텐츠로 저장한다(S170).
공증 서버(300)는 상호 인증 완료 콘텐츠에 관련된 인증 정보 중 적어도 일부를 신뢰할 수 있는 외부 시스템(예를 들면, 블록체인 시스템)에 등록할 수 있다(S180). 예를 들면, 공증 서버(300)는 상호 인증된 콘텐츠의 해쉬값, 요청자 인증 정보와 수락자 인증 정보에 포함된 인증 상황 정보들 또는 이의 해쉬값들, 요청자 인증 정보와 수락자 인증 정보에 포함된 서명값들을 블록체인 시스템에 등록할 수 있다.
공증 서버(300)는 상호 인증 콘텐츠에 대한 상호 인증 결과를 메시징 서버(200)로 전송한다(S190). 상호 인증 결과는 상호 인증 콘텐츠가 상호 인증 완료 콘텐츠로 저장된 결과를 포함하고, 상호 인증 완료 콘텐츠에 접근할 수 있는 주소 정보를 더 포함할 수 있다. 한편, 공증 서버(300)는 상호 인증 결과를 단말A(100) 및 단말B(110)로 전송할 수 있다.
메시징 서버(200)는 상호 인증 참여자들의 단말A(100) 및 단말B(110)로 상호 인증 결과를 전송한다(S192, S194).
도 3을 참고하면, 단말A(100)는 선택된 상호 인증 콘텐츠에 대한 상호 인증 시작을 요청받는다(S210).
단말A(100)는 상호 인증 콘텐츠의 요청자 인증 정보를 생성하고, 생성한 요청자 인증 정보를 공증 서버(300)로 전송한다(S220).
단말A(100)는 상호 인증 콘텐츠를 포함하는 상호 인증 요청 메시지를 메시징 서버(200)로 전송한다(S230). 참고로, 단계 S220과 S230의 순서가 바뀔 수 있고 또는 동시에 전송될 수 있다.
메시징 서버(200)는 상호 인증 수락자의 단말B(110)로 상호 인증 요청 알림 메시지를 전송한다(S232).
단말B(110)는 메시징 서버(200)로부터 수신한 상호 인증 요청 알림 메시지를 수신하고, 상호 인증 요청 알림 메시지에 대응된 상호 인증 콘텐츠를 표시한다(S240).
단말B(110)는 상호 인증 콘텐츠에 대한 인증 수락을 Brian으로부터 입력받으면, 상호 인증 콘텐츠에 대한 수락자 인증 정보를 생성하고, 생성한 수락자 인증 정보를 공증 서버(300)로 전송한다(S250).
단말B(110)는 상호 인증 콘텐츠에 대한 상호 인증 수락 메시지를 메시징 서버(200)로 전송한다(S260). 참고로, 단계 S250과 S260의 순서가 바뀔 수 있고 또는 동시에 전송될 수 있다.
메시징 서버(200)는 상호 인증 수락 메시지를 상호 인증 요청자의 단말A(100)로 전송한다(S262).
공증 서버(300)는 요청자 인증 정보와 수락자 인증 정보를 검증한 후, 검증 성공인 경우, 요청자 인증 정보와 수락자 인증 정보에 포함된 상호 인증 콘텐츠를 상호 인증 완료 콘텐츠로 저장한다(S270).
공증 서버(300)는 상호 인증 완료 콘텐츠에 관련된 인증 정보 중 적어도 일부를 신뢰할 수 있는 외부 시스템(예를 들면, 블록체인 시스템)에 등록할 수 있다(S280).
공증 서버(300)는 상호 인증 콘텐츠에 대한 상호 인증 결과를 단말A(100) 및 단말B(110)로 전송한다(S290, S292). 상호 인증 결과는 상호 인증 콘텐츠가 상호 인증 완료 콘텐츠로 저장된 결과를 포함하고, 상호 인증 완료 콘텐츠에 접근할 수 있는 주소 정보를 더 포함할 수 있다. 한편, 공증 서버(300)는 상호 인증 결과를 메시징 서버(200)로 전송할 수 있다.
도 4와 도 5 각각은 한 실시예에 따라 상호 인증 참여자들이 동일한 콘텐츠를 저장하는 경우에 진행되는 상호 인증 방법의 흐름도이다.
도 4를 참고하면, 메시징 서버(200)는 단말A(100)로부터 상호 인증 콘텐츠에 대한 상호 인증 요청 메시지를 수신하면, 상호 인증 수락자의 단말B(110)로 상호 인증 요청 알림 메시지를 전송하는데, 상호 인증 요청 메시지에 상호 인증 콘텐츠(메시지1부터 메시지12가 포함된 경우, 단말B(110)는 다음과 같이 상호 인증할 수 있다. 이때, 상호 인증 요청 메시지는 상호 인증 콘텐츠의 해쉬값을 더 포함할 수 있다.
상호 인증 수락자의 단말B(110)는 메시징 서버(200)로부터 상호 인증 콘텐츠에 대한 수락자 인증을 요청받는다(S310). 메시징 서버(200)는 상호 인증 요청자의 단말A(100)로부터 상호 인증 콘텐츠에 대한 상호 인증 요청 메시지를 수신하면, 상호 인증 수락자에게 수락자 인증을 요청한다. 이때, 상호 인증 요청 메시지는 상호 인증 콘텐츠(메시지1부터 메시지12)를 포함할 수 있고, 상호 인증 콘텐츠의 해쉬값을 더 포함할 수 있다.
단말B(110)는 수신한 상호 인증 콘텐츠에 대응한 로컬 콘텐츠를 보관 중인 로컬 데이터에서 추출한다(S320).
단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠의 동일 여부를 비교한다(S330). 단말B(110)는 상호 인증 콘텐츠에 포함된 식별 정보를 기초로 대응한 로컬 콘텐츠를 추출할 수 있다. 상호 인증 콘텐츠와 로컬 콘텐츠의 동일 여부를 비교하는 방법은 다양할 수 있다. 단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠 각각에 포함된 첫 번째 메시지부터 순차적으로 비교할 수 있다. 또는 단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠 각각의 해쉬값을 비교할 수 있다. 대화 내용의 첫 번째 메시지부터 맨 마지막 메시지까지 순차적으로 이어지는 메시지들의 해쉬값이므로, 중간에 메시지가 누락되거나 메시지가 위변조되면 해쉬값이 달라지게 된다. 즉, 상호 인증 요청된 대화 내용의 해쉬값과, 상호 인증 요청된 대화 내용에 대응하여 수락자의 단말에 저장된 대화 내용의 해쉬값을 비교할 수 있다.
단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠가 동일한 경우, 수락자가 상호 인증 콘텐츠에 대해 인증할 수 있는 인증 화면을 표시한다(S340).
단말B(110)는 상호 인증 콘텐츠에 대한 인증 수락을 입력받으면, 상호 인증 콘텐츠에 대한 수락자 인증 정보를 생성하고, 생성한 수락자 인증 정보를 공증 서버(300)로 전송한다(S342).
단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠가 다른 경우, 상호 인증을 종료하거나, 상호 인증을 계속 진행할 것인지 수락자에게 문의한다(S350). 상호 인증을 계속 진행할 것인지 수락자에게 문의하는 경우, 단말B(110)는 수락자가 상호 인증 콘텐츠가 로컬 콘텐츠의 차이를 알 수 있도록 표시할 수 있다. 예를 들면, 단말B(110)는 로컬 콘텐츠 중 일부 메시지가 삭제되어 상호 인증 콘텐츠(메시지1부터 메시지12)로 생성되거나, 로컬 콘텐츠 중 일부 메시지의 내용이 위변조되어 상호 인증 콘텐츠로 생성된 경우, 상호 인증 콘텐츠의 메시지2와 메시지3 사이에 삭제된 메시지가 있음을 표시하거나, 상호 인증 콘텐츠의 메시지2가 위변조 메시지임을 표시할 수 있다.
만약, 단말B(110)이 상호 인증 계속 진행을 입력받는 경우, 단계 S340의 인증 화면을 표시하여 상호 인증을 진행할 수 있다.
도 5를 참고하면, 메시징 서버(200)는 단말A(100)로부터 상호 인증 콘텐츠에 대한 상호 인증 요청 메시지를 수신하면, 상호 인증 수락자의 단말B(110)로 상호 인증 요청 알림 메시지를 전송하는데, 상호 인증 요청 메시지에 상호 인증 콘텐츠의 식별 정보가 포함된 경우, 단말B(110)는 다음과 같이 상호 인증할 수 있다. 상호 인증 콘텐츠의 식별 정보는 상호 인증 콘텐츠를 특정할 수 있는 정보로서, 예를 들면, 상호 인증 콘텐츠의 첫 번째 메시지와 마지막 메시지를 특정할 수 있는 두 메시지의 식별 정보, 그리고 상호 인증 콘텐츠의 해쉬값을 포함할 수 있다. 예를 들면, 표 1과 같은 JSON 포맷의 경우, 식별 정보는 메시지 내용과 함께 메시지 입력 시점, 메시지 입력자, 채팅방 식별자를 포함한다. 따라서, 연속된 메시지들로 구성된 상호 인증 콘텐츠는 첫 번째 메시지와 마지막 메시지의 식별 정보, 그리고 연속된 메시지들의 해쉬값으로 상호 인증 콘텐츠가 특정될 수 있다.
상호 인증 수락자의 단말B(110)는 메시징 서버(200)로부터 상호 인증 콘텐츠의 식별 정보에 의해 특정되는 로컬 콘텐츠에 대한 수락자 인증을 요청받는다(S410).
단말B(110)는 수신한 상호 인증 콘텐츠의 식별 정보를 기초로, 보관 중인 로컬 데이터에서 상호 인증 콘텐츠에 대응한 로컬 콘텐츠를 추출한다(S420).
단말B(110)는 상호 인증 콘텐츠의 해쉬값과 로컬 콘텐츠의 해쉬값을 비교한다(S430).
단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠의 해쉬값이 동일한 경우, 수락자가 상호 인증 콘텐츠에 대해 인증할 수 있는 화면을 표시한다(S440).
단말B(110)는 상호 인증 콘텐츠에 대한 인증 수락을 입력받으면, 상호 인증 콘텐츠에 대한 수락자 인증 정보를 생성하고, 생성한 수락자 인증 정보를 공증 서버(300)로 전송한다(S442).
단말B(110)는 상호 인증 콘텐츠와 로컬 콘텐츠의 해쉬값이 다른 경우, 상호 인증을 종료하거나, 상호 인증을 계속 진행할 것인지 수락자에게 문의한다(S450).
만약, 단말B(110)이 상호 인증 계속 진행을 입력받는 경우, 단계 S440의 인증 화면을 표시하여 상호 인증을 진행할 수 있다.
도 6은 한 실시예에 따른 공증 서버의 동작 방법의 흐름도이다.
도 6을 참고하면, 공증 서버(300)는 요청자 인증 정보와 수락자 인증 정보를 수신한다(S510, S520). 요청자 인증 정보와 수락자 인증 정보 각각은 상호 인증 콘텐츠와 이의 전자서명을 포함할 수 있다. 구체적으로 요청자 인증 정보는 표 2와 같이, 상호 인증 콘텐츠(data), 인증 시각 등의 요청자의 인증 상황 정보[Context(A)], 상호 인증 콘텐츠의 해쉬값(H[Data])과 인증 상황 정보의 해쉬값(H[Context(A)])을 개인키[Key1(A)]로 암호화한 서명값[Sig()], 그리고 개인키와 쌍을 이루는 요청자의 공개키[Key2(A)]를 포함할 수 있다. 수락자 인증 정보는 표 2와 같이, 상호 인증 콘텐츠(data), 인증 시각 등의 수락자의 인증 상황 정보[Context(B)], 상호 인증 콘텐츠의 해쉬값(H[Data])과 인증 상황 정보의 해쉬값(H[Context(B)])을 개인키[Key1(B)]로 암호화한 서명값[Sig()], 그리고 개인키와 쌍을 이루는 수락자의 공개키[Key2(B)]를 포함할 수 있다. 한편, 인증 상황 정보, 인증 상황 정보의 해쉬값, 그리고 공개키는 요청자 인증 정보와 수락자 인증 정보에 포함되지 않을 수 있다.
요청자 인증 정보 수락자 인증 정보
상호인증
콘텐츠
Data Data
인증상황정보 Context(A) Context(B)
서명값 Sig(Key1(A),H[Data]+H[Context(A)]) Sig(Key1(B),H[Data]+H[Context(B)])
공개키 Key2(A) Key2(B)
공증 서버(300)는 요청자의 공개키를 이용하여 요청자 인증 정보의 서명값을 복호하고, 복호 결과를 기초로 요청자가 요청자 인증 정보를 전송한 것인지 판단한다(S530). 공증 서버(300)는 요청자 인증 정보의 서명값을 복호한 값이 요청자 인증 정보에 포함된 상호 인증 콘텐츠와 인증 상황 정보의 해쉬값과 동일하면, 요청자가 요청자 인증 정보에 포함된 인증 상황 정보와 상호 인증 콘텐츠를 전송한 것으로 판단할 수 있다.
마찬가지로, 공증 서버(300)는 수락자의 공개키를 이용하여 수락자 인증 정보의서명값을 복호하고, 복호 결과를 기초로 수락자가 수락자 인증 정보를 전송한 것인지 판단한다(S540). 공증 서버(300)는 수락자 인증 정보의 서명값을 복호한 값이 수락자 인증 정보에 포함된 상호 인증 콘텐츠와 인증 상황 정보의 해쉬값과 동일하면, 수락자가 인증 정보에 포함된 인증 상황 정보와 상호 인증 콘텐츠를 전송한 것으로 판단할 수 있다.
공증 서버(300)는 요청자와 수락자에 의해 인증된 상호 인증 콘텐츠를 상호 인증 완료된 콘텐츠로 저장한다(S550). 공증 서버(300)는 요청자 인증 정보와 수락자 인증 정보에 포함된 상호 인증 콘텐츠가 동일하면, 동일한 상호 인증 콘텐츠를 요청자와 수락자에 의해 상호 인증 완료된 콘텐츠로 저장한다. 공증 서버(300)는 상호 인증 콘텐츠의 해쉬값을 비교하여 동일 여부를 판단할 수 있다. 공증 서버(300)는 상호 인증 완료 콘텐츠에 관련된 인증 정보 중 적어도 일부를 신뢰할 수 있는 외부 시스템(예를 들면, 블록체인 시스템)에 등록할 수 있다.
공증 서버(300)는 상호 인증 콘텐츠에 대한 상호 인증 결과를 메시징 서버(200), 단말A(100) 및 단말B(110) 중 적어도 하나로 전송할 수 있다(S560). 상호 인증 결과는 상호 인증 콘텐츠가 상호 인증 완료 콘텐츠로 저장된 결과를 포함하고, 상호 인증 완료 콘텐츠에 접근할 수 있는 주소 정보를 더 포함할 수 있다.
한편, 공증 서버(300)는 상호 인증 참여자들만이 상호 인증 완료된 콘텐츠를 열람할 수 있도록, 상호 인증 완료 콘텐츠를 상호 인증 참여자들 각각의 공개키로 암호화하여 저장할 수 있다. 공증 서버(300)는 상호 인증 참여자들 이외의 사용자들도 상호 인증 완료된 콘텐츠를 열람할 수 있도록, 상호 인증 완료 콘텐츠를 암호화를 하지 않고 저장하거나, 공증 서버(300)가 알고 있는 대칭키를 통해 암호화하여 저장할 수 있다. 공증 서버(300)는 상호 인증 참여자들에 의해 지정된 사용자들이나, 특정 조건을 만족하는 사용자들이 상호 인증 완료된 콘텐츠를 열람할 수 있도록, 지정된 사용자들에게 상호 인증 완료 콘텐츠의 접근 권한을 부여하거나, 상호 인증 완료 콘텐츠를 요청한 사용자들이 특정 조건을 만족하는지 판단하여 접근 권한을 부여할 수 있다.
도 7은 한 실시예에 따른 공증 서버의 추가 인증을 설명하는 도면이다.
도 7을 참고하면, 공증 서버(300)는 상호 인증 콘텐츠가 위변조된 것인지 검증하여 상호 인증 신뢰도(제3 수준의 상호 인증)를 높일 수 있다. 상호 인증 콘텐츠가 상호 인증 참여자들의 단말들에 동일하게 저장되더라도, 상호 인증 참여자들이 합의하여 특정 메시지를 지우거나, 변조할 수 있다. 따라서, 공증 서버(300)는 상호 인증 콘텐츠에 대응하여 서버측에 저장된 서버 데이터를 기초로, 상호 인증 콘텐츠 전체 또는 적어도 일부에 대해서 추가 인증한다.
공증 서버(300)가 대화 내용에 대해 추가 인증하는 경우, 공증 서버(300)는 챗로그 데이터베이스로부터 채팅방에 표시되는 대화 내용의 원본 데이터를 추출하고, 원본 데이터를 기초로 상호 인증 콘텐츠 전체 또는 적어도 일부에 대해서 추가 인증한다. 공증 서버(300)는 직접 챗로그 데이터베이스로부터 필요한 원본 데이터를 추출하거나, 챗로그 데이터베이스를 관리하는 메시징 서버(200)를 통해 필요한 원본 데이터를 획득할 수 있다. 또는, 공증 서버(300)는 메시징 서버(200)로부터 대화 내용의 원본 데이터를 전달받고, 이에 대한 제3 수준의 상호 인증을 요청받을 수도 있다. 챗로그 데이터베이스가 채팅방에 표시되는 대화 내용을 모두 저장할 수 있으나, 일정 시간이 지난 대화 내용까지 저장하지 않을 수 있다. 따라서, 공증 서버(300)는 챗로그 데이터베이스에 저장된 원본 데이터를 이용하여, 상호 인증 콘텐츠 전체 또는 적어도 일부에 대해서 추가 인증한다.
공증 서버(300)가 추가 인증하는 제3 수준의 상호 인증은 제2 수준의 상호 인증에서 요청자와 수락자가 동일하게 저장한 상호 인증 콘텐츠가 서버에도 저장된 것인지 확인하는 절차가 추가된다.
이를 위해, 요청자의 단말A(100)와 수락자의 단말B(110) 각각은 상호 인증 콘텐츠 등을 포함하는 요청자 인정 정보와 수락자 인증 정보를 공증 서버(300)로 전송하되, 상호 인증 콘텐츠를 구성하는 그룹들의 해쉬 트리와 해쉬 트리의 최상위 노드(루트 노드)의 해쉬값(루트 해시값)을 추가로 전송한다. 한편, 상호 인증 콘텐츠의 루트 해시값과 해쉬 트리는 요청자 인정 정보와 수락자 인증 정보 중 적어도 어느 하나에 포함될 수도 있다.
도 7의 (a)를 참고하면, 단말A(100)가 상호 인증 콘텐츠(메시지1부터 메시지12)의 루트 해시값과 해쉬 트리를 전송하는 경우, 단말A(100)는 상호 인증 콘텐츠를 구성하는 연속 메시지들을 그룹핑하고, 해쉬 트리로 연결된 인접 그룹들의 해쉬값을 순차적으로 해싱하면서 루트 해시값을 계산한다. 그룹핑 기준은 시간 단위나 메시지 수와 같이 다양하게 설정될 수 있으나, 메시징 서버(200)에서 원본 데이터가 일정 시간이 지나면 삭제되는 경우, 단말A(100)와 공증 서버(300)가 동일하게 그룹을 생성할 수 있도록 시간 단위(예를 들면, 1분 단위)로 메시지들을 분절하여 그룹을 생성할 수 있다.
공증 서버(300)는 상호 인증 콘텐츠에 대응하는 원본 콘텐츠를 획득한다. 공증 서버(300)는 상호 인증 콘텐츠에 포함된 식별 정보를 기초로, 상호 인증 콘텐츠에 대응하는 원본 콘텐츠를 획득할 수 있다. 원본 콘텐츠는 챗로그 데이터베이스에 보관될 수 있는데, 상호 인증 시점이 원본 콘텐츠의 서버 보관 기간 내인 경우, 상호 인증 콘텐츠에 대응하는 원본 콘텐츠를 획득할 수 있다.
도 7의 (b)를 참고하면, 상호 인증 시점에 따라, 상호 인증 콘텐츠의 일부만이 챗로그 데이터베이스에 보관될 수 있다. 그러면, 상호 인증 콘텐츠의 일부에 대응하는 원본 콘텐츠를 획득할 수 있다. 공증 서버(300)는 원본 콘텐츠를 구성하는 연속 메시지들을 그룹핑 기준(예를 들면, 1분 단위)으로 그룹핑하고, 해쉬 트리로 연결된 인접 그룹들의 해쉬값을 순차적으로 해싱하면서 루트 해시값을 계산한다.
공증 서버(300)는 원본 콘텐츠의 루트 해시값(예를 들면, 해쉬값6)이 단말A(100)로부터 전송된 해쉬 트리에 포함되는 경우, 상호 인증 콘텐츠 중 원본 콘텐츠에 해당하는 메시지들(메시지6부터 메시지12)은 단말과 서버에 동일하게 저장된 것으로 추가 인증한다.
도 8은 한 실시예에 따라 상호 인증 서비스로 진입하기 위한 인터페이스 화면의 예시이다.
도 8을 참고하면, 단말A(100)의 인터페이스 화면(400)은 Aiden이 채팅방에서 상호 인증 서비스로 진입할 수 있는 메뉴를 제공한다. 예를 들면, 인터페이스 화면은 채팅방에서 제공하는 부가 서비스 메뉴 중 상호 인증 서비스(가칭) 메뉴(410)를 포함할 수 있다. Aiden은 상호 인증 서비스 서비스 메뉴(410)를 선택해서 상호 인증 절차를 시작할 수 있다.
이외에도 Aiden은 상호 인증하고자 하는 메시지를 지정된 동작(예를 들면, 메시지를 롱터치)으로 선택하여 상호 인증 절차를 시작할 수 있다.
도 9는 한 실시예에 따라 상호 인증 콘텐츠를 선택하는 사용자 인터페이스 화면의 예시이다.
도 9의 (a)를 참고하면, 단말A(100)의 인터페이스 화면(500)은 채팅방의 대화 내용을 선택할 수 있는 선택 화면을 표시하고, 상호 인증 콘텐츠의 선택을 요청한다. 예를 들면, 상호 인증 콘텐츠의 맨 처음 메시지에 해당하는 말풍선을 선택하도록 요청하고, 이후 마지막 메시지에 해당하는 말풍선을 선택하도록 요청할 수 있다.
도 9의 (b)를 참고하면, Aiden이 인터페이스 화면(500)에서 일부 대화 영역(메시지1부터 메시지12)을 선택한다. 상호 인증 콘텐츠 선택 후, Aiden이 상호 인증 요청 버튼(510)을 선택하면, 단말A(100)는 상호 인증 콘텐츠의 요청자 인증 정보를 생성하고, 요청자 인증 정보를 공증 서버(300)로 직접 또는 메시징 서버(200)를 통해 전송한다. 그리고, 단말A(100)는 상호 인증 콘텐츠를 포함하는 상호 인증 요청 메시지를 메시징 서버(200)로 전송한다. 여기서, 요청자 인증 정보는 상호 인증 요청 메시지에 포함되어 메시징 서버(200)으로 전송될 수 있다.
도 10은 한 실시예에 따라 수락자가 상호 인증 콘텐츠에 대한 인증을 수락하는 사용자 인터페이스 화면의 예시이다.
도 10의 (a)를 참고하면, 단말B(110)의 인터페이스 화면(600)은 메시징 서버(200)로부터 수신한 상호 인증 요청 알림 메시지(610)를 표시한다. 상호 인증 요청 알림 메시지(610)는 요청자(Aiden) 정보를 표시할 수 있다.
도 10의 (b)를 참고하면, 상호 인증 요청 알림 메시지(610)가 선택되면, 단말B(110)는 상호 인증 화면(700)을 표시한다. 상호 인증 화면(700)은 상호 인증 콘텐츠(메시지1부터 메시지12)를 표시하고, 상호 인증 수락을 요청할 수 있다. 상호 인증 콘텐츠가 JSON 포맷으로 전송되는 대화 내용인 경우, 단말B(110)는 상호 인증 콘텐츠를 채팅방 UI로 렌더링하여 표시할 수 있다.
도 10의 (c)를 참고하면, 상호 인증 콘텐츠와 로컬 콘텐츠가 다른 경우, 단말B(110)는 상호 인증 화면(710)에서 상호 인증 수락을 요청하되, 상호 인증 콘텐츠의 메시지2와 메시지3 사이에 삭제된 메시지가 있음을 표시하거나, 메시지5가 위변조 메시지임을 표시할 수 있다.
도 10의 (d)를 참고하면, 한편, 상호 인증 콘텐츠와 로컬 콘텐츠가 다른 경우, 단말B(110)는 상호 인증 화면(720)에서 상호 인증 수락을 요청하는 대신, 상호 인증 종료됨을 표시할 수 있다.
이와 같이, 실시예에 따르면, 사용자들은 온라인에서 교환된 대화 내용 등의 콘텐츠를 손쉽게 상호 인증하여 저장하고, 상호 인증된 콘텐츠를 언제든지 확인할 수 있도록 관리 및 보관할 수 있다. 실시예에 따르면, 온라인에서 교환된 대화 내용 등의 콘텐츠를 상호 인증하여 특정 사용자에 의한 대화 내용 위변조 가능성을 없앨 수 있고, 상호 인증된 콘텐츠의 증거력을 높일 수 있다. 실시예에 따르면, 계약 당사자들이 전자서명한 계약 내용 등의 콘텐츠는 계약서로 사용될 수 있고, 신뢰할 수 있는 공증 서버나 블록체인과 같은 신뢰 시스템에 등록하여 계약서의 위변조를 방지하면서도 언제 어디서든 계약서를 확인할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (16)

  1. 서버가 소셜 미디어 서비스의 콘텐츠에 대해 상호 인증 참여자들의 상호 인증을 제공하는 방법으로서,
    특정 콘텐츠에 대한 상호 인증을 요청한 요청자 단말에서 생성된 요청자 인증 정보를 입력받는 단계,
    상기 특정 콘텐츠에 대한 상호 인증을 수락한 수락자 단말에서 생성된 수락자 인증 정보를 입력받는 단계, 그리고
    상기 요청자 인증 정보와 상기 수락자 인증 정보를 검증하고, 상기 요청자 인증 정보와 상기 수락자 인증 정보에 포함된 상기 특정 콘텐츠를 상기 요청자와 상기 수락자의 상호 인증 완료 콘텐츠로 저장하는 단계를 포함하고,
    상기 요청자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 요청자의 서명을 포함하고, 상기 수락자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 수락자의 서명을 포함하며,
    상기 특정 콘텐츠는
    상기 요청자 단말의 화면에 표시된 채팅방 대화 내용 중에서 선택되고, 상기 수락자 단말의 화면에서 상호 인증 콘텐츠로 표시되는, 상호 인증 방법.
  2. 제1항에서,
    상기 요청자의 서명은 상기 특정 콘텐츠의 해쉬값을 상기 요청자의 개인키로 암호화한 값이고, 상기 수락자의 서명은 상기 특정 콘텐츠의 해쉬값을 상기 수락자의 개인키로 암호화한 값이며,
    상기 상호 인증 완료 콘텐츠로 저장하는 단계는
    상기 요청자의 공개키를 이용하여 상기 요청자 인증 정보의 서명을 복호하고, 복호 결과를 기초로 상기 요청자가 상기 요청자 인증 정보에 포함된 상기 특정 콘텐츠를 전송한 것인지 검증하며,
    상기 수락자의 공개키를 이용하여 상기 수락자 인증 정보의 서명을 복호하고, 복호 결과를 기초로 상기 수락자가 상기 수락자 인증 정보에 포함된 상기 특정 콘텐츠를 전송한 것인지 검증하는, 상호 인증 방법.
  3. 제1항에서,
    상기 상호 인증 완료 콘텐츠로 저장하는 단계는
    상기 요청자 인증 정보와 상기 수락자 인증 정보를 검증하고, 상기 소셜 미디어 서비스에서 제공되는 원본을 저장하는 데이터베이스에 상기 특정 콘텐츠의 적어도 일부가 존재하는 경우, 상기 상호 인증 완료 콘텐츠의 적어도 일부가 원본임을 증명하는 서버 인증을 추가하여 저장하는, 상호 인증 방법.
  4. 제3항에서,
    상기 상호 인증 완료 콘텐츠로 저장하는 단계는
    상기 특정 콘텐츠의 적어도 일부에 해당하는 원본 콘텐츠를 획득하고, 상기 특정 콘텐츠를 구성하는 그룹들의 해쉬 트리가 상기 원본 콘텐츠를 구성하는 그룹들의 해쉬 트리를 포함하는 경우, 상기 특정 콘텐츠의 적어도 일부를 원본으로 증명하고,
    상기 특정 콘텐츠를 구성하는 그룹들의 해쉬 트리는 상기 요청자 인증 정보와 상기 수락자 인증 정보 중 적어도 하나에 포함되는, 상호 인증 방법.
  5. 제1항에서,
    상기 요청자 인증 정보는 상기 요청자 단말에서의 인증 상황 정보를 더 포함하고,
    상기 수락자 인증 정보는 상기 수락자 단말에서의 인증 상황 정보를 더 포함하는, 상호 인증 방법.
  6. 삭제
  7. 제1항에서,
    상기 요청자 단말의 화면에 표시된 채팅방 대화 내용은 상기 요청자 단말에 저장된 로컬 콘텐츠인, 상호 인증 방법.
  8. 소셜 미디어 서비스의 어플리케이션을 탑재한 단말이 적어도 하나의 서버와 연동하여 상기 소셜 미디어 서비스의 콘텐츠에 대해 상호 인증하는 방법으로서,
    상기 서버로부터, 요청자 단말에서 선택된 특정 콘텐츠에 대한 상호 인증을 요청하는 제1 메시지를 수신하는 단계,
    상기 제1 메시지가 선택되면, 상기 특정 콘텐츠를 표시하는 단계,
    상기 특정 콘텐츠에 대한 인증 수락을 입력받으면, 상기 특정 콘텐츠에 대한 수락자 인증 정보를 생성하고, 상기 서버로 상기 수락자 인증 정보를 포함하는 제2 메시지를 전송하는 단계, 그리고
    상기 서버로부터, 상기 제2 메시지에 대한 응답으로 상기 특정 콘텐츠에 대한 상호 인증 결과를 수신하는 단계를 포함하며,
    상기 상호 인증 결과는 상기 수락자 인증 정보와 상기 요청자 단말에서 생성된 요청자 인증 정보의 검증 결과로 생성되고,
    상기 요청자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 요청자의 서명을 포함하며, 상기 수락자 인증 정보는 상기 특정 콘텐츠, 그리고 상기 특정 콘텐츠에 대한 상기 수락자의 서명을 포함하는, 상호 인증 방법.
  9. 제8항에서,
    상기 특정 콘텐츠를 표시하는 단계는
    상기 서버로부터 수신한 상기 특정 콘텐츠를 인증 수락 화면에 표시하는, 상호 인증 방법.
  10. 제8항에서,
    상기 특정 콘텐츠를 표시하는 단계는
    보관 중인 로컬 데이터에서 상기 특정 콘텐츠에 대응한 로컬 콘텐츠를 추출하고, 상기 서버로부터 수신한 상기 특정 콘텐츠와 상기 로컬 콘텐츠가 동일한 경우, 상기 특정 콘텐츠를 인증 수락 화면에 표시하는, 상호 인증 방법.
  11. 제10항에서,
    상기 특정 콘텐츠와 상기 로컬 콘텐츠가 다른 경우, 상기 특정 콘텐츠에 대한 상호 인증을 종료하는 단계
    를 더 포함하는, 상호 인증 방법.
  12. 제8항에서,
    상기 특정 콘텐츠를 표시하는 단계는
    보관 중인 로컬 데이터에서 상기 특정 콘텐츠에 대응한 로컬 콘텐츠를 추출하고, 상기 서버로부터 수신한 상기 특정 콘텐츠와 상기 로컬 콘텐츠가 다른 경우, 인증 수락 화면에 상기 특정 콘텐츠와 상기 로컬 콘텐츠의 다른 부분이 나타나도록 표시하는, 상호 인증 방법.
  13. 서버가 인스턴트 메시징 어플리케이션의 채팅방 대화 내용에 대해 상호 인증 참여자들의 상호 인증을 제공하는 방법으로서,
    요청자 단말로부터, 채팅방에서 선택된 채팅방 대화 내용에 대한 상호 인증을 수락자에게 요청하는 상호 인증 요청 메시지를 수신하는 단계,
    수락자 단말로 상기 채팅방 대화 내용에 대한 상호 인증 요청 알림 메시지를 전송하는 단계,
    상기 수락자 단말로부터, 상기 채팅방 대화 내용에 대한 상호 인증 수락 메시지를 수신하는 단계,
    상기 요청자 단말과 상기 수락자 단말 각각에서 전자서명으로 인증된 상기 채팅방 대화 내용을 상기 요청자와 상기 수락자의 상호 인증 완료 콘텐츠로 저장하는 단계, 그리고
    상기 요청자 단말와 상기 수락자 단말로 상기 채팅방 대화 내용에 대한 상호 인증 결과 메시지를 전송하는 단계를 포함하고,
    상기 상호 인증 요청 메시지는 상기 채팅방 대화 내용에 대한 요청자의 전자서명을 포함하고, 상기 상호 인증 수락 메시지는 상기 채팅방 대화 내용에 대한 수락자의 전자서명을 포함하는, 상호 인증 방법.
  14. 제13항에서,
    상기 상호 인증 요청 알림 메시지를 전송하는 단계는
    상기 채팅방 대화 내용이 전송된 채팅방의 참여자를 상기 수락자로 결정하거나, 상기 요청자 단말로부터 지정된 사용자를 상기 수락자로 결정하는, 상호 인증 방법.
  15. 제13항에서,
    상기 채팅방 대화 내용은 상기 요청자 단말에 저장된 콘텐츠인, 상호 인증 방법.
  16. 제13항에서,
    상기 상호 인증 수락 메시지를 수신하는 단계는
    상기 수락자 단말에 상기 채팅방 대화 내용이 동일하게 저장된 경우, 상기 상호 인증 수락 메시지를 수신하는, 상호 인증 방법.
KR1020180124748A 2018-10-18 2018-10-18 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션 KR102120418B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180124748A KR102120418B1 (ko) 2018-10-18 2018-10-18 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션
US16/655,518 US11252153B2 (en) 2018-10-18 2019-10-17 Method of providing mutual authentication of contents in social media service, and server, user terminal, and application implementing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180124748A KR102120418B1 (ko) 2018-10-18 2018-10-18 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션

Publications (2)

Publication Number Publication Date
KR20200043858A KR20200043858A (ko) 2020-04-28
KR102120418B1 true KR102120418B1 (ko) 2020-06-08

Family

ID=70279883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180124748A KR102120418B1 (ko) 2018-10-18 2018-10-18 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션

Country Status (2)

Country Link
US (1) US11252153B2 (ko)
KR (1) KR102120418B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880383B2 (en) * 2019-07-15 2024-01-23 Sap Se Federated data management between partner systems
KR102302507B1 (ko) * 2020-11-16 2021-09-15 이정재 빅데이터 및 ai 기반 지속가능한 후원을 위한 매칭 서비스 제공 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100991855B1 (ko) * 2008-03-19 2010-11-04 주식회사 마크애니 전자 문서 발급 및 검증 시스템, 전자 문서 발급 방법 및전자 문서 검증 방법
KR101795696B1 (ko) * 2016-07-14 2017-11-09 주식회사 코인플러그 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4993414B2 (ja) * 2005-08-18 2012-08-08 日本電気株式会社 本人認証システム、これで用いる端末、認証検証装置、及びプログラム
US8713645B2 (en) * 2011-11-22 2014-04-29 International Business Machines Corporation Authentication for social networking messages
US9754097B2 (en) * 2014-02-21 2017-09-05 Liveensure, Inc. Method for peer to peer mobile context authentication
US9654431B1 (en) * 2014-06-06 2017-05-16 Amazon Technologies, Inc. Automated email account verification
GB2533348B (en) * 2014-12-17 2021-07-07 Arm Ip Ltd Management of relationships between a device and a service provider
US11048668B2 (en) * 2016-09-09 2021-06-29 Paypal, Inc. Sensitive data management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100991855B1 (ko) * 2008-03-19 2010-11-04 주식회사 마크애니 전자 문서 발급 및 검증 시스템, 전자 문서 발급 방법 및전자 문서 검증 방법
KR101795696B1 (ko) * 2016-07-14 2017-11-09 주식회사 코인플러그 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버

Also Published As

Publication number Publication date
US11252153B2 (en) 2022-02-15
US20200128010A1 (en) 2020-04-23
KR20200043858A (ko) 2020-04-28

Similar Documents

Publication Publication Date Title
US11722301B2 (en) Blockchain ID connect
US10136315B2 (en) Password-less authentication system, method and device
KR100848314B1 (ko) 무선 단말기를 이용한 전자투표 장치 및 방법
US20160065571A1 (en) System and methods for secure file sharing and access management
CN108959911A (zh) 一种密钥链生成、验证方法及其装置
US11750395B2 (en) System and method for blockchain-based multi-factor security authentication between mobile terminal and IoT device
CN107251035A (zh) 账户恢复协议
CN104883367B (zh) 一种辅助验证登陆的方法、系统和应用客户端
TW201019683A (en) Access control system and method based on hierarchical key, and authentication key exchange thereof
JP2008503966A (ja) 匿名証明書呈示に関する匿名証明書
KR20140045629A (ko) 데이터 전송 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP2015099961A (ja) 情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラム
CN110311895B (zh) 基于身份验证的会话权限校验方法、系统及电子设备
KR102120418B1 (ko) 소셜 미디어 서비스의 콘텐츠를 상호 인증하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션
JP2001186122A (ja) 認証システム及び認証方法
US20200314090A1 (en) System for securely sharing content over a network using persistent individual servers
Shirvanian et al. 2D-2FA: a new dimension in two-factor authentication
WO2016033208A1 (en) System and methods for secure file sharing and access management
KR102068041B1 (ko) 유저 바이오 데이터를 이용한 유저 인증 및 서명 장치와 방법
KR102120419B1 (ko) 소셜 미디어 서비스의 콘텐츠를 증명 저장하는 방법, 이를 구현한 서버, 사용자 단말, 그리고 어플리케이션
KR102191111B1 (ko) 블록 체인을 이용하여 익명 메시지 서비스를 제공하기 시스템 및 방법
KR100866608B1 (ko) 모바일 기기를 이용한 사용자와 서버간의 상호 인증시스템, 그 방법 및 기록매체
Vaziripour et al. Social Authentication for {End-to-End} Encryption
KR101897342B1 (ko) 보안 및 익명 서비스 제공 시스템 및 방법
WO2021019781A1 (ja) 所有者同一性確認システム、認証局サーバおよび所有者同一性確認方法

Legal Events

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