WO2020204444A2 - 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 - Google Patents

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 Download PDF

Info

Publication number
WO2020204444A2
WO2020204444A2 PCT/KR2020/004042 KR2020004042W WO2020204444A2 WO 2020204444 A2 WO2020204444 A2 WO 2020204444A2 KR 2020004042 W KR2020004042 W KR 2020004042W WO 2020204444 A2 WO2020204444 A2 WO 2020204444A2
Authority
WO
WIPO (PCT)
Prior art keywords
key
encryption key
fragment
wallet app
encryption
Prior art date
Application number
PCT/KR2020/004042
Other languages
English (en)
French (fr)
Other versions
WO2020204444A3 (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 (주)누리텔레콤
Publication of WO2020204444A2 publication Critical patent/WO2020204444A2/ko
Publication of WO2020204444A3 publication Critical patent/WO2020204444A3/ko

Links

Images

Classifications

    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Definitions

  • the present invention relates to security, and more specifically, to a secret key security technology.
  • Cryptocurrency wallets or wallets store private keys and public keys to store cryptocurrency assets, create new accounts, create signatures, create transactions, and/or set additional security (patterns, fingerprints, facial recognition, etc.) Biometric authentication) can be provided.
  • Existing cryptocurrency wallet security mechanisms include setting different passwords for each platform or using two-factor authentication (2FA), but mobile banking services, simple payment services, and various fintech services, When it is applied to user authentication and financial transaction activities, electronic authentication and electronic payment signatures for online electronic financial transactions, etc., it is vulnerable to hacking and has a security problem.
  • 2FA two-factor authentication
  • an object of the present invention is a secret key security method for distributing and storing keys in an owning device and/or a blockchain node on which a wallet app is installed in order to further enhance security, and a computer recording a program that performs the same It is to provide a recording medium that can be read by.
  • a secret key security method for distributing and storing a key in an owning device and a blockchain node on which a wallet app is installed includes the steps of generating a key pair of a private key and a public key in the wallet app, and the Generating an encryption key (enc key) to encrypt the private key in a wallet app, and generating an encryption key (wrap key) by encrypting the private key with the encryption key (enc key) in the wallet app
  • the wallet app separates the encryption key (wrap key) into at least two fragments including a first encryption key fragment and a second encryption key fragment at a random first key separation ratio, and the encryption key separating (enc key) into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary second key separation ratio, and the separated first encryption in the wallet app Combining the key fragment and the second encryption key fragment with the separated first encryption key fragment and the second encryption key fragment, and the first and subsequent combination key separated and subsequently
  • the second pre-post-combination key separated from the wallet app and subsequently combined-the second pre-post-combination key is another one of the first encryption key fragment and the second encryption key fragment and the first encryption key
  • IPFS Inter Planetary File System
  • the encryption key (wrap key) and the encryption key (enc key) key are randomly adjusted to at least two pieces through a key separation map using the device identifier (ID) of the owning device. Can be separated while doing.
  • the device identifier (ID) may include one of an International Mobile Equipment Identity (IMEI) and an Android device serial number.
  • the device identifier (ID) may include one of Universally Unique Identifiers (UUID) and Unique Device Identifiers (UDID) in the case of a device using the iOS platform.
  • the first key separation ratio of the encryption key (wrap key) is 1:9, 2: by performing a MOD operation to 8 based on the nth digit of the device identifier (ID) value-where n is a natural number.
  • the key separation ratio can be determined by the number of 9 cases: 8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 and 9:1.
  • the encryption key (wrap key) at the first key separation ratio, the two encryption keys (wrap key), a pre-wrapkey (W1) in front of the wrap key and a post-wrapkey (W2) in the back of the encryption key (wrap key) Can be separated into pieces.
  • the second key separation ratio of the encryption key (enc key) is 1:9, 2: by performing a MOD operation of 8 based on the m-th digit of the device identifier (ID) value-where m is a natural number-
  • the key separation ratio can be determined by the number of 9 cases: 8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 and 9:1.
  • the encryption key (enc key) at the second key separation ratio, the two encryption keys (enc key): a pre-enckey (E1) in front of the encryption key (E1) and a post-enckey (E2) after the encryption key (enc key). key) can be separated into pieces.
  • the combination of the separated key pieces may be determined as the number of eight cases by performing a MOD operation with 7 based on the k-th digit of the device identifier (ID) value-where k is a natural number.
  • the first combination key separated and subsequently combined in the wallet app-the first combination key is one of the first encryption key fragment and the second encryption key fragment, the first encryption key fragment and the second encryption key.
  • One of the key fragments is previously combined-and the second pre- and post-combined key-the second pre- and post-combined key is the other one of the first encryption key fragment and the second encryption key fragment, the first encryption key fragment and the second It may further include the step of determining a storage location in the owning device and the blockchain node, which is a combination of the other one of the encryption key fragments in the future.
  • the blockchain node may further include the step of distributedly storing the second pre-and-after binding key in the blockchain node.
  • the wallet app may further include performing biometric authentication through a biometric authentication device.
  • the wallet app further comprises the step of transmitting a request for a part of a wrap key and a part of an enc key to the owning device, and receiving a response to the owning device storage combination key from the owning device, wherein the owning
  • the device storage combination key response may include a part of a wrap key and a part of an enc key stored in the requested owning device.
  • the wallet app transmits a part of the encryption key (wrap key) and part of the encryption key (enc key) request to the blockchain node using the IPFS protocol, and the encryption key distributedly stored in the blockchain node from the blockchain node ( A part of the wrap key) and a part of the encryption key (enc key), further comprising the step of receiving a response, wherein a part of the encryption key and a part of the encryption key (enc key) are distributed and stored in the requested blockchain node. It may include a part of a wrap key and a part of an enc key.
  • part of the encryption key (wrap key) and part of the encryption key (enc key) stored in the owning device, and part of the encryption key (wrap key) and part of the encryption key (enc key) inquired through the blockchain node Recovering the encryption key (wrap key) and the encryption key (enc key) in combination, and decrypting the recovered encryption key (wrap key) using the recovered encryption key (enc key) in the wallet app
  • the method may further include obtaining a private key, and electronically signing a transaction using the obtained private key in the wallet app and transmitting the electronic signature or the electronically signed value to a service block chain.
  • a computer-readable recording medium in which a program for executing a secret key security method for distributing and storing keys in a device and a blockchain node with a wallet app installed on a computer is recorded in the wallet app.
  • the wallet app includes a first encryption key fragment and a second encryption key fragment at an arbitrary first key separation ratio.
  • the encryption key is divided into at least two fragments, and the enc key is divided into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary second key separation ratio. Separating, and sequentially combining the separated first encryption key fragment and second encryption key fragment and the separated first encryption key fragment and second encryption key fragment in the wallet app, and in the wallet app.
  • the separated and first combined key-the first combined key is one of the first encryption key fragment and the second encryption key fragment, and one of the first encryption key fragment and the second encryption key fragment
  • Transmitting a storage request of the pre-and-after-combination to the owning device, and a second pre- and post-combination key separated from the wallet app and subsequently combined-the second pre- and post-combination key is the first encryption key fragment and
  • the block chain node is a storage request that is a combination of the other one of the second encryption key fragment and the other one of the first encryption key fragment and the second encryption key fragment using an IPFS (Inter Planetary File System)
  • a secret key security method of distributing and storing a key in at least one of a device and a blockchain node on which a wallet app is installed generates a key pair of a private key and a public key in the wallet app.
  • Steps generating an encryption key (enc key) to encrypt the private key in the wallet app, and encrypting the private key with the encryption key (enc key) in the wallet app and an encryption key (wrap key) Generating, and separating the encryption key (wrap key) into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary first key separation ratio in the wallet app, and , Separating the encryption key (enc key) into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary second key separation ratio, and the separation in the wallet app Combining the separated first encryption key fragment and the second encryption key fragment with the separated first encryption key fragment and the second encryption key fragment, and the first and subsequent combination that is separated and subsequently combined in the wallet app
  • the storage request of the key-the first and subsequent combination key is a combination of one of the first encryption key fragment and the second encryption key fragment and one of the first encryption key fragment and the second encryption key fragment in the future.
  • the second pre- and post-combination key that is transmitted to the owning device or is separated from the wallet app and subsequently combined-the second pre- and post-combination key is the other one of the first encryption key fragment and the second encryption key fragment and the first And transmitting a storage request of the encryption key fragment and the other one of the second encryption key fragment, which are subsequently combined, to the blockchain node using an IPFS (Inter Planetary File System) protocol.
  • IPFS Inter Planetary File System
  • the device identifier (ID) or public key of the owning device Using a wallet constant containing a value of a specific number of digits (decimal), it is divided into at least two separate pieces of an encryption key (wrap key) and at least two separate pieces of an encryption key (enc key) at a random ratio
  • a wallet constant containing a value of a specific number of digits (decimal)
  • an encryption key in a device owned by a wallet app is installed.
  • a part of the (wrap key) and part of the encryption key (enc key) are distributed and stored in the block chain node forming a pair with it Since hacking is possible only if it is possible, hacking is practically impossible, so security can be further strengthened.
  • part of the encryption key (wrap key) and part of the encryption key (enc key) distributed in the blockchain node are part of the encryption key (wrap key) and part of the encryption key (enc key) in the owning device where the wallet app is installed. It is difficult to check the relationship with the outside, so it is impossible to search for a matching key. In addition, it is impossible to obtain a corresponding key because a part of the key is stored in a secure zone equivalent to a hardware security module (HSM) provided by the owning device.
  • HSM hardware security module
  • FIG. 1 is a system configuration diagram for performing a secret key security method of distributedly storing keys in an owning device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a secret key security method for distributing and storing keys in an owning device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • FIG. 3 is a table showing a key separation ratio map according to an embodiment of the present invention.
  • FIG. 4 shows two encryption keys of a pre-wrapkey (W1) at the front of the wrap key and a post-wrapkey (W2) at the back of the wrap key at a separation ratio of 6:4.
  • W1 pre-wrapkey
  • W2 post-wrapkey
  • FIG. 4 shows two encryption keys of a pre-wrapkey (W1) at the front of the wrap key and a post-wrapkey (W2) at the back of the wrap key at a separation ratio of 6:4.
  • W1 pre-wrapkey
  • W2 post-wrapkey
  • FIG. 5 shows two encryption keys of a pre-enckey (E1) in front of an encryption key (E1) and a post-enckey (E2) after an encryption key (enc key) at a separation ratio of 3:7. (enc key)
  • E1 pre-enckey
  • E2 post-enckey
  • FIG. 6 is a table showing a pre-and-after association map of a separated key for storage in an owning device and/or a block chain node through random combination of separated keys according to an embodiment of the present invention.
  • 7A to 7H illustrate an example of storing in an owning device through random combination of separated keys according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a method of using a secret key distributedly stored in a key on a device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • first and second may be used to describe various elements, but the elements are not limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.
  • the term and/or includes a combination of a plurality of related items or any of a plurality of related items.
  • a component When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but another component may exist in the middle. On the other hand, when a component is referred to as being “directly connected” or “directly connected” to another component, it should be understood that there is no other component in the middle.
  • the public key is used for encryption and may be, for example, a wallet address.
  • the public key can be used in the case of transacting assets such as cryptocurrency, for example, when receiving cryptocurrency deposits or inquiring details of deposit and withdrawal of cryptocurrency. You cannot withdraw money.
  • the private key is used for decryption.For example, in the case of trading assets such as cryptocurrency, when transferring cryptocurrency to another wallet, online/ It can be used when paying at an offline store, when trading currency at an exchange, or when querying the details of deposit and withdrawal of money.
  • the secret key is used in the same sense as the private key.
  • the encryption key is a key for encrypting a private key (private key).
  • An encryption key is a key obtained by encrypting a private key with an enc key or an encrypted value.
  • FIG. 1 is a system configuration diagram for performing a secret key security method of distributedly storing keys in an owning device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • a system for performing a secret key security method of distributing and storing keys in an owning device and/or a blockchain node on which a wallet app is installed is a wallet 100 and a wallet 100. It consists of an installed owned device (not shown) and a block chain node 200.
  • the wallet app 100 uses at least two separate pieces of a wrap key and an encryption key by using a wallet constant including a device identifier (ID) of the owning device and a value (decimal number) of a specific digit of the public key. At least two separate pieces of (enc key) are separated at a random ratio, and each piece is combined in a random combination and distributed to the owned device and/or blockchain node where the user's wallet app is installed. And save it.
  • ID device identifier
  • a value decimal number
  • FIG. 2 is a flowchart illustrating a secret key security method for distributing and storing keys in an owning device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • the wallet app 100 requests biometric authentication from the biometric authentication device 120 (step 210), and receives a biometric authentication result response 212 from the biometric authentication device 120.
  • the biometric authentication may be performed using a biometric signal such as a fingerprint or biometric information.
  • the biosignal may include facial features, voice, iris, retina, hand geometry, signature dynamics, keystroke dynamics, lip movement, thermal face image, thermal hand image, gait, body odor, and the like.
  • the wallet app 100 When the biometric authentication is successful, the wallet app 100 generates a key pair of a private key and a public key (step 214).
  • the private key may be generated using the biometric signal or the biometric information.
  • the private key may be randomly generated.
  • the private key may be randomly generated with a general random number generator, for example, or may be generated using a function having high entropy (randomness).
  • the private key may be, for example, a random value consisting of 128, 192, or 256 bits.
  • the wallet app 100 generates an encryption key (enc key) to encrypt the private key (step 216).
  • the private key is encrypted with an enc key to generate an encryption key (step 216).
  • the wallet app 100 separates each of an encryption key (wrap key) and an encryption key (enc key) into at least two fragments at a random key separation ratio (step 220).
  • the encryption key (wrap key) is separated into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary first key separation ratio
  • the encryption key ( enc key) may be divided into at least two fragments including a first encryption key fragment and a second encryption key fragment at an arbitrary second key separation ratio.
  • the separated piece of the encryption key (wrap key) and the piece of the separated encryption key (enc key) are previously combined (step 222). A detailed description will be given later with reference to FIGS. 6 to 7H.
  • a storage location in the device 150 and/or the blockchain node 200 owns a part of the separate and subsequently combined encryption key and a part of the encryption key. It is determined (step 224).
  • the owning device is a device in which the wallet app 100 is installed.
  • the wallet app 100 transmits a request 226 to store a part of a wrap key and a part of an enc key to the owning device 150, and a device key storage result response 228 from the owning device 150 Receive.
  • the wallet app 100 may include information on a key storage location in the owning device 150 in, for example, an Android KeyStore access key and transmit it to the owning device 150.
  • the access key is an alias or address for accessing a key stored in an Android KeyStore.
  • the request 226 to store a part of the wrap key and a part of the enc key corresponds to a request for storing the first and subsequent combination keys separated and subsequently combined.
  • the first and subsequent combination key is one of a first encryption key fragment and a second encryption key fragment of the encryption key (wrap key), and one of a first encryption key fragment and a second encryption key fragment of the encryption key (enc key) It is a combination of first and second. A detailed description will be given later with reference to FIGS. 3 to 7H.
  • the device key storage result response 228 may return a value such as, for example, true or false.
  • the owning device 150 may store a part of a wrap key and a part of an encryption key in the owning device 150.
  • a part of an encryption key (wrap key) and a part of an encryption key (enc key) are hardware-based, which is an Android KeyStore, to secure the Android device. It can be stored on an Android device using hardware-for example, Trusted Execution Environment (TEE) or Secure Element (SE).
  • TEE Trusted Execution Environment
  • SE Secure Element
  • the Android keystore system protects important key materials (e.g., initialization vector (IV) values) against unauthorized use.
  • the initialization vector (IV) refers to a value used when encrypting the first block.
  • the method of using the initialization vector is different for each encryption operation method, and even if the encryption key value is extracted, it is impossible to extract the initialization vector iv value, so that hacking is impossible.
  • the Android KeyStore reduces the threat of unauthorized access by protecting key material extraction against unauthorized use of key material outside of Android devices.
  • Android Keystore reduces the threat of unauthorized access by specifying keys for unauthorized access from Android devices and enforcing these restrictions outside the app process.
  • the key materials of the Android keystore keys are protected by two security measures.
  • the key material is never accessible in the application process.
  • an application performs a password-related operation using the Android keystore, plaintext/cipher/message, etc. necessary for signing/verification, etc. are supplied through the system process at the back end. If the app process is exposed to threats, the attacker may be able to use the app's keys, but cannot steal the key material.
  • the key material may be bound to secure hardware (e.g., Trusted Execution Environment (TEE), Secure Element (SE)). If the function is enabled for a key, the key material for that key can never be exposed outside of secure hardware. Even if the Android OS is exposed to threats or even if an attacker can read the system's internal storage, it cannot extract the keys of the Android keystore.
  • secure hardware e.g., Trusted Execution Environment (TEE), Secure Element (SE)
  • the wallet app 100 transmits a partial encryption key (wrap key) and a partial encryption key (enc key) storage request 230 to the blockchain node 200 using an IPFS (Inter Planetary File System) protocol.
  • IPFS Inter Planetary File System
  • the blockchain node 200 distributes and stores a part of an encryption key (wrap key) and a part of an encryption key (enc key) to each node of the blockchain network using the IPFS protocol (step 232).
  • IPFS Inter Planetary File System
  • a part of the wrap key and part of the enc key can be stored in 256 kb, or if it is larger than 256 kb, it can be divided into 256 kb and stored.
  • a part of the wrap key and part of the enc key may be resized to 256kb or more.
  • Defragmentation can be stored on each node of the blockchain network, rather than the same copy (COPY). Specifically, when the key stored in the blockchain is viewed as one whole (WRAPKEY+ENCKEY), itself can be distributed and stored in the blockchain node as a piece. For example, node 1 may store only 30% of the complete body, node 2 may store 70% of the complete body, and node 3 may store 100% of the complete body.
  • the same copy may be stored on each node of the blockchain network. In this case, if some of the blockchain nodes break-down, it is possible to prevent authentication failure.
  • the request 230 for storing a part of the wrap key and a part of the enc key corresponds to a request for storing a second pre- and post-combined key separated and subsequently combined.
  • the second pre-and-after combination key is the other of the first encryption key fragment and the second encryption key fragment of the encryption key (wrap key) and the first encryption key fragment and the second encryption key fragment of the encryption key (enc key) It is a combination of the other. A detailed description will be given later with reference to FIGS. 3 to 7H.
  • the secret key security method of distributing and storing keys on the own device and/or the blockchain node on which the wallet app of FIG. 2 is installed for example, distributes the key to the owner device and/or the blockchain node when signing up for the banking service in the mobile banking service. Can be applied to save.
  • FIG. 3 is a table showing a key separation ratio map according to an embodiment of the present invention.
  • the encryption key (wrap key) and the encryption key (enc key) key are randomly adjusted into two pieces through a key separation map using a device identifier (ID). Can be separated while doing.
  • the encryption key (wrap key) and the encryption key (enc key) key are fragmented using a wallet constant including a value (decimal) of a specific number of digits of the public key rather than a device identifier (ID). It may be divided into pieces, but is not limited thereto, and may be divided into pieces by using other unique values of the device or other specific values of the wallet.
  • the device identifier may be, for example, a terminal unique serial number such as IMEI (International Mobile Equipment Identity) or an Android device serial number, for a device using the Android platform.
  • IMEI International Mobile Equipment Identity
  • Android device serial number for a device using the Android platform.
  • the device identifier is a unique user identifier such as UUID (Universally Unique Identifiers) for devices using the iOS platform, a device unique identifier such as UDID (Unique Device Identifier), or the serial number of the iOS device. Can be.
  • UUID Universally Unique Identifiers
  • UDID Unique Device Identifier
  • UUID is a unique value generated by an application (or app), not a unique value of the device, and is a random value that changes every time it is created.
  • the UDID is a device identification value, which is a unique value of a device, and may be 40 numbers and strings uniquely allocated to identify the device.
  • the encryption key (wrap key) separation ratio is the nth digit of the unique device identifier (ID) value for each platform (for example, Android or iOS) of the owner device 150 as shown in FIG. 3-where n Is a natural number-by performing the MOD operation with 8 based on 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1 The number of 9 cases can determine the key separation ratio.
  • ID unique device identifier
  • FIG. 4 shows two encryption keys of a pre-wrapkey (W1) at the front of the wrap key and a post-wrapkey (W2) at the back of the wrap key at a separation ratio of 6:4.
  • W1 pre-wrapkey
  • W2 post-wrapkey
  • FIG. 4 shows two encryption keys of a pre-wrapkey (W1) at the front of the wrap key and a post-wrapkey (W2) at the back of the wrap key at a separation ratio of 6:4.
  • W1 pre-wrapkey
  • W2 post-wrapkey
  • the enc key separation ratio is based on the m-th digit of the unique device identifier (ID) value for each platform (Android or iOS) of the owner device-where m is a natural number.
  • ID unique device identifier
  • the key is the number of 9 cases of 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1.
  • the separation ratio can be determined.
  • FIG. 5 shows two encryption keys of a pre-enckey (E1) in front of an encryption key (E1) and a post-enckey (E2) after an encryption key (enc key) at a separation ratio of 3:7. (enc key)
  • E1 pre-enckey
  • E2 post-enckey
  • 6 is a table showing a pre-and-after association map of a separated key for storage in an owning device and/or a block chain node through random combination of separated keys according to an embodiment of the present invention.
  • 7A to 7H illustrate an example of storing in an owning device through random combination of separated keys according to an embodiment of the present invention.
  • a case of storing a part of an encryption key (wrap key) and a part of an encryption key (enc key) back and forth in the owning device is stored.
  • a case of separating an encryption key (wrap key) and an encryption key (enc key) into two pieces is described as an example, but the case is not limited to the case of being separated into two pieces, and the case of being separated into two or more pieces is also included. I can.
  • the combination of the separated keys is the k-th digit of the unique device identifier (ID) value for each platform (for example, Android or iOS) of the owner device 150-where k is a natural It can be determined as the number of eight cases by performing the MOD operation with 7 based on the number.
  • ID unique device identifier
  • the wrap key is divided into two pieces at a separation ratio of 6:4, and when the value of the reference item of FIG. 6 is 2, the encryption key (enc key) is divided into two pieces at a separation ratio of 3:7, and the front pre-wrapkey (W1) of the separation pieces of the encryption key (wrap key) is at the front, and the encryption key (enc key) as shown in FIG.
  • the front pre-enckey (E1) of the split pieces can be combined at the rear and stored in the owning device.
  • the block chain node has an encryption key (wrap key) and the rear post-wrapkey (W2) of the split pieces.
  • the post-enckey (E2) of the rear part of the split pieces of the encryption key (enc key) may be combined and stored in a 4:7 ratio.
  • the front pre-wrapkey (W1) of the split piece of the encryption key (wrap key) of FIG. 4 and the pre-enckey (E1) of the split piece of the encryption key (enc key) of FIG. can be combined in a 6:3 ratio and stored on the owning device.
  • the rear post-wrapkey (W2) of the split piece of the encryption key (wrap key) of FIG. 4 and the post-enckey (E2) of the split piece of the encryption key (enc key) of FIG. It can be combined in a 4:7 ratio and stored in a blockchain node.
  • a pre-wrapkey (W1) at the front of the split pieces of the encryption key (W1) of FIG. 4 and a post-enckey (E2) at the rear of the split pieces of the encryption key (enc key) of FIG. Can be combined in a ratio of 6:7 and stored on the owning device.
  • the front part pre-enckey (E1) of the split piece of the encryption key (enc key) of FIG. 5 and the front part pre-wrapkey (W1) of the split piece of the encryption key (wrap key) of FIG. At a ratio of 6, they can be combined and stored on the owning device.
  • the rear post-enckey (E2) of the separation fragment of the encryption key (enc key) of FIG. 5 and the post-wrapkey (W2) of the separation fragment of the encryption key (wrap key) of FIG. can be combined in a 7:4 ratio and stored in the blockchain node.
  • the front pre-enckey (E1) of the separation piece of the encryption key (enc key) of FIG. 5 and the post-wrapkey (W2) of the rear part of the separation piece of the encryption key (wrap key) of FIG. can be combined in a :4 ratio and stored in the owning device.
  • the front pre-enckey (E1) of the split fragment of the encryption key (enc key) of FIG. 5 and the pre-wrapkey (W1) of the split fragment of the encryption key (wrap key) of FIG. can be sequentially combined at a rate of 6 and stored in the blockchain node.
  • the rear post-wrapkey (W2) of the split piece of the encryption key (wrap key) of FIG. 4 and the post-enckey (E2) of the split piece of the encryption key (enc key) of FIG. can be combined in a 4:7 ratio and stored on their own device.
  • the first pre-wrapkey (W1) of the split fragment of the encryption key (wrap key) of FIG. 4 and the pre-enckey (E1) of the split fragment of the encryption key (enc key) of FIG. It can be subsequently combined and stored in a blockchain node at a rate of 3.
  • the rear post-wrapkey (W2) of the split piece of the encryption key (wrap key) of FIG. 4 and the pre-enckey (E1) of the front part of the split piece of the encryption key (enc key) of FIG. It can be combined in a :3 ratio and stored in the owning device.
  • the front pre-wrapkey (W1) of the split piece of the encryption key (wrap key) of FIG. 4 and the post-enckey (E2) of the rear part of the split piece of the encryption key (enc key) of FIG. It can be combined sequentially at a ratio of :7 and stored in a blockchain node.
  • the rear post-enckey (E2) of the separation piece of the encryption key (enc key) of FIG. 5 and the post-wrapkey (W2) of the separation piece of the encryption key (wrap key) of FIG. can be combined in a 7:4 ratio and stored on their own device.
  • the front pre-enckey (E1) of the separation fragment of the encryption key (enc key) of FIG. 5 and the pre-wrapkey (W1) of the separation fragment of the encryption key (wrap key) of FIG. It can be sequentially combined at a rate of 6 and stored in the blockchain node.
  • the rear post-enckey (E2) of the split piece of the encryption key (enc key) of FIG. 5 and the pre-wrapkey (W1) of the front part of the split piece of the wrap key of FIG. It can be combined sequentially in a ratio of :6 and stored on the owning device.
  • the front pre-enckey (E1) of the separation fragment of the encryption key (enc key) of FIG. 5 and the post-wrapkey (W2) of the rear part of the separation fragment of the encryption key (wrap key) of FIG. can be combined sequentially at a ratio of :4 and stored in a blockchain node.
  • FIG. 8 is a flowchart illustrating a method of using a secret key distributedly stored in a key on a device and/or a blockchain node on which a wallet app is installed according to an embodiment of the present invention.
  • the wallet app 100 requests biometric authentication from the biometric authentication device 120 (step 810), and receives a biometric authentication result response 812 from the biometric authentication device 120.
  • the wallet app 100 transmits a part of the encryption key (wrap key) and part of the encryption key (enc key) request 814 to the owning device 150 and stores the required device from the owning device 150 Receive a combined key response 816.
  • Part of the encryption key (wrap key) and a part of the encryption key (enc key) request 814 corresponds to a request for a first combination key that is separated and subsequently combined.
  • the first and subsequent combination key is one of a first encryption key fragment and a second encryption key fragment of the encryption key (wrap key), and one of a first encryption key fragment and a second encryption key fragment of the encryption key (enc key) It is a combination of first and second.
  • the device storage combination key response 816 includes a part of a wrap key and part of an enc key stored in the requested owning device 150.
  • the wallet app 100 transmits a partial encryption key (wrap key) and a partial encryption key (enc key) request 818 to the blockchain node 200 using the IPFS protocol (step 818).
  • the blockchain node 200 transmits a part of a wrap key and part of a response of an enc key distributed in each node of the block chain to the wallet app 100 (step 820).
  • Part of the encryption key (wrap key) and part of the encryption key (enc key) response includes a part of the encryption key (wrap key) distributed and stored in each node of the requested block chain and a part of the encryption key (enc key).
  • Part of the encryption key (wrap key) and a part of the encryption key (enc key) request 818 corresponds to a request for a second pre- and post-combined key that is separated and subsequently combined.
  • the second pre-and-after combination key is the other of the first encryption key fragment and the second encryption key fragment of the encryption key (wrap key) and the first encryption key fragment and the second encryption key fragment of the encryption key (enc key) It is a combination of the other.
  • part of the encryption key (wrap key) and part of the encryption key (enc key) stored in the owning device 150, and part of the encryption key (wrap key) and the encryption key retrieved through the blockchain node 200 (enc key) A part of the encryption key (wrap key) and encryption key (enc key) by recovering the wrap key and the encryption key (enc key) by combining a part using the above-described key separation ratio map and the subsequent combination map (Step 822).
  • the wallet app 100 obtains a private key by decrypting a wrap key using the recovered encryption key (enc key) (step 824).
  • the wallet app 100 electronically signs the transaction using the private key (step 826), and transmits the electronic signature or the digitally signed value to the service block chain 300 (step 828).
  • the transaction may include the original transaction text.
  • the original text of the transaction is, for example, an original text including a sender, a remittance amount, and a destination used for interbank remittance.
  • the transaction may include cryptocurrency assets, content, or data.
  • the wallet app 100 may immediately delete the obtained private key from the memory after use (step 830).
  • step 830 is not an essential step and may be selectively operated.
  • the above-described method of FIG. 8 can be applied to mobile banking services, simple payment services, various fintech services, and authentication and financial transactions for users in online electronic financial transactions, electronic authentication and electronic payment signatures for payment actions.
  • the key distributed in each device and/or blockchain node where the user's wallet app is installed is authenticated and financial transaction for the user through access control through biometric authentication methods such as fingerprints. It can be used for electronic authentication of actions and payment actions and for signing electronic payments.
  • a separate piece of an encryption key (wrap key) and a separate piece of an encryption key (enc key) are separated at an arbitrary ratio and at the same time, each piece is sequentially combined in a random combination to create a blockchain node. It can also be implemented in the form of distributed storage only.
  • Defragmentation can be stored on each node of the blockchain network, rather than the same copy (COPY). Specifically, when the key stored in the blockchain is viewed as one whole (WRAPKEY+ENCKEY), itself can be distributed and stored in the blockchain node as a piece. For example, node 1 may store only 30% of the complete body, node 2 may store 70% of the complete body, and node 3 may store 100% of the complete body.
  • the same copy may be stored on each node of the blockchain network. In this case, if some of the blockchain nodes break-down, it is possible to prevent authentication failure.
  • separate pieces of the encryption key are stored in the own device where the user's wallet app is installed, and the separated pieces of the encryption key (enc key) are implemented to be distributed and stored in a blockchain node, or Or, it can be implemented in the opposite form.
  • the described features may be implemented in digital electronic circuitry, or computer hardware, firmware, or combinations thereof.
  • Features may be executed in a computer program product implemented in storage in a machine-readable storage device, for example, for execution by a programmable processor. And the features can be performed by a programmable processor executing a program of directives to perform the functions of the described embodiments by operating on input data and generating output.
  • the described features include at least one programmable processor, at least one input device, and at least one output coupled to receive data and directives from the data storage system and to transmit data and directives to the data storage system. It can be executed within one or more computer programs that can be executed on a programmable system including the device.
  • a computer program includes a set of directives that can be used directly or indirectly within a computer to perform a specific action on a given result.
  • a computer program is written in any form of a programming language, including compiled or interpreted languages, and is included as a module, element, subroutine, or other unit suitable for use in another computer environment, or as a independently operable program. It can be used in any form.
  • Suitable processors for execution of a program of directives include, for example, both general and special purpose microprocessors, and either a single processor or multiple processors of a different type of computer.
  • Storage devices suitable for implementing computer program directives and data implementing the described features are, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic devices such as internal hard disks and removable disks. Devices, magneto-optical disks, and all types of non-volatile memory including CD-ROM and DVD-ROM disks.
  • the processor and memory may be integrated within application-specific integrated circuits (ASICs) or added by ASICs.
  • ASICs application-specific integrated circuits

