본 출원의 실시 예들은 별도의 인증 앱을 설치하지 않고 사용자를 인증하는 무설치 인증 기술 및 블록체인 기반 검증 기술을 이용한 다중 보안으로 요청을 승인하는 시스템 및 방법에 관련한 것이다.Embodiments of the present application relate to a system and method for approving a request with multi-security using a blockchain-based verification technology and an installation-free authentication technology that authenticates a user without installing a separate authentication app.
[국가지원 연구개발에 대한 설명][Explanation of nationally supported research and development]
본 발명의 연구는 서울특별시 서울산업진흥원의 2022년도 G밸리 ICT융복합 기술사업화 지원사업(CG220018) "구독 결제 기능과 블록체인 보안 기반 무설치 바이오 인증 시스템을 결합한 결제 및 커머스 시스템"에 대한 자금 지원 하에 진행된 것이다.The research of the present invention was conducted with the financial support of the 2022 G Valley ICT Convergence Technology Commercialization Support Project (CG220018) of the Seoul Business Agency of Seoul Metropolitan City for “Payment and Commerce System Combining Subscription Payment Function and Blockchain Security-Based Non-Installation Bio-Authentication System.”
생활수준의 향상과 정보통신 기술의 발달에 힘입어, 다수의 사람들이 개인용 컴퓨터(personal computer) 혹은 휴대용 전화기(cell phone)와 같은 개인용의 단말을 소지하여 사용하고 있다. 이와 같은 단말은 네트워크를 통하여 서버(server)와 연결되며, 서버로부터 다양한 서비스 혹은 콘텐츠를 제공받을 수 있다.Thanks to the improvement of living standards and the development of information and communication technology, many people are using personal terminals such as personal computers or cell phones. These terminals are connected to servers through networks and can receive various services or contents from the servers.
이러한 서비스 혹은 콘텐츠 제공과 관련된, 단말로부터의 요청(예컨대, 로그인, 성인 인증, 결제, 이체 요청 등)을 처리함에 있어서, 서버는 단말 혹은 사용자가 상기 요청을 할 수 있는 정당한 권한을 갖는지를 판단, 즉, 단말 혹은 사용자가 정당한 지의 여부를 확인해야 할 필요가 있다.When processing a request from a terminal (e.g., login, adult verification, payment, transfer request, etc.) related to the provision of such services or contents, the server needs to determine whether the terminal or user has the legitimate authority to make the request, i.e., confirm whether the terminal or user is legitimate.
이와 같은 인증 방법의 가장 일반적인 예로서, 사용자가 정한 패스워드(password)를 이용한 방법을 들 수 있다. 서버는 사용자가 정한 패스워드를 가입 시 저장하고, 이후 단말로부터 입력된 패스워드가 올바른 지를 비교하여, 입력된 패스워드가 일치할 경우 정당한 사용자에 의한 요청이 수신된 것으로 확인할 수 잇다.The most common example of this type of authentication method is a method using a password set by the user. The server stores the password set by the user at the time of registration, and then compares the password entered from the terminal to see if it is correct. If the entered password matches, it can be confirmed that the request was received by a legitimate user.
하지만, 기존의 결제 시스템에서 패스워드 인증 방식은 결제 시스템을 위한 전용 애플리케이션을 설치하여 애플리케이션 상에서 동작하는, 앱 인증 형태로 구현되는 한계가 있다.However, in existing payment systems, the password authentication method has limitations in that it is implemented in the form of app authentication that operates on the application by installing a dedicated application for the payment system.
상술한 문제점을 해결하기 위해, 본 출원의 실시 예들은 별도의 인증 앱을 설치하지 않고 사용자를 인증하는 무설치 인증 기술 및 블록체인 기반 검증 기술을 이용한 다중 보안으로 요청을 승인하는 시스템 및 방법을 제공하고자 한다.In order to solve the above-described problems, embodiments of the present application seek to provide a system and method for approving requests with multi-security using a blockchain-based verification technology and an installation-free authentication technology that authenticates users without installing a separate authentication app.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problems to be solved by the present invention are not limited to those mentioned above, and other problems to be solved that are not mentioned will be clearly understood by a person having ordinary skill in the art to which the present invention pertains from the description below.
본 출원의 일 측면에 따른 다중 보안으로 요청을 승인하는 방법은 단말장치; 및 상기 단말장치와 공개 네트워크를 통해 통신하면서 블록체인 네트워크에 노드로서 참여하는 서버를 포함한 시스템에 의해 수행될 수 있다. 상기 방법은: 상기 서버에서 단말장치로부터 상기 단말장치의 웹 활동 내역 정보를 수집하는 단계 - 상기 웹 활동 내역 정보는 로그인 내역 정보 및 결제 내역 정보를 포함함; 상기 서버에 의해, 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인 네트워크 상의 블록체인에 기록하는 단계; 상기 단말장치에 내장된 인증 프로그램을 통해 사용자를 인증하고 요청(request)을 생성하여 서버로 전송하는 단계; 상기 서버에서 상기 요청을 수신하면, 수신한 요청이 이상 요청인지 블록체인 네트워크 상의 블록체인 기록에 기초하여 결정하는 단계; 및 상기 요청이 이상 요청이 아닌 경우, 상기 단말장치의 요청을 승인 처리하는 단계를 포함할 수 있다.A method for approving a request with multi-security according to one aspect of the present application may be performed by a system including a terminal device; and a server participating as a node in a blockchain network while communicating with the terminal device through a public network. The method may include: a step of collecting web activity history information of the terminal device from the server, wherein the web activity history information includes login history information and payment history information; a step of recording, by the server, the web activity history information of the terminal device in a blockchain on the blockchain network; a step of authenticating a user through an authentication program built into the terminal device and generating a request and transmitting the request to a server; a step of determining, upon receiving the request from the server, whether the received request is an abnormal request based on a blockchain record on the blockchain network; and a step of approving and processing the request of the terminal device if the request is not an abnormal request.
일 실시 예에서, 상기 방법은, 상기 웹 활동 내역 정보를 수신하기 이전에, 사용자의 식별 정보, 상기 식별 정보에 대응되는 블록체인 주소 정보 및 암호화된 검증 정보를 상기 단말로부터 제공받고, 상기 암호화된 검증 정보가, 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 상기 제공받은 블록체인 주소 정보를 상기 사용자의 식별 정보에 매칭(matching)시켜 상기 서버에 저장하는 단계;를 더 포함할 수 있다. 상기 서버에서 단말장치로부터 상기 단말장치의 웹 활동 내역 정보를 수집하는 단계는, 상기 단말장치에서, 미리 저장된 블록체인 비밀키로 상기 단말장치의 웹 활동 내역 정보를 암호화처리하여 전송하는 것일 수 있다. 상기 서버에 의해, 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인 네트워크 상의 블록체인에 기록하는 단계는, 수신된 상기 단말장치의 웹 활동 내역 정보 내 식별 정보에 대응되는 블록체인 주소를 이용하여, 서버는 수신된 암호화된 상기 단말장치의 웹 활동 내역 정보를 복호화하고, 복호화된 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인에 기록하는 것일 수 있다.In one embodiment, the method may further include, prior to receiving the web activity history information, a step of receiving user identification information, blockchain address information corresponding to the identification information, and encrypted verification information from the terminal, and, if it is determined that the encrypted verification information is encrypted using a blockchain secret key corresponding to the identification information, matching the provided blockchain address information with the user's identification information and storing it on the server. The step of collecting the web activity history information of the terminal device from the server may be, at the terminal device, encrypting and transmitting the web activity history information of the terminal device using a blockchain secret key stored in advance. The step of recording, by the server, the web activity history information of the terminal device on the blockchain of the blockchain network may be, at the server, decrypting the received encrypted web activity history information of the terminal device using the blockchain address corresponding to the identification information in the received web activity history information of the terminal device, and recording the decrypted web activity history information of the terminal device on the blockchain.
일 실시 예에서, 상기 방법은, 상기 단말장치와 상이한 다른 단말장치로부터, 상기 식별 정보에 대응되는 블록체인 비밀키의 사용에 대한 신청을 수신하는 단계; 상기 다른 단말장치의 신청이 정당한지의 여부를 미리 설정된 기준에 의해 판정하는 단계; 및 상기 다른 단말장치의 신청이 정당하다고 판정될 경우, 상기 단말장치가 상기 식별 정보에 대응되는 블록체인 비밀키를 상기 서버를 거치지 않고 상기 다른 단말장치로 전송하도록, 상기 단말장치를 제어하는 단계; 상기 사용자의 식별 정보를 포함하는, 상기 다른 단말장치의 웹 활동 내역 정보를 상기 다른 단말장치로부터 수신하는 단계 - 상기 다른 단말장치의 웹 활동 내역 정보는 상기 서버를 거치지 않고 획득한 상기 식별 정보에 대응되는 상기 블록체인 비밀키로 암호화처리된 것임; 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여, 암호화처리된 상기 다른 단말장치의 웹 활동 내역 정보를 복호화하는 단계; 및 복호화에 성공하여 상기 암호화처리된 상기 다른 단말장치의 웹 활동 내역 정보가, 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 복호화된 상기 다른 단말장치의 웹 활동 내역 정보를 상기 블록체인에 기록하는 단계;를 더 포함할 수 있다.In one embodiment, the method comprises the steps of: receiving, from a different terminal device than the terminal device, an application for use of a blockchain secret key corresponding to the identification information; determining whether the application of the other terminal device is legitimate based on preset criteria; and controlling the terminal device so that, if the application of the other terminal device is determined to be legitimate, the terminal device transmits a blockchain secret key corresponding to the identification information to the other terminal device without going through the server; receiving, from the other terminal device, web activity history information of the other terminal device, the web activity history information including the user's identification information, wherein the web activity history information of the other terminal device is encrypted with the blockchain secret key corresponding to the identification information obtained without going through the server; decrypting, by using blockchain address information corresponding to the identification information, the encrypted web activity history information of the other terminal device; And if it is determined that the web activity history information of the other terminal device that has been encrypted through successful decryption has been encrypted using a blockchain secret key corresponding to the identification information, the step of recording the decrypted web activity history information of the other terminal device on the blockchain may be further included.
일 실시 예에서, 상기 요청은 로그인 요청 또는 결제 요청이고, 상기 단말장치에 내장된 인증 프로그램을 통해 사용자를 인증하고 요청(request)을 생성하여 서버로 전송하는 단계는, 상기 요청이 로그인 요청인 경우, 상기 내장된 인증 프로그램에 의해 산출된 인증 결과 정보, 요청 당시의 접속정보, 요청정보를 포함한 로그인 요청을 생성하는 것이거나, 또는 상기 요청이 결제 요청인 경우, 요청 당시의 결제정보를 추가로 포함한 결제 요청을 생성하는 것일 수 있다.In one embodiment, the request is a login request or a payment request, and the step of authenticating the user through an authentication program built into the terminal device and generating a request and transmitting it to the server may be, if the request is a login request, generating a login request including authentication result information calculated by the built-in authentication program, connection information at the time of the request, and request information, or, if the request is a payment request, generating a payment request additionally including payment information at the time of the request.
일 실시 예에서, 상기 수신한 요청이 이상 요청인지 블록체인 네트워크 상의 블록체인 기록에 기초하여 결정하는 단계는, 상기 서버가 요청을 수신하면, 상기 요청에 포함된 상기 요청 당시의 값 중 적어도 일부의 값으로 상기 요청에 대한 쿼리 조건을 생성하고, 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계; 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계; 및 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계를 포함할 수 있다. 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계는, 상기 블록체인 네트워크 내 노드들에 의해 제공되는 스마트 계약을 호출하고, 상기 요청에 대한 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 것일 수 있다.In one embodiment, the step of determining whether the received request is an abnormal request based on a blockchain record on the blockchain network may include the steps of: when the server receives the request, generating a query condition for the request with at least some of the values included in the request at the time of the request, and searching for block data having a value included in the query condition for the request as the query condition; calculating a matching rate between the web activity history information included in the searched block data and the information included in the request; and determining whether the request is an abnormal request based on the calculated matching rate. The step of searching for block data having a value included in the query condition for the request as the query condition may include calling a smart contract provided by nodes in the blockchain network, propagating the query condition for the request to a node capable of executing the smart contract, and executing the smart contract, thereby searching for block data having a value included in the query condition for the request from a distributed ledger stored in the node.
일 실시 예에서, 상기 인증 결과 정보는 상기 사용자의 인증 확률 값을 포함할 수 있다. 상기 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 매칭률에 상기 사용자의 인증 확률 값을 적용한 보정된 매칭률에 기초하여 이상 요청 여부를 결정하는 것일 수 있다.In one embodiment, the authentication result information may include the authentication probability value of the user. The step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on a corrected matching rate that applies the authentication probability value of the user to the calculated matching rate.
일 실시 예에서, 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계는, 상기 요청에 포함된 요청 당시의 값들을 미리 설정된 조건 규칙에 따라 제1 유형의 조건 항목 또는 제2 유형의 조건 항목으로 분류하는 단계; 상기 요청 당시의 값들 중에서 상기 제1 유형의 조건 항목에 대한 값들로 이루어진 제1 쿼리 조건을 생성하는 단계; 및 상기 제1 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 제1 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계를 포함할 수 있다. 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청 당시의 값들 간의 매칭률을 산출하는 단계는, 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 제1 쿼리 조건에 해당한 정보와 상기 요청에 포함된 정보에서 상기 제1 쿼리 조건에 해당한 정보 간의 제1 매칭률을 산출하는 단계;를 포함할 수 있다. 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 제1 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 것일 수 있다.In one embodiment, the step of searching for block data having a value included in the query condition for the request with the query condition may include the step of classifying the values included in the request at the time of the request into a first type of condition item or a second type of condition item according to a preset condition rule; the step of generating a first query condition composed of values for the first type of condition item among the values at the time of the request; and the step of propagating the first query condition to a node capable of executing the smart contract to execute the smart contract, thereby searching for block data having a value included in the first query condition in a distributed ledger stored in the node. The step of calculating a matching rate between the web activity history information included in the searched block data and the values at the time of the request may include the step of calculating a first matching rate between information corresponding to the first query condition in the web activity history information included in the searched block data and information corresponding to the first query condition in the information included in the request. The step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on the calculated first matching rate.
일 실시 예에서, 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계는, 상기 제2 유형의 조건 항목들에 대한 값들로 이루어진 제2 쿼리 조건을 생성하는 단계; 상기 제1 임계 매칭률 이상인 제1 매칭률을 갖는 블록 데이터를 선별하는 단계; 상기 제2 쿼리 조건 및 선별된 블록 데이터의 블록 해시를 선별된 블록 데이터에 대한 쿼리 조건으로 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 선별된 블록 데이터에서 상기 제2 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계;를 더 포함할 수 있다.In one embodiment, the step of searching for block data having a value included in the query condition for the request with the query condition may further include the steps of: generating a second query condition composed of values for condition items of the second type; selecting block data having a first matching rate that is greater than or equal to the first threshold matching rate; and searching for block data having a value included in the second query condition in the selected block data by propagating the second query condition and a block hash of the selected block data to a node capable of executing the smart contract as the query condition for the selected block data and executing the smart contract.
상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계는, 상기 제1 쿼리 조건 및 제2 쿼리 조건 모두로 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 상기 제2 쿼리 조건에 해당한 정보와 상기 요청에 포함된 정보에서 상기 제2 쿼리 조건에 해당한 정보 간의 제2 매칭률을 산출하는 단계;를 더 포함할 수 있다.The step of calculating a matching rate between the web activity history information included in the searched block data and the information included in the request may further include a step of calculating a second matching rate between information corresponding to the second query condition in the web activity history information included in the block data searched for both the first query condition and the second query condition and information corresponding to the second query condition in the information included in the request.
산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 제2 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 것일 수 있다.The step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on the calculated second matching rate.
일 실시 예에서, 상기 제1 임계 매칭률은 제2 임계 매칭률 보다 더 좁은 신뢰 구간에 대응한 값으로 설정된 것일 수 있다. 상기 제2 임계 매칭률은 상기 제2 매칭률과 비교되기 위해 미리 설정된 임계 매칭률일 수 있다.In one embodiment, the first threshold matching rate may be set to a value corresponding to a narrower confidence interval than the second threshold matching rate. The second threshold matching rate may be a threshold matching rate preset to be compared with the second matching rate.
일 실시 예에서, 상기 방법은, 상기 요청이 이상 요청으로 결정되지 않은 경우, 상기 요청이 나타낸 새로운 웹 활동 내역 정보를 생성하여 상기 블록체인 네트워크 상에 추가로 기록하는 하는 단계를 더 포함할 수 있다. 그러면, 상기 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 상기 매칭률에 기초하여 상기 요청이 이상 요청인지 일차적으로 검증한 이후에, 상기 블록체인 네트워크에 기록된 과거의 매칭률 중 일정 기간 동안 매칭률 변화를 분석하고, 일정 기간 동안 매칭률이 순차적으로 하락하는 것이 분석되고 순차적으로 하락한 이후에 매칭률이 재-상승하는 것이 분석되지 않으면 상기 임계 매칭률 이상의 매칭률을 갖는 상기 요청을 이상 요청으로 결정하는 단계를 더 포함할 수 있다.In one embodiment, the method may further include a step of generating new web activity history information indicated by the request and additionally recording it on the blockchain network if the request is not determined to be an abnormal request. Then, the step of determining whether the request is an abnormal request based on the calculated matching rate may further include a step of primarily verifying whether the request is an abnormal request based on the matching rate, and then analyzing a change in the matching rate over a certain period of time among past matching rates recorded in the blockchain network, and determining the request having a matching rate higher than the threshold matching rate as an abnormal request if it is analyzed that the matching rate sequentially decreases over the certain period of time and if it is not analyzed that the matching rate increases again after sequentially decreasing.
본 출원의 다른 일 측면에 따른 컴퓨터 판독가능한 기록매체는 상술한 실시 예들에 따른 다중 보안으로 요청을 승인하는 방법을 수행하게 하는, 프로그램을 기록할 수 있다.According to another aspect of the present application, a computer-readable recording medium can record a program that causes the method of approving a request with multiple security according to the above-described embodiments.
본 출원의 또 다른 일 측면에 따른 서버는 단말장치와 공개 네트워크를 통해 통신하면서 블록체인 네트워크에 노드로서 참여한다. 상기 서버는, 단말장치로부터 상기 단말장치의 웹 활동 내역 정보를 수집하고, - 상기 웹 활동 내역 정보는 로그인 내역 정보 및 결제 내역 정보를 포함함; 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인 네트워크 상의 블록체인에 기록하며, 상기 단말장치에 내장된 인증 프로그램을 통해 사용자를 인증하여 생성된 요청을 수신하고, 수신한 요청이 이상 요청인지 블록체인 네트워크 상의 블록체인 기록에 기초하여 결정하고, 그리고 상기 요청이 이상 요청이 아닌 경우, 상기 단말장치의 요청을 승인 처리하도록 구성될 수 있다.According to another aspect of the present application, a server participates in a blockchain network as a node while communicating with a terminal device through a public network. The server may be configured to collect web activity history information of the terminal device from the terminal device, - the web activity history information includes login history information and payment history information; record the web activity history information of the terminal device in a blockchain on the blockchain network, receive a request generated by authenticating a user through an authentication program built into the terminal device, determine whether the received request is an abnormal request based on a blockchain record on the blockchain network, and, if the request is not an abnormal request, approve and process the request of the terminal device.
본 출원의 일 측면에 따른 무설치 인증 및 블록체인 기반 검증을 이용한 다중 보안 요청 승인 시스템은 웹 기반 무설치 인증 시스템을 결제 시스템에 연동하여 구축될 수 있다. 그 결과, 별도의 인증 앱을 설치할 필요 없이 웹 기반으로 바이오 인증을 통해 사용자를 일차적으로 인증할 수 있다.A multi-security request approval system using installation-free authentication and blockchain-based verification according to one aspect of the present application can be constructed by linking a web-based installation-free authentication system to a payment system. As a result, users can be primarily authenticated through web-based biometric authentication without the need to install a separate authentication app.
또한, 상기 다중 보안 요청 승인 시스템에 따르면, 블록체인 네트워크에 기록된 블록 데이터를 활용하여 로그인 요청, 결제 요청이 이상 요청인지 탐지할 수 있어, 무설치 기반 시스템의 보안성을 더욱 강화할 수 있다. 특히, 비밀번호 등이 유출되어도 이상 요청 탐지를 통해 피해 규모를 감소시킬 수 있다.In addition, according to the above multi-security request approval system, it is possible to detect whether a login request or payment request is an abnormal request by utilizing block data recorded in the blockchain network, thereby further enhancing the security of the non-installation-based system. In particular, even if passwords, etc. are leaked, the scale of damage can be reduced through abnormal request detection.
특히, 블록 데이터가 진정한 사용자가 아닌 제3자의 거짓된 내역으로 오염되는 것을 방지하기 위해, 정당한 사용자만이 서버에 내역 정보를 제공하도록 블록체인 키 기술을 이용하여 정당한 사용자임을 인증할 수 있는 수단을 기본적으로 서버가 아닌 정당한 사용자만 보관할 수 있게 한다. 구체적으로, 단말로부터 내역 정보를 제공받아 블록체인 네트워크에 기록하는 과정을 처리함에 있어서, 블록체인 키 기술을 이용하여 해당 내역 정보의 정당성을 판단하고, 정당성 판단의 결과에 기초하여 내역 정보를 기록할 수 있다.In particular, in order to prevent block data from being contaminated with false records of a third party other than the true user, a means for authenticating that only the legitimate user is the one providing the history information to the server is basically stored only by the legitimate user, not the server, by using blockchain key technology. Specifically, in the process of receiving history information from a terminal and recording it on the blockchain network, the legitimacy of the history information can be determined using blockchain key technology, and the history information can be recorded based on the result of the legitimacy determination.
그 결과, 별도의 인증 앱을 설치할 필요 없이 웹 기반 시스템 아키텍쳐로 상기 다중 보안 요청 승인 시스템을 구축하여도, 로그인/결제 피해를 예방할 수 있다.As a result, login/payment damage can be prevented even if the above multi-security request approval system is built with a web-based system architecture without the need to install a separate authentication app.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술분야에서의 통상의 기술자가 명확하게 이해할 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.
본 발명 또는 종래 기술의 실시 예의 기술적 해결책을 보다 명확하게 설명하기 위해, 실시 예에 대한 설명에서 필요한 도면이 아래에서 간단히 소개된다. 아래의 도면들은 본 명세서의 실시 예를 설명하기 목적일 뿐 한정의 목적이 아니라는 것으로 이해되어야 한다. 또한, 설명의 명료성을 위해 아래의 도면들에서 과장, 생략 등 다양한 변형이 적용된 일부 요소들이 도시될 수 있다.
도 1은, 본 출원의 일 측면에 따른, 다중 보안 요청 승인 시스템의 개략적인 구성도이다.
도 2는, 본 출원의 다양한 실시 예들에 따른, 블록체인 네트워크를 설명하는 도면이다.
도 3은, 본 출원의 다양한 실시 예들에 따른, 다중 보안 결제를 위해 웹 활동 내역 정보를 블록체인에 기록하는 과정의 흐름도이다.
도 4는, 본 출원의 다양한 실시 예들에 따른, 서버가 암호화처리된 상기 사용자의 웹 활동 내역 정보를 수집하는 과정을 설명한다.
도 5는, 본 출원의 다양한 실시 예들에 따른, 서버가 암호화처리된 상기 사용자의 웹 활동 내역 정보를 수집하는 과정을 설명한다.
도 6은, 본 출원의 다양한 실시 예들에 따른, 로그인 요청에 대한 상기 다중 보안 요청 승인 시스템의 요청 승인 과정을 설명한다.
도 7은, 본 출원의 다양한 실시 예들에 따른, 바이오 인증을 이용한 로그인 요청을 생성하는 과정을 설명한다.
도 8은, 본 출원의 다양한 실시 예들에 따른, 로그인 요청에 대한 블록체인 기반 이상 탐지 과정을 설명한다.
도 9는, 본 출원의 다양한 실시 예들에 따른, 결제 요청에 대한 상기 다중 보안 요청 승인 시스템의 요청 승인 과정을 설명한다.
도 10은, 본 출원의 다양한 실시 예들에 따른, 바이오 인증을 이용한 결제 요청을 생성하는 과정을 설명한다.
도 11은, 본 출원의 다양한 실시 예들에 따른, 결제 요청에 대한 블록체인 기반 이상 탐지 과정을 설명한다.In order to more clearly explain the technical solution of the embodiment of the present invention or the prior art, the drawings required in the description of the embodiment are briefly introduced below. It should be understood that the drawings below are only for the purpose of explaining the embodiment of the present specification and are not for the purpose of limitation. In addition, some elements may be depicted with various modifications such as exaggeration or omission for the clarity of explanation in the drawings below.
FIG. 1 is a schematic diagram of a multi-security request approval system according to one aspect of the present application.
FIG. 2 is a diagram illustrating a blockchain network according to various embodiments of the present application.
FIG. 3 is a flowchart of a process for recording web activity history information on a blockchain for multi-secure payment according to various embodiments of the present application.
FIG. 4 illustrates a process by which a server collects encrypted web activity history information of a user according to various embodiments of the present application.
FIG. 5 illustrates a process by which a server collects encrypted web activity history information of a user according to various embodiments of the present application.
FIG. 6 illustrates a request approval process of the multi-security request approval system for a login request according to various embodiments of the present application.
FIG. 7 illustrates a process for generating a login request using biometric authentication according to various embodiments of the present application.
FIG. 8 illustrates a blockchain-based anomaly detection process for a login request according to various embodiments of the present application.
FIG. 9 illustrates a request approval process of the multi-secure request approval system for a payment request according to various embodiments of the present application.
FIG. 10 illustrates a process for generating a payment request using biometric authentication according to various embodiments of the present application.
FIG. 11 illustrates a blockchain-based anomaly detection process for a payment request according to various embodiments of the present application.
이하에서, 도면을 참조하여 본 출원의 실시 예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present application will be described in detail with reference to the drawings.
그러나, 이는 본 개시(disclosure)를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.However, it should be understood that this disclosure is not intended to limit the present disclosure to a particular embodiment, but rather to encompass various modifications, equivalents, and/or alternatives of the embodiments of the present disclosure. In connection with the description of the drawings, similar reference numerals may be used for similar components.
본 명세서에서, "가진다," "가질 수 있다,""포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 단계, 부품, 요소 및/또는 성분 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재나 부가를 제외시키는 것이 아니다.In this specification, the expressions “have,” “may have,” “include,” or “may include” indicate the presence of a feature (e.g., a component such as a number, function, operation, step, part, element, and/or component), but do not exclude the presence or addition of additional features.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.
다양한 실시 예에서 사용된 "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들면, 제1 구성요소와 제2 구성요소는, 순서 또는 중요도와 무관하게, 서로 다른 구성요소를 나타낼 수 있다.The expressions "first," "second," "firstly," or "secondly," used in various embodiments, can describe various components, regardless of order and/or importance, and do not limit the components. The expressions can be used to distinguish one component from another. For example, the first component and the second component can represent different components, regardless of order or importance.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to),"또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.The expression "configured to" as used herein can be used interchangeably with, for example, "suitable for," "having the capacity to," "designed to," "adapted to," "made to," or "capable of." The term "configured to" does not necessarily mean only that which is "specifically designed to" in terms of hardware. Instead, in some contexts, the expression "a device configured to" can mean that the device is "capable of" doing something together with other devices or components. For example, the phrase "a processor configured (or set) to perform A, B, and C" can mean a dedicated processor (e.g., an embedded processor) to perform those operations, or a generic-purpose processor (e.g., a CPU or application processor) that can perform those operations by executing one or more software programs stored in a memory device.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.The advantages and features of the present invention, and the methods for achieving them, will become clear with reference to the embodiments described in detail below together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and these embodiments are provided only to make the disclosure of the present invention complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 가입자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing embodiments of the present invention, if it is judged that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. In addition, the terms described below are terms defined in consideration of functions in the embodiments of the present invention, and these may vary depending on the intention or custom of the subscriber or operator. Therefore, the definitions should be made based on the contents throughout this specification.
도 1은, 본 출원의 일 측면에 따른, 다중 보안 요청 승인 시스템의 개략적인 구성도이다.FIG. 1 is a schematic diagram of a multi-security request approval system according to one aspect of the present application.
도 1을 참조하면, 상기 다중 보안 요청 승인 시스템(1)은 서버(10)와 통신하는 단말장치(100)를 포함한다. 상기 서버(10), 단말장치(100)는 제3자 시스템(20)과 또한 통신할 수 있다. 본 출원의 다양한 실시 예들에서, 상기 단말장치(100)는 제1 단말장치(100-1), 제2 단말장치(100-2)일 수 있다. 단, 도 1의 시스템(1)의 세부 구성은 본 발명의 특정 실시예들에 불과하므로, 도 1에 의해 본 발명의 기술적 사상이 제한적으로 해석되는 것은 아니다. 예컨대, 제1 단말(100-1) 및 제2 단말(100-2) 외의 또 다른 단말 장치가 시스템(10)에 존재할 수 있다. 또한, 시스템(10)은 도 1에 도시된 구성 외에도, 서버 및 단말 장치로 구성된 시스템이 포함할 수 있는 것으로서 통상의 기술자에게 자명한 구성을 더 포함할 수 있다.Referring to FIG. 1, the multi-security request approval system (1) includes a terminal device (100) that communicates with a server (10). The server (10) and the terminal device (100) may also communicate with a third-party system (20). In various embodiments of the present application, the terminal device (100) may be a first terminal device (100-1) and a second terminal device (100-2). However, since the detailed configuration of the system (1) of FIG. 1 is merely a specific embodiment of the present invention, the technical idea of the present invention is not limited by FIG. 1. For example, another terminal device other than the first terminal (100-1) and the second terminal (100-2) may exist in the system (10). In addition, the system (10) may further include a configuration that is obvious to a person skilled in the art as a system composed of a server and a terminal device, in addition to the configuration illustrated in FIG. 1.
상기 시스템(1)은 전적으로 하드웨어이거나, 전적으로 소프트웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 시스템은 데이터 처리 능력이 구비된 하드웨어 및 이를 구동시키기 위한 운용 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "모듈(module)", "장치", 또는 "시스템" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 또는 다른 프로세서(processor)를 포함하는 데이터 처리 가능한 컴퓨팅 장치일 수 있다. 또한, 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.The above system (1) may be entirely hardware, entirely software, or may have aspects that are partially hardware and partially software. For example, the system may collectively refer to hardware having data processing capabilities and operating software for driving the same. In this specification, the terms "unit," "module," "device," or "system" are intended to refer to a combination of hardware and software driven by the hardware. For example, the hardware may be a computing device capable of processing data, including a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or another processor. In addition, the software may refer to a running process, an object, an executable, a thread of execution, a program, etc.
상기 다중 보안 요청 승인 시스템(1)의 적어도 하나의 구성요소는 블록체인 네트워크(1000)에 참여하는 노드로 동작하여, 상기 다중 보안 요청 승인 시스템(1)은 블록체인 네트워크(1000)와 연동하여 동작하도록 구성될 수도 있다.At least one component of the above multi-security request approval system (1) may operate as a node participating in a blockchain network (1000), so that the above multi-security request approval system (1) may be configured to operate in conjunction with the blockchain network (1000).
상기 다중 보안 요청 승인 시스템(1)은 단말장치(100)의 사용자의 과거 요청 이력 중 적어도 일부를 상기 블록체인 네트워크(1000)를 이용해 보관할 수 있다. 사용자의 과거 요청 이력을 나타낸 적어도 하나의 트랜잭션에 대한 정보는 블록 데이터 형태로 블록체인에 추가되어, 블록체인 네트워크(1000)를 통해 참여 노드에 분산저장 된다. 데이터의 투명성을 높이고 오류나 부정 행위를 방지하기 위해, 블록체인 네트워크(1000)에서는 모든 트랜잭션이 체인에 기록되어 네트워크(1000)의 모든 참가자가 그 내역을 검토할 수 있다.The above multi-security request approval system (1) can store at least some of the past request history of the user of the terminal device (100) using the blockchain network (1000). Information on at least one transaction representing the past request history of the user is added to the blockchain in the form of block data and distributed and stored in participating nodes through the blockchain network (1000). In order to increase the transparency of data and prevent errors or fraud, all transactions are recorded in the chain in the blockchain network (1000) so that all participants in the network (1000) can review the details.
또한, 블록체인 네트워크(1000)를 통해 분산저장된 위변조가 불가능하다. 이는 각 블록이 이전 블록의 해시 값을 포함하기 때문이며, 이로 인해 데이터의 무결성이 확보된다. 그러나, 위변조 불가능한 것이 블록 데이터 내 정보의 변경 불가능을 가리키는 것은 아니다. 블록체인 네트워크(1000)의 참가자들의 합의에 따라서 블록 데이터 내 정보는 변경될 수도 있다. 그러면, 변경된 블록 데이터 내 정보가 다시 블록체인 네트워크(1000)를 통해 분산저장되고, 결국 변경된 정보의 위변조가 불가능한 것으로 업데이트된다.In addition, falsification is impossible through distributed storage via the blockchain network (1000). This is because each block includes the hash value of the previous block, which ensures data integrity. However, falsification impossibility does not mean that information in the block data cannot be changed. Information in the block data may be changed according to the agreement of participants in the blockchain network (1000). Then, the information in the changed block data is again distributed and stored via the blockchain network (1000), and ultimately updated so that falsification of the changed information is impossible.
이러한 다중 보안 요청 승인 시스템(1)에서 서버(10)0는 웹 기반 무설치 인증 시스템을 로그인 요청 및 결제 요청이 발생하는 결제 시스템과 연동하여 구축될 수 있으며, 상기 웹 기반 무설치 인증 시스템은 별도의 인증 앱이 단말장치(100)에 설치되는 것이 불필요한 무설치 인증 시스템과 체인에 기록된 블록 데이터를 활용하여 이상 요청을 탐지하는, 이상 탐지 시스템으로 구성될 수 있다.In this multi-security request approval system (1), the server (10)0 can be constructed by linking a web-based installation-free authentication system with a payment system where login requests and payment requests occur, and the web-based installation-free authentication system can be configured as an installation-free authentication system that does not require a separate authentication app to be installed on a terminal device (100) and an abnormality detection system that detects abnormal requests by utilizing block data recorded in a chain.
이하에서, 다중 보안 요청 승인 시스템(1)의 구성(10, 100)을 먼저 살펴보고, 연동되는 블록체인 네트워크(1000)를 설명한다.Below, the configuration (10, 100) of the multi-security request approval system (1) is first examined, and the linked blockchain network (1000) is described.
서버(10), 제3자 시스템(20), 단말장치(100)는 공개 네트워크를 통해 통신하도록 구성된다.The server (10), third-party system (20), and terminal device (100) are configured to communicate through a public network.
상기 공개 네트워크는 블록체인 네트워크(1000)에 대한 용이한 접근을 위해 사용자가 인터넷망 등 통신망으로 일반적으로 접속가능한 공개된 네트워크를 의미할 수 있다. 공개 네트워크는, 단말장치(100)과 서버(10)가 서로 데이터를 송수신할 수 있는 유/무선의 전기 통신 경로를 제공한다. 공개 네트워크는 특정한 통신 프로토콜에 따른 통신 방식에 한정되지 않으며, 구현예에 따라 적절한 통신 방식이 사용될 수 있다. 예를 들어, 인터넷 프로토콜(IP) 기초의 시스템으로 구성되는 경우, 공개 네트워크는 유선 및/또는 무선 인터넷망으로 구현될 수 있으며, 서버(10), 단말(100)이 이동 통신 단말로서 구현되는 경우 공개 네트워크는 셀룰러 네트워크 또는 WLAN(wireless local area network) 네트워크와 같은 무선망으로 구현될 수 있다.The above public network may refer to a public network that users can generally access via a communication network such as the Internet for easy access to the blockchain network (1000). The public network provides a wired/wireless electric communication path through which a terminal device (100) and a server (10) can transmit and receive data to each other. The public network is not limited to a communication method according to a specific communication protocol, and an appropriate communication method may be used depending on the implementation example. For example, if it is configured as a system based on the Internet Protocol (IP), the public network may be implemented as a wired and/or wireless Internet network, and if the server (10) and the terminal (100) are implemented as mobile communication terminals, the public network may be implemented as a wireless network such as a cellular network or a WLAN (wireless local area network) network.
서버(10)는 프로세서(processor) 및 메모리(memory)를 포함할 수 있으며, 프로세서는 메모리에 저장되어 있는 명령어를 실행함으로써, 상기 명령어에 기초한 일련의 동작을 수행할 수 있다.The server (10) may include a processor and a memory, and the processor may perform a series of operations based on the commands by executing the commands stored in the memory.
단말(100)은 사용자 입력에 따라 동작을 수행하는 장치로서, 데이터를 처리할 수 있는 적어도 하나의 프로세서, 데이터를 저장하는 메모리, 데이터를 송/수신하는 통신부를 포함한다. 상기 단말(100)은, 예를 들어, 랩탑 컴퓨터, 노트북, 기타 컴퓨팅 장치, 태블릿, 셀룰러 폰, 스마트 폰, 스마트 워치, 스마트 글래스, 헤드 마운트 디스플레이(HMD), 기타 모바일 장치 또는 기타 웨어러블 장치 형태로 구현될 수 있다.The terminal (100) is a device that performs an operation according to a user input, and includes at least one processor capable of processing data, a memory that stores data, and a communication unit that transmits/receives data. The terminal (100) may be implemented in the form of, for example, a laptop computer, a notebook, other computing devices, a tablet, a cellular phone, a smart phone, a smart watch, smart glasses, a head-mounted display (HMD), other mobile devices, or other wearable devices.
하나의 사용자가 다수의 단말장치(100)를 이용할 수 있다. 제1 단말장치(100-1), 제2 단말장치(100-2)는 서로 다른 단말 장치일 수 있다. 여기서 다른 단말 장치는 기종이 다른 것에 제한되지 않으며, 동일한 기종, 예컨대 둘다 스마트폰이지만 서로 다른 단말 장치일 수 있다. 따라서, 제1 단말 장치(100-1) 및 제2 단말 장치(100-2)는 스마트폰(smartphone)과 같은 이동 단말일 수 있으나, 개인용 컴퓨터(personal computer)와 같은 비이동식 단말일 수도 있으며, 메모리나 프로세서와 같은 하드웨어 컴포넌트를 포함할 수 있음은 주지의 사실이다.One user can use multiple terminal devices (100). The first terminal device (100-1) and the second terminal device (100-2) can be different terminal devices. Here, the different terminal devices are not limited to different models, and can be different terminal devices, for example, both are smartphones. Accordingly, the first terminal device (100-1) and the second terminal device (100-2) can be mobile terminals such as smartphones, but can also be non-mobile terminals such as personal computers, and it is a well-known fact that they can include hardware components such as memories and processors.
서버(server) 및 단말(terminal)이라는 개념은 통상의 기술자에게 자명한 것이므로, 서버(10), 제1 단말 장치(100-1) 및 제2 단말 장치(100-2)의 하드웨어적 구현에 대해서는 더 이상의 자세한 설명을 생략하도록 한다.Since the concepts of server and terminal are self-evident to those skilled in the art, further detailed description of the hardware implementation of the server (10), the first terminal device (100-1), and the second terminal device (100-2) will be omitted.
제1 단말 장치(100-1)과 제2 단말 장치(100-2)과 같은 단말장치(100)는, 서버(10) 또는 제2자 시스템(20)으로부터 서비스 혹은 콘텐츠를 제공받는 것과 관련하여, 다양한 유형의 요청(예컨대, 로그인 요청, 성인 인증 요청, 결제 요청, 이체 요청 등)을 서버(10)로 전송할 수 있다.Terminal devices (100), such as the first terminal device (100-1) and the second terminal device (100-2), can transmit various types of requests (e.g., login requests, adult authentication requests, payment requests, transfer requests, etc.) to the server (10) in relation to receiving services or content from the server (10) or a second-party system (20).
상기 단말장치(100)는 사용자를 확인하기 위한 사용자의 생체 정보를 미리 저장하도록 구성된다. 상기 사용자의 생체 정보는 얼굴 정보, 홍채 정보, 사용자를 식별할 수 있는 기타 생체 정보일 수 있으나, 이에 제한되진 않는다.The above terminal device (100) is configured to store the user's biometric information in advance for user identification. The user's biometric information may be facial information, iris information, or other biometric information that can identify the user, but is not limited thereto.
또한, 상기 단말장치(100)는 카메라, 기타 센서를 통해 사용자의 생체 정보를 획득하고, 획득된 생체 정보와 미리 저장된 생체 정보를 비교하여 사용자를 확인하는, 바이오 인증 동작을 수행하도록 구성된다. 상기 내장된 인증 프로그램은 사용자가 별도의 인증 앱을 단말장치(100)에 설치할 필요가 없이 단말장치(100)의 OS에 통합되어 내장된 인증 프로그램으로서, 단말장치(100)의 제조사가 제공하는 다양한 인증 프로그램일 수 있다. 본 명세서에서 무설치는 사용자가 별도의 인증 앱을 설치하지 않는 것을 의미한다.In addition, the terminal device (100) is configured to perform a biometric authentication operation, which acquires the user's biometric information through a camera or other sensors, and compares the acquired biometric information with pre-stored biometric information to verify the user. The built-in authentication program is an authentication program integrated and built into the OS of the terminal device (100) without requiring the user to install a separate authentication app on the terminal device (100), and may be various authentication programs provided by the manufacturer of the terminal device (100). In this specification, non-installation means that the user does not install a separate authentication app.
상기 내장된 인증 프로그램은 사용자가 미리 설정한 비밀번호 또는 패턴을 이용하는 인증 프로그램 또는 사용자의 생체 정보를 이용하는 바이오 인증 프로그램일 수 있다. 상기 단말장치(100)에 내장된 바이오 인증 프로그램은, 예를 들어 Apple 사의 Face ID 프로그램, 삼성전자의 지문 인식 프로그램일 수 있으나, 이에 제한되진 않는다. 이하, 설명의 명료성을 위해, 바이오 인증 동작은 Face ID와 같은 얼굴 인증 동작 방식으로 구현된 실시 예들로 본 발명을 보다 상세히 서술한다.The above built-in authentication program may be an authentication program that uses a password or pattern set in advance by the user, or a biometric authentication program that uses the user's biometric information. The biometric authentication program built into the terminal device (100) may be, for example, Apple's Face ID program or Samsung Electronics' fingerprint recognition program, but is not limited thereto. Hereinafter, for the sake of clarity of explanation, the biometric authentication operation will be described in more detail with embodiments implemented in a face authentication operation method such as Face ID.
상기 단말장치(100)는 미리 내장된 인증 프로그램을 통해 사용자를 인증할 수 있다. 인증된 사용자는 단말장치(100)의 정당한 사용자인 것이 인증된다.The above terminal device (100) can authenticate a user through a pre-built authentication program. An authenticated user is verified to be a legitimate user of the terminal device (100).
본 출원의 다양한 실시 예들에서, 상기 단말장치(100)는 블록체인 주소에 대응한 블록체인 비밀키를 획득하여 저장할 수 있다. 상기 단말장치(100)는 상기 블록체인 비밀키를 획득하기 위해 상기 서버(10)를 통해 블록체인 네트워크(1000)에 접속할 수 있다.In various embodiments of the present application, the terminal device (100) can obtain and store a blockchain secret key corresponding to a blockchain address. The terminal device (100) can connect to a blockchain network (1000) through the server (10) to obtain the blockchain secret key.
상기 단말장치(100)는 블록체인 비밀키로 상기 요청의 적어도 일부를 암호화할 수 있다. 또한, 상기 단말장치(100)는 블록체인 주소에 대응한 자신의 블록체인 비밀키를 이용하여 암호화된 정보를 복호화할 수 있다.The terminal device (100) can encrypt at least a portion of the request with a blockchain secret key. In addition, the terminal device (100) can decrypt the encrypted information using its own blockchain secret key corresponding to the blockchain address.
상기 단말장치(100)의 동작에 대해서는 아래의 도 2 내지 도 10를 참조해 보다 상세히 서술한다.The operation of the above terminal device (100) is described in more detail with reference to FIGS. 2 to 10 below.
서버(10)는 자체적으로 단말장치에게 서비스와 컨텐츠 등을 제공하거나, 또는 상기 서비스와 컨텐츠를 제공하는 제3자 시스템(20)으로부터 사용자 요청의 승인을 위임받은 서버일 수 있다.The server (10) may be a server that provides services and contents to the terminal device on its own, or may be a server that has been delegated approval of a user request from a third-party system (20) that provides the services and contents.
서버(10)는 제1 단말 장치(100-1)가나 제2 단말 장치(100-2)과 같은 단말 장치에게 서비스와 콘텐츠 등을 제공할 경우, 상기 서버(10)가 제공하는 서비스는 단말장치(100)에 결제 서비스, 이-커머스 서비스와 같은 결제 관련 서비스일 수 있다. 상기 서버(10)가 제공하는 컨텐츠는 상기 서비스와 관련된 컨텐츠일 수 있다.When the server (10) provides services and contents to a terminal device such as a first terminal device (100-1) or a second terminal device (100-2), the service provided by the server (10) may be a payment-related service such as a payment service or an e-commerce service for the terminal device (100). The content provided by the server (10) may be content related to the service.
본 출원의 다양한 실시 예들에서, 상기 서버(10)는 상기 블록체인 네트워크(1000)에 참여한 노드로서, 블록체인 네트워크 단말일 수 있다. 상기 서버(10)는 블록체인 네트워크(1000)에 직접 연결하여 해당 네트워크의 적어도 일부 노드를 호스팅하기 위해 블록체인 클라이언트 소프트웨어가 설치될 수 있다. 상기 서버(10)는 블록체인 네트워크(1000)에 참여해 블록체인, 블록 데이터를 가진다.In various embodiments of the present application, the server (10) may be a blockchain network terminal as a node participating in the blockchain network (1000). The server (10) may be directly connected to the blockchain network (1000) and may have blockchain client software installed to host at least some nodes of the network. The server (10) participates in the blockchain network (1000) and has blockchain and block data.
반면, 상기 단말장치(100)는 블록체인 데이터를 가지지 않거나, 또는 필요한 정보만을 저장하고 필요에 따라 다른 노드로부터 데이터를 요청하는 라이트 클라이언트 장치일 수 있다.On the other hand, the terminal device (100) may be a light client device that does not have blockchain data or stores only necessary information and requests data from other nodes as needed.
상기 서버(10)를 통해 상기 다중 보안 요청 승인 시스템(1)은 블록체인 네트워크(1000)와 연동된다. 상기 서버(10)는 연동된 블록체인 네트워크(1000)에 접속하여 다중 보안으로 단말 장치(100)의 요청을 승인하기 위한 다양한 연산 동작을 수행할 수 있다.The multi-security request approval system (1) is linked to a blockchain network (1000) through the server (10). The server (10) can access the linked blockchain network (1000) and perform various computational operations to approve a request from a terminal device (100) with multi-security.
도 2는, 본 출원의 다양한 실시 예들에 따른, 블록체인 네트워크(1000)를 설명하는 도면이다.FIG. 2 is a diagram illustrating a blockchain network (1000) according to various embodiments of the present application.
도 2를 참조하면, 상기 서버(10)가 참여한 블록체인 네트워크(1000)는 서로 연결된 복수 개의 컴퓨팅 장치(이하, '노드')들을 포함하는 피투피 네트워크로 이해될 수 있다. 각각의 노드는 하나 이상의 프로세서를 포함하여 연산을 수행할 수 있다. 구체적으로, 블록체인 네트워크는 블록체인 구조의 분산 데이터베이스를 구현하기 위해, 네트워크를 통하여 서로 연결된 복수 개의 컴퓨팅 장치들(피어 또는 노드)을 포함하는 피어 투 피어 네트워크로 참조될 수 있다.Referring to FIG. 2, the blockchain network (1000) in which the server (10) participates may be understood as a peer-to-peer network including a plurality of computing devices (hereinafter, 'nodes') connected to each other. Each node may include one or more processors to perform calculations. Specifically, the blockchain network may be referred to as a peer-to-peer network including a plurality of computing devices (peers or nodes) connected to each other through a network in order to implement a distributed database of a blockchain structure.
다중 보안 요청 승인 시스템(1)에 접속하는 사용자는 블록체인 네트워크에 등록된 블록체인 계좌 정보를 가질 수 있다.A user accessing the multi-security request approval system (1) can have blockchain account information registered in the blockchain network.
블록체인 네트워크(1000)는 트랜잭션을 처리하고 블록체인에 기록할 수 있다. 예를 들어, 블록체인 네트워크(1000)는 웹 활동 내역 정보를 나타낸 트랜잭션을 처리하고 블록체인에 기록할 수 있다.The blockchain network (1000) can process transactions and record them on the blockchain. For example, the blockchain network (1000) can process transactions representing web activity history information and record them on the blockchain.
블록체인 계좌 정보는 비밀 키(private key)와 공개 키(public key)를 포함할 수 있다. 비밀 키는, 블록체인 네트워크에서 트랜잭션(예: 제1 사 용자 계좌로부터 제2 사용자 계좌로 '디지털 지급수단' 또는 '정보/데이터'가 이체되도록 하는 트랜잭션, 스마트 계약을 블록체인 네트워크 상에 배포하는 트랜잭션, 스마트 계약을 실행시키는 트랙잭션 등)이 발생하도록 하기 위한 사용자의 디지털 서명으로 기능할 수 있다. 공개 키는 사용자의 계좌 주소(account address, 이하, '계좌')로 기능할 수 있다. 다양한 실시 예에서, 계좌는 사람이 인식할 수 있는 (human-readable) 문자열 또는 숫자열을 포함할 수 있다.Blockchain account information may include a private key and a public key. The private key may function as a digital signature of the user to allow a transaction (e.g., a transaction to transfer a 'digital payment instrument' or 'information/data' from a first user account to a second user account, a transaction to deploy a smart contract on the blockchain network, a transaction to execute a smart contract, etc.) to occur on the blockchain network. The public key may function as the user's account address (hereinafter, 'account'). In various embodiments, the account may include a human-readable string or number string.
트랜잭션은 블록체인 네트워크를 이용하는 노드(예: 서버(300))에 의해 발생한다. 트랜잭션은, 아래에서 서술할, 관리자 단말(100)과 관련된 정보(예컨대, 계약 정보), 디스플레이 장치에 관련된 정보(예컨대, 디스플레이 장치의 위치 정보), 컨텐츠 제공자 단말(200)과 관련된 정보(예컨대, 컨텐츠 정보), 또는 암호화폐/토큰의 이체에 관한 정보, 스마트 계약에 관한 정보를 포함할 수 있다. 노드는 트랜잭션의 처리 결과를 블록체인을 통해 확인할 수 있다.Transactions are generated by nodes (e.g., server (300)) utilizing the blockchain network. Transactions may include information related to an administrator terminal (100) (e.g., contract information), information related to a display device (e.g., location information of a display device), information related to a content provider terminal (200) (e.g., content information), or information related to the transfer of cryptocurrency/tokens, or information related to a smart contract, as described below. Nodes can confirm the results of processing transactions through the blockchain.
블록체인 네트워크상에서 발생되는 트랜잭션들은, 상기 트랜잭션들을 생성한 주체의 블록체인 계좌의 비밀 키에 의해 암호화 서명되므로, 블록체인 네트워크상에 위변조가 불가능한 암호학적 증명 데이터로서 기록될 수 있다.Transactions occurring on a blockchain network are cryptographically signed by the secret key of the blockchain account of the entity that created the transactions, so they can be recorded on the blockchain network as cryptographic proof data that cannot be forged.
트랜잭션이 발생되면, 블록체인 네트워크의 노드들은 발생한 트랜잭션의 무결성을 검증하고, 블록체인 네트워크에 구현된 합의 알고리즘(예: POW(Proof of Work), POS(Proof of Stake), DPOS(Delegated Proof of Stake) 등)에 기초해 기 생성된 블록에 이어질 새로운 블록을 생성하며, 새로이 생성된 블록은 다른 노드들에게 전파되면서 트랜잭션이 실행될 수 있다. 블록은 복수의 트랜잭션 정보를 포함할 수 있다.When a transaction occurs, nodes in the blockchain network verify the integrity of the transaction that occurred, and create a new block to follow the previously created block based on the consensus algorithm implemented in the blockchain network (e.g., POW (Proof of Work), POS (Proof of Stake), DPOS (Delegated Proof of Stake), etc.), and the newly created block is propagated to other nodes so that the transaction can be executed. A block can include information about multiple transactions.
블록에 대한 정보는 노드들이 공유하는 트랜잭션 데이터베이스에 저장될 수 있다. 트랜잭션 데이터베이스는 복수 개의 노드들이 같은 정보를 공유하는 공공 원장(public ledger)으로 이해될 수 있다. 구체적으로, 상기 복수 개의 컴퓨팅 장치들은 하나의 공공 원장(public ledger)을 가질 수 있다. 블록체인 네트워크는 하나의 공공 원장(public ledger)이 복수 개의 컴퓨팅 장치들 각각에 의하여 생성되는 점에서 분산 네트워크로 참조될 수 있다. 상기 하나의 공공 원장은 블록체인으로 참조될 수 있다.Information about the block can be stored in a transaction database shared by the nodes. The transaction database can be understood as a public ledger in which multiple nodes share the same information. Specifically, the multiple computing devices can have one public ledger. The blockchain network can be referred to as a distributed network in that one public ledger is generated by each of the multiple computing devices. The one public ledger can be referred to as a blockchain.
본 출원의 다양한 실시 예들에서, 상기 블록체인 네트워크(1000)는 프라이빗 블록체인 네트워크일 수 있다. 프라이빗 블록체인 네트워크는 일반적으로 한 조직 또는 특정 엔티티에 의해 제어되며, 참여자가 제한된 블록체인 네트워크를 의미한다. 프라이빗 블록체인 네트워크는 중앙화된 구조를 가질 수 있다. 이는, 퍼블릭 블록체인 네트워크와 달리, 특정 개체나 그룹이 네트워크의 권한을 가지고 있으며, 상기 특정 개체나 그룹에서 트랜잭션을 검증하거나 블록을 추가하는 등의 활동을 수행할 수 있다. 상기 프라이빗 블록체인 네트워크는 네트워크를 운영하는 엔티티 또는 엔티티 그룹에서 허가한 노드만 참여하는 것으로 참여자가 제한된다. 상기 프라이빗 블록체인 네트워크는 제한된 참여자 및 제어 권한 때문에 퍼블릭 블록체인보다 높은 수준의 보안성을 제공한다. 또한, 프라이빗 블록체인 네트워크는 참여자의 수가 제한되어 있기 때문에 트랜잭션 처리 속도가 빠르고 운영 비용도 적게 들어 효율적이다. 또한, 상기 프라이빗 블록체인 네트워크는 참여자 제한으로 인해 블록체인의 데이터에 대한 접근 권한을 제한할 수 있어, 민감한 정보에 대한 프라이버시를 보장할 수 있다.In various embodiments of the present application, the blockchain network (1000) may be a private blockchain network. A private blockchain network is generally controlled by an organization or a specific entity, and means a blockchain network with limited participants. A private blockchain network may have a centralized structure. Unlike a public blockchain network, a specific entity or group has authority over the network, and the specific entity or group can perform activities such as verifying transactions or adding blocks. The private blockchain network is limited in participants by allowing only nodes authorized by the entity or entity group operating the network to participate. The private blockchain network provides a higher level of security than a public blockchain due to the limited participants and control authority. In addition, the private blockchain network is efficient because the transaction processing speed is fast and the operating cost is low because the number of participants is limited. In addition, the private blockchain network can limit access to blockchain data due to the limited participants, thereby ensuring privacy for sensitive information.
일부 실시 예들에서, 상기 프라이빗 블록체인 네트워크(1000)는 컨소시엄 노드에 의해 운영되는 컨소시엄 블록체인 네트워크일 수 있다. 컨소시엄 블록체인 네트워크는 여러 개의 기관이 운영 노드로서 네트워크에 참여해 공동으로 관리하며, 이들 기관 중 어느 하나가 네트워크를 독점적으로 통제하지 않고 서로 합의하여 블록체인 네트워크를 운영한다.In some embodiments, the private blockchain network (1000) may be a consortium blockchain network operated by a consortium node. A consortium blockchain network is one in which multiple institutions participate in the network as operating nodes and jointly manage the network, and none of these institutions exclusively control the network, but rather operate the blockchain network through mutual agreement.
상기 서버(10)는 운영 노드 또는 일반 참여자 노드로 블록체인 네트워크(1000)에 참여할 수 있다.The above server (10) can participate in the blockchain network (1000) as an operating node or a general participant node.
이러한 구성요소(10, 100)를 갖는 다중 보안 요청 승인 시스템(1)은 본 명세서에 서술되지 않은 다른 구성요소를 포함할 수도 있다는 것이 통상의 기술자에게 명백할 것이다. 예를 들어, 데이터 입력장치, 디스플레이 및/또는 인쇄와 같은 출력장치, 네트워크, 네트워크 인터페이스 및 프로토콜 등을 더 포함할 수 있다.It will be apparent to one of ordinary skill in the art that a multi-security request authorization system (1) having such components (10, 100) may include other components not described herein. For example, it may further include a data input device, an output device such as a display and/or a printer, a network, a network interface and protocols, etc.
상기 서버(10)는 로그인 요청, 결제 요청과 같은 요청을 단말장치(100)로부터 수신하면, 로그인 요청, 결제 요청의 정당성을 확인하고 정당성이 확인된 요청에 대해서 승인하도록 구성될 수 있다.When the above server (10) receives a request, such as a login request or payment request, from a terminal device (100), it can be configured to verify the legitimacy of the login request or payment request and approve the request for which legitimacy has been verified.
블록체인 네트워크에 기록Recorded on the blockchain network
도 3은, 본 출원의 다양한 실시 예들에 따른, 다중 보안 결제를 위해 웹 활동 내역 정보를 블록체인에 기록하는 과정의 흐름도이다.FIG. 3 is a flowchart of a process for recording web activity history information on a blockchain for multi-secure payment according to various embodiments of the present application.
도 3의 방법은 도 1의 서버(10), 단말장치(100)에 의해 수행될 수 있다. 단, 도 3에 도시된 방법은 본 발명의 특정 실시 예들에 불과하므로 도 3에 의해 본 발명의 사상이 한정 해석되는 것은 아니고, 도 3에 도시된 방법의 각 단계는 경우에 따라 도면과 그 순서를 달리하여 수행될 수 있음은 물론이며, 이러한 점은 이후의 도 6, 9에 대해서도 같다. 또한, 도 6, 9의 방법은 서버(10), 제1 단말 장치(100-1), 제2 단말 장치(100-2)에 애플리케이션 프로그램을 설치하는 방법을 통해 구현될 수 있으며, 보다 구체적으로는 SDK(software development kit), API(application programming interface) 등을 통해 구현될 수 있다.The method of FIG. 3 can be performed by the server (10) and the terminal device (100) of FIG. 1. However, since the method illustrated in FIG. 3 is merely a specific embodiment of the present invention, the spirit of the present invention is not limited by FIG. 3, and each step of the method illustrated in FIG. 3 can be performed in a different order from the drawing depending on the case, and this point is also the same for FIGS. 6 and 9 below. In addition, the method of FIGS. 6 and 9 can be implemented through a method of installing an application program on the server (10), the first terminal device (100-1), and the second terminal device (100-2), and more specifically, it can be implemented through an SDK (software development kit), an API (application programming interface), etc.
또한, 도 3의 방법은 사용자가 제1 단말장치(100-1) 또는 제2 단말장치(100-2)를 통해 관련 활동 내역을 기록한 정보(예컨대, 로그인 내역 정보, 결제 내역 정보, 기타 활동 내역 정보)를 생성할 수 있는 로그인 활동, 결제 활동, 기타 활동을 웹 상에서 수행하였고, 단말장치(100)의 사용자를 식별하기 위한 식별 정보나, 상기 식별 정보에 대응되는 블록체인 주소 및 블록체인 비밀키 등, 인증 과정에 필요한 정보들이 서버(10) 혹은 제1 단말 장치(100-1)에 구비되어 있는 상태에서 수행된다는 가정 하에 설명을 진행하도록 한다.In addition, the method of FIG. 3 is explained under the assumption that the user has performed login activities, payment activities, or other activities on the web that can generate information (e.g., login history information, payment history information, or other activity history information) that records related activities through the first terminal device (100-1) or the second terminal device (100-2), and that identification information for identifying the user of the terminal device (100), or information necessary for the authentication process, such as a blockchain address and blockchain secret key corresponding to the identification information, are provided in the server (10) or the first terminal device (100-1).
예를 들어, 서버(10)는 식별 정보와, 해당 식별 정보에 대응되는 블록체인 주소 정보를 미리 확보하고 있을 수 있다. 서버(10)는 단말장치(100)이 생성한, 식별 정보 및 상기 식별 정보에 대응되는 블록체인 주소 정보를 단말장치(100)로부터 제공받음으로써, 상기 제공받은 식별 정보를 포함하는 요청이 수신될 때마다 해당 요청에 포함되어 있는 암호화된 정보를 상기 대응되는 블록체인 주소 정보를 이용하여 복호화하기 위한 준비를 할 수 있다. 상기 식별 정보 및 블록체인 주소 정보는 서버(10)에 계속 저장되어 있는 것이 바람직하겠지만, 필요할 때마다 다른 장치로부터 서버(10)로 제공될 수도 있을 것이다. 한편, 식별 정보 및 상기 식별 정보에 대응되는 블록체인 주소 정보를 제공받을 때, 서버(10)는 암호화된 검증 정보를 단말장치(100)로부터 함께 제공받을 수 있다. 이와 같은 암호화된 검증 정보는, 단말장치(100)이 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화하여 생성한 것일 수 있다. 서버(10)는 상기 암호화된 검증 정보를 블록체인 주소 정보를 이용하여 복호화함으로써, 상기 암호화된 검증 정보의 정당성(즉, 상기 식별 정보에 대응되는 블록체인 주소 정보를 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화함으로써 생성된 것인지의 여부)를 판단할 수 있으며, 정당하다고 판단된 경우, 상기 제공받은 블록체인 주소 정보를 상기 식별 정보에 매칭(matching)시켜 서버(10) 혹은 다른 장치에 저장할 수 있다.For example, the server (10) may secure identification information and blockchain address information corresponding to the identification information in advance. By receiving the identification information generated by the terminal device (100) and the blockchain address information corresponding to the identification information from the terminal device (100), the server (10) may prepare to decrypt the encrypted information included in the request using the corresponding blockchain address information whenever a request including the provided identification information is received. It is preferable that the identification information and the blockchain address information be continuously stored in the server (10), but they may also be provided to the server (10) from another device whenever necessary. Meanwhile, when receiving the identification information and the blockchain address information corresponding to the identification information, the server (10) may also receive encrypted verification information from the terminal device (100). Such encrypted verification information may be generated by the terminal device (100) by encrypting the blockchain address information corresponding to the identification information using the blockchain secret key corresponding to the identification information. The server (10) can determine the legitimacy of the encrypted verification information (i.e., whether the blockchain address information corresponding to the identification information was generated by encrypting the blockchain address information corresponding to the identification information using the blockchain secret key corresponding to the identification information) by decrypting the encrypted verification information using the blockchain address information, and if determined to be legitimized, the server (10) can match the provided blockchain address information to the identification information and store it in the server (10) or another device.
도 3을 참조하면, 상기 방법은, 단말장치(100)로부터 상기 사용자의 웹 활동 내역 정보를 수집하는 단계(S310); 상기 사용자의 웹 활동 내역 정보를 블록체인 네트워크(1000) 상의 블록체인에 기록하는 단계(S320, S330)를 포함한다.Referring to FIG. 3, the method includes a step (S310) of collecting the user's web activity history information from the terminal device (100); and a step (S320, S330) of recording the user's web activity history information in a blockchain on a blockchain network (1000).
상기 단말장치(100)는 제1 단말장치(100-1) 및/또는 제2 단말장치(100-2)일 수 있다.The above terminal device (100) may be a first terminal device (100-1) and/or a second terminal device (100-2).
상기 제3자 시스템(20)은 서비스 또는 컨텐츠를 단말 장치에 제공하는, 서버(10)와 다른 시스템일 수 있다. 상기 제3자 시스템(20)은 본 발명의 출원 이전에 공개된 다양한 이-커머스 시스템, 검색 엔진 시스템, 기타 결제 시스템, 기타 로그인 시스템일 수 있다.The third-party system (20) may be a system other than the server (10) that provides services or contents to the terminal device. The third-party system (20) may be various e-commerce systems, search engine systems, other payment systems, or other login systems that were disclosed prior to the application of the present invention.
제3자 시스템(20), 단말장치(100)는, 상기 단말장치(100)가 월드 와이드 웹을 통해 상기 제3자 시스템(20)의 웹 사이트에 접속하여 웹 활동 내역 정보를 생성하고, 장치 내 저장할 수 있다. 상기 웹 활동 내역은 사용자가 웹사이트를 방문하거나, 검색하거나, 클릭하거나, 어떤 상품을 구매하는 등의 활동을 추적하고 기록한 것이다. 상기 단말장치(100)에서 상기 웹 활동 내역 정보는 쿠키 형태로 저장될 수 있다.The third-party system (20) and the terminal device (100) can generate web activity history information by accessing the website of the third-party system (20) through the World Wide Web and store it in the device. The web activity history is the tracking and recording of activities such as a user visiting a website, searching, clicking, or purchasing a product. The web activity history information in the terminal device (100) can be stored in the form of a cookie.
상기 웹 활동 내역 정보는 로그인 내역 정보 또는 결제 내역 정보일 수 있다.The above web activity history information may be login history information or payment history information.
로그인 내역 정보는 사용자의 로그인 활동을 추적하여 생성될 수 있다. 상기 로그인 내역 정보는 사용자의 식별정보, 사용자의 접속정보, 요청정보를 포함할 수 있다.Login history information may be generated by tracking the user's login activities. The login history information may include the user's identification information, the user's access information, and request information.
요청정보는 웹 활동을 위한 내역 요청의 구체적인 내용을 나타낸다. 예컨대, 로그인 내역 정보 내 요청정보는 단말장치(100)가 웹 사이트에 로그인하고자 한다는 취지를 나타낼 수 있다.Request information indicates the specific content of a request for history for web activity. For example, request information in login history information may indicate that the terminal device (100) wishes to log in to a website.
접속정보는 웹 활동을 위해 해당 웹 페이지(예컨대, 로그인 화면)에 접속한 상태를 나타내는 것으로서, 예를 들어, 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 브라우저, 접속 언어, 접속 시간, 접속 웹 사이트 주소 정보 중 하나 이상의 정보를 포함할 수 있다.Connection information indicates the status of access to the corresponding web page (e.g., login screen) for web activities, and may include, for example, one or more of the following information: connection location, connection device, connection device OS, connection browser, connection language, connection time, and connection website address.
접속위치는 단말장치(100)의 실제 지리적 위치(예컨대, GPS 좌표, 지리적 주소), 또는 실제 지리적 위치에 대응한 위치(예컨대, IP 주소에 대응한 지리적 지역)일 수 있다. 상기 지리적 지역은 실제 지리적 위치를 포함한 보다 넓은 영역으로서, 예를 들어 시, 도(Province), 주(states), 국가일 수 있다.The connection location may be an actual geographical location of the terminal device (100) (e.g., GPS coordinates, geographical address), or a location corresponding to an actual geographical location (e.g., a geographical region corresponding to an IP address). The geographical region may be a wider area including the actual geographical location, for example, a city, a province, a state, or a country.
접속 웹 사이트 주소는 로그인 화면을 표시하는 웹 페이지 주소이거나, 또는 상기 로그인 화면을 제공하는 제3자 시스템(20)의 웹 페이지 중 상기 로그인 화면을 표시하는 상기 웹 페이지 주소와 적어도 일부 주소를 공유하는 다른 웹 페이지 주소일 수 있다. 상기 다른 웹 페이지 주소는 예를 들어 메인 화면 주소와 같이 제3자 시스템(20)이 제공하는 웹 페이지 중 대표 주소일 수 있다.The access website address may be a web page address that displays a login screen, or may be another web page address that shares at least a part of the address with the web page address that displays the login screen among the web pages of the third-party system (20) that provides the login screen. The other web page address may be a representative address among the web pages provided by the third-party system (20), such as the main screen address.
접속 시간은 로그인 시도를 위해 해당 웹 사이트에 접속한 시간으로서, 접속 요일, 및 접속 시점으로 표현될 수 있다.Access time is the time you access the website to attempt to log in, and can be expressed as the day of the week and the time of access.
접속 디바이스는 해당 웹 사이트에 접속하는데 이용된 디바이스를 나타내는 식별정보로서, 예를 들어 디바이스 ID, UUID (universally unique identifier), 또는 디바이스와 관련된 다양한 식별정보일 수 있다.The connection device is identification information that indicates the device used to access the website, and may be, for example, a device ID, a UUID (universally unique identifier), or various identification information related to the device.
접속 디바이스 OS는 디바이스 OS(operating system)의 식별번호일 수 있다.The connected device OS may be the identification number of the device operating system (OS).
상기 식별정보는 단말장치(100)의 사용자를 식별하기 위한 정보로서, 예를 들어 제3자 시스템(20)에서 사용자를 식별하기 위해 부여한 고유 정보인 사용자 ID(identification), 또는 이메일 주소, 기타 식별번호일 수 있다. 상기 사용자 ID는 상기 제3자 시스템(20)에서 제공하는 로그인 화면에 로그인 정보로 입력될 수 있다.The above identification information is information for identifying the user of the terminal device (100), and may be, for example, a user ID (identification), which is unique information provided by a third-party system (20) to identify the user, or an email address, or other identification number. The user ID may be entered as login information on the login screen provided by the third-party system (20).
상기 식별정보는 상기 식별정보가 로그인 정보로 이용되는 웹 페이지 주소에 연관될 수 있다. 사용자는 제3자 시스템(20) 별로 등록한 ID가 서로 상이할 수 있어, 특정 웹 페이지 주소에 로그인 정보로 입력되는 ID와 다른 웹 페이지 주소에 로그인 정보로 입력되는 ID는 동일한 사용자인 경우에도 다를 수 있다.The above identification information may be associated with the web page address where the above identification information is used as login information. Since the IDs registered by users for each third-party system (20) may be different, the ID entered as login information for a specific web page address and the ID entered as login information for another web page address may be different even for the same user.
결제 내역 정보는 사용자의 결제 활동을 추적하여 생성될 수 있다. 상기 결제 내역 정보는 접속정보, 결제정보, 요청정보를 포함할 수 있다.Payment history information may be generated by tracking a user's payment activities. The payment history information may include access information, payment information, and request information.
상기 결제 내역 정보 내 요청정보는 상기 로그인 내역 정보 내 요청정보와 마찬가지로, 웹 활동을 위한 내역 요청의 구체적인 내용을 나타낸다. 예컨대, 결제 내역 정보 내 요청정보는 단말장치(100)가 웹 사이트의 결제 화면을 통해 특정 상품을 결제하고자 하는 취지를 나타낼 수 있다. 상기 로그인 내역 정보 내 요청정보와 유사하게,The request information in the payment history information above, like the request information in the login history information above, indicates the specific content of the request for history for web activities. For example, the request information in the payment history information may indicate the intention of the terminal device (100) to pay for a specific product through the payment screen of the website. Similar to the request information in the login history information above,
상기 결제 내역 정보 내 접속정보는 상기 로그인 내역 정보 내 접속정보와 마찬가지로, 해당 웹 페이지(예컨대, 결제 화면)에 접속한 상태를 나타내는 는 것으로서, 예를 들어, 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 브라우저, 접속 언어, 접속 시간, 접속 웹 사이트 주소 정보 중 하나 이상의 정보를 포함할 수 있다. 상기 결제 내역 정보 내 접속정보는 상기 로그인 내역 정보 내 접속정보와 유사하므로, 차이점을 위주로 서술한다.The connection information in the above payment details information, like the connection information in the above login details information, indicates the status of connection to the corresponding web page (e.g., payment screen), and may include, for example, one or more of the following information: connection location, connection device, connection device OS, connection browser, connection language, connection time, and connection website address. Since the connection information in the above payment details information is similar to the connection information in the above login details information, the differences will be mainly described.
접속 웹 사이트 주소는 결제 화면을 표시하는 웹 페이지 주소일 수 있다.The access website address may be the address of the web page that displays the payment screen.
접속 시간은 로그인 시도를 위해 해당 웹 사이트에 접속한 시간으로서, 접속 요일, 및 접속 시점으로 표현될 수 있다.Access time is the time you access the website to attempt to log in, and can be expressed as the day of the week and the time of access.
결제정보는 결제 활동을 서술하는 정보로서, 예를 들어, 결제 금액, 결제 상품, 결제 통화(currency), 결제 방식, 재방문 회수, 기존 결제 내역, 결제 수단, 결제 시도 회수 중 하나 이상을 포함할 수 있다.Payment information is information that describes payment activity and may include, for example, one or more of the following: payment amount, payment product, payment currency, payment method, number of repeat visits, previous payment history, payment method, and number of payment attempts.
결제 방식은 일시불, 할부 또는 일부 일시불 일부 할부와 같은 기타 결제 방식일 수 있다.Payment methods may be lump sum, installments, or other payment methods such as partial lump sum and partial installments.
결제 수단은 카드, 현금 또는 제3자 시스템(20)에서 허용하는 전자화폐(예컨대, 포인트 등)일 수 있다.The payment method may be a card, cash, or electronic money (e.g., points, etc.) accepted by a third-party system (20).
재방문 회수는 상기 결제 화면을 표시하는 웹 페이지 주소에 단말장치(100)의 재방문한 빈도를 나타낸다.The number of revisits indicates the frequency of revisiting the web page address that displays the payment screen from the terminal device (100).
기존 결제 내역은 상기 결제 화면을 표시하는 웹 페이지 주소를 통해 결제한 내역을 나타낸다. 상기 기존 결제 내역은 과거의 결제 활동 당시의 결제정보 및 접속정보로 표현될 수 있다.The existing payment history indicates the payment history made through the web page address that displays the payment screen above. The existing payment history can be expressed as payment information and access information at the time of past payment activities.
상기 단말장치(100)는 상기 사용자의 웹 활동 내역 정보를 생성하고, 생성된 웹 활동 내역 정보를 상기 서버(10)로 전송한다(S310). 상기 웹 활동 내역 정보는 해당 웹 활동이 수행될 때마다 생성되어 상기 서버(10)로 전송될 수 있다. 즉, 생성 시점과 전송 시점이 동일 또는 유사할 수 있다.The terminal device (100) generates web activity history information of the user and transmits the generated web activity history information to the server (10) (S310). The web activity history information may be generated and transmitted to the server (10) each time the corresponding web activity is performed. In other words, the generation time and the transmission time may be the same or similar.
본 출원의 다양한 실시 예들에서, 상기 단말장치(100)는 상기 단말장치(100)에 저장된 블록체인 비밀키로 상기 사용자의 웹 활동 내역 정보를 암호화처리하여 전송할 수 있다(S310).In various embodiments of the present application, the terminal device (100) can encrypt and transmit the user's web activity history information using a blockchain secret key stored in the terminal device (100) (S310).
도 4는, 본 출원의 다양한 실시 예들에 따른, 서버가 암호화처리된 상기 사용자의 웹 활동 내역 정보를 수집하는 과정을 설명한다.FIG. 4 illustrates a process by which a server collects encrypted web activity history information of a user according to various embodiments of the present application.
도 4를 참조하면, 상기 단말장치(100)는 서버(10)로 전송할 사용자의 웹 활동 내역 정보를 생성할 수 있다(S3101). 단말장치(100)가 생성한 사용자의 웹 활동 내역 정보는 상기 웹 활동 내역 정보에 포함된 사용자의 식별정보, 사용자의 접속정보, 내역정보 중 적어도 일부가 암호화되어 생성된 것일 수 있다.Referring to Fig. 4, the terminal device (100) can generate user web activity history information to be transmitted to the server (10) (S3101). The user web activity history information generated by the terminal device (100) may be generated by encrypting at least some of the user identification information, user access information, and history information included in the web activity history information.
상기 단말장치(100)는 상기 사용자의 웹 활동 내역 정보의 일부 또는 전부로부터 암호화된 정보를 생성할 수 있으며, 이와 같은 암호화된 정보는 패스워드와 같은 고전적인 인증 수단을 대신할 수 있다. 전술한 바와 같이 사용자의 식별정보는 웹 페이지별로 상이할 수 있는 바, 기존의 내역 정보 내 하나의 식별정보만으로는 웹 활동 내역 정보 전체가 사용자의 내역인 것을 보증할 수 없기 때문이다.The terminal device (100) above can generate encrypted information from part or all of the user's web activity history information, and such encrypted information can replace a traditional authentication method such as a password. As described above, the user's identification information can be different for each web page, so it is not possible to guarantee that the entire web activity history information is the user's history with only one identification information in the existing history information.
단말장치(100)는 상기 암호화된 정보를 생성함에 있어서, 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화할 수 있다. 비밀키는 블록체인 네트워크에서 트랜잭션(예: 제1 사 용자 계좌로부터 제2 사용자 계좌로 '디지털 지급수단'이 이체되도록 하는 트랜잭션, 스마트 계약을 블록체인 네트워크 상에 배포하는 트랜잭션, 스마트 계약을 실행시키는 트랙잭션 등)이 발생하도록 하기 위한 사용자의 디지털 서명으로 기능할 수 있다.The terminal device (100) can encrypt the encrypted information using a blockchain secret key corresponding to the identification information when generating the encrypted information. The secret key can function as a user's digital signature to allow a transaction (e.g., a transaction to transfer a 'digital payment method' from a first user account to a second user account, a transaction to distribute a smart contract on a blockchain network, a transaction to execute a smart contract, etc.) to occur on the blockchain network.
여기서, 블록체인 비밀키 및 블록체인 주소를 이용한 암호화 및 복호화에 대해 설명하도록 한다. 어떤 암호화된 데이터가 있다고 가정할 때, 상기 암호화된 데이터가 특정 블록체인 비밀키를 이용하여 암호화된 것인지를 검증해야 할 필요가 있을 수 있다. 이 때, 상기 블록체인 비밀키에 대응되는 블록체인 주소를 이용하면 이와 같은 검증이 가능하며, 이러한 검증에는 공개 키 기반 구조(public key infrastructure, PKI)에 기초한 방식이 사용될 수 있다. 보다 구체적으로, 특정 블록체인 비밀키를 이용하여 암호화된 데이터를, 블록체인 비밀키와 대응되는 블록체인 주소를 이용하여 복호화할 경우, 소정의 값과 동일한 값이 도출된다면 상기 암호화된 데이터가 상기 특정 블록체인 비밀키를 이용하여 암호화된 것이라고 판단할 수 있으며, 이와 반대로 소정의 값과 동일한 값이 도출되지 않는다면 상기 암호화된 데이터가 상기 특정 블록체인 비밀키를 이용하여 암호화된 것이 아니라고 판단할 수 있다.Here, encryption and decryption using a blockchain secret key and a blockchain address will be described. Assuming that there is some encrypted data, it may be necessary to verify whether the encrypted data is encrypted using a specific blockchain secret key. At this time, such verification is possible using a blockchain address corresponding to the blockchain secret key, and a method based on a public key infrastructure (PKI) can be used for such verification. More specifically, when data encrypted using a specific blockchain secret key is decrypted using a blockchain address corresponding to the blockchain secret key, if a value identical to a predetermined value is derived, it can be determined that the encrypted data is encrypted using the specific blockchain secret key, and conversely, if a value identical to the predetermined value is not derived, it can be determined that the encrypted data is not encrypted using the specific blockchain secret key.
따라서, 블록체인 비밀키를 이용한 암호화를 "서명", 블록체인 주소를 이용한 복호화를 해당 서명의 "검증"이라고 각각 칭할 수 있다. 특정 블록체인 비밀키를 통한 서명의 검증은, 해당 특정 블록체인 비밀키에 대응되는 블록체인 주소를 이용한 복호화를 통해서만 가능하도록 할 수 있다. 이와 같은 알고리즘은 "비대칭키 암호화 알고리즘"이라 칭해지며, 구체적으로는 RSA, ECDSA 등의 알고리즘이 사용될 수 있다.Therefore, encryption using a blockchain secret key can be called "signature", and decryption using a blockchain address can be called "verification" of the signature. Verification of a signature using a specific blockchain secret key can be made possible only through decryption using a blockchain address corresponding to the specific blockchain secret key. Such an algorithm is called an "asymmetric key encryption algorithm", and specifically, algorithms such as RSA and ECDSA can be used.
한편, 본 문서에 사용되는 용어인 '블록체인 비밀키'는 다양한 비대칭키 암호화 알고리즘에 기반한 비밀키(private key)를 포함할 수 있고, '블록체인 주소 정보'는 다양한 비대칭키 암호화 알고리즘에 기반한 공개키(public key)를 포함할 수 있다. 공개 키는 사용자의 계좌 주소(account address, 이하, '계좌')로 기능할 수 있다. 다양한 실시 예에서, 공개 키는 사람이 인식할 수 있는 (human-readable) 문자열 또는 숫자열을 포함할 수 있다.Meanwhile, the term 'blockchain secret key' used in this document may include a private key based on various asymmetric key encryption algorithms, and 'blockchain address information' may include a public key based on various asymmetric key encryption algorithms. The public key may function as a user's account address (hereinafter, 'account'). In various embodiments, the public key may include a human-readable string or number sequence.
본 문서에서는 이해의 편의를 위해, 다양한 용어로 불릴 수 있는 용어를 '블록체인 비밀키' 및 '블록체인 주소'의 명칭으로 통일하여 그 개념을 기술하기로 한다.In this document, for the convenience of understanding, the terms that can be called by various names are unified and described as 'blockchain secret key' and 'blockchain address'.
단말장치(100)는 식별 정보에 대응되는 블록체인 비밀키를 자신만이 저장하고 있도록 할 수 있으며, 블록체인 비밀키에 대응되는 블록체인 주소는 서버(10)를 비롯한 다른 주체들도 가질 수 있도록 할 수 있다.The terminal device (100) can store only the blockchain secret key corresponding to the identification information, and can allow other entities, including the server (10), to have the blockchain address corresponding to the blockchain secret key.
이와 같은 방식에 의하면, 단말장치(100)만이 사용자의 웹 활동 내역 정보를 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화할 수 있으므로, 상기 식별 정보에 대응되는 블록체인 비밀키는, 사용자의 웹 활동 내역 정보가 단말장치(100)에 의해 정당하게 생성되었다는 것을 입증하는 인증 수단으로서의 역할을 할 수 있다. 사용자의 웹 활동 내역 정보에 대한 검증은 전술한 바와 같이 상기 식별 정보에 대응되는 블록체인 주소에 접근할 수 있는 주체(예컨대, 서버(10))라면 누구든지 가능하다. 이에 따르면, 상기 사용자의 웹 활동 내역 정보에 포함된 암호화된 정보는 공개된 정보인 블록체인 주소를 통해 누구나 해독이 가능하므로 암호화된 정보 그 자체가 보호될 수는 없지만, 암호화된 정보가 정당한지의 여부를 판별할 수는 있다.According to this method, since only the terminal device (100) can encrypt the user's web activity history information using the blockchain secret key corresponding to the identification information, the blockchain secret key corresponding to the identification information can serve as an authentication means that proves that the user's web activity history information was legitimately generated by the terminal device (100). As described above, anyone who can access the blockchain address corresponding to the identification information (e.g., server (10)) can verify the user's web activity history information. According to this, since the encrypted information included in the user's web activity history information can be decrypted by anyone through the blockchain address, which is public information, the encrypted information itself cannot be protected, but it is possible to determine whether the encrypted information is legitimate.
한편, 비공개의 블록체인 비밀키를 이용한 암호화 및 공개된 블록체인 주소를 이용한 복호화를 서명 및 검증, 즉 인증에 이용하는 것과 달리, 반대로 공개된 블록체인 주소를 이용하여 데이터를 암호화하고, 비공개의 블록체인 비밀키를 이용하여 암호화된 데이터를 복호화 하도록 할 수도 있다. 이 경우, 공개되지 않은 블록체인 비밀키를 가진 정당한 사용자만이 암호화된 데이터를 해독할 수 있으므로, 정당하지 않은 사용자는 암호화된 데이터를 입수한다 하더라도 해독이 불가능하며, 결과적으로 암호화된 데이터는 정당하지 않은 사용자로부터 보호될 수 있다.On the other hand, unlike using encryption using a private blockchain secret key and decryption using a public blockchain address for signing and verification, i.e. authentication, it is also possible to encrypt data using a public blockchain address and decrypt the encrypted data using a private blockchain secret key. In this case, only a legitimate user with an unpublished blockchain secret key can decrypt the encrypted data, so even if an illegitimate user obtains the encrypted data, it is impossible to decrypt it, and as a result, the encrypted data can be protected from illegitimate users.
상기 서버에서 단말장치로부터 상기 단말장치의 웹 활동 내역 정보를 수집하는 단계(S310)는, 상기 단말장치에서, 미리 저장된 블록체인 비밀키로 상기 단말장치의 웹 활동 내역 정보를 암호화처리하여 전송하는 것일 수 있다.The step (S310) of collecting web activity history information of a terminal device from the server may be to encrypt and transmit the web activity history information of the terminal device using a pre-stored blockchain secret key in the terminal device.
서버(10)는 단말장치(100)에 의해 생성된 사용자의 웹 활동 내역 정보를 단말장치(100)로부터 수신할 수 있다(S3102). 수신된 사용자의 웹 활동 내역 정보 내 식별 정보에 대응되는 블록체인 주소를 이용하여, 서버(10)는 수신된 암호화된 정보를 복호화할 수 있다(S3103). 상기 식별 정보에 대응되는 블록체인 주소는 모두에게 공개되어 있으므로, 서버(10)는 상기 블록체인 주소를 직접 저장하고 있을 수도 있고, 필요할 경우 네트워크에 연결된 다른 장치로부터 제공받아 사용할 수도 있다.The server (10) can receive the user's web activity history information generated by the terminal device (100) from the terminal device (100) (S3102). Using the blockchain address corresponding to the identification information in the received user's web activity history information, the server (10) can decrypt the received encrypted information (S3103). Since the blockchain address corresponding to the identification information is public to everyone, the server (10) may directly store the blockchain address, or, if necessary, may receive it from another device connected to the network and use it.
복호화의 결과에 기초하여, 서버(10)는 단말장치(100)로부터 수신한 사용자의 웹 활동 내역 정보를 블록체인 네트워크(1000)에 기록할지 여부를 결정할 수 있다(S3104). 보다 구체적으로, 서버(10)는 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화됨으로써 생성된 것이라고 판단될 경우, 즉 웹 활동 내역 정보의 제공자가 정당한 사용자인 것으로 판단될 경우 블록체인 네트워크(1000)에 상기 웹 활동 내역 정보의 기재를 개시할 수 있다(S3105).Based on the result of decryption, the server (10) can decide whether to record the user's web activity history information received from the terminal device (100) in the blockchain network (1000) (S3104). More specifically, if the server (10) determines that the encrypted information was generated by being encrypted using a blockchain secret key corresponding to the identification information, i.e., if it is determined that the provider of the web activity history information is a legitimate user, the server (10) can initiate the recording of the web activity history information in the blockchain network (1000) (S3105).
반대로, 상기 암호화된 정보가 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화됨으로써 생성된 것이 아니라고 판단된다면, 서버(10)는 단계(S3102)에서 수신한 웹 활동 내역 정보가 거짓된 제3자 혹은 거짓된 단말에 의해 생성된 것이라고 간주하고, 정당 사용자에게 알림을 발송하는 조치를 취하는 등의 다른 조건이 없다면(S3106), 거짓된 웹 활동 내역 정보를 블록체인 네트워크(1000)에 기록하는 것을 거부할 수 있다(S3109).Conversely, if it is determined that the encrypted information was not created by encrypting it using a blockchain secret key corresponding to the identification information, the server (10) may consider the web activity history information received in step (S3102) to have been created by a false third party or a false terminal, and, if there are no other conditions such as taking measures to send a notification to a legitimate user (S3106), may refuse to record the false web activity history information in the blockchain network (1000) (S3109).
이와 같은 암호화된 정보 수집 과정은, 진정한 사용자가 아닌 제3자가 거짓된 웹 활동 내역 정보를 블록체인 네트워크(1000)에 상기 사용자인척 기록하는 것을 차단하여, 추후에 수행될 보안 과정에서 거짓된 웹 활동 내역 정보로 인해 피해가 발생하는 것을 사전에 방지할 수 있다. 상기 제3자의 거짓된 웹 활동 내역 정보는 상기 제3자가 제3자 시스템(20)에 등록한 사용자의 ID, 비밀번호 등을 무단으로 습득하여 상기 제3자가 몰래 웹 활동을 수행하여 생성되는 정보일 수 있다.This encrypted information collection process can prevent damages caused by false web activity history information during a security process to be performed later by blocking a third party who is not a genuine user from recording false web activity history information on the blockchain network (1000) pretending to be the user. The false web activity history information of the third party may be information generated when the third party secretly performs web activities by obtaining the ID, password, etc. of a user registered in a third-party system (20) without permission.
일부 실시 예들에서, 서버(10)는 다른 조건이 필요한 것으로 설정되어 있으면(S3106) 상기 복호화의 결과 웹 활동 내역 정보의 기록을 거부해야 하는 상황에서 바로 웹 활동 내역 정보의 기록을 거부하는 대신, 정당한 사용자를 위해 식별 정보에 기 매칭된 수신처로 알림을 발송할 수도 있다(S3107). 이 경우, 앞에서 서술한 바와는 달리 단말장치(100)는 상기 식별 정보에 대응되는 정당한 사용자의 단말이 아닌 것(예컨대, 미등록 디바이스)이므로, 식별 정보에 대응되는 정당한 단말은 따로 있을 수 있으며, 서버(10)는 식별 정보에 기 매칭되어 있는 정당한 단말로 알림을 발송할 수 있다. 혹은, 식별 정보가 단말과 같은 장치가 아닌 특정 사용자를 나타낸다면, 서버(10)는 메일이나 SNS(social network service) 등을 통해 상기 특정 사용자의 계정으로 알림을 보낼 수도 있을 것이다. 이 경우, 알림은 메일, 단문 메시지(short message service, SMS) 혹은 SNS 어플리케이션의 팝업(pop-up) 메시지 등의 형태로 전송될 수 있다.In some embodiments, if the server (10) is set to require other conditions (S3106), instead of immediately refusing to record the web activity history information as a result of the decryption, the server (10) may send a notification to a recipient already matched with the identification information for the legitimate user (S3107). In this case, unlike the above description, since the terminal device (100) is not a terminal of the legitimate user corresponding to the identification information (e.g., an unregistered device), there may be a separate legitimate terminal corresponding to the identification information, and the server (10) may send a notification to the legitimate terminal already matched with the identification information. Alternatively, if the identification information indicates a specific user rather than a device such as a terminal, the server (10) may send a notification to the account of the specific user via mail or a social network service (SNS). In this case, the notification may be transmitted in the form of mail, a short message service (SMS), or a pop-up message of an SNS application.
서버(10)는 상기 알림에 대한 회신을 수신하고, 수신된 회신의 내용이 긍정적인지 부정적인지 확인하며(S3108), 확인된 회신의 내용에 기초하여 상기 웹 활동 내역 정보의 기록을 승인하거나 거부할 수 있다(S3105, S3109). 내용의 긍정은 웹 활동 내역 정보가 자신의 것임에 동의하는 것이다. 만일 정당한 사용자가 회신을 통해, 웹 활동 내역 정보가 정당함을 확인(예컨대, 자신이 새롭게 사용하게 된 단말장치(100)을 통해 상기 웹 활동 내역 정보를 정당하게 전송하였다는 취지의 답변을 함)한다면(즉, 긍정적인 답변을 한다면), 서버(10)는 웹 활동 내역 정보의 기록을 승인할 수 있을 것이다(S3105). 이와 달리, 정당한 사용자가 회신을 통해 웹 활동 내역 정보가 정당하지 않다는 취지의 답변을 한다면(즉, 부정적인 답변을 한다면), 서버(10)는 웹 활동 내역 정보의 기록을 거부하게 될 것이다(S3109).The server (10) receives a reply to the above notification, verifies whether the content of the received reply is positive or negative (S3108), and can approve or reject the recording of the web activity history information based on the content of the confirmed reply (S3105, S3109). Affirmation of the content means agreeing that the web activity history information is one's own. If a legitimate user confirms through a reply that the web activity history information is legitimate (for example, responds that he/she legitimately transmitted the web activity history information through a terminal device (100) that he/she has newly used) (i.e., responds positively), the server (10) can approve the recording of the web activity history information (S3105). On the other hand, if a legitimate user responds through a reply that the web activity history information is not legitimate (i.e., responds negatively), the server (10) will reject the recording of the web activity history information (S3109).
한편, 위에서 정당한 사용자로부터 요청이 정당하지 않다는 취지의 회신을 받을 경우, 서버(10)는 단말장치(100)을 정당하지 않은 단말로 간주하고, 단말장치(100)로부터의 이후의 다른 요청은 알림 발송 없이 자동적으로 거부되도록 설정할 수도 있다. 즉, 단말장치(100)이 일종의 블랙리스트(blacklist)에 포함되도록 할 수 있다. 이를 통해, 동일한 부정 단말이 부정한 요청 전송을 복수 회 수행할 때마다 정당한 사용자가 매번 알림을 받게 되는 번거로움이 방지될 수 있다.Meanwhile, if a response is received from a legitimate user above indicating that the request is not legitimate, the server (10) may consider the terminal device (100) as an illegitimate terminal, and may set it so that any subsequent requests from the terminal device (100) are automatically rejected without sending a notification. In other words, the terminal device (100) may be included in a type of blacklist. Through this, the inconvenience of the legitimate user receiving a notification every time the same illegitimate terminal performs an illegitimate request transmission multiple times can be prevented.
상기 서버(10)는 이러한 암호화처리된 웹 활동 내역 정보를 제1 단말장치(100-1) 또는 제3자 시스템(20)으로부터 수신하여 복호화하면(S3105), 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인 네트워크 상의 블록체인에 기록하기 위해, 수신된 상기 단말장치의 웹 활동 내역 정보 내 식별 정보에 대응되는 블록체인 주소를 이용하여, 서버는 수신된 암호화된 상기 단말장치의 웹 활동 내역 정보를 복호화하고, 복호화된 상기 단말장치의 웹 활동 내역 정보를 상기 블록체인에 기록하할 수 있다. 구체적으로, 단말장치(100)의 로그인 내역 정보, 결제 내역 정보를 복호화하여 블록체인에 기록한다(S320, S330). 일부 실시 예들에서, 상기 서버(10)는 사용자의 웹 활동 내역 정보를 트랜잭션으로 블록체인 네트워크(1000)에 전송한다(S320). 복수의 웹 활동으로 인해 복수의 웹 활동 내역 정보가 생성될 경우, 각각의 웹 활동 내역 정보를 나타낸 복수의 트랜잭션이 블록체인 네트워크(1000)에 전송될 수 있다(S320).The server (10) receives and decrypts the encrypted web activity history information from the first terminal device (100-1) or the third-party system (20) (S3105). In order to record the web activity history information of the terminal device in the blockchain of the blockchain network, the server decrypts the received encrypted web activity history information of the terminal device using the blockchain address corresponding to the identification information in the received web activity history information of the terminal device, and records the decrypted web activity history information of the terminal device in the blockchain. Specifically, the login history information and payment history information of the terminal device (100) are decrypted and recorded in the blockchain (S320, S330). In some embodiments, the server (10) transmits the user's web activity history information to the blockchain network (1000) as a transaction (S320). When multiple web activity history information is generated due to multiple web activities, multiple transactions representing each web activity history information can be transmitted to the blockchain network (1000) (S320).
상기 단계(S320)에서 트랜잭션을 블록체인 네트워크(1000)에 전송하는 것은 상기 트랜잭션이 블록체인 네트워크(1000)에 참여한 노드에게 전파되는 것이다. 전파된 트랜잭션은 각 노드의 분산원장에 기록된다.In the above step (S320), transmitting the transaction to the blockchain network (1000) means that the transaction is propagated to nodes participating in the blockchain network (1000). The propagated transaction is recorded in the distributed ledger of each node.
상기 블록체인 네트워크(1000) 상에서 합의 프로토콜에 따라 새로운 블록이 생성되며, 상기 새로운 블록에는 로그인 내역 정보, 또는 웹 활동 내역 정보가 기록된 트랜잭션이 블록에 포함된다(S330). 최종적으로 사용자의 로그인 내역 정보, 또는 웹 활동 내역 정보가 블록체인에 기록되기 위해 생성된 블록은 블록체인에 추가된다(S330). 이후 다른 노드들이 추가된 블록을 검증하여, 해당 블록이 블록체인에 정상적으로 추가된 것이 확인된다(S330).A new block is created according to the consensus protocol on the above blockchain network (1000), and the new block includes a transaction in which login history information or web activity history information is recorded (S330). Finally, the block created to record the user's login history information or web activity history information on the blockchain is added to the blockchain (S330). Thereafter, other nodes verify the added block, and it is confirmed that the block has been normally added to the blockchain (S330).
로그인 활동, 결제 활동과 같은, 활동이 발생할 때마다 블록이 추가될 수 있다(S330). 그러면, 블록은 해당 활동과 관련된 내역 정보를 포함한다.A block may be added whenever an activity occurs, such as a login activity or a payment activity (S330). Then, the block includes historical information related to the activity.
상기 사용자의 웹 활동 내역 정보가 상기 블록체인 네트워크(1000)에 기록된 이후에, 단말장치(100)는 바이오 인증 동작을 수행하여 요청을 서버(10)로 전송한다. 상기 서버(10)는 블록체인 네트워크(1000)에 기록된 데이터를 이용하여 요청을 처리할 지 승인할 수 있다.After the user's web activity history information is recorded in the blockchain network (1000), the terminal device (100) performs a biometric authentication operation and transmits a request to the server (10). The server (10) can approve whether to process the request using the data recorded in the blockchain network (1000).
이와 같이 웹 활동 내역 정보가 암호화처리되어 상기 서버(10)로 전송되기 때문에(S310), 제3자의 거짓된 웹 활동 내역 정보에 의해 오염되지 않으면서 정당한 사용자의 진실된 웹 활동 내역 정보가 블록체인에 기록될 수 있다. 그 결과, 아래에서 서술할 아래에서 서술할 이상 요청의 탐지 신뢰성이 더욱 향상된다.Since the web activity history information is encrypted and transmitted to the server (10) in this way (S310), the true web activity history information of a legitimate user can be recorded on the blockchain without being contaminated by false web activity history information of a third party. As a result, the reliability of detection of abnormal requests described below is further improved.
도 5는, 본 출원의 다양한 실시 예들에 따른, 서버가 암호화처리된 상기 사용자의 웹 활동 내역 정보를 수집하는 과정을 설명한다.FIG. 5 illustrates a process by which a server collects encrypted web activity history information of a user according to various embodiments of the present application.
도 5의 실시예는 기존의 도 4의 단말 장치(100), 즉 제1 단말 장치(100-1)에 더하여, 정당한 사용자의 진실한 웹 활동 내역 정보를 제2 단말 장치(100-2)에서도 제공 받아 블록체인 네트워크(1000)에 추가적으로 기록하는 것과 관련된 실시 예들이다. 예를 들면, 제1 단말 장치(100-1)(ex. 스마트폰)을 사용하는 사용자가 소지하는 다른 단말인 제2 단말 장치(100-2)(ex. 태블릿 PC, 데스크탑)을 통해서도 서버(10)에 웹 활동 내역 정보의 생성 알림 및 블록체인 네트워크(1000)에 기록 요청하는 경우, 또는 프로젝트를 진행하는 그룹원들이 보유한 제1 단말 내지 제 n 단말(n은 2 이상의 자연수)(ex. 다수의 컴퓨터)을 통해 같은 계정으로 서버(10)에 접속할 수 있도록 하는 경우가 있다. 아울러, 별도의 언급이 없다 하더라도, 도 4와 관련하여 설명된 사항들은 도 5의 실시예에도 적용될 수 있다.The embodiment of FIG. 5 is an embodiment related to receiving true web activity history information of a legitimate user from a second terminal device (100-2) in addition to the existing terminal device (100) of FIG. 4, that is, the first terminal device (100-1), and additionally recording it in the blockchain network (1000). For example, a user using the first terminal device (100-1) (ex. smartphone) may request the server (10) to create web activity history information and record it in the blockchain network (1000) through another terminal, that is, a second terminal device (100-2) (ex. tablet PC, desktop), or may allow the group members carrying out the project to access the server (10) with the same account through the first terminal to the nth terminal (n is a natural number greater than or equal to 2) (ex. multiple computers). In addition, even if not mentioned separately, matters described in relation to FIG. 4 may also be applied to the embodiment of FIG. 5.
먼저, 서버(10)는 제2 단말 장치(100-2)로부터, 제1 단말 장치(100-1) 혹은 제1 단말 장치(100-1)의 사용자를 나타내는 식별 정보에 대응되는 블록체인 비밀키의 사용에 대한 신청을 수신할 수 있다(S3111). 이와 같은 신청은 제1 단말 장치(100-1)뿐 아니라 제2 단말 장치(100-2)로도 도 4의 방법을 수행하는 것이 가능해지도록 하기 위한 목적을 갖는다.First, the server (10) can receive a request for use of a blockchain secret key corresponding to identification information indicating the first terminal device (100-1) or the user of the first terminal device (100-1) from the second terminal device (100-2) (S3111). The purpose of such a request is to enable performing the method of FIG. 4 not only with the first terminal device (100-1) but also with the second terminal device (100-2).
서버(10)는 상기 신청이 정당한지의 여부를 소정의 기준에 의해 판정할 수 있다. 우선, 서버(10)는 상기 신청과 관련하여, 제2 단말 장치(100-2)가 어떠한 식별 정보를 지정하였는지를 알아낼 수 있다(S3112). 즉, 제2 단말 장치(100-2)가 사용하기를 원하는 블록체인 비밀키가, 제1 단말 장치(100-1) 혹은 제1 단말 장치(100-1)의 사용자를 나타내는 식별 정보에 대응되는 블록체인 비밀키라는 취지를 알아내야 할 필요가 있다. 이러한 지정을 위한 취지는 상기 신청에 포함되어 있을 수도 있고, 별도의 메시지를 통해 제2 단말 장치(100-2)로부터 서버(10)에 전달될 수도 있다.The server (10) can determine whether the above application is legitimate based on a predetermined standard. First, the server (10) can find out what identification information the second terminal device (100-2) has designated in relation to the above application (S3112). That is, it is necessary to find out whether the blockchain secret key that the second terminal device (100-2) wants to use is a blockchain secret key corresponding to the identification information indicating the first terminal device (100-1) or the user of the first terminal device (100-1). The intent for such designation may be included in the above application, or may be transmitted to the server (10) from the second terminal device (100-2) through a separate message.
다음으로, 서버(10)는 상기 식별 정보에 대한 지정에 기초하여, 제2 단말 장치(100-2)가 상기 식별 정보에 대응되는 블록체인 비밀키, 즉 제1 단말 장치(100-1)를 위한 블록체인 비밀키를 사용하는 것을 허용할 지의 여부에 대한 질의를, 상기 식별 정보에 기 매칭된 수신처로 전송할 수 있다(S3113). 이와 같은 수신처는 제1 단말 장치(100-1)가 될 수 있겠지만, 제1 단말 장치(100-1)의 사용자의 메일이나 SNS(social network service) 계정일 수도 있다.Next, the server (10) may, based on the designation for the identification information, transmit a query to a recipient matched to the identification information as to whether to allow the second terminal device (100-2) to use the blockchain secret key corresponding to the identification information, i.e., the blockchain secret key for the first terminal device (100-1) (S3113). The recipient may be the first terminal device (100-1), but may also be an email or SNS (social network service) account of a user of the first terminal device (100-1).
서버(10)는 상기 질의에 대한 회신을 수신할 수 있으며(S3114), 상기 수신된 회신에 기초하여 제2 단말 장치(100-2)에 의한 신청이 정당한지의 여부를 판정할 수 있다(S3115). 물론 상기 회신은 제1 단말 장치(100-1)의 사용자에 의해 발송된 것이며, 만일 제1 단말 장치(100-1)의 사용자가 회신을 통해 거부의 의사를 표시한 경우, 서버(10)는 제2 단말 장치(100-2)의 신청이 정당하지 않은 것으로 간주하고 제1 단말 장치(100-1)를 위한 블록체인 비밀키의 신청을 불허할 수 있다(S3116).The server (10) can receive a response to the above query (S3114), and can determine whether the application by the second terminal device (100-2) is legitimate based on the received response (S3115). Of course, the response is sent by the user of the first terminal device (100-1), and if the user of the first terminal device (100-1) indicates a rejection through the response, the server (10) can consider the application by the second terminal device (100-2) to be illegitimate and disallow the application for the blockchain secret key for the first terminal device (100-1) (S3116).
이와 달리, 제1 단말 장치(100-1)의 사용자가 회신을 통해 승인의 의사를 표시한 경우, 이는 제2 단말 장치(100-2)에 의한 신청이 제1 단말 장치(100-1)의 사용자에 의해 정당하게 이루어졌다는 것을 나타내므로, 서버(10)는 제1 단말 장치(100-1)가 제2 단말 장치(100-2)로 제1 단말 장치(100-1)를 위한 블록체인 비밀키를 전송하도록, 제1 단말 장치(100-1)를 제어할 수 있다. 이 때, 상기 블록체인 비밀키는 서버(10)를 거치지 않고 제1 단말 장치(100-1)로부터 제2 단말 장치(100-2)로, 예컨대 P2P(peer-to-peer) 통신을 통하여 바로 전송될 수 있다. 이와 같이 서버(10)가 중간에 개입되지 않은 단말 간의 블록체인 비밀키 전송에 의해, 블록체인 비밀키의 복제가 종래의 중앙 관리식의 방법에 비해 보다 간편하게 이루어질 수 있다.In contrast, if the user of the first terminal device (100-1) indicates his/her intent to approve through a reply, this indicates that the application by the second terminal device (100-2) was legitimately made by the user of the first terminal device (100-1), and therefore, the server (10) can control the first terminal device (100-1) to transmit the blockchain secret key for the first terminal device (100-1) to the second terminal device (100-2). At this time, the blockchain secret key can be directly transmitted from the first terminal device (100-1) to the second terminal device (100-2) without going through the server (10), for example, through P2P (peer-to-peer) communication. In this way, by transmitting the blockchain secret key between terminals without the server (10) intervening in the middle, the replication of the blockchain secret key can be performed more easily than in the conventional central management method.
또한, 이와 같은 서버(10)를 거치지 않는 단말 간 전송이 이루어진다는 것은, 블록체인 비밀키에 관한 정보가 서버(10)에 저장되지 않는다는 것을 의미하므로, 서버(10)가 해킹당한다 하여도 제1 단말 장치(100-1)의 블록체인 비밀키는 탈취되지 않기 때문에, 결과적으로 보다 높은 보안성이 달성될 수 있다.In addition, since the terminal-to-terminal transmission that does not go through the server (10) means that information regarding the blockchain secret key is not stored in the server (10), even if the server (10) is hacked, the blockchain secret key of the first terminal device (100-1) is not stolen, and as a result, higher security can be achieved.
그렇다 해도, 제1 단말 장치(100-1)로부터 제2 단말 장치(100-2)로 블록체인 비밀키가 전송될 때 블록체인 비밀키가 탈취됨으로써 부정하게 이용될 수 있다는 우려가 여전히 있을 수 있다. 이에 따라, 본 발명의 일 실시예에서는 제2 단말 장치(100-2)의 블록체인 주소를 이용하여 제1 단말 장치(100-1)의 블록체인 비밀키를 암호화하는 방식으로 이러한 문제를 해결하고 있다.However, there may still be concerns that the blockchain secret key may be stolen and used illegally when transmitted from the first terminal device (100-1) to the second terminal device (100-2). Accordingly, in one embodiment of the present invention, this problem is solved by encrypting the blockchain secret key of the first terminal device (100-1) using the blockchain address of the second terminal device (100-2).
이하에서는 상기 방식에 따른 단계에 대해 설명하도록 한다. 제1 단말 장치(100-1)과는 별개로, 제2 단말 장치(100-2) 역시 자신의 고유한 제2 블록체인 주소 및 제2 블록체인 비밀키를 생성할 수 있다(S3117). 제2 블록체인 주소는 공개될 수 있으므로, 서버(10)는 제2 단말 장치(100-2)의 제2 블록체인 주소를 제2 단말 장치(100-2)로부터 수신할 수 있으나(S3118), 이에 반해 비공개 데이터인 제2 단말 장치(100-2)의 제2 블록체인 비밀키는 제2 단말 장치(100-2)에만 저장되어 제2 단말 장치(100-2) 외부로 유출되지 않도록 관리된다.Hereinafter, the steps according to the above method will be described. Separately from the first terminal device (100-1), the second terminal device (100-2) can also generate its own unique second blockchain address and second blockchain secret key (S3117). Since the second blockchain address can be made public, the server (10) can receive the second blockchain address of the second terminal device (100-2) from the second terminal device (100-2) (S3118), but in contrast, the second blockchain secret key of the second terminal device (100-2), which is private data, is stored only in the second terminal device (100-2) and managed so as not to be leaked outside the second terminal device (100-2).
앞서 설명한 바와 같은 취지로, 제2 단말 장치(100-2)의 블록체인 비밀키로 암호화된 정보는 제2 단말 장치(100-2)의 블록체인 주소를 이용하여 복호화될 수 있으며, 제2 단말 장치(100-2)의 블록체인 주소로 암호화된 정보는 제2 단말 장치(100-2)의 블록체인 비밀키를 이용하여 복호화될 수 있다.As explained above, information encrypted with the blockchain secret key of the second terminal device (100-2) can be decrypted using the blockchain address of the second terminal device (100-2), and information encrypted with the blockchain address of the second terminal device (100-2) can be decrypted using the blockchain secret key of the second terminal device (100-2).
이에 따라, 제2 단말 장치(100-2)의 블록체인 주소는, 임의의 암호화된 정보가 제2 단말 장치(100-2)의 블록체인 비밀키를 이용하여 암호화된 것인지의 여부를 판단하는 데 이용될 수 있으며, 제2 단말 장치(100-2)의 블록체인 비밀키는, 제2 단말 장치(100-2)의 블록체인 주소를 이용하여 암호화된 정보를 해독하는 데 이용될 수 있다.Accordingly, the blockchain address of the second terminal device (100-2) can be used to determine whether any encrypted information is encrypted using the blockchain secret key of the second terminal device (100-2), and the blockchain secret key of the second terminal device (100-2) can be used to decrypt information encrypted using the blockchain address of the second terminal device (100-2).
서버(10)는 수신된 제2 단말 장치(100-2)의 블록체인 주소를 제1 단말 장치(100-1)로 전송하는 한편(S3119), 제1 단말 장치(100-1)가 자신이 저장하고 있는 자신의 블록체인 비밀키를 제2 단말 장치(100-2)의 블록체인 주소로 암호화하여 제2 단말 장치(100-2)로 송신하도록 제1 단말 장치(100-1)에 명령할 수 있다(S3120). 그러면 제1 단말 장치(100-1)은 제1 단말 장치(100-1) 자신의 블록체인 비밀키를 제2 단말 장치(100-2)의 블록체인 주소로 암호화할 수 있으며(S3121), 암호화된 제1 단말 장치(100-1)의 블록체인 비밀키를 제2 단말 장치(100-2)로 송신할 수 있다(S3122).The server (10) can transmit the blockchain address of the received second terminal device (100-2) to the first terminal device (100-1) (S3119), and can instruct the first terminal device (100-1) to encrypt its own blockchain secret key stored therein with the blockchain address of the second terminal device (100-2) and transmit it to the second terminal device (100-2) (S3120). Then, the first terminal device (100-1) can encrypt its own blockchain secret key with the blockchain address of the second terminal device (100-2) (S3121), and transmit the encrypted blockchain secret key of the first terminal device (100-1) to the second terminal device (100-2) (S3122).
암호화된 정보는 상기 제2 단말 장치(100-2)에서 생성한 웹 활동 내역 정보이다.The encrypted information is web activity history information generated by the second terminal device (100-2).
이와 같이 제2 단말 장치(100-2)의 블록체인 주소로 암호화된 제1 단말 장치(100-1)의 블록체인 비밀키는 제2 단말 장치(100-2)의 블록체인 비밀키를 이용하여서만 정상적으로 복호화할 수 있으므로, 제2 단말 장치(100-2)의 블록체인 비밀키를 저장하고 있는 제2 단말 장치(100-2) 외의 다른 주체가 제2 단말 장치(100-2)의 블록체인 주소로 암호화된 제1 단말 장치(100-1)의 블록체인 비밀키를 탈취한다 한들, 제2 단말 장치(100-2)의 블록체인 비밀키를 갖고 있지 않기 때문에, 탈취한 제1 단말 장치(100-1)의 블록체인 비밀키를 이용할 수 없다. 따라서, 이와 같은 방식에 의하면, 보안성이 더욱 향상되게 블록체인 네트워크(1000)에 사용자의 웹 활동 내역 정보를 기록할 수 있다.In this way, the blockchain secret key of the first terminal device (100-1) encrypted with the blockchain address of the second terminal device (100-2) can be normally decrypted only by using the blockchain secret key of the second terminal device (100-2). Therefore, even if an entity other than the second terminal device (100-2) storing the blockchain secret key of the second terminal device (100-2) steals the blockchain secret key of the first terminal device (100-1) encrypted with the blockchain address of the second terminal device (100-2), the entity cannot use the stolen blockchain secret key of the first terminal device (100-1) because it does not have the blockchain secret key of the second terminal device (100-2). Therefore, according to this method, the user's web activity history information can be recorded on the blockchain network (1000) with further enhanced security.
또한, 서버(10)는 제2 단말 장치(100-1)가 암호화 처리한 웹 활동 내역 정보를 수신하고 복호화에 성공하면(S310), 제2 단말 장치(100-2)의 웹 활동 내역 정보와 제1 단말 장치(100-1)의 웹 활동 내역 정보는 모두 동일한 사용자의 웹 활동 내역 정보를 가리키는 것이 확인된다. 그러면, 서버(10)는 복호화된 제2 단말 장치(100-2)의 웹 활동 내역 정보를 트랜잭션으로 블록체인 네트워크(1000)에 전송하여 블록체인 네트워크(1000) 내 블록체인에 상기 트랜잭션을 포함한 블록을 추가할 수 있다(S330). 구체적으로, 상기 서버(10)는 상기 사용자의 식별 정보를 포함하는, 상기 다른 단말장치의 웹 활동 내역 정보를 상기 다른 단말장치로부터 수신하고 - 상기 다른 단말장치의 웹 활동 내역 정보는 상기 서버를 거치지 않고 획득한 상기 식별 정보에 대응되는 상기 블록체인 비밀키로 암호화처리된 것임(S310), 상기 식별 정보에 대응되는 블록체인 주소 정보를 이용하여, 암호화처리된 상기 다른 단말장치의 웹 활동 내역 정보를 복호화하며, 복호화에 성공하여 상기 암호화처리된 상기 다른 단말장치의 웹 활동 내역 정보가, 상기 식별 정보에 대응되는 블록체인 비밀키를 이용하여 암호화된 것이라고 판단될 경우, 복호화된 상기 다른 단말장치의 웹 활동 내역 정보를 상기 블록체인에 기록할 수 있다(S420, S430).In addition, if the server (10) receives the web activity history information encrypted by the second terminal device (100-1) and successfully decrypts it (S310), it is confirmed that the web activity history information of the second terminal device (100-2) and the web activity history information of the first terminal device (100-1) both point to the web activity history information of the same user. Then, the server (10) can transmit the decrypted web activity history information of the second terminal device (100-2) as a transaction to the blockchain network (1000) to add a block including the transaction to the blockchain within the blockchain network (1000) (S330). Specifically, the server (10) receives web activity history information of the other terminal device, including identification information of the user, from the other terminal device - the web activity history information of the other terminal device is encrypted with the blockchain secret key corresponding to the identification information obtained without going through the server (S310), the encrypted web activity history information of the other terminal device is decrypted using the blockchain address information corresponding to the identification information, and if the decryption is successful and it is determined that the encrypted web activity history information of the other terminal device is encrypted using the blockchain secret key corresponding to the identification information, the decrypted web activity history information of the other terminal device can be recorded on the blockchain (S420, S430).
이와 같이 사용자의 웹 활동 내역 정보의 제공자가 제1 단말 장치(100-1)에서 제2 단말 장치(100-2)까지 증가하고, 더 나아가서 둘 이상의 단말 장치(100)까지 증가할 수 있다. 결국, 블록체인 네트워크(1000)에 기록된 진정한 요청을 나타낸 내역 정보가 보다 풍부해져, 아래에서 서술할 이상 요청의 탐지 정확성이 더욱 향상된다.In this way, the provider of the user's web activity history information increases from the first terminal device (100-1) to the second terminal device (100-2), and further increases to two or more terminal devices (100). As a result, the history information representing the true request recorded in the blockchain network (1000) becomes richer, and the detection accuracy of the abnormal request described below is further improved.
다중 보안으로 요청 승인 처리Request approval processing with multi-layer security
이와 같이 웹 활동 내역 정보를 제공한 단말장치(100)는 사용자를 인증하고 요청을 생성하여 서버(10)로 전송한다. 서버(10)는 상기 서버에서 상기 요청을 수신하면, 수신한 요청이 이상 요청인지 블록체인 네트워크 상의 블록체인 기록에 기초하여 결정하고, 상기 요청이 이상 요청이 아닌 경우, 상기 단말장치의 요청을 승인 처리할 수 있다. 상기 요청은 로그인 요청 또는 결제 요청일 수 있다.The terminal device (100) that provides web activity history information in this way authenticates the user, generates a request, and transmits it to the server (10). When the server (10) receives the request from the server, it determines whether the received request is an abnormal request based on the blockchain record on the blockchain network, and if the request is not an abnormal request, it can approve the request of the terminal device. The request may be a login request or a payment request.
본 출원의 다양한 실시 예들에서, 상기 수신한 요청이 이상 요청인지 블록체인 네트워크 상의 블록체인 기록에 기초하여 결정하는 것은, 상기 서버가 요청을 수신하면, 상기 요청에 포함된 상기 요청 당시의 값 중 적어도 일부의 값으로 상기 요청에 대한 쿼리 조건을 생성하고, 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계; 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계; 및 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계를 포함할 수 있다. 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계는, 상기 블록체인 네트워크 내 노드들에 의해 제공되는 스마트 계약을 호출하고, 상기 요청에 대한 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 것일 수 있다.In various embodiments of the present application, determining whether the received request is an abnormal request based on a blockchain record on a blockchain network may include: when the server receives the request, generating a query condition for the request with at least some of the values included in the request at the time of the request, and searching for block data having a value included in the query condition for the request as the query condition; calculating a matching rate between the web activity history information included in the searched block data and the information included in the request; and determining whether the request is an abnormal request based on the calculated matching rate. The searching for block data having a value included in the query condition for the request as the query condition may include calling a smart contract provided by nodes in the blockchain network, propagating the query condition for the request to a node capable of executing the smart contract, and executing the smart contract, thereby searching for block data having a value included in the query condition for the request from a distributed ledger stored in the node.
본 출원의 다양한 실시 예들에서, 상기 인증 결과 정보는 상기 사용자의 인증 확률 값을 포함하고, 상기 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 매칭률에 상기 사용자의 인증 확률 값을 적용한 보정된 매칭률에 기초하여 이상 요청 여부를 결정하는 것일 수 있다.In various embodiments of the present application, the authentication result information includes an authentication probability value of the user, and the step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on a corrected matching rate obtained by applying the authentication probability value of the user to the calculated matching rate.
본 출원의 다양한 실시 예들에서, 상기 쿼리 조건으로 상기 로그인 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계는, 상기 요청에 포함된 요청 당시의 값들을 미리 설정된 조건 규칙에 따라 제1 유형의 조건 항목 또는 제2 유형의 조건 항목으로 분류하는 단계; 상기 요청 당시의 값들 중에서 상기 제1 유형의 조건 항목에 대한 값들로 이루어진 제1 쿼리 조건을 생성하는 단계; 및 상기 제1 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 제1 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계를 포함할 수 있다. 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청 당시의 값들 간의 매칭률을 산출하는 단계는, 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 제1 쿼리 조건에 해당한 정보와 상기 요청에 포함된 정보에서 상기 제1 쿼리 조건에 해당한 정보 간의 제1 매칭률을 산출하는 단계;를 포함할 수 있다. 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 제1 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 것일 수 있다.In various embodiments of the present application, the step of searching for block data having a value included in the query condition for the login request with the query condition may include the step of classifying the values included in the request at the time of the request into a first type of condition item or a second type of condition item according to a preset condition rule; the step of generating a first query condition composed of values for the first type of condition item among the values at the time of the request; and the step of propagating the first query condition to a node capable of executing the smart contract to execute the smart contract, thereby searching for block data having a value included in the first query condition in a distributed ledger stored in the node. The step of calculating a matching rate between the web activity history information included in the searched block data and the values at the time of the request may include the step of calculating a first matching rate between information corresponding to the first query condition in the web activity history information included in the searched block data and information corresponding to the first query condition in the information included in the request. The step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on the calculated first matching rate.
본 출원의 다양한 실시 예들에서, 상기 쿼리 조건으로 상기 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계는, 상기 제2 유형의 조건 항목들에 대한 값들로 이루어진 제2 쿼리 조건을 생성하는 단계; 상기 제1 임계 매칭률 이상인 제1 매칭률을 갖는 블록 데이터를 선별하는 단계; 상기 제2 쿼리 조건 및 선별된 블록 데이터의 블록 해시를 선별된 블록 데이터에 대한 쿼리 조건으로 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 선별된 블록 데이터에서 상기 제2 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계;를 더 포함할 수 있다. 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계는, 상기 제1 쿼리 조건 및 제2 쿼리 조건 모두로 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 상기 제2 쿼리 조건에 해당한 정보와 상기 요청에 포함된 정보에서 상기 제2 쿼리 조건에 해당한 정보 간의 제2 매칭률을 산출하는 단계;를 더 포함할 수 있다. 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 산출된 제2 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 것일 수 있다.In various embodiments of the present application, the step of searching for block data having a value included in the query condition for the request with the query condition may further include the step of generating a second query condition composed of values for condition items of the second type; the step of selecting block data having a first matching rate that is greater than or equal to the first threshold matching rate; the step of propagating the second query condition and a block hash of the selected block data to a node capable of executing the smart contract as a query condition for the selected block data to execute the smart contract, thereby searching for block data having a value included in the second query condition in the selected block data; the step of calculating a matching rate between the web activity history information included in the searched block data and the information included in the request may further include the step of calculating a second matching rate between information corresponding to the second query condition in the web activity history information included in the block data searched with both the first query condition and the second query condition and information corresponding to the second query condition in the information included in the request. The step of determining whether the request is an abnormal request based on the calculated matching rate may be determining whether the request is an abnormal request based on the calculated second matching rate.
본 출원의 다양한 실시 예들에서, 상기 제1 임계 매칭률은 제2 임계 매칭률 보다 더 좁은 신뢰 구간에 대응한 값으로 설정된 것이고, 상기 제2 임계 매칭률은 상기 제2 매칭률과 비교되기 위해 미리 설정된 임계 매칭률일 수 있다.In various embodiments of the present application, the first threshold matching rate may be set to a value corresponding to a narrower confidence interval than the second threshold matching rate, and the second threshold matching rate may be a threshold matching rate preset to be compared with the second matching rate.
본 출원의 다양한 실시 예들에서, 서버(10)는, 상기 요청이 이상 요청으로 결정되지 않은 경우, 상기 요청이 나타낸 새로운 웹 활동 내역 정보를 생성하여 상기 블록체인 네트워크 상에 추가로 기록하는 하도록 더 구성될 수 있다. 이 경우, 상기 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하는 단계는, 상기 매칭률에 기초하여 상기 요청이 이상 요청인지 일차적으로 검증한 이후에, 상기 블록체인 네트워크에 기록된 과거의 매칭률 중 일정 기간 동안 매칭률 변화를 분석하고, 일정 기간 동안 매칭률이 순차적으로 하락하는 것이 분석되고 순차적으로 하락한 이후에 매칭률이 재-상승하는 것이 분석되지 않으면 상기 임계 매칭률 이상의 매칭률을 갖는 상기 요청을 이상 요청으로 결정하는 단계를 더 포함할 수 있다.In various embodiments of the present application, the server (10) may be further configured to generate new web activity history information indicated by the request and additionally record it on the blockchain network if the request is not determined to be an abnormal request. In this case, the step of determining whether the request is an abnormal request based on the calculated matching rate may further include the step of primarily verifying whether the request is an abnormal request based on the matching rate, and then analyzing a change in the matching rate for a certain period of time among the past matching rates recorded in the blockchain network, and if it is analyzed that the matching rate sequentially decreases for a certain period of time and if it is not analyzed that the matching rate increases again after sequentially decreasing, determining the request having a matching rate higher than the threshold matching rate as an abnormal request.
아래에서는 요청이 로그인 요청인 실시 예들, 또는 결제 요청인 실시 예들을 참조해 다중 보안으로 요청을 승인하는 방법 및 이를 수행하는 시스템(1)에 대해 보다 상세히 서술한다.Below, a method for approving a request with multi-security and a system (1) for performing the same are described in more detail, with reference to embodiments where the request is a login request or a payment request.
로그인 요청에 대한 다중 보안Multi-layer security for login requests
도 6은, 본 출원의 다양한 실시 예들에 따른, 로그인 요청에 대한 상기 다중 보안 요청 승인 시스템의 요청 승인 과정을 설명한다.FIG. 6 illustrates a request approval process of the multi-security request approval system for a login request according to various embodiments of the present application.
도 6에 도시된 단계(S310 내지 S330)는 도 3을 참조하여 전술하였는 바, 자세한 설명은 생략한다.The steps (S310 to S330) illustrated in Fig. 6 have been described above with reference to Fig. 3, and thus a detailed description thereof is omitted.
도 6를 참조하면, 상기 사용자의 웹 활동 내역 정보를 상기 블록체인 네트워크(1000)에 기록한 이후에(S330), 상기 단말장치(100)는 서버(10)로 송신될 요청을 생성할 수 있다(S410, S420, S430). 이와 같은 요청의 종류로는 앞서 설명한 바와 같이 다양한 것들이 있을 수 있으나, 도 6에서는 단말 장치(100)가 생성한 요청이 로그인 요청임을 가정하고 설명하도록 한다.Referring to Fig. 6, after the user's web activity history information is recorded in the blockchain network (1000) (S330), the terminal device (100) can generate a request to be transmitted to the server (10) (S410, S420, S430). As described above, there may be various types of such requests, but Fig. 6 will be explained assuming that the request generated by the terminal device (100) is a login request.
상기 단말장치(100)는 로그인 화면을 표시하고(S410), 로그인 요청을 개시하기 위한 명령을 입력 받으면(S420), 내장된 인증 프로그램을 통해 사용자를 인증할 수 있다(S430).The above terminal device (100) displays a login screen (S410), and when a command to initiate a login request is input (S420), the user can be authenticated through a built-in authentication program (S430).
도 7은, 본 출원의 다양한 실시 예들에 따른, 바이오 인증을 이용한 로그인 요청을 생성하는 과정을 설명한다.FIG. 7 illustrates a process for generating a login request using biometric authentication according to various embodiments of the present application.
도 7을 참조하면, 로그인 요청을 생성하는 단계는, 상기 단말장치(100)가 로그인 화면을 표시하는 단계(S410); 상기 로그인 화면을 통해 로그인 요청을 위한 개시 명령을 입력받는 단계(S420); 로그인 요청을 생성하기 이전에, 상기 명령의 입력에 응답하여 사용자의 생체 정보를 획득하고, 상기 명령을 입력한 상기 사용자를 인증하기 위해 획득된 생체 정보에 기초한 바이오 인증 동작을 수행하여 상기 사용자에 대한 인증 결과 정보를 생성하는 단계(S430); 및 상기 인증 결과 정보, 상기 로그인 요청을 시도하는 단말장치(100)의 접속정보, 요청정보를 포함한 로그인 요청을 생성하여 상기 서버(10)로 전송하는 단계(S440)를 포함한다.Referring to FIG. 7, the step of generating a login request includes the step of displaying a login screen by the terminal device (100) (S410); the step of receiving an initiation command for a login request through the login screen (S420); the step of obtaining user biometric information in response to the input of the command before generating the login request, and performing a biometric authentication operation based on the obtained biometric information to authenticate the user who input the command, thereby generating authentication result information for the user (S430); and the step of generating a login request including the authentication result information, connection information of the terminal device (100) attempting the login request, and request information, and transmitting the login request to the server (10) (S440).
상기 로그인 화면은 웹 사이트에 연관된 웹 페이지 중 로그인 요청을 위한 웹 페이지 화면이다. 상기 로그인 화면은 로그인 요청 생성을 위한 버튼 영역(141)을 포함한다. 상기 버튼 영역(141)이 선택되면, 로그인 요청을 생성하기 위한 동작이 개시될 수 있다.The above login screen is a web page screen for a login request among web pages associated with a website. The above login screen includes a button area (141) for creating a login request. When the button area (141) is selected, an operation for creating a login request can be initiated.
상기 단계(S430)는, 사용자의 생체 정보를 수신하는 단계; 상기 사용자의 생체 정보와 상기 단말장치(100)에 미리 저장된 생체 정보를 비교하여 수신된 생체 정보의 사용자가 미리 저장된 생체 정보의 사용자인지, 상기 수신된 생체 정보의 사용자를 인증하는 단계를 포함할 수 있다.The above step (S430) may include a step of receiving a user's biometric information; a step of comparing the user's biometric information with biometric information pre-stored in the terminal device (100) to determine whether the user of the received biometric information is the user of the pre-stored biometric information and authenticating the user of the received biometric information.
본 출원의 다양한 실시 예들에서, 상기 단계(S430)의 동작은 단말장치(100)의 OS에 통합되어 별도 인증 애플리케이션의 설치가 불필요한 바이오 인증 프로그램을 통해 수행될 수 있다. 로그인 요청을 개시하기 위한 명령이 바이오 인증 프로그램을 실행하는 명령일 경우, 사용자의 생체 정보를 획득하고 내장된 바이오 인증 프로그램에 입력한다. 구체적으로, 상기 단계(S430)는, 상기 단말장치(100)에서 획득한 상기 사용자의 생체 정보를 미리 설치된 바이오 인증 프로그램에 입력하는 단계; 상기 바이오 인증 프로그램에서 산출된 인증 결과 정보를 획득하는 단계를 포함할 수 있다.In various embodiments of the present application, the operation of the step (S430) may be performed through a bio-authentication program that is integrated into the OS of the terminal device (100) and does not require installation of a separate authentication application. If the command for initiating a login request is a command for executing a bio-authentication program, the user's bio-information is acquired and entered into the built-in bio-authentication program. Specifically, the step (S430) may include a step of inputting the user's bio-information acquired from the terminal device (100) into a pre-installed bio-authentication program; and a step of acquiring authentication result information produced by the bio-authentication program.
상기 바이오 인증 프로그램은, 프로세서에 의해 수행될 경우, 상기 사용자의 생체 정보와 미리 저장된 사용자의 생체 정보를 비교하여 생체 정보 간의 매칭 여부를 결정하는 단계; 상기 생체 정보가 서로 매칭하면 상기 획득된 생체 정보의 사용자(즉, 로그인 요청을 시도하는 사용자)의 신원에 대한 인증 성공을 나타낸 인증 결과 정보를 생성하고, 상기 생체 정보가 매칭하지 않으면 사용자에 대한 인증 실패를 나타낸 인증 결과 정보를 생성하는 단계; 를 수행하게 하는 명령어들을 포함할 수 있다.The above biometric authentication program, when executed by a processor, may include instructions for performing the following steps: comparing the user's biometric information with pre-stored user's biometric information to determine whether there is a match between the biometric information; generating authentication result information indicating a successful authentication of the identity of the user of the acquired biometric information (i.e., the user attempting the login request) if the biometric information matches each other; and generating authentication result information indicating a failure in authentication of the user if the biometric information does not match.
단말장치(100)가 획득하는 생체 정보의 유형은 바이오 인증 프로그램의 입력 데이터 유형에 의존한다. 상기 생체 정보는 사용자의 지문, 상기 사용자의 얼굴 이미지일 수 있으나, 이에 제한되지 않는다.The type of biometric information acquired by the terminal device (100) depends on the type of input data of the biometric authentication program. The biometric information may be, but is not limited to, a user's fingerprint or an image of the user's face.
일 예에서, 도 6에 도시된 것처럼, 상기 바이오 인증 프로그램은 얼굴 인식 기반 인증 프로그램일 수 있다. 그러면, 상기 단말장치(100)는, 카메라를 통해 촬영한 사용자의 얼굴 이미지를 얼굴 인식 기반 인증 프로그램에 입력할 수 있다. 상기 얼굴 인식 기반 인증 프로그램은, 프로세서에 의해 수행될 경우, 상기 사용자의 얼굴 이미지로부터 얼굴 정보를 검출하는 단계; 미리 저장된 사용자의 얼굴 정보와 검출된 얼굴 정보를 비교하여 상기 얼굴 이미지의 사용자가 미리 저장된 얼굴 정보의 사용자와 일치하는 지 결정하는 단계; 일치하는 것으로 결정되면 상기 얼굴 이미지의 사용자가 상기 미리 저장된 얼굴 정보의 사용자인 것으로 사용자를 인증하는 단계; 사용자 인증 결과를 나타낸 인증 결과 정보를 생성하는 단계;를 수행하게 하는 명령어들을 포함할 수 있다.In one example, as illustrated in FIG. 6, the biometric authentication program may be a face recognition-based authentication program. Then, the terminal device (100) may input a user's face image captured by a camera into the face recognition-based authentication program. The face recognition-based authentication program may include commands that, when executed by a processor, cause the following to be performed: a step of detecting face information from the user's face image; a step of comparing the user's face information stored in advance with the detected face information to determine whether the user of the face image matches the user of the pre-stored face information; a step of authenticating the user as the user of the face image of the pre-stored face information if the user matches; and a step of generating authentication result information indicating the user authentication result.
본 출원의 다양한 실시 예들에서, 상기 단말장치(100)는 가이드 화면을 통해 상기 사용자의 생체 정보를 획득할 수 있다. 도 7에 도시된 것처럼, 상기 가이드 화면은 얼굴 영역의 포커싱을 유도하도록 구성될 수 있다.In various embodiments of the present application, the terminal device (100) can obtain the user's biometric information through a guide screen. As illustrated in FIG. 7, the guide screen can be configured to induce focusing on the face area.
상기 가이드 화면을 통해 다른 인증 수단을 선택할 수 있다. 상기 다른 인증 수단은 다른 생체 정보에 기반한 바이오 인증 동작, 또는 논-바이오 인증 동작일 수 있다. 상기 논-바이오 인증 동작은, 비밀번호, PIN, 기타 텍스트 기반 인증 동작일 수 있으나, 이에 제한되진 않는다.The above guide screen allows you to select other authentication methods. The other authentication methods may be biometric authentication operations based on other biometric information, or non-biometric authentication operations. The non-biometric authentication operations may be, but are not limited to, passwords, PINs, or other text-based authentication operations.
상기 인증 결과 정보는 획득된 생체 정보와 미리 저장된 생체 정보가 매칭되지 않아 상기 사용자인증이 실패한 것, 또는 획득된 생체 정보와 미리 저장된 생체 정보가 매칭되어 상기 사용자인증이 성공한 것을 나타낼 수 있다. 일부 실시 예들에서, 상기 인증 결과 정보는 상기 획득된 생체 정보의 사용자가 상기 미리 저장된 생체 정보의 사용자로 인식될 인증 확률 값을 더 포함할 수 있다.The above authentication result information may indicate that the user authentication failed because the acquired biometric information and the pre-stored biometric information do not match, or that the user authentication succeeded because the acquired biometric information and the pre-stored biometric information match. In some embodiments, the authentication result information may further include an authentication probability value that the user of the acquired biometric information will be recognized as the user of the pre-stored biometric information.
상기 단말장치(100)는 바이오 인식 프로그램을 통해 상기 인증 결과 정보가 생성되면(S430), 로그인 요청 당시 상기 단말장치(100)의 접속정보, 요청정보를 생성하고, 상기 로그인 요청을 시도하는 단말장치(100)의 로그인 요청 당시 상기 인증 결과 정보, 접속정보, 요청정보를 포함한 로그인 요청을 생성한다(S440).When the above terminal device (100) generates the authentication result information through a biometric recognition program (S430), it generates the connection information and request information of the terminal device (100) at the time of the login request, and generates a login request including the authentication result information, connection information, and request information at the time of the login request of the terminal device (100) attempting the login request (S440).
상기 접속정보는 상기 웹 활동 내역 정보에 포함된 접속정보와 동일한 항목으로 구성될 수 있다. 접속정보는 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 브라우저, 접속 언어, 접속 시간, 접속 웹 사이트 주소 정보 중 하나 이상의 정보를 포함할 수 있다.The above connection information may be composed of the same items as the connection information included in the above web activity history information. The connection information may include one or more of the following information: connection location, connection device, connection device OS, connection browser, connection language, connection time, and connection website address information.
요청 정보는 요청의 구체적인 내용을 포함할 수 있다. 예컨대, 로그인 요청 정보는 식별 정보로 서버(10) 또는 제3자 시스템(20)에 로그인하고자 한다는 취지를 나타낼 수 있다.The request information may include specific details of the request. For example, the login request information may indicate a desire to log in to a server (10) or a third-party system (20) using identification information.
다시 도 6를 참조하면, 상기 로그인 요청을 수신한 상기 서버(10)는 상기 로그인 요청이 이상 요청인지 블록체인 네트워크(1000) 상의 블록체인 기록에 기초하여 판단할 수 있다(S450, S460).Referring again to FIG. 6, the server (10) that received the login request can determine whether the login request is an abnormal request based on the blockchain record on the blockchain network (1000) (S450, S460).
도 8은, 본 출원의 다양한 실시 예들에 따른, 로그인 요청에 대한 블록체인 기반 이상 탐지 과정을 설명한다.FIG. 8 illustrates a blockchain-based anomaly detection process for a login request according to various embodiments of the present application.
도 8을 참조하면, 상기 서버(10)는 로그인 요청을 수신하여 상기 단말장치(100)의 로그인 요청에 따른 상기 인증 결과 정보, 상기 단말장치(100)의 로그인 요청 당시의 접속정보를 획득한다(S440). 서버(10)는 사용자의 식별정보를 획득하지 않더라도 로그인 요청에 대해 승인 여부를 결정할 수 있다.Referring to Fig. 8, the server (10) receives a login request and obtains the authentication result information according to the login request of the terminal device (100) and the connection information at the time of the login request of the terminal device (100) (S440). The server (10) can determine whether to approve or not the login request even if it does not obtain the user's identification information.
상기 서버(10)는 블록체인 네트워크(1000) 상의 적어도 하나의 노드에게 로그인 요청의 수신 사실을 알리면서 상기 로그인 요청 당시의 접속정보 중 적어도 일부 정보에 매칭한 블록 데이터를 상기 블록체인 네트워크(1000) 상에서 검색한다(S450). 상기 서버(10)는 상기 인증 결과 정보; 및 검색된 접속정보와 로그인 요청 내 접속정보 간의 매칭률에 기초하여 로그인 요청이 이상 요청인지 검증한다(S460). 검색되는 블록 데이터는 상기 로그인 요청 당시의 접속정보 중 적어도 일부 정보에 매칭하는 값을 가지는 블록 데이터이다. 상기 블록 데이터는 상기 로그인 요청 당시의 접속정보 중 적어도 일부 정보에 매칭하는 값을 나타낸 트랜잭션을 포함할 수 있다.The server (10) informs at least one node on the blockchain network (1000) of the fact of receiving a login request, and searches for block data matching at least some of the access information at the time of the login request on the blockchain network (1000) (S450). The server (10) verifies whether the login request is an abnormal request based on the authentication result information and the matching rate between the searched access information and the access information in the login request (S460). The searched block data is block data having a value matching at least some of the access information at the time of the login request. The block data may include a transaction indicating a value matching at least some of the access information at the time of the login request.
일부 실시 예들에서, 서버(10)는 상기 인증 결과 정보에 기초하여 상기 블록 데이터의 검색을 개시할지를 결정할 수 있다(S450). 상기 인증 결과 정보 내 인증 확률 값이 상대적으로 낮을 경우, 블록 데이터의 검색을 개시하지 않고 곧바로 이상 요청으로 결정할 수 있다(S460). 일부 실시 예들에서, 상기 서버(10)는 상기 인증 결과 정보가 사용자인증이 실패한 경우에 블록 데이터의 검색을 개시하지 않고 곧바로 이상 요청으로 결정할 수 있다(S460).In some embodiments, the server (10) may determine whether to initiate a search for the block data based on the authentication result information (S450). If the authentication probability value in the authentication result information is relatively low, the search for the block data may not be initiated and may be determined as an abnormal request (S460). In some embodiments, the server (10) may determine the search for the block data as an abnormal request immediately when the authentication result information indicates that the user authentication has failed (S460).
일부 실시 예들에서, 상기 체인코드를 실행할 수 있는 노드는 서버(10)일 수 있다. 그러면, 서버(10)는 쿼리 조건을 자체 생성하여 블록 데이터를 검색할 수 있다.In some embodiments, the node capable of executing the chaincode may be a server (10). Then, the server (10) may generate its own query conditions to retrieve block data.
본 출원의 다양한 실시 예들에서, 상기 서버(10)에 의해 수행되는 상기 단계(S450)는, 상기 서버(10)가 로그인 요청을 수신하면, 상기 로그인 요청 내 로그인 요청 당시의 접속정보의 값 중 적어도 일부의 값으로 상기 로그인 요청에 대한 쿼리 조건을 생성하는 단계; 상기 쿼리 조건으로 상기 로그인 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계로서, 상기 블록체인 네트워크(1000) 내 노드들에 의해 제공되는 스마트 계약을 호출하고, 상기 로그인 요청에 대한 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 로그인 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계를 포함할 수 있다.In various embodiments of the present application, the step (S450) performed by the server (10) may include: a step of generating a query condition for the login request with at least some of the values of the connection information at the time of the login request in the login request when the server (10) receives a login request; a step of searching for block data having a value included in the query condition for the login request with the query condition, the step of calling a smart contract provided by nodes in the blockchain network (1000) and propagating the query condition for the login request to a node capable of executing the smart contract to execute the smart contract, thereby searching for block data having a value included in the query condition for the login request from a distributed ledger stored in the node.
상기 단계(S460)는, 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보 내 접속정보와 상기 로그인 요청 당시의 상기 접속정보 간의 매칭률을 산출하는 단계; 산출된 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하는 단계를 포함할 수 있다.The above step (S460) may include a step of calculating a matching rate between the connection information in the web activity history information included in the searched block data and the connection information at the time of the login request; and a step of determining whether the login request is an abnormal request based on the calculated matching rate.
블록체인 네트워크(1000)는 다양한 노드들에 의해 제공되는 다양한 스마트 계약(smart contract)을 배포 및 실행할 수 있다. 스마트 계약은 디지털 명령어로 기재된 규약으로서, 블록체인 네트워크에서 규약의 조건을 따르는 이벤트가 발생 할 경우, 정해진 규약에 따라 특정 트랜잭션이 발생하도록 하거나 다른 스마트 계약을 실행할 수 있다.The blockchain network (1000) can distribute and execute various smart contracts provided by various nodes. A smart contract is a contract written in digital commands, and when an event that follows the conditions of the contract occurs in the blockchain network, a specific transaction can occur according to the set contract or another smart contract can be executed.
스마트 계약은 계약 주소(contract account)를 보유할 수 있다. 계약 주소는 블록체인 네트워크에 포함된 노드 또는 다른 스마트 계약이 상기 스마트 계약을 동작시키기 위해 트랜잭션을 발생시키는 주소로 이해될 수 있다. 계약 주소는 트랜잭션 메시지를 받은 경우, 내부 규약으로 정해진 디지털 명령어에 따라 다음 동작(예: 특정 트랜잭션을 생성, 메시지를 읽거나 다른 계좌로 메시지 전송, 다른 스마트 계약을 생성)을 수행할 수 있다.A smart contract can have a contract account. A contract account can be understood as an address where a node or other smart contract included in a blockchain network generates a transaction to operate the smart contract. When a contract address receives a transaction message, it can perform the following actions (e.g., create a specific transaction, read a message, send a message to another account, create another smart contract) according to the digital instructions defined by the internal rules.
상기 스마트 계약은, 프라이빗 블록체인 네트워크(1000)에서 제공하는 체인코드일 수 있다. 상기 체인코드는 하이퍼렛저 블록체인 네트워크와 같은 프라이빗 블록체인 네트워크에서 실행되는 비즈니스 로직을 구현한 프로그램이다 상기 체인코드는 블록체인의 분산원장에 대한 읽기 또는 쓰기 작업을 수행하며, Javasciprt 등의 일반적인 프로그래밍 언어로 작성될 수 있다.The above smart contract may be a chain code provided by a private blockchain network (1000). The above chain code is a program that implements business logic that is executed in a private blockchain network such as a Hyperledger blockchain network. The above chain code performs a read or write operation on the distributed ledger of the blockchain and may be written in a general programming language such as Javascript.
하이퍼렛저 블록체인 네트워크에서 체인코드는 원장의 정보(예컨대, 상태 정보)를 업데이트하는 트랜잭션의 처리 기능 또는 원장의 정보(예컨대, 상태 정보)를 쿼리하는 기능을 수행하도록 구성된다. 상기 체인코드가 실행되면, 원장의 정보를 쿼리할 수 있다.In a Hyperledger blockchain network, chaincode is configured to perform the function of processing transactions that update information in the ledger (e.g., state information) or the function of querying information in the ledger (e.g., state information). When the chaincode is executed, the information in the ledger can be queried.
상기 서버(10)는 체인코드를 실행하기 이전에, 로그인 요청에 대한 쿼리 조건을 생성할 수 있다. 상기 쿼리 조건은 상기 접속정보 내 일부 또는 전부의 접속항목에 대한 값들로 이루어질 수 있다. 상기 쿼리 조건에 포함될 접속항목은 보안 난이도에 따라 설정될 수 있다.The above server (10) can generate a query condition for a login request before executing the chain code. The query condition can be composed of values for some or all of the connection items in the connection information. The connection items to be included in the query condition can be set according to the security difficulty.
상기 서버(10)는 미리 설정된 조건 세트에 해당하는 요청 값들을 추출하여 상기 로그인 요청에 대한 쿼리 조건을 생성할 수 있다. 상기 조건 세트가 접속 시간대를 포함할 경우, 상기 서버(10)는 요청 내 접속정보에서 접속 시간 정보의 값을 추출하고, 상기 접속 시간 정보의 접속 시점을 해당하는 접속 시간대로 변경할 수 있다. 변경된 접속 시간대 값이 쿼리 조건에 포함된다. 일부 실시 예들에서, 상기 서버(10)는 미리 저장된 시간대 테이블을 이용하여 접속 시간대를 생성할 수 있다. 상기 시간대 테이블은 시간대의 범위를 기록한 테이블일 수 있다. 상기 시간대의 범위는 서로 중복되지 않으면서 서로 다른 한 쌍의 시(hours)로 정의될 수 있다. 시간대의 범위는 1시간, 3시간, 4시간, 6시간 또는 8시간일 수 있으나, 이에 제한되진 않는다. 상기 서버(10)는 접속 시간 값이 속하는 시간대를 상기 시간대 테이블에서 검색하여 쿼리의 조건 값으로 이용할 수 있다.The server (10) may extract request values corresponding to a preset condition set to generate a query condition for the login request. If the condition set includes a connection time zone, the server (10) may extract a value of connection time information from the connection information in the request and change the connection time of the connection time information to a corresponding connection time zone. The changed connection time zone value is included in the query condition. In some embodiments, the server (10) may generate a connection time zone using a pre-stored time zone table. The time zone table may be a table that records a range of time zones. The range of the time zones may be defined as a pair of hours that are different from each other without overlapping each other. The range of the time zones may be 1 hour, 3 hours, 4 hours, 6 hours, or 8 hours, but is not limited thereto. The server (10) may search for a time zone to which the connection time value belongs in the time zone table and use it as a condition value of the query.
서버(10)는 검색된 블록 데이터 각각에 대한 매칭률을 산출할 수 있다. 서버(10)는 각각의 블록 데이터에 포함된 접속정보의 항목별 값과 쿼리 조건 내 동일한 항목별 값을 비교하여 매칭률을 산출할 수 있다.The server (10) can calculate a matching rate for each searched block data. The server (10) can calculate a matching rate by comparing the item-by-item value of the connection information included in each block data with the same item-by-item value within the query condition.
서버(10)는 산출된 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하기 위해, 산출된 매칭률이 미리 설정된 임계 매칭률 이상이면 로그인 요청을 이상 요청이 아닌 것으로 결정하고, 산출된 매칭률이 미리 설정된 임계 매칭률 미만이면 로그인 요청을 이상 요청인 것으로 결정한다.The server (10) determines whether the login request is an abnormal request based on the calculated matching rate. If the calculated matching rate is higher than a preset threshold matching rate, the server determines the login request is not an abnormal request. If the calculated matching rate is lower than a preset threshold matching rate, the server determines the login request is an abnormal request.
임계 매칭률은 불편한 사용자 경험을 최소화하면서도 사기나 악의적인 행위를 효과적으로 방지할 수 있는 값으로 설정될 수 있다. 예를 들어, 95%의 정상 사용자가 얻는 점수가 70점 이상이라면, 임계 값은 70점으로 설정될 수 있다.The threshold matching rate can be set to a value that effectively prevents fraud or malicious behavior while minimizing unpleasant user experiences. For example, if 95% of normal users get a score of 70 or higher, the threshold can be set to 70.
일부 실시 예들에서, 상기 산출된 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하는 단계는, 산출된 매칭률 및 상기 로그인 요청 내 인증 결과 정보에 기초하여 상기 로그인 요청이 이상 요청인지 결정하는 것일 수 있다. 구체적으로, 상기 서버(10)는 산출된 매칭률에 상기 사용자의 인증 확률 값을 적용한 보정된 매칭률에 기초하여 이상 요청 여부를 결정할 수 있다. 보정된 매칭률이 상기 임계 매칭률과 비교하여 로그인 요청이 이상 요청인지 결정된다. 예를 들어, 상기 확률 값이 0.9인 경우, 원래의 매칭률에 0.9를 곱한 값이 임계 매칭률과 비교될 수 있다. 일부 실시 예들에서, 상기 임계 매칭률은 인증 확률 값이 적용된 통계 자료를 기준으로 설정될 수 있다. 상기 사용자 인증이 성공했으나 인증 확률 값이 상대적으로 확률이 낮은 경우, 낮은 확률만큼 매칭률이 저하되어 로그인 요청이 이상 요청으로 결정될 가능성이 증가할 수 있다.In some embodiments, the step of determining whether the login request is an abnormal request based on the calculated matching rate may be determining whether the login request is an abnormal request based on the calculated matching rate and the authentication result information in the login request. Specifically, the server (10) may determine whether the request is an abnormal request based on a corrected matching rate that applies the user's authentication probability value to the calculated matching rate. The corrected matching rate is compared with the threshold matching rate to determine whether the login request is an abnormal request. For example, when the probability value is 0.9, a value obtained by multiplying the original matching rate by 0.9 may be compared with the threshold matching rate. In some embodiments, the threshold matching rate may be set based on statistical data to which the authentication probability value is applied. When the user authentication is successful but the authentication probability value has a relatively low probability, the matching rate may be lowered by the low probability, thereby increasing the possibility that the login request will be determined as an abnormal request.
본 출원의 다양한 실시 예들에서, 상기 단계(S450)는, 로그인 요청 당시의 접속정보를 미리 설정된 조건 규칙에 따라 제1 유형의 조건 항목 또는 제2 유형의 조건 항목으로 분류하고; 로그인 요청 당시의 값들 중에서 상기 제1 유형의 조건 항목에 대한 값들로 이루어진 제1 쿼리 조건을 생성하고; 상기 제1 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 제1 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계를 포함할 수 있다.In various embodiments of the present application, the step (S450) may include a step of classifying access information at the time of a login request into a first type of condition item or a second type of condition item according to a preset condition rule; generating a first query condition composed of values for the first type of condition item among the values at the time of the login request; and propagating the first query condition to a node capable of executing the smart contract to execute the smart contract, thereby searching for block data having a value included in the first query condition in a distributed ledger stored in the node.
그러면, 서버(10)는, 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 상기 제1 쿼리 조건에 해당한 정보와 상기 요청 내 접속정보에서 상기 제1 쿼리 조건에 해당한 정보 간의 제1 매칭률을 산출한다(S460). 일부 실시 예들에서, 서버(10)는 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하기 위해, 산출된 제1 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하도록 구성될 수 있다. 서버(10)는 산출된 제1 매칭률이 미리 설정된 제1 임계 매칭률 이상인 블록 데이터가 존재하지 않으면 상기 로그인 요청을 이상 요청으로 결정한다. 즉, 서버(10)는 상기 산출된 제1 매칭률에 기초하여 곧바로 로그인 요청을 이상 요청으로 결정될 수 있다.Then, the server (10) calculates a first matching rate between the information corresponding to the first query condition in the web activity history information included in the searched block data and the information corresponding to the first query condition in the connection information in the request (S460). In some embodiments, the server (10) may be configured to determine whether the login request is an abnormal request based on the calculated first matching rate in order to determine whether the request is an abnormal request based on the calculated first matching rate. The server (10) determines the login request as an abnormal request if there is no block data in which the calculated first matching rate is greater than or equal to a preset first threshold matching rate. That is, the server (10) may immediately determine the login request as an abnormal request based on the calculated first matching rate.
또는, 일부 실시 예들에서, 상기 제2 유형의 조건 항목들을 이용해서 로그인 요청이 이상 요청인지 보다 확실하게 결정할 수 있다. 구체적으로, 상기 단계(S450)는, 상기 서버(10)에 의해, 상기 제2 유형의 조건 항목들에 대한 값들로 이루어진 제2 쿼리 조건을 생성하는 단계; 제1 임계 매칭률 이상인 제1 매칭률을 갖는 블록 데이터를 선별하는 단계; 상기 제2 쿼리 조건 및 선별된 블록 데이터의 블록 해시를 선별된 블록 데이터에 대한 쿼리 조건으로 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 선별된 블록 데이터에서 상기 제2 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계를 더 포함할 수 있다. 서버(10)는 블록 데이터를 선별하면서, 블록 해시 값을 획득할 수 있다. 획득된 블록 해시 값을 활용하여 해당 블록 해시 값을 갖는 블록을 검색하고, 검색된 블록에서 제2 쿼리 조건에 매칭한 블록을 최종적으로 검색할 수 있다.Alternatively, in some embodiments, the second type of condition items may be used to more reliably determine whether the login request is an abnormal request. Specifically, the step (S450) may further include: a step of generating, by the server (10), a second query condition composed of values for the second type of condition items; a step of selecting block data having a first matching rate that is greater than or equal to a first threshold matching rate; and a step of searching for block data having a value included in the second query condition from the selected block data by propagating the second query condition and the block hash of the selected block data to a node capable of executing the smart contract as a query condition for the selected block data and executing the smart contract. The server (10) may obtain a block hash value while selecting the block data. The obtained block hash value may be used to search for a block having the corresponding block hash value, and a block matching the second query condition may be finally searched for from the searched blocks.
그러면, 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계는, 제1 쿼리 조건 및 제2 쿼리 조건 모두로 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보 내 접속정보에서 상기 제2 쿼리 조건에 해당한 정보와 상기 로그인 요청 당시의 접속정보에서 상기 제2 쿼리 조건에 해당한 정보 간의 제2 매칭률을 산출하는 단계를 포함한다. 서버(10)는 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하기 위해, 산출된 제2 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하도록 구성될 수 있다(S460).Then, the step of calculating a matching rate between the web activity history information included in the searched block data and the information included in the request includes the step of calculating a second matching rate between the information corresponding to the second query condition in the access information included in the web activity history information searched for block data with both the first query condition and the second query condition and the information corresponding to the second query condition in the access information at the time of the login request. The server (10) may be configured to determine whether the login request is an abnormal request based on the calculated matching rate, based on the calculated second matching rate (S460).
또한, 상기 제2 매칭률에 기초하여 상기 로그인 요청이 이상 요청인지 결정하는 단계는, 각각의 블록 데이터에 대한 제2 매칭률이 미리 설정된 제2 임계 매칭률 이상인 블록 데이터가 존재하면 상기 로그인 요청은 이상 요청이 아닌 것으로 결정하고, 각각의 블록 데이터에 대한 상기 제2 매칭률이 상기 제2 임계 매칭률이 이상인 블록 데이터가 존재하지 않으면 상기 로그인 요청은 이상 요청인 것으로 결정하는 것일 수 있다.In addition, the step of determining whether the login request is an abnormal request based on the second matching rate may be such that if there is block data for which the second matching rate for each block data is equal to or greater than a preset second threshold matching rate, the login request is determined not to be an abnormal request, and if there is no block data for which the second matching rate for each block data is equal to or greater than the second threshold matching rate, the login request is determined to be an abnormal request.
상기 제1 유형의 조건 항목은 이상 요청이 아닌 정상 요청에서는 그 값의 변경이 상대적으로 어려운 항목이다. 정상 요청에서는 제1 유형의 조건 항목은 상대적으로 동일 또는 유사한 값을 갖는 경향이 발견된다. 상기 제1 유형의 조건 항목은 상기 접속정보 중에서 하이퍼렛지 블록체인 시스템의 Non-Flexible 항목일 수 있다. 예를 들어, 상기 접속정보 중에서 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 언어 또는 접속 웹 사이트 주소 정보와 같은 접속항목이 제1 유형의 조건 항목으로 상기 로그인 요청에 대한 쿼리 조건에 포함될 수 있다. 상기 제1 유형의 조건 항목에 대한 값들로 구성된 제1 쿼리 조건을 이용하여 쿼리를 실행하면, 과거의 정상 요청으로 추측되는 후보 내역 정보를 상대적으로 신속하게 검색할 수 있다.The condition item of the first type above is an item whose value is relatively difficult to change in a normal request, not an abnormal request. In normal requests, the condition item of the first type tends to have relatively the same or similar values. The condition item of the first type above may be a Non-Flexible item of the Hyperledge blockchain system among the connection information. For example, among the connection information, connection items such as a connection location, a connection device, a connection device OS, a connection language, or a connection website address information may be included as a condition item of the first type in the query condition for the login request. When a query is executed using a first query condition composed of values for the condition item of the first type above, candidate history information presumed to be a normal request in the past can be searched for relatively quickly.
상기 제2 유형의 조건 항목은 이상 요청이 아닌 정상 요청에서도 그 값의 변경이 상대적으로 용이한 항목이다. 정상 요청에서는 제2 유형의 조건 항목은 상대적으로 동일하지 않거나 또는 유사하지 않은 값을 갖는 경향이 발견된다. 상기 제2 유형의 조건 항목은 상기 접속정보 중에서 하이퍼렛지 블록체인 시스템의 -Flexible 항목일 수 있다. 예를 들어, 접속 시간(즉, 시간대, 요일), 접속 사이트, 접속 브라우저와 같은 접속정보의 항목이 상기 제2 유형의 조건 항목으로 상기 쿼리 조건에 포함될 수 있다. 상기 제2 유형의 조건 항목에 대한 값들로 구성된 제2 쿼리 조건을 이용하여 쿼리를 실행하면, 제1 쿼리 조건으로 일차 추측된 후보 내역 정보 중 현재 로그인 요청에 가장 부합하는 내역 정보를 정확하게 검색할 수 있다.The condition item of the second type is an item whose value is relatively easy to change even in a normal request, not an abnormal request. In a normal request, the condition item of the second type tends to have relatively different or different values. The condition item of the second type may be a -Flexible item of the Hyperledge blockchain system among the connection information. For example, connection information items such as connection time (i.e., time zone, day of the week), connection site, and connection browser may be included in the query condition as the condition item of the second type. When a query is executed using the second query condition composed of values for the condition item of the second type, the history information that best matches the current login request among the candidate history information initially guessed by the first query condition can be accurately searched.
일부 실시 예들에서, 상기 제1 임계 매칭률은 상기 제2 임계 매칭률 보다 더 좁은 신뢰 구간에 대응한 값을 가질 수 있다. 상기 제1 임계 매칭률에 대응하는 신뢰 구간은 상기 제2 임계 매칭률에 대응한 신뢰 구간 보다 좁은 구간을 가진다.In some embodiments, the first threshold matching rate may have a value corresponding to a narrower confidence interval than the second threshold matching rate. The confidence interval corresponding to the first threshold matching rate has a narrower interval than the confidence interval corresponding to the second threshold matching rate.
예를 들어, 제1 임계 매칭률은 95%의 정상 사용자가 속하는 점수(예컨대, 70점)에 대응하고, 제2 임계 매칭률은 99%의 정상 사용자가 속하는 점수(예컨대, 50점)에 대응할 수 있다. 즉, 제1 임계 매칭률이 제2 임계 매칭률 보다 상대적으로 정상 요청을 보다 엄격하게 담보할 수 있다. 상대적으로 변경이 어려운 제1 쿼리 조건에 제2 쿼리 조건 보다 높은 가중치가 설정되어, 제1 임계 매칭률 이상의 제1 매칭률을 갖는 블록 데이터는 이상 요청으로 결정될 가능성이 상대적으로 낮아지도록 설계될 수 있다.For example, the first threshold matching rate may correspond to a score to which 95% of normal users belong (e.g., 70 points), and the second threshold matching rate may correspond to a score to which 99% of normal users belong (e.g., 50 points). In other words, the first threshold matching rate can secure normal requests more strictly than the second threshold matching rate. A higher weight is set for the first query condition, which is relatively difficult to change, than for the second query condition, so that block data having a first matching rate higher than the first threshold matching rate can be designed to have a relatively lower possibility of being determined as an abnormal request.
서버(10)는 제2 임계 매칭률을 이용해 최소한의 추가 검증 절차를 진행하여, 예상치 못한 이상 요청을 탐색할 수 있다.The server (10) can detect unexpected abnormal requests by performing a minimum of additional verification procedures using the second threshold matching rate.
상기 로그인 요청이 이상 요청으로 결정되지 않은 정당한 요청으로 결정한 경우, 서버(10)는 상기 로그인 요청에 포함된 사용자의 접속정보, 인증 결과 정보, 요청정보를 포함한 새로운 로그인 내역 정보를 생성하고, 생성된 새로운 로그인 내역 정보를 블록체인 네트워크(1000) 상에 추가로 기록할 수 있다(S470).If the above login request is determined to be a legitimate request and not an abnormal request, the server (10) can create new login history information including the user's access information, authentication result information, and request information included in the login request, and additionally record the created new login history information on the blockchain network (1000) (S470).
상기 단계(S470)에서 서버(10)는 새로운 로그인 내역 정보를 트랜잭션으로 블록체인 네트워크(1000)에 전송하여(S4720), 상기 트랜잭션을 포함한 블록을 블록체인에 추가할 수 있다(S4730). 상기 단계(S4720, 4073)의 동작은 도 3의 단계(S320, S330)에 대응한다. 즉, 상기 단계(S470)에서 서버(10)가 새로운 로그인 내역 정보를 블록체인 네트워크(1000)에 기록하는 것(S4720, S4730)은 도 3의 웹 활동 내역 정보로서 과거 로그인 내역 정보를 블록체인 네트워크(1000)에 기록하는 것(S320, S330)과 동일한 원리로 수행될 수 있는 바, 자세한 설명은 생략한다.In the above step (S470), the server (10) transmits new login history information to the blockchain network (1000) as a transaction (S4720), and can add a block including the transaction to the blockchain (S4730). The operations of the above steps (S4720, 4073) correspond to the steps (S320, S330) of FIG. 3. That is, in the above step (S470), the server (10) records new login history information in the blockchain network (1000) (S4720, S4730) can be performed by the same principle as the recording of past login history information as web activity history information in the blockchain network (1000) (S320, S330) of FIG. 3, and therefore, a detailed description thereof will be omitted.
상기 로그인 요청이 이상 요청으로 결정되지 않은 경우, 상기 서버(10)는 로그인 요청을 승인 처리할 수 있다(S480, S490). 일 실시 예에서, 서버(10)가 로그인 화면에 연관된 웹 사이트에 로그인 승인 권한을 가질 경우, 서버(10)는 상기 단말장치(100)의 로그인 요청을 자체 승인 처리할 수 있다(S480). 다른 일 실시 예에서, 상기 서버(10)가 로그인 화면에 연관된 웹 사이트에 로그인 승인 권한을 갖진 않고 상기 웹 사이트를 제공하는 제3자 시스템(20)이 로그인 승인 권한을 가질 경우, 상기 서버(10)는 요청에 대해 승인 사실을 알리는 승인 메시지를 제3자 시스템(20)에 통지하여 상기 단말장치(100)의 로그인 화면에 연관된 웹 사이트에 대한 로그인 요청을 승인 처리할 수 있다(S480).If the above login request is not determined as an abnormal request, the server (10) can approve the login request (S480, S490). In one embodiment, if the server (10) has login approval authority for the website associated with the login screen, the server (10) can self-approval process the login request of the terminal device (100) (S480). In another embodiment, if the server (10) does not have login approval authority for the website associated with the login screen and a third-party system (20) providing the website has login approval authority, the server (10) can approve the login request for the website associated with the login screen of the terminal device (100) by notifying the third-party system (20) of the fact of approval for the request by sending an approval message to the third-party system (20).
로그인 요청이 승인된 단말장치(100)는 해당 웹 사이트에서 아이디, 비밀번호와 같은 전통적인 로그인 방식으로 승인된 사용자와 동일하게 활동하는 것이 허용된다.A terminal device (100) whose login request has been approved is permitted to perform the same activities as a user approved using a traditional login method such as an ID and password on the website.
상기 로그인 요청이 이상 요청으로 결정된 경우, 상기 서버(10)는 로그인 요청에 대해 불승인 사실을 알리는 불승인 메시지를 제3자 시스템(20)에 통지할 수 있다(S480).If the above login request is determined to be an abnormal request, the server (10) can notify a third-party system (20) of a disapproval message informing that the login request has been disapproved (S480).
일부 실시 예들에서, 서버(10)는 매칭률에 기초하여 로그인 요청이 이상 요청인지 일차적으로 검증한 이후에, 상기 블록체인 네트워크(1000)에 기록된 과거의 매칭률 중 일정 기간 동안 매칭률 변화를 분석하고, 일정 기간 동안 매칭률이 순차적으로 하락하는 것이 분석되고 순차적으로 하락한 이후에 매칭률이 재-상승하는 것이 분석되지 않으면, 상기 임계 매칭률 이상의 매칭률을 갖는 상기 요청을 이상 요청으로 결정하도록 더 구성될 수 있다(S460). 상기 서버(10)는 상기 매칭률이 임계 매칭률 이상임에도 불구하고 이상 요청으로 결정하지 않을 수 있다. 사람의 생활은 일반적으로 규칙적이기 때문에, 과거의 로그인 내역과 상대적으로 덜 유사한 환경에서 로그인을 진행했더라도 어느 한 순간 과거의 로그인 내역과 매우 유사한 환경에서 로그인을 진행하기 때문이다. 이 것은 사람이 이사 또는 이직을 하여 생활 패턴이 변하더라도 변화의 순간이 지난 후 다시 규칙적인 생활로 회귀하는 것을 고려한다.In some embodiments, the server (10) may be further configured to analyze the change in the matching rate for a certain period of time among the past matching rates recorded in the blockchain network (1000) after primarily verifying whether the login request is an abnormal request based on the matching rate, and if it is analyzed that the matching rate sequentially decreases for a certain period of time and if it is not analyzed that the matching rate increases again after the sequential decrease, determine the request having a matching rate higher than the threshold matching rate as an abnormal request (S460). The server (10) may not determine the request as an abnormal request even if the matching rate is higher than the threshold matching rate. This is because since a person's life is generally regular, even if the login is performed in an environment that is relatively less similar to the past login history, at some point the login is performed in an environment that is very similar to the past login history. This takes into account that even if a person changes his or her lifestyle by moving or changing jobs, he or she returns to a regular life after the moment of change has passed.
이러한 다중 보안을 통해 요청 승인 시스템(1)은 로그인 요청을 안전하게 승인할 수 있다.Through this multi-layer security, the request approval system (1) can securely approve login requests.
결제 요청에 대한 다중 보안Multi-level security for payment requests
도 9는, 본 출원의 다양한 실시 예들에 따른, 결제 요청에 대한 상기 다중 보안 요청 승인 시스템의 요청을 승인하는 과정을 설명한다.FIG. 9 illustrates a process for approving a request of the multi-secure request approval system for a payment request according to various embodiments of the present application.
도 9에 도시된 단계(S310 내지 S330)는 도 3을 참조하여 전술하였는 바, 자세한 설명은 생략한다.The steps (S310 to S330) illustrated in Fig. 9 have been described above with reference to Fig. 3, and thus a detailed description thereof is omitted.
도 9를 참조하면, 상기 사용자의 웹 활동 내역 정보를 상기 블록체인 네트워크(1000)에 기록한 이후에(S330), 상기 단말장치(100)는 서버(10)로 송신될 요청을 생성할 수 있다(S810, S820, S830). 이와 같은 요청의 종류로는 앞서 설명한 바와 같이 다양한 것들이 있을 수 있으나, 도 9에서는 단말 장치(100)가 생성한 요청이 결제 요청임을 가정하고 설명하도록 한다. 도 9의 요청 승인과 도 6의 요청 승인은 요청이 각각 결제 요청, 로그인 요청인 것을 제외하면 동작이 서로 유사하다. 구체적으로, 도 9의 단계(S810 내지 S880)는 도 6의 단계(S410 내지 S480)에 대응한다. 따라서, 도 9의 단계들은 도 6의 단계들과 비교해 차이점을 위주로 서술한다.Referring to FIG. 9, after the user's web activity history information is recorded in the blockchain network (1000) (S330), the terminal device (100) can generate a request to be transmitted to the server (10) (S810, S820, S830). As described above, there may be various types of such requests, but FIG. 9 will be described assuming that the request generated by the terminal device (100) is a payment request. The request approval of FIG. 9 and the request approval of FIG. 6 are similar in operation except that the requests are a payment request and a login request, respectively. Specifically, steps (S810 to S880) of FIG. 9 correspond to steps (S410 to S480) of FIG. 6. Therefore, the steps of FIG. 9 will be described mainly with respect to the differences compared to the steps of FIG. 6.
도 10은, 본 출원의 다양한 실시 예들에 따른, 바이오 인증을 이용한 결제 요청을 생성하는 과정을 설명한다.FIG. 10 illustrates a process for generating a payment request using biometric authentication according to various embodiments of the present application.
도 10을 참조하면, 결제 요청을 생성하는 단계는, 상기 단말장치(100)가 결제 화면을 표시하는 단계(S810); 상기 결제 화면을 통해 결제 요청을 위한 개시 명령을 입력받는 단계(S820); 결제 요청을 생성하기 이전에, 상기 명령의 입력에 응답하여 사용자의 생체 정보를 획득하고, 상기 명령을 입력한 상기 사용자를 인증하기 위해, 획득된 생체 정보에 기초한 바이오 인증 동작을 수행하여 상기 사용자에 대한 인증 결과 정보를 생성하는 단계(S830); 및 상기 인증 결과 정보, 상기 결제 요청을 시도하는 단말장치(100)의 접속정보, 요청정보를 포함한 결제 요청을 생성하여 상기 서버(10)로 전송하는 단계(S840)를 포함한다.Referring to FIG. 10, the step of generating a payment request includes the step of displaying a payment screen by the terminal device (100) (S810); the step of receiving an initiation command for a payment request through the payment screen (S820); the step of obtaining user biometric information in response to the input of the command before generating the payment request, and performing a biometric authentication operation based on the obtained biometric information to authenticate the user who input the command, thereby generating authentication result information for the user (S830); and the step of generating a payment request including the authentication result information, connection information of the terminal device (100) attempting the payment request, and request information, and transmitting the payment request to the server (10) (S840).
상기 결제 화면은 웹 사이트에 연관된 웹 페이지 중 결제 요청을 위한 웹 페이지 화면이다. 상기 결제 화면은 결제 요청 생성을 위한 버튼 영역(181)을 포함한다. 상기 버튼 영역(181)이 선택되면, 결제 요청이 생성된다.The above payment screen is a web page screen for payment requests among web pages associated with the website. The above payment screen includes a button area (181) for creating a payment request. When the button area (181) is selected, a payment request is created.
상기 단계(S830)는, 사용자의 생체 정보를 수신하는 단계; 상기 사용자의 생체 정보와 상기 단말장치(100)에 미리 저장된 생체 정보를 비교하여 수신된 생체 정보의 사용자가 미리 저장된 생체 정보의 사용자인지, 상기 수신된 생체 정보의 사용자를 인증하는 단계를 포함할 수 있다.The above step (S830) may include a step of receiving a user's biometric information; a step of comparing the user's biometric information with biometric information pre-stored in the terminal device (100) to determine whether the user of the received biometric information is the user of the pre-stored biometric information and authenticating the user of the received biometric information.
상기 단계(S830)의 바이오 인증 동작은 도 6, 도 7의 단계(S430)의 바이오 인증 동작과 원리가 동일하다. 이러한 바이오 인증 프로그램 및 바이오 인증 동작에 대해서는 도 7을 참조해서 전술하였는 바, 자세한 설명은 생략한다.The biometric authentication operation of the above step (S830) is identical in principle to the biometric authentication operation of the step (S430) of FIGS. 6 and 7. The biometric authentication program and biometric authentication operation have been described above with reference to FIG. 7, and therefore, a detailed description thereof will be omitted.
상기 단말장치(100)는 바이오 인식 프로그램을 통해 상기 인증 결과 정보가 생성되면(S830), 결제 요청 당시 상기 단말장치(100)의 접속정보, 요청정보 및 결제정보를 생성하고, 상기 결제 요청을 시도하는 단말장치(100)의 결제 요청 당시의 인증 결과 정보, 접속정보, 요청정보, 결제정보를 포함한 결제 요청을 생성한다(S840).When the above terminal device (100) generates the authentication result information through a biometric recognition program (S830), it generates the connection information, request information and payment information of the terminal device (100) at the time of the payment request, and generates a payment request including the authentication result information, connection information, request information and payment information of the terminal device (100) attempting the payment request at the time of the payment request (S840).
상기 결제 요청 내 접속정보 또한 상기 로그인 요청 내 접속정보와 마찬가지로, 상기 웹 활동 내역 정보에 포함된 접속정보와 동일한 항목으로 구성될 수 있다. 접속정보는 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 브라우저, 접속 언어, 접속 시간, 접속 웹 사이트 주소 정보 중 하나 이상의 정보를 포함할 수 있다.The connection information in the above payment request may also be composed of the same items as the connection information included in the above web activity history information, just like the connection information in the above login request. The connection information may include one or more of the following information: connection location, connection device, connection device OS, connection browser, connection language, connection time, and connection website address information.
요청 정보는 요청의 구체적인 내용을 포함할 수 있다. 예컨대, 결제 요청 정보는 메시지에 포함된 결제 정보로 서버(10) 또는 제3자 시스템(20)에서 결제하고자 한다는 취지를 나타낼 수 있다.The request information may include specific details of the request. For example, the payment request information may indicate a desire to make a payment on the server (10) or a third-party system (20) using payment information included in the message.
다시 도 9를 참조하면, 상기 결제 요청을 수신한 상기 서버(10)는 상기 결제 요청이 이상 요청인지 블록체인 네트워크(1000) 상의 기록에 기초하여 판단할 수 있다(S850, S806).Referring again to FIG. 9, the server (10) that received the payment request can determine whether the payment request is an abnormal request based on the records on the blockchain network (1000) (S850, S806).
도 11은, 본 출원의 다양한 실시 예들에 따른, 결제 요청에 대한 블록체인 기반 이상 탐지 과정을 설명한다.FIG. 11 illustrates a blockchain-based anomaly detection process for a payment request according to various embodiments of the present application.
도 11을 참조하면, 상기 서버(10)는 결제 요청을 수신하여 상기 단말장치(100)의 결제 요청에 따른 상기 인증 결과 정보, 상기 단말장치(100)의 결제 요청 당시의 접속정보, 결제정보를 획득한다(S840).Referring to FIG. 11, the server (10) receives a payment request and obtains the authentication result information according to the payment request of the terminal device (100), the connection information at the time of the payment request of the terminal device (100), and the payment information (S840).
상기 서버(10)는 블록체인 네트워크(1000) 상의 적어도 하나의 노드에게 결제 요청의 수신 사실을 알리면서 상기 결제 요청 당시의 접속정보 및 결제정보 중 적어도 일부 정보를 나타낸 블록 데이터를 상기 블록체인 네트워크(1000) 상에서 검색한다(S850). 단계(S850)에서 접속정보와 결제정보의 전체 항목 중 일부 또는 전부가 쿼리 항목으로 이용될 수 있다.The above server (10) notifies at least one node on the blockchain network (1000) of the fact of receipt of the payment request and searches the blockchain network (1000) for block data indicating at least a portion of the connection information and payment information at the time of the payment request (S850). In step (S850), some or all of the entire items of the connection information and payment information may be used as query items.
본 출원의 다양한 실시 예들에서, 상기 서버(10)에 의해 수행되는 상기 단계(S850)는, 상기 서버(10)가 결제 요청을 수신하면, 상기 결제 요청 내 결제 요청 당시의 접속정보의 값 중 적어도 일부의 값으로 상기 결제 요청에 대한 쿼리 조건을 생성하는 단계; 상기 쿼리 조건으로 상기 결제 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록데이터를 검색하는 단계로서, 상기 블록체인 네트워크(1000) 내 노드들에 의해 제공되는 스마트 계약을 호출하고, 상기 결제 요청에 대한 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 결제 요청에 대한 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계; 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보 내 접속정보와 상기 결제 요청 당시의 상기 접속정보 간의 매칭률을 산출하는 단계; 산출된 매칭률에 기초하여 상기 결제 요청이 이상 요청인지 결정하는 단계를 포함할 수 있다.In various embodiments of the present application, the step (S850) performed by the server (10) may include: when the server (10) receives a payment request, generating a query condition for the payment request with at least some of the values of the connection information at the time of the payment request in the payment request; searching for block data having a value included in the query condition for the payment request with the query condition, calling a smart contract provided by nodes in the blockchain network (1000) and propagating the query condition for the payment request to a node capable of executing the smart contract to execute the smart contract, thereby searching for block data having a value included in the query condition for the payment request in a distributed ledger stored in the node; calculating a matching rate between the connection information in the web activity history information included in the searched block data and the connection information at the time of the payment request; and determining whether the payment request is an abnormal request based on the calculated matching rate.
상기 서버(10)는 체인코드를 실행하기 이전에, 결제 요청에 대한 쿼리 조건을 생성할 수 있다. 상기 결제 요청에 대한 쿼리 조건은 상기 접속정보와 결제정보의 조합 중 일부 또는 전부의 항목에 대한 값들로 이루어질 수 있다. 상기 쿼리 조건에 포함될 접속항목, 결제항목은 보안 난이도에 따라 설정될 수 있다.The above server (10) can generate a query condition for a payment request before executing the chain code. The query condition for the payment request can be composed of values for some or all of the items among the combination of the connection information and payment information. The connection items and payment items to be included in the query condition can be set according to the security difficulty.
상기 서버(10)는 미리 설정된 조건 세트에 해당하는 요청 값들을 추출하여 상기 결제 요청에 대한 쿼리 조건을 생성할 수 있다. 상기 조건 세트가 결제 금액대를 포함할 경우, 상기 서버(10)는 요청 내 결제정보에서 결제 금액 정보의 값을 추출하고, 상기 결제 금액 정보의 금액 값을 해당하는 결제 금액대로 변경할 수 있다. 변경된 결제 금액대 값이 상기 결제 요청에 대한 쿼리 조건에 포함된다. 일부 실시 예들에서, 상기 서버(10)는 미리 저장된 금액대 테이블을 이용하여 결제 시간대를 생성할 수 있다. 상기 금액대 테이블은 금액대의 범위를 기록한 테이블일 수 있다. 상기 금액대의 범위는 서로 중복되지 않으면서 서로 다른 한 쌍의 금액으로 정의될 수 있다. 금액대의 범위는 특정 금액 단위로 균등하게 정의되거나, 또는 10만원 이하, 10만원 내지 100만원과 같이 균등하지 않게 정의되는 것처럼, 다양하게 정의될 수 있다. 상기 서버(10)는 결제 금액 값이 속하는 금액대를 상기 금액대 테이블에서 검색하여 쿼리의 조건 값으로 이용할 수 있다.The server (10) can extract request values corresponding to a preset condition set to generate a query condition for the payment request. If the condition set includes a payment amount range, the server (10) can extract a value of payment amount information from the payment information in the request and change the amount value of the payment amount information to a corresponding payment amount. The changed payment amount range value is included in the query condition for the payment request. In some embodiments, the server (10) can generate a payment time zone using a pre-stored amount range table. The amount range table can be a table that records a range of amounts. The range of amounts can be defined as a pair of amounts that are different from each other without overlapping each other. The range of amounts can be defined equally in a specific amount unit, or can be defined unequally, such as less than 100,000 won, or 100,000 won to 1 million won. The server (10) can search for an amount range to which a payment amount value belongs in the amount range table and use it as a condition value of a query.
서버(10)는 검색된 블록 데이터 각각에 대한 매칭률을 산출할 수 있다. 서버(10)는 각각의 블록 데이터에 포함된 접속정보의 항목별 값과 쿼리 조건 내 동일한 항목별 값을 비교하여 매칭률을 산출할 수 있다.The server (10) can calculate a matching rate for each searched block data. The server (10) can calculate a matching rate by comparing the item-by-item value of the connection information included in each block data with the same item-by-item value within the query condition.
서버(10)는 산출된 매칭률에 기초하여 상기 결제 요청이 이상 요청인지 결정하기 위해, 산출된 매칭률이 미리 설정된 임계 매칭률 이상이면 결제 요청을 이상 요청이 아닌 것으로 결정하고, 산출된 매칭률이 미리 설정된 임계 매칭률 미만이면 결제 요청을 이상 요청인 것으로 결정한다.The server (10) determines whether the payment request is an abnormal request based on the calculated matching rate. If the calculated matching rate is higher than a preset threshold matching rate, the server determines the payment request is not an abnormal request. If the calculated matching rate is lower than a preset threshold matching rate, the server determines the payment request is an abnormal request.
임계 매칭률은 불편한 사용자 경험을 최소화하면서도 사기나 악의적인 행위를 효과적으로 방지할 수 있는 값으로 설정될 수 있다. 예를 들어, 95%의 정상 사용자가 얻는 점수가 70점 이상이라면, 임계 값은 70점으로 설정될 수 있다.The threshold matching rate can be set to a value that effectively prevents fraud or malicious behavior while minimizing unpleasant user experiences. For example, if 95% of normal users get a score of 70 or higher, the threshold can be set to 70.
일부 실시 예들에서, 상기 임계 매칭률은 결제 금액대에 따라 변경될 수 있다. 서버(10)는 결제 금액대가 상대적으로 높은 경우, 초기 설정된 임계 매칭률을 상기 초기 설정된 임계 매칭률이 가리키는 신뢰구간 보다 좁은 신뢰구간에 대응한 임계 매칭률로 변경될 수 있다. 예를 들어, 초기 설정 임계 매칭률이 70점인데 결제 금액대가 상대적으로 높으면, 임계 매칭률이 90점으로 변경될 수 있다. 상기 서버(10)는 변경된 임계 매칭률에 기초하여 결제 요청이 이상 요청인지 결정할 수 있다(S460). 일부 실시 예들에서, 상기 서버(10)는 검색된 블록 데이터에 포함된 결제 금액의 대표 값(예컨대, 평균, 최빈 또는 중간 값) 이상의 결제 금액이 결제 요청에 포함된 경우, 결제 금액대가 상대적으로 높은 것으로 결정하여 임계 매칭률을 변경할 수 있다.In some embodiments, the threshold matching rate may be changed according to the payment amount range. If the payment amount range is relatively high, the server (10) may change the initially set threshold matching rate to a threshold matching rate corresponding to a narrower confidence interval than the confidence interval indicated by the initially set threshold matching rate. For example, if the initially set threshold matching rate is 70 points and the payment amount range is relatively high, the threshold matching rate may be changed to 90 points. The server (10) may determine whether the payment request is an abnormal request based on the changed threshold matching rate (S460). In some embodiments, if the payment request includes a payment amount greater than a representative value (e.g., an average, a mode, or a median) of the payment amounts included in the searched block data, the server (10) may determine that the payment amount range is relatively high and change the threshold matching rate.
일부 실시 예들에서, 상기 서버(10)는 산출된 매칭률에 상기 사용자의 인증 확률 값을 적용한 보정된 매칭률을 상기 임계 매칭률과 비교하여 결제 요청이 이상 요청인지 결정할 수 있다. 예를 들어, 상기 확률 값이 0.9인 경우, 원래의 매칭률에 0.9를 곱한 값이 임계 매칭률과 비교될 수 있다. 일부 실시 예들에서, 상기 임계 매칭률은 인증 확률 값이 적용된 통계 자료를 기준으로 설정될 수 있다. 상기 사용자 인증이 성공했으나 인증 확률 값이 상대적으로 확률이 낮은 경우, 낮은 확률만큼 매칭률이 저하되어 결제 요청이 이상 요청으로 결정될 가능성이 증가할 수 있다.In some embodiments, the server (10) may determine whether the payment request is an abnormal request by comparing a corrected matching rate obtained by applying the user's authentication probability value to the calculated matching rate with the threshold matching rate. For example, if the probability value is 0.9, a value obtained by multiplying the original matching rate by 0.9 may be compared with the threshold matching rate. In some embodiments, the threshold matching rate may be set based on statistical data to which the authentication probability value is applied. If the user authentication is successful but the authentication probability value has a relatively low probability, the matching rate may be lowered by the low probability, thereby increasing the possibility that the payment request will be determined as an abnormal request.
본 출원의 다양한 실시 예들에서, 상기 단계(S450)는, 결제 요청 당시의 접속정보 및 결제정보를 미리 설정된 조건 규칙에 따라 제1 유형의 조건 항목 또는 제2 유형의 조건 항목으로 분류하는 단계; 결제 요청 당시의 상기 접속정보 및 결제정보의 값들 중에서 상기 제1 유형의 조건 항목에 대한 값들로 이루어진 제1 쿼리 조건을 생성하는 단계; 상기 제1 쿼리 조건을 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 상기 노드에 저장된 분산원장에서 상기 제1 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계; 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보에서 상기 제1 쿼리 조건에 해당한 정보와 상기 결제 요청 당시의 접속조건과 결제정보의 조합에서 상기 제1 쿼리 조건에 해당한 정보 간의 제1 매칭률을 산출하는 단계; 및 산출된 제1 매칭률에 기초하여 상기 결제 요청이 이상 요청인지 결정하는 단계를 포함할 수 있다. 서버(10)는 산출된 제1 매칭률이 미리 설정된 제1 임계 매칭률 이상인 블록 데이터가 존재하지 않으면 상기 결제 요청을 이상 요청으로 결정할 수 있다.In various embodiments of the present application, the step (S450) may include: a step of classifying the connection information and payment information at the time of the payment request into a first type of condition item or a second type of condition item according to a preset condition rule; a step of generating a first query condition composed of values for the first type of condition item among the values of the connection information and payment information at the time of the payment request; a step of searching for block data having a value included in the first query condition in a distributed ledger stored in the node by propagating the first query condition to a node capable of executing the smart contract and executing the smart contract; a step of calculating a first matching rate between information corresponding to the first query condition in the web activity history information included in the searched block data and information corresponding to the first query condition in a combination of the connection condition and payment information at the time of the payment request; and a step of determining whether the payment request is an abnormal request based on the calculated first matching rate. The server (10) may determine the payment request as an abnormal request if there is no block data in which the calculated first matching rate is equal to or greater than a preset first threshold matching rate.
또한, 일부 실시 예들에서, 상기 단계(S850)는, 결제 요청 당시의 상기 접속정보 및 결제정보의 값들 중에서, 즉 상기 접속정보 및 결제정보의 조합에서 상기 제2 유형의 조건 항목들에 대한 값들로 이루어진 제2 쿼리 조건을 생성하는 단계; 제1 임계 매칭률 이상인 제1 매칭률을 갖는 블록 데이터를 선별하는 단계; 상기 제2 쿼리 조건 및 선별된 블록 데이터의 블록 해시를 선별된 블록 데이터에 대한 쿼리 조건으로 상기 스마트 계약을 실행할 수 있는 노드에 전파하여 상기 스마트 계약을 실행함으로써, 선별된 블록 데이터에서 상기 제2 쿼리 조건에 포함된 값을 갖는 블록 데이터를 검색하는 단계;를 더 포함할 수 있다. 서버(10)는 블록 데이터를 선별하면서, 블록 해시 값을 획득할 수 있다. 획득된 블록 해시 값을 활용하여 해당 블록 해시 값을 갖는 블록을 검색하고, 검색된 블록에서 제2 쿼리 조건에 매칭한 블록을 최종적으로 검색할 수 있다.In addition, in some embodiments, the step (S850) may further include: a step of generating a second query condition composed of values for the second type of condition items from among the values of the connection information and payment information at the time of the payment request, that is, a step of selecting block data having a first matching rate greater than or equal to a first threshold matching rate; a step of propagating the second query condition and the block hash of the selected block data to a node capable of executing the smart contract as a query condition for the selected block data, thereby executing the smart contract, thereby searching for block data having a value included in the second query condition from the selected block data. The server (10) may obtain a block hash value while selecting the block data. The obtained block hash value may be utilized to search for a block having the corresponding block hash value, and a block matching the second query condition may be finally searched for from the searched blocks.
그러면, 상기 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보와 상기 요청에 포함된 정보 간의 매칭률을 산출하는 단계는, 제1 쿼리 조건 및 제2 쿼리 조건 모두로 검색된 블록데이터에 포함된 상기 웹 활동 내역 정보 내 접속정보, 결제정보에서 상기 제2 쿼리 조건에 해당한 정보와 상기 결제 요청 당시의 접속정보, 결제정보에서 상기 제2 쿼리 조건에 해당한 정보 간의 제2 매칭률을 산출하는 단계를 포함한다. 서버(10)는 산출된 매칭률에 기초하여 상기 요청이 이상 요청인지 결정하기 위해, 산출된 제2 매칭률에 기초하여 상기 결제 요청이 이상 요청인지 결정하도록 구성될 수 있다(S860).Then, the step of calculating the matching rate between the web activity history information included in the searched block data and the information included in the request includes the step of calculating the second matching rate between the information corresponding to the second query condition in the access information and payment information in the web activity history information included in the block data searched for both the first query condition and the second query condition and the information corresponding to the second query condition in the access information and payment information at the time of the payment request. The server (10) may be configured to determine whether the payment request is an abnormal request based on the calculated second matching rate in order to determine whether the request is an abnormal request based on the calculated matching rate (S860).
상기 제1 유형의 조건 항목은 이상 요청이 아닌 정상 요청에서는 그 값의 변경이 상대적으로 어려운 항목으로서, 상기 접속정보 중에서 하이퍼렛지 블록체인 시스템의 Non-Flexible 항목일 수 있다. 예를 들어, 상기 접속정보 중에서 접속 위치, 접속 디바이스, 접속 디바이스 OS, 접속 언어 또는 접속 웹 사이트 주소 정보와 같은 접속항목이 제1 유형의 조건 항목으로 쿼리 조건에 포함될 수 있다. 상기 결제정보 중에서 결제 통화, 결제 방식, 결제 수단, 기존 결제 내역, 또는 결제 시도 회수와 같은 결제항목이 제1 유형의 조건 항목으로 상기 결제 요청에 대한 쿼리 조건에 포함될 수 있다.The condition item of the first type above is an item whose value is relatively difficult to change in a normal request rather than an abnormal request, and may be a Non-Flexible item of the Hyperledge blockchain system among the connection information. For example, among the connection information, connection items such as connection location, connection device, connection device OS, connection language, or connection website address information may be included in the query condition as the first type condition item. Among the payment information, payment items such as payment currency, payment method, payment means, existing payment history, or number of payment attempts may be included in the query condition for the payment request as the first type condition item.
상기 제2 유형의 조건 항목은 이상 요청이 아닌 정상 요청에서도 그 값의 변경이 상대적으로 용이한 항목으로서, 상기 접속정보 중에서 하이퍼렛지 블록체인 시스템의 Flexible 항목일 수 있다. 예를 들어, 접속 시간(즉, 시간대, 요일), 접속 사이트, 접속 브라우저와 같은 접속정보의 항목이 상기 제2 유형의 조건 항목으로 상기 쿼리 조건에 포함될 수 있다. 상기 결제정보 중에서 결제 금액대, 결제 상품과 같은 결제항목이 제2 유형의 조건 항목으로 상기 결제 요청에 대한 쿼리 조건에 포함될 수 있다.The above second type of condition item is an item whose value can be relatively easily changed even in a normal request, not an abnormal request, and may be a Flexible item of the Hyperledge blockchain system among the above connection information. For example, connection information items such as connection time (i.e., time zone, day of the week), connection site, and connection browser may be included in the query condition as the second type of condition item. Among the above payment information, payment items such as payment amount and payment product may be included in the query condition for the payment request as the second type of condition item.
일부 실시 예들에서, 상기 제1 임계 매칭률은 상기 제2 임계 매칭률 보다 더 좁은 신뢰 구간에 대응한 값을 가질 수 있다.In some embodiments, the first threshold matching rate may have a value corresponding to a narrower confidence interval than the second threshold matching rate.
서버(10)는 제2 임계 매칭률을 이용해 최소한의 추가 검증 절차를 진행하여, 예상치 못한 이상 요청을 탐색할 수 있다.The server (10) can detect unexpected abnormal requests by performing a minimum of additional verification procedures using the second threshold matching rate.
상기 결제 요청이 이상 요청으로 결정되지 않은 정당한 요청으로 결정한 경우, 서버(10)는 상기 결제 요청에 포함된 사용자의 접속정보, 인증 결과 정보, 요청정보를 포함한 새로운 결제 내역 정보를 생성하고, 생성된 새로운 결제 내역 정보를 블록체인 네트워크(1000) 상에 기록할 수 있다(S870). 일부 실시 예들에서, 상기 새로운 결제 내역 정보는 승인 당시 매칭률을 더 포함할 수 있다.If the above payment request is determined to be a legitimate request and not an abnormal request, the server (10) may generate new payment history information including the user's access information, authentication result information, and request information included in the payment request, and record the generated new payment history information on the blockchain network (1000) (S870). In some embodiments, the new payment history information may further include a matching rate at the time of approval.
상기 단계(S870)에서 서버(10)는 새로운 결제 내역 정보를 트랜잭션으로 블록체인 네트워크(1000)에 전송하여(S8720), 상기 트랜잭션을 포함한 블록을 블록체인에 추가할 수 있다(S8730). 상기 단계(S8720, 4073)의 동작은 도 3의 단계(S320, S330)에 대응한다. 즉, 상기 단계(S870)에서 서버(10)가 새로운 결제 내역 정보를 블록체인 네트워크(1000)에 기록하는 것(S8720, S8730)은 도 3의 웹 활동 내역 정보로서 과거 결제 내역 정보를 블록체인 네트워크(1000)에 기록하는 것(S320, S330)과 동일한 원리로 수행될 수 있는 바, 자세한 설명은 생략한다.In the above step (S870), the server (10) transmits new payment history information to the blockchain network (1000) as a transaction (S8720), and can add a block including the transaction to the blockchain (S8730). The operation of the above steps (S8720, 4073) corresponds to the steps (S320, S330) of FIG. 3. That is, in the above step (S870), the server (10) records new payment history information in the blockchain network (1000) (S8720, S8730) can be performed by the same principle as the recording of past payment history information in the blockchain network (1000) as web activity history information of FIG. 3 (S320, S330), and therefore, a detailed description thereof will be omitted.
상기 결제 요청이 이상 요청으로 결정되지 않은 경우, 상기 서버(10)는 결제 요청을 승인 처리할 수 있다(S880, S890). 일 실시 예에서, 서버(10)가 결제 화면에 연관된 웹 사이트에 결제 승인 권한을 가질 경우, 서버(10)는 상기 단말장치(100)의 결제 요청을 자체 승인 처리할 수 있다(S880). 다른 일 실시 예에서, 상기 서버(10)가 결제 화면에 연관된 웹 사이트에 결제 승인 권한을 갖진 않고 상기 웹 사이트를 제공하는 제3자 시스템(20)이 결제 승인 권한을 가질 경우, 상기 서버(10)는 요청에 대해 승인 사실을 알리는 승인 메시지를 제3자 시스템(20)에 통지하여 상기 단말장치(100)의 결제 화면에 연관된 웹 사이트에 대한 결제 요청을 승인 처리할 수 있다(S880).If the above payment request is not determined as an abnormal request, the server (10) can approve the payment request (S880, S890). In one embodiment, if the server (10) has payment approval authority for the website associated with the payment screen, the server (10) can self-approval process the payment request of the terminal device (100) (S880). In another embodiment, if the server (10) does not have payment approval authority for the website associated with the payment screen and a third-party system (20) providing the website has payment approval authority, the server (10) can notify the third-party system (20) of the approval fact for the request and approve the payment request for the website associated with the payment screen of the terminal device (100) (S880).
결제 요청이 승인된 단말장치(100)는 해당 웹 사이트에서 아이디, 비밀번호와 같은 전통적인 결제 방식으로 승인된 사용자와 동일하게 활동하는 것이 허용된다.A terminal device (100) whose payment request has been approved is permitted to perform the same activities as a user approved using a traditional payment method such as an ID and password on the website.
상기 결제 요청이 이상 요청으로 결정된 경우, 상기 서버(10)는 결제 요청에 대해 불승인 사실을 알리는 불승인 메시지를 제3자 시스템(20)에 통지할 수 있다(S880).If the above payment request is determined to be an abnormal request, the server (10) can notify a third-party system (20) of a disapproval message informing that the payment request is disapproved (S880).
일부 실시 예들에서, 서버(10)는 매칭률에 기초하여 결제 요청이 이상 요청인지 일차적으로 검증한 이후에, 상기 블록체인 네트워크(1000)에 기록된 과거의 매칭률 중 일정 기간 동안 매칭률 변화를 분석하고, 일정 기간 동안 매칭률이 순차적으로 하락하는 것이 분석되고 순차적으로 하락한 이후에 매칭률이 재-상승하는 것이 분석되지 않으면 상기 매칭률이 임계 매칭률 이상임에도 불구하고 이상 요청으로 결정하도록 더 구성될 수 있다(S460). 사람의 생활은 일반적으로 규칙적이기 때문에, 과거의 결제 내역과 상대적으로 덜 유사한 환경에서 결제를 진행했더라도 어느 한 순간 과거의 결제 내역과 매우 유사한 환경에서 결제를 진행하기 때문이다. 이 것은 사람이 이사 또는 이직을 하여 생활 패턴이 변하더라도 변화의 순간이 지난 후 다시 규칙적인 생활로 회귀하는 것을 고려한다.In some embodiments, the server (10) may be further configured to analyze the change in the matching rate for a certain period of time among the past matching rates recorded in the blockchain network (1000) after initially verifying whether the payment request is an abnormal request based on the matching rate, and if it is analyzed that the matching rate sequentially decreases for a certain period of time and if it is not analyzed that the matching rate increases again after the sequential decrease, it determines the request as an abnormal request even though the matching rate is higher than the threshold matching rate (S460). Since people's lives are generally regular, even if a payment was made in an environment that is relatively less similar to the past payment history, at some point the payment is made in an environment that is very similar to the past payment history. This takes into account that even if a person changes their lifestyle by moving or changing jobs, they return to a regular life after the moment of change has passed.
이러한 다중 보안 동작을 통해 요청 승인 시스템(1)은 결제 요청을 안전하게 승인할 수 있다. 특히, 일정 주기별로 반복되어 과거의 결제 내역이 존재하는 자동 구독 결제를 요청하는 것도 안전하게 승인 처리할 수 있다.Through these multi-security actions, the request approval system (1) can safely approve payment requests. In particular, it can safely approve requests for automatic subscription payments that are repeated periodically and have past payment history.
하드웨어를 이용하여 본 발명의 실시 예를 구현하는 경우에는, 본 출원의 실시 예들을 수행하도록 구성된 ASICs(application specific integrated circuits) 또는 DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays) 등이 본 출원의 구성요소에 구비될 수 있다.When implementing embodiments of the present invention using hardware, ASICs (application specific integrated circuits) or DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays), etc. configured to perform embodiments of the present application may be provided as components of the present application.
이상에서 설명한 본 출원의 실시 예들에 따른 전자처방전 제공 시스템 및 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되어, 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 예를 들어, 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로 구성되는 프로그램 제품과 함께 구현되고, 이는 기술된 임의의 또는 모든 단계, 동작, 또는 과정을 수행하기 위한 프로세서에 의해 실행될 수 있다.The operation of the electronic prescription provision system and method according to the embodiments of the present application described above may be implemented at least partially as a computer program and recorded on a computer-readable recording medium. For example, it may be implemented together with a program product consisting of a computer-readable medium including program code, which may be executed by a processor to perform any or all of the steps, operations, or processes described.
상기 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The computer-readable recording medium includes all kinds of recording devices that store data that can be read by a computer. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. In addition, the computer-readable recording medium can be distributed over network-connected computer systems, so that computer-readable code can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment can be easily understood by a person skilled in the art to which the present embodiment belongs.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.The present invention discussed above has been described with reference to the embodiments illustrated in the drawings, but these are merely exemplary, and those skilled in the art will understand that various modifications and variations of embodiments are possible. However, such modifications should be considered to be within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention should be determined by the technical idea of the appended patent claims.
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230098689AKR20250017823A (en) | 2023-07-28 | 2023-07-28 | System and method for approving requests with multiple security using non-installed authentication and blockchain-based verification |
PCT/KR2023/011042WO2025028670A1 (en) | 2023-07-28 | 2023-07-28 | System and method for approving multiple security requests by using installation-free authentication and blockchain-based verification |
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230098689AKR20250017823A (en) | 2023-07-28 | 2023-07-28 | System and method for approving requests with multiple security using non-installed authentication and blockchain-based verification |
Publication Number | Publication Date |
---|---|
KR20250017823Atrue KR20250017823A (en) | 2025-02-04 |
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230098689APendingKR20250017823A (en) | 2023-07-28 | 2023-07-28 | System and method for approving requests with multiple security using non-installed authentication and blockchain-based verification |
Country | Link |
---|---|
KR (1) | KR20250017823A (en) |
WO (1) | WO2025028670A1 (en) |
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200064380A (en) | 2018-11-29 | 2020-06-08 | 주식회사 부트페이 | Payment intermediary system for secure periodic payment |
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321983B2 (en)* | 2018-06-26 | 2022-05-03 | Veriscan, Llc | System and method for identifying and verifying one or more individuals using facial recognition |
KR102094938B1 (en)* | 2019-11-08 | 2020-05-26 | (주)피플앤스토리 | Contents distribution method based block chain and apparatus for executing the same |
KR102565745B1 (en)* | 2020-12-28 | 2023-08-11 | (주)인정에프앤비 | Apparatus and method for managing shopping history information based on communication terminal |
KR102582904B1 (en)* | 2021-01-05 | 2023-09-27 | 고승곤 | Blockchain-based prepaid content billing service method and system |
KR102552295B1 (en)* | 2022-04-11 | 2023-07-06 | 세종대학교산학협력단 | Method and System for User Authentication based on Private Blockchain in Open Cloud Platform Including Sensitive Information |
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200064380A (en) | 2018-11-29 | 2020-06-08 | 주식회사 부트페이 | Payment intermediary system for secure periodic payment |
Publication number | Publication date |
---|---|
WO2025028670A1 (en) | 2025-02-06 |
Publication | Publication Date | Title |
---|---|---|
JP7603121B2 (en) | Secure Key Storage Extensions for Transaction Verification and Cryptocurrencies | |
JP7308180B2 (en) | Advanced authentication technology and its application | |
US20220021664A1 (en) | Device Identification Scoring | |
US10462665B2 (en) | Multifactor network authentication | |
CN111353903B (en) | A network identity protection method, device, electronic device and storage medium | |
US12126613B2 (en) | System and method for pre-registration of FIDO authenticators | |
EP3864551B1 (en) | Distributed ledger-based profile verification | |
US20220094678A1 (en) | Systems and methods for user authentication based on multiple devices | |
US20200119904A1 (en) | Tamper-proof privileged user access system logs | |
US8869241B2 (en) | Network acquired behavioral fingerprint for authentication | |
KR102383021B1 (en) | Enhanced security for registration of authentication devices | |
US9094212B2 (en) | Multi-server authentication token data exchange | |
US10776464B2 (en) | System and method for adaptive application of authentication policies | |
US20180316661A1 (en) | Method and apparatus for providing client-side score-based authentication | |
US10462126B2 (en) | Self-adjusting multifactor network authentication | |
US20220405765A1 (en) | Know your customer (kyc) and anti-money laundering (aml) verification in a multi-decentralized private blockchains network | |
JP2016181242A (en) | System and method enabling multi-party and multi-level authorization to access confidential information | |
US20230006844A1 (en) | Dynamic value appended to cookie data for fraud detection and step-up authentication | |
CN112136103A (en) | Method, system and computer program product for authenticating a device | |
KR20250017823A (en) | System and method for approving requests with multiple security using non-installed authentication and blockchain-based verification | |
KR102777130B1 (en) | Method, device, and computer program for authentication based on digital wallet | |
US20250086616A1 (en) | Biometric-integrated coin | |
US20240126911A1 (en) | Systems and methods for controlling permissions in blockchains | |
Kreshan | THREE-FACTOR AUTHENTICATION USING SMART PHONE | |
HK40033397A (en) | System and method for binding verifiable claims |
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application | Patent event code:PA01091R01D Comment text:Patent Application Patent event date:20230728 | |
PA0201 | Request for examination | Patent event code:PA02011R01I Patent event date:20230728 Comment text:Patent Application | |
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection | Comment text:Notification of reason for refusal Patent event date:20250610 Patent event code:PE09021S01D |