KR102320667B1 - 사용자 정보의 관리 방법 및 단말 - Google Patents

사용자 정보의 관리 방법 및 단말 Download PDF

Info

Publication number
KR102320667B1
KR102320667B1 KR1020190142796A KR20190142796A KR102320667B1 KR 102320667 B1 KR102320667 B1 KR 102320667B1 KR 1020190142796 A KR1020190142796 A KR 1020190142796A KR 20190142796 A KR20190142796 A KR 20190142796A KR 102320667 B1 KR102320667 B1 KR 102320667B1
Authority
KR
South Korea
Prior art keywords
encrypted
server
public key
terminal
information
Prior art date
Application number
KR1020190142796A
Other languages
English (en)
Other versions
KR20210056111A (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 KR1020190142796A priority Critical patent/KR102320667B1/ko
Publication of KR20210056111A publication Critical patent/KR20210056111A/ko
Application granted granted Critical
Publication of KR102320667B1 publication Critical patent/KR102320667B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

개인키 및 개인키에 대응하는 공개키를 준비하는 단계; 정보에 포함된 제1 부분을 개인키를 이용하여 암호화하고, 정보에 포함되고 제1 부분과 서로 다른 제2 부분을 공개키를 이용하여 암호화하는 단계; 암호화된 제1 부분 및 개인키를 저장하는 단계; 및 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계를 통해 사용자의 정보를 관리하는 방법 및 단말과, 사용자의 정보에 포함된 제1 부분이 공개키를 이용하여 암호화됨으로써 생성된 암호화된 제1 부분 및 공개키를 단말로부터 수신하는 단계; 및 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계를 통해 사용자의 정보를 관리하는 방법 및 서버가 제공된다.

Description

사용자 정보의 관리 방법 및 단말{METHOD AND TERMINAL FOR MANAGING USER INFORMATION}
본 기재는 사용자 정보를 관리하는 방법 및 단말에 관한 것이다.
핀테크(FinTech)는 금융(Finance)과 기술(Technology)의 합성어로서, 금융과 IT의 융합을 통해 사용자에게 새로운 금융 서비스를 제공하기 위한 것이다. 핀테크를 활용한 금융 서비스에서 모바일 단말은 사용자의 정보를 이용하므로, 사용자의 정보의 안전한 저장 및 사용이 중요하다. 사용자의 정보는, 모바일 단말 내의 안전 영역 내에 암호화 키를 사용하여 저장될 수 있지만, 단말이 물리적으로 분실되면, 암호화 키와 함께 안전 영역 내에 저장된 내용도 유출될 수 있다는 위험이 있다.
한 실시예는, 사용자의 정보를 관리하는 방법 및 단말을 제공한다.
다른 실시예는, 사용자의 정보를 관리하는 방법 및 서버를 제공한다.
한 실시예에 따르면, 단말이 사용자의 정보를 관리하는 방법이 제공된다. 상기 정보 관리 방법은, 개인키 및 상기 개인키에 대응하는 공개키를 준비하는 단계; 정보에 포함된 제1 부분을 개인키를 이용하여 암호화하고, 정보에 포함되고 제1 부분과 서로 다른 제2 부분을 공개키를 이용하여 암호화하는 단계; 암호화된 제1 부분 및 개인키를 저장하는 단계; 및 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계를 포함한다.
상기 정보 관리 방법에서 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계는, 암호화된 제2 부분 및 공개키의 저장을 서버에게 요청하는 단계; 및 암호화된 제2 부분 및 공개키가 서버에 저장되었음이 확인되면 공개키 및 암호화된 제2 부분을 단말에서 삭제하는 단계를 포함할 수 있다.
상기 정보 관리 방법은, 제1 인증 토큰(authentication token)을 준비하는 단계를 더 포함하고, 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계는, 제1 인증 토큰을 서버에게 전송하는 단계; 및 제1 인증 토큰이 유효함에 대한 응답으로서, 서버로부터 암호화된 제2 부분 및 공개키가 서버에 저장되었음을 나타내는 응답을 수신하는 단계를 더 포함할 수 있다.
상기 정보 관리 방법은, 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계 이후에, 암호화된 제1 부분을 서버에게 전송하는 단계; 서버에의 전송에 대한 응답으로서, 암호화된 제1 부분이 서버에 이전된 공개키를 이용하여 복호화된 후 복호화된 결과물이 공개키를 이용하여 암호화됨으로써 생성된 재암호화된 제1 부분 및 서버에 이전된 암호화된 제2 부분을 서버로부터 수신하는 단계; 수신된 재암호화된 제1 부분 및 암호화된 제2 부분을 저장된 개인키를 이용하여 각각 복호화하는 단계; 및 복호화된 제1 부분 및 복호화된 제2 부분을 이용하여 정보를 복원하는 단계를 더 포함할 수 있다.
상기 정보 관리 방법은, 제2 인증 토큰을 준비하고 제2 인증 토큰을 서버에게 전송하는 단계를 더 포함하고, 재암호화된 제1 부분 및 암호화된 제2 부분을 서버로부터 수신하는 단계는, 제2 인증 토큰이 유효함에 대한 응답으로서, 서버로부터 재암호화된 제1 부분 및 암호화된 제2 부분을 수신하는 단계를 포함할 수 있다.
다른 실시예에 따르면, 단말이 사용자의 정보를 관리하는 방법이 제공된다. 상기 정보 관리 방법은, 정보의 일부이고 개인키로 암호화된 상태로 단말에 저장되어 있던 제1 부분을 서버에게 전송하는 단계; 서버에의 전송에 대한 응답으로, 개인키에 대응하는 공개키를 이용하여 암호화된 제1 부분이 복호화된 후 복호화된 결과물이 공개키를 이용하여 암호화됨으로써 생성된 재암호화된 제1 부분, 및 정보의 다른 일부이고 공개키로 암호화된 상태로 서버에 저장되어 있던 제2 부분을 서버로부터 수신하는 단계; 수신된 재암호화된 제1 부분 및 암호화된 제2 부분을 개인키를 이용하여 각각 복호화하는 단계; 및 복호화된 제1 부분 및 복호화된 제2 부분을 이용하여 정보를 획득하는 단계를 포함한다.
상기 정보 관리 방법은, 인증 토큰을 준비하고 인증 토큰을 서버에게 전송하는 단계를 더 포함하고, 재암호화된 제1 부분 및 암호화된 제2 부분을 서버로부터 수신하는 단계는, 인증 토큰이 유효함에 대한 응답으로서, 서버로부터 재암호화된 제1 부분 및 암호화된 제2 부분을 수신하는 단계를 포함할 수 있다.
또 다른 실시예에 따르면, 서버가 사용자의 정보를 관리하는 방법이 제공된다. 상기 정보 관리 방법은, 정보에 포함된 제1 부분이 공개키를 이용하여 암호화됨으로써 생성된 암호화된 제1 부분 및 공개키를 단말로부터 수신하는 단계; 및 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계를 포함한다.
상기 정보 관리 방법은, 단말로부터 제1 인증 토큰을 수신하는 단계를 더 포함하고, 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계는, 수신된 제1 인증 토큰이 유효한지 여부를 검증하는 단계; 제1 인증 토큰이 유효하다고 검증되면 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계; 및 암호화된 제1 부분 및 공개키가 서버에 저장되었음을 나타내는 응답을 단말에게 전송하는 단계를 포함할 수있다.
상기 정보 관리 방법은, 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계 이후에, 정보에 포함되고 제1 부분과 서로 다른 제2 부분이 공개키에 대응하는 개인키로 암호화됨으로써 생성된 암호화된 제2 부분을 단말로부터 수신하는 단계; 수신된 암호화된 제2 부분을 저장된 공개키를 이용하여 복호화하는 단계; 복호화된 제2 부분을 공개키를 이용하여 재암호화하는 단계; 및 재암호화된 제2 부분 및 저장된 암호화된 제1 부분을 단말에게 전송하는 단계를 포함할 수 있다.
상기 정보 관리 방법은, 단말로부터 제2 인증 토큰을 수신하는 단계; 및 수신된 제2 인증 토큰이 유효한지 여부를 검증하는 단계를 더 포함하고, 재암호화된 제2 부분 및 저장된 암호화된 제1 부분을 단말에게 전송하는 단계는, 제2 인증 토큰이 유효하다고 검증되면 재암호화된 제2 부분 및 저장된 암호화된 제1 부분을 단말에게 전송하는 단계를 포함할 수 있다.
또 다른 실시예에 따르면, 서버가 사용자의 정보를 관리하는 방법이 제공된다. 상기 정보 관리 방법은, 정보의 일부이고 개인키로 암호화된 상태로 단말에 저장되어 있던 제1 부분을 단말로부터 수신하는 단계; 개인키에 대응하고 서버에 저장되어 있던 공개키를 이용하여 수신된 암호화된 제1 부분을 복호화하는 단계; 복호화된 제1 부분을 공개키를 이용하여 재암호화하는 단계; 및 재암호화된 제1 부분, 및 정보의 다른 일부이고 공개키로 암호화된 상태로 서버에 저장되어 있던 제2 부분을 단말에게 전송하는 단계를 포함한다.
상기 정보 관리 방법은, 단말로부터 인증 토큰을 수신하는 단계; 및 수신된 인증 토큰이 유효한지 여부를 검증하는 단계를 더 포함하고, 재암호화된 제1 부분 및 암호화된 제2 부분을 단말에게 전송하는 단계는, 인증 토큰이 유효하다고 검증되면 재암호화된 제1 부분 및 암호화된 제2 부분을 단말에게 전송하는 단계를 포함할 수 있다.
또 다른 실시예에 따르면, 사용자의 정보를 관리하는 단말이 제공된다. 상기 단말은 프로세서, 메모리, 및 통신부를 포함하고, 프로세서는 메모리에 저장된 프로그램을 실행함으로써, 개인키 및 개인키에 대응하는 공개키를 준비하는 단계; 정보에 포함된 제1 부분을 개인키를 이용하여 암호화하고, 정보에 포함되고 제1 부분과 서로 다른 제2 부분을 공개키를 이용하여 암호화하는 단계; 암호화된 제1 부분 및 개인키를 메모리에 저장하는 단계; 및 통신부를 통해, 암호화된 제2 부분 및 공개키를 서버에 이전하는 단계를 수행한다.
또 다른 실시예에 따르면, 사용자의 정보를 관리하는 서버가 제공된다. 상기 서버는 프로세서, 메모리, 및 통신부를 포함하고, 프로세서는 메모리에 저장된 프로그램을 실행함으로써, 통신부를 통해, 정보의 일부이고 개인키로 암호화된 상태로 단말에 저장되어 있던 제1 부분을 단말로부터 수신하는 단계; 개인키에 대응하고 메모리에 저장되어 있던 공개키를 이용하여 수신된 암호화된 제1 부분을 복호화하는 단계; 복호화된 제1 부분을 공개키를 이용하여 재암호화하는 단계; 및 통신부를 통해, 재암호화된 제1 부분, 및 정보의 다른 일부이고 공개키로 암호화된 상태로 메모리에 저장되어 있던 제2 부분을 단말에게 전송하는 단계를 수행한다.
두 부분으로 분할된 사용자의 정보가 개인키-공개키의 키쌍으로 각각 암호화된 후 단말과 서버에 분산 저장되므로, 단말 또는 서버 중 한 쪽의 사용자의 정보 부분이 유출되더라도 사용자의 정보 전체가 복호화될 수 없어서 사용자의 정보 저장의 보안성이 보장될 수 있다. 또한, 단말이 개인키로 암호화된 부분을 서버에게 전달하여 복호화되도록 하고, 공개키로 복호화된 부분을 다시 공개키로 재암호화한 후 단말에 의해 공개키로 암호화된 부분과 함께 서버로부터 수신하므로, 단말은 개인키로 암호화된 부분과 서버에 저장된 공개키로 암호화된 부분을 안전하게 복호화할 수 있다.
도 1은 한 실시예에 따른 금융 서비스 제공 시스템을 나타낸 개념도이다.
도 2는 한 실시예에 따른 사용자의 정보를 암호화하는 방법을 나타낸 흐름도이다.
도 3은 한 실시예에 따른 사용자 및 단말의 인증 방법을 나타낸 흐름도이다.
도 4는 한 실시예에 따른 사용자의 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 5는 한 실시예에 따른 금융 서비스 제공 시스템의 단말을 나타낸 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 기재의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 기재는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 기재를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 한 실시예에 따른 금융 서비스 제공 시스템을 나타낸 개념도이다.
도 1을 참조하면, 한 실시예에 따른 금융 서비스 제공 시스템은 단말(100), 애플리케이션 프로그램 인터페이스(application program interface, API) 서버(200), 및 제3자 서버(300)를 포함한다.
단말(100)은 단말(100)에 설치된 애플리케이션을 통해 사용자에게 금융 서비스를 제공할 수 있다. 사용자가 애플리케이션에 계정 정보(즉, 아이디 및 비밀번호)를 입력하여 로그인하면, 단말(100)은 API 서버(200) 또는 제3자 서버(300)와 통신하여 사용자에게 금융 서비스를 제공하기 위한 동작을 수행할 수 있다. 예를 들어, 단말(100)은 단말(100)에 설치된 애플리케이션을 통해 사용자에게 송금 서비스를 제공할 수 있다.
단말(100)은 송금 서비스를 제공하기 위해 사용자가 계좌를 가지고 있는 은행, 증권사 등 복수의 금융 기관에 접속할 수 있다. 또는 단말(100)은 금융 서비스의 애플리케이션에 나타난 금융 정보(잔고 등)와 사용자가 이용하는 금융 기관에서 유지되는 사용자의 실제 금융 정보를 동기화하기 위해, 금융 기관이 접속할 수 있다. 이때 단말(100)은 사용자에 의해 미리 저장된 사용자의 정보를 이용하여 복수의 금융 기관에 접속할 수 있다.
사용자의 정보는, 사용자가 이용하는 금융 기관의 인터넷 사이트 또는 모바일 사이트의 아이디 및 접속 비밀번호, 금융 기관의 계좌 번호, 계좌 번호에 대응하는 계좌 비밀번호, 및 사용자의 본인 인증을 위한 전자 인증서의 비밀번호 등을 포함할 수 있다.
한 실시예에 따른 단말(100)은 사용자의 정보를 각각 분할하고, 분할된 사용자의 정보의 각 부분을 개인키-공개키의 키쌍(key pair)을 이용하여 암호화할 수 있다. 개인키로 암호화된 정보는 공개키를 이용하여야 복호화될 수 있고, 공개키로 암호화된 정보는 개인키를 이용하여야 복호화될 수 있다. 아래 실시예에서는 개인키-공개키의 키쌍을 이용하는 암호화 및 복호화를 통해 사용자의 정보를 관리하는 방법을 설명하지만, 하나의 키로 암호화된 정보가 반드시 서로 쌍을 이루는 상대 키를 이용하여야 복호화될 수 있는 경우에도 본 실시예가 적용될 수 있으며, 이에 한정되지 않는다.
단말(100)은 암호화된 사용자의 정보의 부분 중 일부를 암호화에 사용된 개인키 또는 공개키와 함께 저장하고 정보의 다른 부분은 API 서버(200)에게 전송할 수 있다. 암호화된 정보의 다른 부분은, 단말(100)에서 API 서버(200)에게 전송된 이후, 암호화에 사용된 개인키 또는 공개키와 함께 API 서버(200) 내에 저장될 수 있다.
한 실시예에 따른 단말(100)은 사용자의 정보에 포함된 제1 부분을 개인키로 암호화하고 암호화된 제1 부분을 개인키와 함께 저장하고, 사용자의 정보에 포함된 제2 부분(제1 부분과 다른 일부분)을 공개키로 암호화하고 암호화된 제2 부분을 공개키와 함께 API 서버(200)에게 이전할 수 있다. 또는 다른 실시예에 따른 단말(100)은 사용자의 정보에 포함된 제1 부분을 공개키로 암호화하고 암호화된 제1 부분을 공개키와 함께 저장하고, 사용자의 정보에 포함된 중 제1 부분과 서로 다른 제2 부분을 개인키로 암호화하고 암호화된 제2 부분을 개인키와 함께 API 서버(200)에게 이전할 수 있다.
적어도 두 부분으로 분할된 사용자의 정보가 개인키-공개키의 키쌍으로 각각 암호화된 후 각각 암호화에 사용된 개인키 또는 공개키와 함께 단말과 서버에 분산 저장되므로, 단말 또는 서버 중 어느 한 쪽의 사용자의 정보 부분이 유출되더라도 사용자의 정보 전체가 복호화될 수 없게 되고, 사용자의 정보 저장의 보안성이 보장될 수 있다.
API 서버(200) 내에 저장되는, 암호화된 사용자의 정보의 부분은, 단말(100)의 요청에 따라 복호화를 위해 단말(100)에게 전송될 수 있다. 단말이 개인키로 암호화된 부분을 서버에게 전달하여 개인키로 암호화된 부분이 공개키를 사용하여 복호화되고, 이후 단말은, 공개키로 복호화된 부분이 다시 공개키로 재암호화된 후 공개키로 재암호화된 부분과 서버에 저장되어 있던 공개키로 암호화된 부분을 함께 서버로부터 수신한다.
이에 따라, 단말은 단말 내에 개인키와 함께 저장되어 있던 개인키로 암호화된 부분과, 서버 내에 공개키와 함께 저장되어 있는 공개키로 암호화된 부분을 안전하게 복호화할 수 있다. 사용자의 정보의 암호화 및 복호화는 아래에서 상세히 설명한다.
API 서버(200)는 사용자에게 금융 서비스를 제공하기 위해 제3자 서버(300)에게 사용자의 인증을 요청하고, 인증 결과에 따른 정보를 단말(100)에게 전달할 수 있다. 예를 들어, 사용자가 금융 서비스를 위해 단말(100)에 설치된 애플리케이션을 통해 로그인 하면, API 서버(200)는 사용자의 아이디(ID)를 이용하여 제3자 서버(300)에게 사용자의 인증을 요청할 수 있다. 사용자가 제3자 서버(300)에 의해 인증되면, 제3자 서버(300)는 API 서버(200)를 거쳐 단말(100)에게, 단말(100)이 제3자 서버(300)에 접속하기 위한 접속 토큰(token)을 제공할 수 있다. 이때 제3자 서버(300)는 구글의 파이어베이스(Firebase)일 수 있고, 제3자 서버(300)에 의해 API 서버(200)를 거쳐 단말(100)에게 전달되는 접속 토큰은 파이어베이스의 커스텀 토큰(Custom Token)일 수 있다. 접속 토큰을 가진 단말(100)은, 제3자 서버(300)에의 접속에 사용될 사용자의 권한에 관한 정보를 포함하고, 접속 토큰은 미리 결정된 시간 동안 유효할 수 있다.
제3자 서버(300)는 단말(100) 및 API 서버(200)의 요청에 의해 사용자를 인증할 수 있다. 제3자 서버(300)는 사용자의 인증을 위해 API 서버(200)를 경유하여 단말(100)에게 접속 토큰을 발급하고, 인증 토큰(ID token)을 단말(100)에게 제공할 수 있다. 인증 토큰은, API 서버(200)가 사용자 또는 단말을 인증할 때 사용되거나, 또는 단말(100)이 접속 토큰을 이용하여 제3자 서버(300)에 접속하고 제3자 서버(300)에게 단말의 인증을 직접 요청할 때 사용될 수 있다. 인증 토큰은, 제3자 서버(300)가 구글의 파이어베이스일 때 파이어베이스에서 사용되는 아이디 토큰(ID token)일 수 있다.
도 2는 한 실시예에 따른 사용자의 정보를 암호화하는 방법을 나타낸 흐름도이다.
단말(100)에 설치된 애플리케이션을 통해 금융 서비스를 이용하기 위해서, 사용자는 계좌 번호, 계좌 비밀번호, 전자 인증서 비밀번호 등의 사용자 정보를 단말(100)에 등록할 수 있다. 이후 단말(100) 또는 단말(100)의 금융 애플리케이션은 단말(100)에 저장된 사용자의 정보를 이용하여 사용자의 계좌 번호에 예치된 잔고 내역 등 사용자의 금융 정보를 획득하고, 획득된 금융 정보를 바탕으로 사용자에게 금융 서비스를 제공할 수 있다.
도 2를 참조하면, 사용자가 사용자의 정보를 입력하면, 한 실시예에 따른 단말(100)은 사용자의 정보를 적어도 두 부분으로 분할할 수 있다(S110). 사용자의 정보가 적어도 두 부분으로 분할되면, 적어도 두 부분 중 제1 부분은 암호화된 후 제1 부분의 암호화에 사용된 키와 함께 단말(100) 내에 저장되고, 적어도 두 부분 중 제2 부분은 암호화된 후 제2 부분의 암호화에 사용된 키와 함께 API 서버(200) 내에 저장될 수 있다.
사용자의 정보가 세 부분 이상으로 분할되면, 한 부분은 암호화된 후 암호화에 사용된 키와 함께 단말(100) 내에 저장되고, 두 번째 부분은 암호화된 후 암호화에 사용된 키와 함께 API 서버(200) 내에 저장되며, 나머지 부분들은 단말(100) 및 API 서버(200)가 아닌 다른 주체 내에 암호화에 사용된 키와 함께 저장될 수 있다.
한 실시예에 따르면, 분할되는 정보의 각 부분은 동일한 길이일 수 있고 또는 서로 다른 길이일 수 있다. 예를 들어, 사용자의 정보가 짝수 개로 분할될 때, 분할된 부분들의 길이는 같을 수 있다. 또는 사용자의 정보가 홀수 개로 분할될 때, 분할된 부분의 길이는 서로 다를 수 있다. 또는 사용자의 정보가 n개로 분할될 때, n-1개의 부분 정보의 길이는 동일하고, 나머지 1개의 부분 정보의 길이만 n-1개의 부분 정보의 길이와 서로 다를 수 있다. 한 실시예에 따른 단말(100)은 사용자의 정보를 분할할 때 복수의 부분 중 한 부분만을 미리 결정된 길이로 나누고, 나머지 부분은 동일한 길이(여기서 '동일한 길이'는 미리 결정된 길이와 서로 다름)로 나눌 수 있다.
한 실시예에 따른 단말(100)은 분할된 사용자의 정보를 각각 암호화하기 위한 키쌍(key pair)을 준비할 수 있다(S120). 키쌍은 단말(100)의 운영체제(안드로이드(Android), iOS 등)에서 제공되는 오픈SSL(secure socket layer, SSL)을 이용하여 생성되고, 개인키(private key) 및 개인키에 대응하는 공개키(public key)를 포함할 수 있다. 그리고 한 실시예에 따른 단말(100)은 분할된 사용자의 정보 중 제1 부분을 개인키로 암호화하고, 분할된 정보 중 제1 부분과 다른 제2 부분을 공개키로 암호화할 수 있다(S130). 한 실시예에 따른 단말(100)은 개인키로 암호화된 제1 부분을 개인키와 함께 단말(100) 내에 저장할 수 있다(S140). 개인키 및 개인키로 암호화된 부분은 키체인(keychain) 또는 키스토어(keystore) 등 단말(100) 내의 안전 영역 내에 저장될 수 있다.
그리고, 단말(100)은 공개키로 암호화된 제2 부분을 공개키와 함께 API 서버(200)에게 이전할 수 있다(S150). 단말은 공개키로 암호화된 제2 부분 및 공개키를 API 서버(200)에게 이전할 때, 공개키로 암호화된 제2 부분 및 공개키의 저장을 서버에게 요청할 수 있다. 공개키로 암호화된 부분은, 전송 계층 보안(Transport Layer Security, TLS) 규약 또는 보안 소켓 레이어(secure Sockets Layer, SSL) 규약을 이용하여 API 서버(200)에게 전송될 수 있다. 공개키 및 공개키로 암호화된 부분은, API 서버(200)에게 전송된 이후 단말(100) 내에서 삭제될 수 있다.
한 실시예에 따른 단말은 공개키 및 공개키로 암호화된 부분을 API 서버(200)에게 이전할 때, 금융 서비스를 위한 사용자의 아이디 및 사용자의 인증을 위한 인증 토큰을 공개키 등과 함께 API 서버(200)에게 전송할 수 있다. 또는 단말(100)은 사용자의 계좌 번호의 해시값(hash value)도 공개키 등과 함께 API 서버(200)에게 전송할 수 있다. 예를 들어, 단말(100)은, 사용자의 은행 계좌 또는 증권 계좌의 잔고 동기화 등을 위해, 사용자의 계좌 번호의 해시값 및 증권사 정보(StockFirm 등)를 공개키로 암호화된 부분 및 공개키와 함께 API 서버(200)에게 전송할 수 있다. 아래에서는 제3자 서버(300)를 통해 사용자 및 단말을 인증하는 방법을 설명한다.
도 3은 한 실시예에 따른 사용자 및 단말의 인증 방법을 나타낸 흐름도이다.
도 3을 참조하면, 사용자가 계정 정보를 이용하여 API 서버(200)에 연결되어 있는, 단말(100)의 애플리케이션에 로그인하면, 단말(100)은 사용자의 계정 정보(예를 들어, 아이디)를 API 서버(200)에게 전송함으로써 사용자 인증(authorization)을 요청할 수 있다(S210). 단말(100)로부터 사용자 인증 요청을 수신한 API 서버(200)는, 사용자의 계정 정보의 전달을 통해 제3자 서버(300)에게 접속 토큰을 요청할 수 있다(S220). 이후 API 서버(200)가 제3자 서버(300)에 접속할 수 있는 접속 토큰을 단말(100)에게 전달하면(S230), 단말(100)은 접속 토큰을 이용하여 제3자 서버(300)에 접속하고, 제3자 서버(300)에게 인증 토큰의 발급을 신청할 수 있다(S240). 이후 제3자 서버(300)에 의해 인증 토큰이 발급되면(S250), 이후, 단말(100)은 인증 토큰의 만료 시간 내에 API 서버(200)에게 인증 토큰을 전달함으로써 단말(100)의 유효성 검증을 요청할 수 있다.
다시 도 2를 참조하면, 공개키 및 공개키로 암호화된 사용자의 정보 부분을 수신한 API 서버(200)는, 인증 토큰의 유효성 검증을 제3자 서버(300)에게 요청할 수 있다(S160). 이후 단말(100)로부터 전송된 인증 토큰이 유효한 것으로 제3자 서버(300)에 의해 검증되면, API 서버(200)는 단말(100)로부터 전송된 공개키 및 공개키로 암호화된 부분 정보를 API 서버(200) 내에 저장하고(S170), 단말(100)에게 저장 완료 메시지를 송신할 수 있다(S180). 단말(100)에게 송신되는 저장 완료 메시지는, 단말이 전송한 인증 토큰의 유효함에 대한 API 서버(200)의 응답일 수 있다. API 서버(200)로부터 저장 완료 메시지를 수신한 단말(100)은 공개키로 암호화된 부분 정보 및 공개키를 단말(100) 내에서 삭제할 수 있다.
앞에서 설명한 대로, 한 실시예에 따르면, 적어도 두 부분으로 분할된 사용자의 정보가 개인키-공개키의 키쌍으로 각각 암호화된 후, 암호화에 사용된 키와 함께 단말과 서버에 분산 저장되므로, 단말 또는 서버 중 한 쪽에서 사용자의 정보의 일부분이 유출되더라도 사용자의 정보 전체는 안전하게 관리될 수 있다.
도 4는 한 실시예에 따른 사용자의 정보를 복호화하는 방법을 나타낸 흐름도이다.
단말(100)은 사용자에게 금융 서비스를 제공하기 위해, 단말(100) 및 API 서버(200) 내에 각각 저장되어 있는 사용자의 정보 부분을 복호화하고, 복호화된 각 부분을 이용하여 사용자의 정보를 복원할 수 있다. 사용자가 사용자의 정보의 복호화를 요구하는 금융 서비스의 제공을 단말(100)을 통해 요청하면, 단말(100)은 제3자 서버(300)로부터 발급된 인증 토큰의 재발급(refresh)을 결정할 수 있다.
인증 토큰의 재발급을 위해 단말(100)은, 기발급된 인증 토큰을 제3자 서버(300)에게 전송하고(S310). 새로운 인증 토큰을 제3자 서버(300)로부터 발급받을 수 있다(S320). 제3자 서버(300)에 의해 제공되는 인증 토큰의 만료 시간은 미리 결정되어 있을 수 있다. 따라서, 단말(100)은 사용자의 정보의 복호화가 필요한 금융 서비스가 요청되면, 인증 토큰의 만료 시간(예를 들어, 1시간)이 경과되었는지 여부를 확인하여 인증 토큰의 재발급 필요를 판단할 수 있다. 인증 토큰의 만료 시간이 아직 경과되지 않았다면, 단말(100)은 인증 토큰의 재발급 없이 인증 토큰을 다시 이용하여 사용자의 정보의 복호화 프로세스를 시작할 수 있다. 하지만, 인증 토큰의 만료 시간이 이미 경과하였다면, 단말(100)은 제3자 서버(300)에 요청하여 새로운 인증 토큰을 재발급 받을 수 있다. 따라서, 사용자의 정보의 복호화 이전에, 인증 토큰의 재발급은 필수적 절차가 아닐 수 있다. 사용자 계정이 삭제되었거나, 사용자 계정이 비활성화 상태이거나, 또는 사용자 계정의 계정 정보가 변경되었다면, 만료 시간이 경과하지 않았더라도 인증 토큰은 재사용될 수 없다.
사용자의 정보의 복호화를 위해, 단말(100)은 개인키로 암호화된 부분(제1 부분)을 API 서버(200)에게 전송할 수 있다(S330). 개인키로 암호화된 제1 부분은, 전송 계층 보안(Transport Layer Security, TLS) 규약 또는 보안 소켓 레이어(secure Sockets Layer, SSL) 규약을 이용하여 API 서버(200)에게 전송될 수 있다. 그리고 단말(100)은 개인키로 암호화된 제1 부분과 함께, 인증 토큰 및 계좌 번호의 해시값 등을 API 서버(200)에게 전송할 수 있다. 이후 API 서버(200)는 제3자 서버(300)를 통해 단말(100)로부터 전달된 인증 토큰을 검증한다(S340). 인증 토큰이 유효한 것으로 검증되면, 단말의 API 서버(200)는 개인키로 암호화된 제1 부분을 공개키를 이용하여 복호화하고, 복호화된 제1 부분을 다시 공개키로 재암호화할 수 있다(S350). 단말(100)로부터 전달된 제1 부분은 개인키로 암호화되어 있기 때문에 공개키를 통해서만 복호화될 수 있고, 이후 단말에서 개인키를 이용하여 복호화할 수 있도록 하기 위해 API 서버(200)는 공개키를 이용하여 제1 부분을 다시 암호화할 수 있다.
그리고 API 서버(200)는, 단말(100)로부터 전달된, 공개키로 암호화된 사용자의 정보 부분(제2 부분)과 함께, 공개키로 다시 암호화된 제1 부분을 단말(100)에게 전송할 수 있다(S360). 즉, 공개키로 재암호화된 제1 부분 및 공개키로 암호화된 제2 부분이 단말(100)에게 전달되는 것은, 단말(100)이 암호화된 제1 부분을 서버에게 전송한 것에 대한 응답일 수 있다. 또는 공개키로 재암호화된 제1 부분 및 공개키로 암호화된 제2 부분이 단말(100)에게 전달되는 것은, 단말(100)로부터 전달된 인증 토큰의 유효함에 대한 응답일 수 있다. API 서버(200)로부터 전달된, 공개키로 재암호화된 제1 부분 및 공개키로 암호화된 제2 부분을 수신한 단말(100)은, 개인키를 이용하여 제1 부분 및 제2 부분을 각각 복호화하고(S370), 복호화된 제1 부분 및 제2 부분을 이용하여 온전한 형태의 사용자의 정보를 획득할 수 있다(S380). 이후, 단말(100)은 개인키를 이용하여 복호화된 제1 부분 및 제2 부분의 결합을 통해 획득되는 사용자의 정보를 이용하여, 사용자가 이용하는 금융 기관에 접속하고, 사용자에게 금융 서비스를 제공할 수 있다.
앞에서 설명한 대로, 한 실시예에 따르면, 단말은 개인키로 암호화된 부분을 서버에게 전달하여 복호화되도록 하고, 공개키로 복호화된 부분이 서버에 의해 다시 공개키로 재암호화된 후 공개키로 재암호화된 부분 및 공개키로 암호화된 다른 부분을 서버로부터 수신하므로, 단말은 단말 내에 저장된, 개인키로 암호화된 부분과 서버 내에 저장된 공개키로 암호화된 부분을 안전하게 복호화할 수 있다.
도 5는 한 실시예에 따른 금융 서비스 제공 시스템의 단말을 나타낸 블록도이다.
한 실시예에 따른 금융 서비스 제공 시스템의 단말은, 컴퓨터 시스템, 예를 들어 컴퓨터 판독 가능 매체로 구현될 수 있다. 도 5를 참조하면, 컴퓨터 시스템(500)은, 버스(570)를 통해 통신하는 프로세서(510), 메모리(530), 입력 인터페이스 장치(550), 출력 인터페이스 장치(560), 및 저장 장치(540) 중 적어도 하나를 포함할 수 있다. 컴퓨터 시스템(500)은 또한 네트워크에 결합된 통신 장치(520)를 포함할 수 있다. 프로세서(510)는 중앙 처리 장치(central processing unit, CPU)이거나, 또는 메모리(530) 또는 저장 장치(540)에 저장된 명령을 실행하는 반도체 장치일 수 있다. 메모리(530) 및 저장 장치(540)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read only memory) 및 RAM(random access memory)를 포함할 수 있다. 본 기재의 실시예에서 메모리는 프로세서의 내부 또는 외부에 위치할 수 있고, 메모리는 이미 알려진 다양한 수단을 통해 프로세서와 연결될 수 있다. 메모리는 다양한 형태의 휘발성 또는 비휘발성 저장 매체이며, 예를 들어, 메모리는 읽기 전용 메모리(read-only memory, ROM) 또는 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터에 구현된 방법으로서 구현되거나, 컴퓨터 실행 가능 명령이 저장된 비일시적 컴퓨터 판독 가능 매체로서 구현될 수 있다. 한 실시예에서, 프로세서에 의해 실행될 때, 컴퓨터 판독 가능 명령은 본 기재의 적어도 하나의 양상에 따른 방법을 수행할 수 있다.
통신 장치(520)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다.
한편, 본 발명의 실시예는 지금까지 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 상술한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 통상의 기술자라면 쉽게 구현할 수 있는 것이다. 구체적으로, 본 발명의 실시예에 따른 방법(예, 네트워크 관리 방법, 데이터 전송 방법, 전송 스케줄 생성 방법 등)은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어, 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은, 본 발명의 실시예를 위해 특별히 설계되어 구성된 것이거나, 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체는 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치를 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 기록 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등일 수 있다. 프로그램 명령은 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 통해 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (15)

  1. 단말이 사용자의 정보를 관리하는 방법으로서,
    개인키 및 상기 개인키에 대응하는 공개키를 준비하는 단계;
    상기 정보에 포함된 제1 부분을 상기 개인키를 이용하여 암호화하고, 상기 정보에 포함되고 상기 제1 부분과 서로 다른 제2 부분을 상기 공개키를 이용하여 암호화하는 단계;
    상기 암호화된 제1 부분 및 상기 개인키를 저장하는 단계; 및
    상기 암호화된 제2 부분 및 상기 공개키를 서버에 이전하는 단계
    를 포함하는 정보 관리 방법.
  2. 제1항에 있어서,
    상기 암호화된 제2 부분 및 상기 공개키를 서버에 이전하는 단계는,
    상기 암호화된 제2 부분 및 상기 공개키의 저장을 상기 서버에게 요청하는 단계; 및
    상기 암호화된 제2 부분 및 상기 공개키가 상기 서버에 저장되었음이 확인되면 상기 공개키 및 상기 암호화된 제2 부분을 상기 단말에서 삭제하는 단계
    를 포함하는 정보 관리 방법.
  3. 제2항에 있어서,
    제1 인증 토큰(authentication token)을 준비하는 단계
    를 더 포함하고,
    상기 암호화된 제2 부분 및 상기 공개키를 상기 서버에 이전하는 단계는,
    상기 제1 인증 토큰을 상기 서버에게 전송하는 단계; 및
    상기 제1 인증 토큰이 유효함에 대한 응답으로서, 상기 서버로부터 상기 암호화된 제2 부분 및 상기 공개키가 상기 서버에 저장되었음을 나타내는 응답을 수신하는 단계
    를 더 포함하는 정보 관리 방법.
  4. 제1항에 있어서,
    상기 암호화된 제2 부분 및 상기 공개키를 서버에 이전하는 단계 이후에,
    상기 암호화된 제1 부분을 서버에게 전송하는 단계;
    상기 서버에의 전송에 대한 응답으로서, 상기 암호화된 제1 부분이 상기 서버에 이전된 공개키를 이용하여 복호화된 후 상기 복호화된 결과물이 상기 공개키를 이용하여 암호화됨으로써 생성된 재암호화된 제1 부분 및 상기 서버에 이전된 상기 암호화된 제2 부분을 상기 서버로부터 수신하는 단계;
    상기 수신된 재암호화된 제1 부분 및 암호화된 제2 부분을 상기 저장된 개인키를 이용하여 각각 복호화하는 단계; 및
    상기 복호화된 제1 부분 및 복호화된 제2 부분을 이용하여 상기 정보를 복원하는 단계
    를 더 포함하는 정보 관리 방법.
  5. 제4항에 있어서,
    제2 인증 토큰을 준비하고 상기 제2 인증 토큰을 상기 서버에게 전송하는 단계
    를 더 포함하고,
    상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 상기 서버로부터 수신하는 단계는,
    상기 제2 인증 토큰이 유효함에 대한 응답으로서, 상기 서버로부터 상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 수신하는 단계
    를 포함하는 정보 관리 방법.
  6. 단말이 사용자의 정보를 관리하는 방법으로서,
    상기 정보의 일부이고 개인키로 암호화된 상태로 상기 단말에 저장되어 있던 제1 부분을 서버에게 전송하는 단계;
    상기 서버에의 전송에 대한 응답으로, 상기 개인키에 대응하는 공개키를 이용하여 상기 암호화된 제1 부분이 복호화된 후 상기 복호화된 결과물이 상기 공개키를 이용하여 암호화됨으로써 생성된 재암호화된 제1 부분, 및 상기 정보의 다른 일부이고 상기 공개키로 암호화된 상태로 상기 서버에 저장되어 있던 제2 부분을 상기 서버로부터 수신하는 단계;
    상기 수신된 재암호화된 제1 부분 및 암호화된 제2 부분을 상기 개인키를 이용하여 각각 복호화하는 단계; 및
    상기 복호화된 제1 부분 및 복호화된 제2 부분을 이용하여 상기 정보를 획득하는 단계
    를 포함하는 정보 관리 방법.
  7. 제6항에 있어서,
    인증 토큰을 준비하고 상기 인증 토큰을 상기 서버에게 전송하는 단계
    를 더 포함하고,
    상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 상기 서버로부터 수신하는 단계는,
    상기 인증 토큰이 유효함에 대한 응답으로서, 상기 서버로부터 상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 수신하는 단계
    를 포함하는 정보 관리 방법.
  8. 서버가 사용자의 정보를 관리하는 방법으로서,
    상기 정보에 포함된 제1 부분이 공개키를 이용하여 암호화됨으로써 생성된 암호화된 제1 부분 및 상기 공개키를 단말로부터 수신하는 단계;
    상기 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계;
    상기 정보에 포함되고 상기 제1 부분과 서로 다른 제2 부분이 상기 공개키에 대응하는 개인키로 암호화됨으로써 생성된 암호화된 제2 부분을 상기 단말로부터 수신하는 단계;
    상기 수신된 암호화된 제2 부분을 상기 저장된 공개키를 이용하여 복호화하는 단계;
    상기 복호화된 제2 부분을 상기 공개키를 이용하여 재암호화하는 단계; 및
    상기 재암호화된 제2 부분 및 상기 저장된 암호화된 제1 부분을 상기 단말에게 전송하는 단계
    를 포함하는 정보 관리 방법.
  9. 제8항에 있어서,
    상기 단말로부터 제1 인증 토큰을 수신하는 단계
    를 더 포함하고,
    상기 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계는,
    상기 수신된 제1 인증 토큰이 유효한지 여부를 검증하는 단계;
    상기 제1 인증 토큰이 유효하다고 검증되면 상기 수신된 암호화된 제1 부분 및 공개키를 저장하는 단계; 및
    상기 암호화된 제1 부분 및 상기 공개키가 상기 서버에 저장되었음을 나타내는 응답을 상기 단말에게 전송하는 단계
    를 포함하는 정보 관리 방법.
  10. 삭제
  11. 제8항에 있어서,
    상기 단말로부터 제2 인증 토큰을 수신하는 단계; 및
    상기 수신된 제2 인증 토큰이 유효한지 여부를 검증하는 단계
    를 더 포함하고,
    상기 재암호화된 제2 부분 및 상기 저장된 암호화된 제1 부분을 상기 단말에게 전송하는 단계는,
    상기 제2 인증 토큰이 유효하다고 검증되면 상기 재암호화된 제2 부분 및 상기 저장된 암호화된 제1 부분을 상기 단말에게 전송하는 단계
    를 포함하는 정보 관리 방법.
  12. 서버가 사용자의 정보를 관리하는 방법으로서,
    상기 정보의 일부이고 개인키로 암호화된 상태로 단말에 저장되어 있던 제1 부분을 상기 단말로부터 수신하는 단계;
    상기 개인키에 대응하고 상기 서버에 저장되어 있던 공개키를 이용하여 상기 수신된 암호화된 제1 부분을 복호화하는 단계;
    상기 복호화된 제1 부분을 상기 공개키를 이용하여 재암호화하는 단계; 및
    상기 재암호화된 제1 부분, 및 상기 정보의 다른 일부이고 상기 공개키로 암호화된 상태로 상기 서버에 저장되어 있던 제2 부분을 상기 단말에게 전송하는 단계
    를 포함하는 정보 관리 방법.
  13. 제12항에 있어서,
    상기 단말로부터 인증 토큰을 수신하는 단계; 및
    상기 수신된 인증 토큰이 유효한지 여부를 검증하는 단계
    를 더 포함하고,
    상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 상기 단말에게 전송하는 단계는,
    상기 인증 토큰이 유효하다고 검증되면 상기 재암호화된 제1 부분 및 상기 암호화된 제2 부분을 상기 단말에게 전송하는 단계
    를 포함하는 정보 관리 방법.
  14. 사용자의 정보를 관리하는 단말로서,
    프로세서, 메모리, 및 통신부를 포함하고, 상기 프로세서는 상기 메모리에 저장된 프로그램을 실행함으로써,
    개인키 및 상기 개인키에 대응하는 공개키를 준비하는 단계;
    상기 정보에 포함된 제1 부분을 상기 개인키를 이용하여 암호화하고, 상기 정보에 포함되고 상기 제1 부분과 서로 다른 제2 부분을 상기 공개키를 이용하여 암호화하는 단계;
    상기 암호화된 제1 부분 및 상기 개인키를 상기 메모리에 저장하는 단계; 및
    상기 통신부를 통해, 상기 암호화된 제2 부분 및 상기 공개키를 서버에 이전하는 단계
    를 수행하는 단말.
  15. 사용자의 정보를 관리하는 서버로서,
    프로세서, 메모리, 및 통신부를 포함하고, 상기 프로세서는 상기 메모리에 저장된 프로그램을 실행함으로써,
    상기 통신부를 통해, 상기 정보의 일부이고 개인키로 암호화된 상태로 단말에 저장되어 있던 제1 부분을 상기 단말로부터 수신하는 단계;
    상기 개인키에 대응하고 상기 메모리에 저장되어 있던 공개키를 이용하여 상기 수신된 암호화된 제1 부분을 복호화하는 단계;
    상기 복호화된 제1 부분을 상기 공개키를 이용하여 재암호화하는 단계; 및
    상기 통신부를 통해, 상기 재암호화된 제1 부분, 및 상기 정보의 다른 일부이고 상기 공개키로 암호화된 상태로 상기 메모리에 저장되어 있던 제2 부분을 상기 단말에게 전송하는 단계
    를 수행하는 서버.