Landscapes

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

Abstract

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은, 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장한다. 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에서 보안성을 보다 강화시킬 수 있다.

Description

월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
본 발명은 보안에 대한 것으로, 좀 더 구체적으로는 비밀 키 보안 기술에 관한 것이다.
암호 화폐 지갑 또는 월렛(wallet)은 암호 화폐 자산을 보관하기 위하여 개인 키와 공개 키를 저장하는 것 외의 새로운 계정 생성, 서명 생성, 트랜잭션 생성 및/또는 추가 적인 보안 설정 (패턴, 지문, 안면 인식 등 생체 인증)과 같은 기능을 제공할 수 있다.
기존의 암호화폐 월렛의 보안 메카니즘으로는 플랫폼마다 비밀번호를 다르게 설정하거나 또는 2단계 인증 (Two-Factor Authentication, 2FA)을 사용하는 방법등이 있으나, 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에 적용할 경우 해킹에 취약해 보안성에 문제가 있다.
상기와 같은 문제점을 해결하기 위해 본 발명의 목적은 보안성을 더욱 강화하기 위하여 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
본 발명의 일실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은, 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
상기 월렛 앱에서 상기 암호화 키(wrap key) 및 상기 암호 키(enc key)키를 상기 소유 디바이스의 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 적어도 2개의 조각으로 키 분리 비율을 랜덤하게 조정하면서 분리할 수 있다. 상기 디바이스 식별자(ID)는 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity) 및 안드로이드 디바이스 시리얼 넘버(serial number) 중 하나를 포함할 수 있다. 상기 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers) 및 UDID(Unique Device Identifier) 중 하나를 포함할 수 있다. 상기 암호화 키(wrap key)의 상기 제1 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다. 상기 암호화 키(wrap key)를 상기 제1 키 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리할 수 있다. 상기 암호 키(enc key)의 상기 제2 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다. 상기 암호 키(enc key)를 상기 제2 키 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리할 수 있다. 상기 분리된 키 조각의 선후 결합은 상기 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정할 수 있다. 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-와 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 상기 소유 디바이스 및 상기 블록체인 노드에서의 저장 위치를 결정하는 단계를 더 포함할 수 있다. 상기 블록체인 노드는 상기 제2 선후 결합 키를 상기 블록 체인 노드에 분산 저장하는 단계를 더 포함할 수 있다. 상기 월렛 앱에서 생체 인증 장치를 통해 생체 인증을 수행하는 단계를 더 포함할 수 있다. 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 소유 디바이스로 전송하고, 상기 소유 디바이스로부터 상기 소유 디바이스 저장 결합 키 응답을 수신하는 단계를 더 포함하되, 상기 소유 디바이스 저장 결합 키 응답은 상기 요청된 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 포함할 수 있다. 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 IPFS 프로토콜을 이용하여 상기 블록체인 노드로 전송하고, 상기 블록체인 노드로부터 상기 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 수신하는 단계를 더 포함하되, 상기 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함할 수 있다. 상기 월렛 앱에서 상기 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 상기 블록 체인 노드를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 조합하여 상기 암호화 키(wrap key)와 상기 암호 키(enc key)를 복구하는 단계와, 상기 월렛 앱에서 상기 복구된 암호 키(enc key)를 이용하여 상기 복구된 암호화 키(wrap key)를 복호화하여 개인 키를 획득하는 단계와, 상기 월렛 앱에서 상기 획득된 개인 키를 이용하여 트랜잭션에 전자 서명을 하고 상기 전자 서명 또는 전자 서명된 값을 서비스 블록 체인으로 전송하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체는 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따르면, 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법은, 상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계와, 상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계와, 상기 월렛 앱에서 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계와, 상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계와, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하거나, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계를 포함한다.
본 발명의 실시 예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 장치에 따르면, 상기 소유 디바이스의 디바이스 식별자(ID) 또는 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장함으로써, 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에서 보안성을 보다 강화시킬 수 있다.
본 발명의 실시 예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법과 이를 수행하는 장치에 따르면, 키 해킹을 위해서는 월렛 앱이 설치된 소유 디바이스내 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부와, 이와 페어(pair)를 이루는 블록 체인 노드에 분산 저장된 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부를 모두 취득해야만 해킹이 가능하므로 현실적으로 해킹이 불가능하므로 보안성을 보다 강화시킬 수 있다. 여기서, 블록 체인 노드에 분산 저장된 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부는 월렛 앱이 설치된 소유 디바이스내 암호화 키(wrap key)의 일부 및 암호 키(enc key)의 일부와의 연관 관계가 외부에서는 확인이 곤란하므로 매칭 키 서치가 불가능하다. 또한, 더불어 소유디바이스가 제공하는 하드웨어 보안 모듈(Hardware Security Module; HSM)에 준하는 보안 영역(Secure zone)에 키 일부가 저장되기에 해당 키 획득도 불가능하다.
도 1은 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템 구성도이다.
도 2는 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 키 분리 비율 맵(map)을 나타낸 테이블이다.
도 4는 암호화 키(wrap key)를 6:4의 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷 부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 5는 암호 키(enc key)를 3:7의 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 6은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장 및/또는 블록 체인 노드에 저장하기 위한 분리된 키의 선후 결합 맵을 나타낸 테이블이다.
도 7a 내지 도 7h은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장하는 예를 나타낸다.
도 8은 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장된 비밀 키를 이용하는 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등을 포함하는 용어가 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여 본 발명에 바람직한 실시 예를 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성요소는 동일한 참조번호를 부여하고 이에 대해 중복되는 설명은 생략하기로 한다.
공개 키(public key)는 암호화(Encryption)를 위해 사용하며 예를 들어, 월렛 주소(wallet address)가 될 수 있다. 공개 키는, 암호 화폐와 같은 자산(asset)을 거래(transaction)하는 경우를 예로 들면, 암호 화폐를 입금 받을 때 또는 암호 화폐의 입출금 내역을 조회할 때에 사용될 수 있으며, 공개 키만 가지고는 암호 화폐의 출금을 할 수 없다.
개인키(private key)는 복호화(Decryption)를 할 때 사용하며, 암호 화폐와 같은 자산(asset)을 거래(transaction)하는 경우를 예로 들면 다른 월렛(wallet)으로 암호 화폐를 송금할 때, 온라인/오프라인 매장에서 결제할 때, 환전소(Exchange) 등에서 화폐를 거래할 때, 화폐의 입출금 내역을 조회할 때에 사용될 수 있다.
비밀 키는 개인 키(private key)와 동일한 의미로 사용한다.
암호 키(enc key)는 개인 키(private key)를 암호화하기 위한 키이다.
암호화 키(wrap key)는 개인 키(private key)를 암호 키(enc key)로 암호화한 키 또는 암호화한 값이다.
이하, 본 발명의 실시예들에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 수행하는 시스템은 월렛(100), 월렛(100)이 설치된 소유 디바이스(미도시), 블록체인 노드(200)로 구성된다.
월렛 앱(100)은 상기 소유 디바이스의 디바이스 식별자(ID), 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 암호화 키(wrap key)의 적어도 2개의 분리 조각과 암호 키(enc key)의 적어도 2개의 분리 조각으로 임의(random)의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 분산시켜 저장시킨다.
도 2는 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 설명하기 위한 순서도이다.
도 2를 참조하면, 먼저 월렛 앱(100)에서는 생체 인증 장치(120)에 생체 인증을 요청(단계 210)하고, 생체 인증 장치(120)로부터 생체 인증 결과 응답(212)을 수신한다. 상기 생체 인증은 지문과 같은 생체 신호 또는 생체 정보를 이용하여 수행될 수 있다. 상기 생체 신호는 지문 외에도 얼굴 특징, 음성, 홍채, 망막, 손 기하학, 서명 역학, 키입력 역학, 입술 움직임, 열 얼굴 이미지, 열 손 이미지, 걸음걸이, 체취 등을 포함할 수 있다.
상기 생체 인증이 성공한 경우, 월렛 앱(100)에서는 개인키(private key)와 공개 키(public key)의 키 페어(pair)를 생성(단계 214)한다. 상기 개인 키는 상기 생체 신호 또는 상기 생체 정보를 이용하여 생성될 수 있다. 상기 개인키는 무작위로 생성될 수도 있다. 상기 개인 키는 예를 들어 일반 난수 생성기로 무작위로 생성하거나, 엔트로피(무작위성)가 높은 함수를 이용하여 생성될 수 있다. 개인키는 예를 들어 랜덤한 128, 192, 또는 256 비트(bit)로 이루어진 값이 될 수 있다. 개인 키를 생성했으면 공개 키는 소정의 연산 처리를 통해서 계산할 수 있다.
월렛 앱(100)에서는 개인 키를 암호화하기 위해 암호 키(enc key)를 생성한다(단계 216).
월렛 앱(100)에서는 개인 키를 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성한다(단계 216).
월렛 앱(100)에서는 암호화 키(wrap key)와 암호 키(enc key) 각각을 랜덤한 키 분리 비율로 적어도 2개의 조각(fragment)으로 분리한다(단계 220). 월렛 앱(100)에서는 상기 암호화 키(wrap key)를 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리할 수 있다. 자세한 설명은 도 3 내지 도 5를 참조하여 후술한다.
월렛 앱(100)에서는 상기 분리된 암호화 키(wrap key)의 조각과 분리된 암호 키(enc key) 조각을 선후로 결합한다(단계 222). 자세한 설명은 도 6 내지 도 7h를 참조하여 후술한다.
월렛 앱(100)에서는 상기 분리되어 선후로 결합된 암호화 키(wrap key)의 일부와 암호 키(enc key)의 일부의 소유 디바이스(150) 및/또는 블록체인 노드(200)에서의 저장 위치를 결정한다(단계 224). 여기서 소유 디바이스는 월렛 앱(100)이 설치된 디바이스이다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(226)을 소유 디바이스(150)으로 전송하고, 소유 디바이스(150)으로부터 디바이스 키 저장 결과 응답(228)을 수신한다. 월렛 앱(100)에서는 소유 디바이스(150)에서의 키 저장 위치 정보를 예를 들어 안드로이드 키스토어(Android KeyStore) 액세스 키(access key)에 포함시켜 소유 디바이스(150)로 전송할 수 있다. 액세스 키(access key)는 안드로이드 키스토어(Android KeyStore)에 저장된 키의 접근을 위한 별칭(alias) 또는 주소(address)이다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(226)은 상기 분리되어 선후로 결합된 제1 선후 결합 키의 저장 요청에 해당된다. 상기 제1 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것이다. 자세한 설명은 도 3 내지 도 7h를 참조하여 후술한다.
디바이스 키 저장 결과 응답(228)은 예를 들어 참(true) 또는 거짓(false)와 같은 값을 리턴할 수 있다.
소유 디바이스(150)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 소유 디바이스(150)에 저장할 수 있다. 예를 들어, 소유 디바이스(150)가 안드로이드 운영체제를 사용하는 디바이스인 경우, 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 안드로이드 키스토어(Android KeyStore)인 하드웨어 기반으로 안드로이드 디바이스의 보안 하드웨어 - 예를 들어 TEE(Trusted Execution Environment) 또는 SE(Secure Element)-를 활용하여 안드로이드 디바이스에 저장할 수 있다.
안드로이드 키스토어 시스템은 승인되지 않은 접근(unauthorized use)에 대해 중요한 키 머티리얼(key material) (예를들어, 초기화 벡터(initialization vector, IV) 값)들을 보호한다. 초기화 벡터(initialization vector, IV)는 첫 블록을 암호화할 때 사용되는 값을 의미한다. 암호 운용 방식마다 초기화 벡터를 사용하는 방법이 다르며 암호키값을 추출하더라도 초기화 벡터(initialization vector) iv값등의 추출이 불가하여 해킹이 불가하다고 볼 수 있다.
첫째, 안드로이드 키스토어는 안드로이드 디바이스 밖에서의 승인되지 않은 키 머티리얼(key material) 사용에 대해 키 머티리얼(key material) 추출을 보호함으로써 승인되지 않은 접근에 대한 위협을 줄여준다.
둘째, 안드로이드 키스토어는 안드로이드 디바이스에서의 승인되지 않은 접근에 대해 키를 구체화(specify)하고 앱 프로세스 바깥에서의 이들 제한을 강제함으로써 승인되지 않은 접근에 대한 위협을 줄여준다.
안드로이드 키스토어 키들의 키 머티리얼(key material)들은 두가지 보안 수단에 의해 보호된다.
1) 키 머티리얼(key material)은 애플리케이션 프로세스에서 절대로 접근할 수 없다. 애플리케이션이 안드로이드 키스토어를 사용해 암호 관련 동작(operation)을 수행할 때, 뒷단에서 시스템 프로세스를 통해 서명/확인등에 필요한 평문(plaintext)/암호문(cipher)/메시지(message)등이 공급된다. 앱 프로세스가 위협에 노출된다면, 공격자가 앱의 키를 사용할 수 있을진 모르나 키 머티리얼(key material)까지 탈취하지는 못한다.
- 키 머티리얼(key material)은 보안 하드웨어(secure hardware)(예를들어, TEE(Trusted Execution Environment), SE(Secure Element))에 바인딩 돼 있을 수도 있다. 상기 기능이 키에 대해 인에이블(enable) 되어 있다면 해당 키에 대한 키 머티리얼(key material)은 절대로 보안 하드웨어(secure hardware) 바깥으로 노출될 수 없다. 안드로이드 OS가 위협에 노출되거나 공격자가 시스템의 내부 저장소를 읽을 수 있게 될지라도, 안드로이드 키스토어의 키를 추출할 수는 없다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(230)을 IPFS(Inter Planetary File System) 프로토콜을 활용하여 블록체인 노드(200)로 전송한다. 블록체인 노드(200)는 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 IPFS 프로토콜을 활용하여 블록 체인 네트워크의 각 노드에 분산시켜 저장한다(단계 232). 예를 들어, IPFS 프로토콜을 활용하여 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 256 kb로 저장하거나 256 kb보다 큰 경우에는 256 kb로 잘게 쪼개어 저장할 수 있다. 또는 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 256kb 이상으로 사이즈를 조정할 수도 있다.
블록 체인 네트워크의 각노드에 동일한 복사(COPY)본이 아닌, 조각 모음이 저장될 수 있다. 구체적으로, 블록체인에 저장되는 키를 하나의 완전체(WRAPKEY+ENCKEY)로 볼 때, 그 자체도 조각으로 블록체인 노드에 분산 저장될 수 있다. 예를 들어, 가령 노드1에는 완전체의 30%만 저장하고, 노드 2에는 완전체의 70%, 노드3에는 완전체의 100%가 저장될 수 있다.
또는 블록 체인 네트워크의 각 노드에 동일한 복사(COPY)본이 저장될 수도 있다. 이 경우 블록체인 노드들 중 일부가 브레이크 다운(Break-Down) 되는 경우 인증이 되지 않는 것을 방지할 수 있다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 저장 요청(230)은 상기 분리되어 선후로 결합된 제2 선후 결합 키의 저장 요청에 해당된다. 상기 제2 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 다른 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것이다. 자세한 설명은 도 3 내지 도 7h를 참조하여 후술한다.
전술한 도 2의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은 예를 들어 모바일 뱅킹 서비스에서 뱅킹 서비스 가입시 키를 소유자 디바이스 및/또는 블록 체인 노드에 분산 저장하는데 적용할 수 있다.
도 3은 본 발명의 일 실시예에 따른 키 분리 비율 맵(map)을 나타낸 테이블이다.
도 3을 참조하면, 월렛 앱(100)에서는 암호화 키(wrap key) 및 암호 키(enc key)키를 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 2개의 조각으로 분리 비율을 랜덤하게 조정하면서 분리할 수 있다. 또는, 월렛 앱(100)에서는 암호화 키(wrap key) 및 암호 키(enc key)키를 디바이스 식별자(ID)가 아닌 공개키의 특정 자릿수의 값(10 진수)을 포함하는 월렛 상수를 이용하여 조각으로 분리할 수도 있으며, 반드시 이에 한정되는 것은 아니며 디바이스의 다른 고유 값 또는 월렛의 다른 특정 값을 이용하여 조각으로 분리할 수 있다.
디바이스 식별자(ID)는 예를 들어, 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity)와 같은 단말기 고유 일련 번호 또는 안드로이드 디바이스 시리얼 넘버(serial number)등이 될 수 있다.
또는 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers)와 같은 고유 사용자 식별자, UDID(Unique Device Identifier)와 같은 디바이스 고유 식별자 또는 iOS 디바이스의 시리얼 넘버(serial number)등이 될 수 있다.
UUID는 디바이스의 고유 값이 아닌 어플리케이션(또는 앱)에서 생성한 유일한 값으로 생성할 때마다 변경되는 랜덤 값이다. UDID는 디바이스 식별 값으로 디바이스의 고유 값이며, 디바이스를 식별하기 위해 고유하게 할당된 40개의 숫자와 문자열이 될 수 있다.
암호화 키(wrap key) 분리 비율은, 도 3에 도시된 바와 같이, 소유자 디바이스(150)의 플랫폼(예를 들어 안드로이이드 또는 iOS) 별로 고유의 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다.
도 4는 암호화 키(wrap key)를 6:4의 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷 부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리한 경우를 예시적으로 나타낸다.
암호 키(enc key) 분리 비율은, 도 3에 도시된 바와 같이, 소유자 디바이스의 플랫폼(안드로이이드 또는 iOS) 별 고유의 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2, 9:1의 9가지 경우의 수로 키 분리 비율을 결정할 수 있다.
도 5는 암호 키(enc key)를 3:7의 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리한 경우를 예시적으로 나타낸다.
도 6은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장 및/또는 블록 체인 노드에 저장하기 위한 분리된 키의 선후 결합 맵을 나타낸 테이블이다. 도 7a 내지 도 7h은 본 발명의 일실시예에 따른 분리된 키의 임의 결합을 통해 소유 디바이스에 저장하는 예를 나타낸다.
이하, 도 6 및 도 7a 내지 도 7h을 참조하여 소유 디바이스에 암호화 키(wrap key)의 일부와 암호 키(enc key)의 일부를 앞뒤로 조합(또는 선후 결합)하여 저장하는 경우를 설명한다. 이하에서는 암호화 키(wrap key)와 암호 키(enc key)를 2개의 조각으로 분리하는 경우를 예로 들어 설명하지만, 2개의 조각으로 분리되는 경우로 한정되지 아니하며 2개 이상의 조각으로 분리되는 경우도 포함될 수 있다.
분리된 키의 선후 결합은, 도 6에 도시된 바와 같이, 소유자 디바이스(150)의 플랫폼(예를 들어 안드로이이드 또는 iOS) 별로 고유의 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정할 수 있다.
예로 들면, 도 6의 기준 항목의 값이 5인 경우 암호화 키(wrap key)는 6:4의 분리 비율로 2개의 조각으로 분리되고, 도 6의 기준 항목의 값이 2인 경우 암호키(enc key)는 3:7의 분리 비율로 2개의 조각으로 분리되며, 도 7a에 도시된 바와 같이 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)이 앞쪽에, 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)이 뒤쪽에 선후 결합되어 소유 디바이스에 저장될 수 있으며, 이 경우, 블록 체인 노드에는, 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 암호 키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)이 4:7의 비율로 선후 결합되어 저장될 수 있다.
도 7a에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 앞 부분의 pre-wrapkey(W1)와 도 5의 암호 키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)를 6:3의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 도 5의 암호 키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)을 4:7의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7b에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 앞 부분의 pre-wrapkey(W1)와 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)를 6:7의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)과 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)을 4:3의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7c에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)와 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)를 3:6의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)과 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)을 7:4의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7d에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)와 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)를 3:4의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)을 7:6의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7e에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)와 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)를 4:7의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)과 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)을 6:3의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7f에 도시된 바와 같이, 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)와 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)를 4:3의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)과 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)을 6:7의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7g에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)와 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)를 7:4의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)을 3:6의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
도 7h에 도시된 바와 같이, 도 5의 암호키(enc key) 분리 조각 중 뒷 부분 post-enckey(E2)와 도 4의 암호화 키(wrap key) 분리 조각 중 앞부분 pre-wrapkey(W1)를 7:6의 비율로 선후로 결합하여 소유 디바이스에 저장할 수 있다. 이 경우, 블록 체인 노드에는, 도 5의 암호키(enc key) 분리 조각 중 앞부분 pre-enckey(E1)과 도 4의 암호화 키(wrap key) 분리 조각 중 뒷 부분 post-wrapkey(W2)을 3:4의 비율로 선후로 결합하여 블록 체인 노드에 저장할 수 있다.
즉, 암호화 키(wrap key) 2개의 분리 조각(앞부분(pre) 조각, 뒷부분(post) 조각)과 암호 키(enc key)의 2개의 분리 조각(앞부분(pre) 조각, 뒷부분(post) 조각)을 도 3의 키 분리 비율과 같이 임의(random) 비율로 분리함과 동시에 각각의 조각들을 랜덤 조합으로 선후로 결합하여 사용자의 월렛 앱(100)이 설치된 소유 디바이스(150)와 블록체인 노드(200)에 분산 시켜 저장함으로써 보안성을 더욱 강화시킬 수 있다.
도 8은 본 발명의 일실시예에 따른 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장된 비밀 키를 이용하는 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 먼저 월렛 앱(100)에서는 생체 인증 장치(120)에 생체 인증을 요청(단계 810)하고, 생체 인증 장치(120)로부터 생체 인증 결과 응답(812)을 수신한다.
생체 인증이 성공한 경우, 월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(814)을 소유 디바이스(150)으로 전송하고, 소유 디바이스(150)으로부터 소요 디바이스 저장 결합 키 응답(816)을 수신한다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(814)은 분리되어 선후로 결합된 제1 선후 결합 키의 요청에 해당된다. 상기 제1 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것이다.
디바이스 저장 결합 키 응답(816)은 상기 요청된 소유 디바이스(150)에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부가 포함된다.
월렛 앱(100)에서는 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(818)을 IPFS 프로토콜을 이용하여 블록체인 노드(200)로 전송한다(단계 818). 블록체인 노드(200)는 블록 체인 각 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 월렛 앱(100)으로 전송한다(단계 820). 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 각 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함한다.
상기 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청(818)은 상기 분리되어 선후로 결합된 제2 선후 결합 키의 요청에 해당된다. 상기 제2 선후 결합 키는 상기 암호화 키(wrap key)의 제1 암호화 키 조각 및 제2 암호화 키 조각 중 다른 하나와 상기 암호 키(enc key)의 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것이다.
월렛 앱(100)에서는 소유 디바이스(150)에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 블록 체인 노드(200)를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 전술한 키 분리 비율 맵과 선후 결합 맵을 이용하여 조합하여 암호화 키(wrap key)와 암호 키(enc key)를 복구하여 암호화 키(wrap key)와 암호 키(enc key)를 생성한다(단계 822).
월렛 앱(100)에서는 상기 복구된 암호 키(enc key)를 이용하여 암호화 키(wrap key)를 복호화하여 개인 키를 획득한다(단계 824).
월렛 앱(100)에서는 상기 개인 키를 이용하여 트랜잭션에 전자 서명을 하고(단계 826), 전자 서명 또는 전자 서명된 값을 서비스 블록 체인(300)으로 전송한다(단계 828). 상기 트랜잭션은 거래 원문을 포함할 수 있다. 상기 거래 원문은 예를 들어 은행간 송금시 사용되는 송신처, 송금 금액, 수신처를 포함하는 원문이다. 또한, 상기 트랜잭션은 암호화폐 자산, 콘텐츠 또는 데이터등을 포함할 수도 있다.
월렛 앱(100)에서는 상기 획득된 개인 키를 사용 후 메모리에서 즉시 삭제할 수 있다(단계 830). 여기서, 단계 830은 필수적인 단계는 아니며 선택적으로 동작할 수도 있다.
전술한 도 8의 방법은 모바일 뱅킹 서비스, 간편 결제 서비스, 다양한 핀테크 서비스, 온라인 전자금융거래 등에서 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명 등에 적용 가능하다. 예를 들어, 이체, 송금등과 같은 트랜잭션시 사용자의 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 각각 분산 저장된 키가 지문등의 생체인증방식의 접근제어를 통하여 사용자에 대한 인증 및 금융거래 행위, 결제 행위에 대한 전자적 인증과 전자결제 서명에 사용될 수 있다.
본 발명의 다른 실시예에서는, 암호화 키(wrap key)의 분리 조각과 암호 키(enc key) 분리 조각을 임의의 비율로 분리함과 동시에 각각의 조각들을 임의의 조합으로 선후로 결합하여 블록체인 노드에만 분산 저장하는 형태로 구현도 가능하다.
블록 체인 네트워크의 각노드에 동일한 복사(COPY)본이 아닌, 조각 모음이 저장될 수 있다. 구체적으로, 블록체인에 저장되는 키를 하나의 완전체(WRAPKEY+ENCKEY)로 볼 때, 그 자체도 조각으로 블록체인 노드에 분산 저장될 수 있다. 예를 들어, 가령 노드1에는 완전체의 30%만 저장하고, 노드 2에는 완전체의 70%, 노드3에는 완전체의 100%가 저장될 수 있다.
또는 블록 체인 네트워크의 각 노드에 동일한 복사(COPY)본이 저장될 수도 있다. 이 경우 블록체인 노드들 중 일부가 브레이크 다운(Break-Down) 되는 경우 인증이 되지 않는 것을 방지할 수 있다.
본 발명의 또 다른 실시예에서는, 암호화 키(wrap key)의 분리 조각들은 사용자의 월렛 앱이 설치된 소유 디바이스에 저장하고, 암호 키(enc key) 분리 조각들은 블록체인 노드에 분산 저장하도록 구현하거나, 또는, 그 반대 형태로도 구현할 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해, 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.
지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가될 수 있다.
이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
전술한 실시 예들의 조합은 전술한 실시 예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.
전술한 실시 예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
전술한 실시 예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (17)

  1. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법은,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계; 및
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  2. 제1항에 있어서, 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값은 상기 소유 디바이스의 디바이스 식별자(ID)이며, 상기 월렛 앱에서 상기 암호화 키(wrap key) 및 상기 암호 키(enc key)키를 상기 소유 디바이스의 디바이스 식별자(ID)를 이용하여 키 분리 맵을 통하여 적어도 2개의 조각으로 키 분리 비율을 랜덤하게 조정하면서 분리하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  3. 제2항에 있어서, 상기 디바이스 식별자(ID)는 안드로이드 플랫폼을 사용하는 디바이스의 경우 IMEI(International Mobile Equipment Identity) 및 안드로이드 디바이스 시리얼 넘버(serial number) 중 하나를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  4. 제2항에 있어서, 상기 디바이스 식별자(ID)는 iOS 플랫폼을 사용하는 디바이스의 경우 UUID(Universally Unique Identifiers) 및 UDID(Unique Device Identifier) 중 하나를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  5. 제1항에 있어서, 상기 암호화 키(wrap key)의 상기 제1 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 n번째 자리수-여기서 n은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  6. 제5항에 있어서, 상기 암호화 키(wrap key)를 상기 제1 키 분리 비율로 암호화 키(wrap key) 앞부분 pre-wrapkey(W1)과 암호화 키(wrap key) 뒷부분 post-wrapkey(W2)의 2개의 암호화 키(wrap key) 조각으로 분리하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  7. 제1항에 있어서, 상기 암호 키(enc key)의 상기 제2 키 분리 비율은, 상기 디바이스 식별자(ID) 값의 m번째 자리수-여기서 m은 자연수임-를 기준으로 8로 MOD 연산을 수행하여 1:9, 2:8, 3:7, 4:6, 5:5, 6:4, 7:3, 8:2 및 9:1의 9가지 경우의 수로 키 분리 비율을 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  8. 제7항에 있어서, 상기 암호 키(enc key)를 상기 제2 키 분리 비율로 암호 키(enc key) 앞부분 pre-enckey(E1)과 암호 키(enc key) 뒷 부분 post-enckey(E2)의 2개의 암호 키(enc key) 조각으로 분리하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  9. 제1항에 있어서, 상기 분리된 키 조각의 선후 결합은 상기 디바이스 식별자(ID) 값의 k번째 자리수-여기서 k는 자연수임-를 기준으로 7로 MOD 연산을 수행하여 8가지 경우의 수로 결정하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  10. 제1항에 있어서, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-와 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 상기 소유 디바이스 및 상기 블록체인 노드에서의 저장 위치를 결정하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  11. 제10항에 있어서, 상기 블록체인 노드는 상기 제2 선후 결합 키를 상기 블록 체인 노드에 분산 저장하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  12. 제1항에 있어서, 상기 월렛 앱에서 생체 인증 장치를 통해 생체 인증을 수행하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  13. 제1항에 있어서, 상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 소유 디바이스로 전송하고, 상기 소유 디바이스로부터 상기 소유 디바이스 저장 결합 키 응답을 수신하는 단계를 더 포함하되,
    상기 소유 디바이스 저장 결합 키 응답은 상기 요청된 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  14. 제1항에 있어서,
    상기 월렛 앱에서 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부 요청을 상기 IPFS 프로토콜을 이용하여 상기 블록체인 노드로 전송하고, 상기 블록체인 노드로부터 상기 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답을 수신하는 단계를 더 포함하되,
    상기 암호화 키(wrap key) 일부와 암호 키(enc key) 일부 응답은 상기 요청된 블록 체인 노드에 분산 저장된 암호화 키(wrap key) 일부와 암호 키(enc key) 일부를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  15. 제1항에 있어서,
    상기 월렛 앱에서 상기 소유 디바이스에 저장된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부, 그리고 상기 블록 체인 노드를 통해 조회된 암호화 키(wrap key) 일부 및 암호 키(enc key) 일부를 조합하여 상기 암호화 키(wrap key)와 상기 암호 키(enc key)를 복구하는 단계;
    상기 월렛 앱에서 상기 복구된 암호 키(enc key)를 이용하여 상기 복구된 암호화 키(wrap key)를 복호화하여 개인 키를 획득하는 단계; 및
    상기 월렛 앱에서 상기 획득된 개인 키를 이용하여 트랜잭션에 전자 서명을 하고 상기 전자 서명 또는 전자 서명된 값을 서비스 블록 체인으로 전송하는 단계를 더 포함하는 것을 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법.
  16. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하는 단계; 및
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  17. 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법은,
    상기 월렛 앱에서 개인 키와 공개 키의 키 페어를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 암호화하기 위해 암호 키(enc key)를 생성하는 단계;
    상기 월렛 앱에서 상기 개인 키를 상기 암호 키(enc key)로 암호화하여 암호화 키(wrap key)를 생성하는 단계;
    상기 월렛 앱에서 상기 암호화 키(wrap key)를 상기 소유 디바이스의 하드웨어적으로 생성된 디바이스 고유값 또는 상기 월렛 앱에서 소프트웨어적으로 생성된 값을 이용하여 임의의 제1 키 분리 비율로 제1 암호화 키 조각 및 제2 암호화 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하고, 상기 암호 키(enc key)를 임의의 제2 키 분리 비율로 제1 암호 키 조각 및 제2 암호 키 조각을 포함하는 적어도 2개의 조각(fragment)으로 분리하는 단계;
    상기 월렛 앱에서 상기 분리된 제1 암호화 키 조각 및 제2 암호화 키 조각과 상기 분리된 제1 암호 키 조각 및 제2 암호 키 조각을 선후로 결합하는 단계;
    상기 월렛 앱에서 상기 분리되어 선후로 결합된 제1 선후 결합 키-상기 제1 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 하나를 선후로 결합한 것임-의 저장 요청을 상기 소유 디바이스로 전송하거나, 상기 월렛 앱에서 상기 분리되어 선후로 결합된 제2 선후 결합 키-상기 제2 선후 결합 키는 상기 제1 암호화 키 조각 및 상기 제2 암호화 키 조각 중 다른 하나와 상기 제1 암호 키 조각 및 제2 암호 키 조각 중 다른 하나를 선후로 결합한 것임-의 저장 요청을 IPFS(Inter Planetary File System) 프로토콜을 이용하여 상기 블록체인 노드로 전송하는 단계
    를 포함하는 월렛 앱이 설치된 소유 디바이스 및 블록체인 노드 중 적어도 하나에 키를 분산 저장하는 비밀 키 보안 방법.