KR1020190142796A 2019-11-08 2019-11-08 사용자 정보의 관리 방법 및 단말 KR102320667B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190142796A KR102320667B1 (ko) 2019-11-08 2019-11-08 사용자 정보의 관리 방법 및 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190142796A KR102320667B1 (ko) 2019-11-08 2019-11-08 사용자 정보의 관리 방법 및 단말

Publications (2)

Publication Number Publication Date
KR20210056111A KR20210056111A (ko) 2021-05-18
KR102320667B1 true KR102320667B1 (ko) 2021-11-02

Family

ID=76158740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190142796A KR102320667B1 (ko) 2019-11-08 2019-11-08 사용자 정보의 관리 방법 및 단말

Country Status (1)

Country Link
KR (1) KR102320667B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101000788B1 (ko) * 2007-12-17 2010-12-13 한국전자통신연구원 웹기반 소프트웨어 처리 시스템 및 그의 데이터 보안방법
KR101697868B1 (ko) * 2015-05-19 2017-01-19 포항공과대학교 산학협력단 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
KR101982237B1 (ko) * 2017-03-06 2019-05-24 고려대학교 산학협력단 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템
KR101974452B1 (ko) * 2017-05-24 2019-05-03 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자정보 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR20210056111A (ko) 2021-05-18