PCT/KR2020/004042 2019-04-04 2020-03-25 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법 WO2020204444A2 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0039801 2019-04-04
KR1020190039801A KR102322118B1 (ko) 2019-04-04 2019-04-04 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법

Publications (2)

Publication Number Publication Date
WO2020204444A2 true WO2020204444A2 (ko) 2020-10-08
WO2020204444A3 WO2020204444A3 (ko) 2020-12-17

Family

ID=72666815

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/004042 WO2020204444A2 (ko) 2019-04-04 2020-03-25 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법

Country Status (2)

Country Link
KR (1) KR102322118B1 (ko)
WO (1) WO2020204444A2 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113205333A (zh) * 2021-05-06 2021-08-03 杭州复杂美科技有限公司 钱包加密存储方法、签名方法、计算机设备和存储介质
CN113793141A (zh) * 2021-09-01 2021-12-14 深圳市互联在线云计算股份有限公司 基于硬件钱包的交易方法、装置、设备及可读存储介质
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11316839B2 (en) * 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102539937B1 (ko) * 2022-01-24 2023-06-05 함문성 디지털 작품 복제방지 및 진위판정 시스템
KR20240019899A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 디지털 자산과 물리적 자산의 이중적 보호를 위한 프라이빗 자산 시스템
KR20240019900A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 현물 자산과 콜드 월렛의 선택적 물리 결합성을 통한 콜드 월렛 활성화 시스템
KR20240019898A (ko) 2022-08-05 2024-02-14 (주)소셜인프라테크 선택적 물리 결합성과 디지털 코드의 연결성에 기초한 콜드 월렛 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101438104B1 (ko) * 2013-01-28 2014-09-24 이니텍(주) 인증서를 클라우드 저장소 서버가 관리하는 방법
KR101724401B1 (ko) 2015-05-29 2017-04-07 한국정보인증주식회사 생체 정보 인식과 키 분할 방식을 이용한 공인인증 시스템 및 그 방법, 그 방법을 수행하는 프로그램이 기록된 기록매체
KR101776635B1 (ko) * 2016-01-21 2017-09-11 주식회사 한컴시큐어 클라이언트 단말을 위한 전자서명 대행 수행 장치 및 그 동작 방법
KR101792220B1 (ko) * 2016-08-19 2017-11-02 라온시큐어(주) 생체 인증 결합 사용자 간편 인증 방법, 이를 위한 인증 어플리케이션이 탑재된 사용자 모바일 단말기, 인증 서비스 장치 및 컴퓨터 프로그램
KR101867326B1 (ko) * 2017-09-04 2018-06-14 주식회사 와임 분할 기능을 이용한 소셜 미디어 제공 방법 및 시스템
KR102121930B1 (ko) * 2018-07-03 2020-06-11 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11316839B2 (en) * 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
CN113205333A (zh) * 2021-05-06 2021-08-03 杭州复杂美科技有限公司 钱包加密存储方法、签名方法、计算机设备和存储介质
CN113205333B (zh) * 2021-05-06 2022-09-13 杭州复杂美科技有限公司 钱包加密存储方法、签名方法、计算机设备和存储介质
CN113793141A (zh) * 2021-09-01 2021-12-14 深圳市互联在线云计算股份有限公司 基于硬件钱包的交易方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
KR20200118303A (ko) 2020-10-15
KR102322118B1 (ko) 2021-11-05
WO2020204444A3 (ko) 2020-12-17