Similar Documents

Publication Publication Date Title
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
US9160732B2 (en) System and methods for online authentication
US10079682B2 (en) Method for managing a trusted identity
US9860245B2 (en) System and methods for online authentication
CN103684766B (zh) 一种终端用户的私钥保护方法和***
US6834112B1 (en) Secure distribution of private keys to multiple clients
US8306228B2 (en) Universal secure messaging for cryptographic modules
EP2915279B1 (en) Method and system for protected exchange of data
WO2020050390A1 (ja) 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法
KR100947119B1 (ko) 인증서 검증 방법, 인증서 관리 방법 및 이를 수행하는단말
ES2665887T3 (es) Sistema de datos seguro
US11468177B2 (en) Apparatus and method for encrypting data in a data storage system
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
KR20190045753A (ko) 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버
KR101007375B1 (ko) 스마트 카드 인증서 관리 장치 및 방법
JP4794970B2 (ja) 秘密情報の保護方法及び通信装置
KR102070248B1 (ko) 개인키의 안전 보관을 지원하는 사용자 간편 인증 장치 및 그 동작 방법
KR102320667B1 (ko) 사용자 정보의 관리 방법 및 단말
KR100989371B1 (ko) 개인 홈 도메인을 위한 디지털 저작권 관리방법
JP2006129143A (ja) 秘密情報送受信システム及び方法、サーバー装置及びプログラム、並びに鍵情報保持装置
KR20170111809A (ko) 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법
US12047496B1 (en) Noncustodial techniques for granular encryption and decryption
TWI783265B (zh) 基於區塊鏈的資料加密登錄與多方授權驗證系統及其方法
JP2008294861A (ja) 鍵管理方法及びシステム及びサービス提供センタ装置及びicカード及びプログラム
WO2022124352A1 (ja) リクエスト検証システムおよびリクエスト検証方法

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