Similar Documents

Publication Publication Date Title
WO2020204444A2 (ko) 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
US10681025B2 (en) Systems and methods for securely managing biometric data
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
WO2017119564A1 (ko) 본인인증용 정보 보안 전송시스템 및 방법
EP3435591A1 (en) 1:n biometric authentication, encryption, signature system
US20050044377A1 (en) Method of authenticating user access to network stations
KR20190075771A (ko) 블록체인을 이용한 개인정보 분리 후 분산저장을 통한 인증 시스템
US20120297205A1 (en) Secure User/Host Authentication
CN113435888B (zh) 一种账户数据处理方法、装置、设备及存储介质
WO2020005034A1 (ko) 다중 서명 보안 계정 제어 시스템
KR20100016579A (ko) 크리덴셜 배포를 위한 시스템 및 방법
CN104798083A (zh) 用于验证访问请求的方法和系统
KR101923943B1 (ko) 보안이 강화된 암호화폐 송금 시스템 및 방법
WO2019125041A1 (ko) 블록체인을 이용한 개인정보 분리 후 분산저장을 통한 인증 시스템
TW201426395A (zh) 資料安全保密系統與方法
WO2019125069A1 (ko) 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템
JP2018137587A (ja) 認証鍵共有システムおよび認証鍵共有方法
CN107733936A (zh) 一种移动数据的加密方法
JP2000188594A (ja) 認証システム及び指紋照合装置並びに認証方法
WO2021025403A2 (ko) 보안키 관리 방법 및 보안키 관리 서버
JP2002229447A (ja) デジタルコンテンツ流通における著作権保護システム
US8755521B2 (en) Security method and system for media playback devices
KR20200057985A (ko) 하이브리드 블록체인과 기업형 하드웨어 키보관 시스템을 결합한 솔루션
WO2023085802A1 (ko) 스마트 카드를 이용한 did 인증 방법 및 스마트 카드 장치
US20220374529A1 (en) Secure cryptographic server card

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20783319

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20783319

Country of ref document: EP

Kind code of ref document: A2