KR102011363B1 - 블록체인 인증을 이용한 소프트웨어 인증 방법 - Google Patents

블록체인 인증을 이용한 소프트웨어 인증 방법 Download PDF

Info

Publication number
KR102011363B1
KR102011363B1 KR1020180027625A KR20180027625A KR102011363B1 KR 102011363 B1 KR102011363 B1 KR 102011363B1 KR 1020180027625 A KR1020180027625 A KR 1020180027625A KR 20180027625 A KR20180027625 A KR 20180027625A KR 102011363 B1 KR102011363 B1 KR 102011363B1
Authority
KR
South Korea
Prior art keywords
software
block information
authentication
specific software
terminal
Prior art date
Application number
KR1020180027625A
Other languages
English (en)
Inventor
최승환
김정민
송영빈
Original Assignee
최승환
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최승환 filed Critical 최승환
Priority to KR1020180027625A priority Critical patent/KR102011363B1/ko
Application granted granted Critical
Publication of KR102011363B1 publication Critical patent/KR102011363B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 실시예는 블록체인 인증을 이용하여, 소프트웨어 인증을 수행함으로써, 소프트웨어의 안정성에 대한 검증을 수행할 수 있다. 동일한 네트워크 망을 사용하는 다른 단말들로부터 특정 소프트웨어에 대한 식별정보와 해시 값을 비교하여 인증을 수행하여, 악성코드 감염에 대한 확인이 가능할 수 있다. 또한, 다른 단말들로부터 수신한 정보에서 악성코드 감염을 확인하면, 변경된 해시 값의 생성 시각이 가장 빠른 블록 정보를 검출하여 최초 악성코드 감염 단말을 확인하는 것이 가능할 수 있다.

Description

블록체인 인증을 이용한 소프트웨어 인증 방법 {METHOD FOR SOFTWARE AUTHENTICATION USING BLOCK-CHAIN AUTHENTICATION}
본 발명은 블록체인 인증을 이용한 소프트웨어 인증 방법에 관한 것으로서, 보다 상세하게는, 특정 네트워크 내에서 블록체인 인증을 활용하여 소프트웨어의 안전성을 검증하는 방법에 관한 것이다.
블록체인은 중앙화된 서버 없이 탈 중앙화된 네트워크 환경에서 보안성과 무결성을 유지하는 기술이다. 이러한 강점에 기반하여 다양한 컴퓨팅 데이터를 공유할 수 있게 되었고, 전자 화폐 이외의 다른 시스템에도 적용되기 시작하였다.
예를 들어, 블록체인을 이용한 클라우드 스토리지 시스템으로 스토리지 제공자에게 자체 코인을 발급하여 다른 컴퓨터의 디스크 공간을 이용하고 분할 검증을 통하여 신뢰도를 유지하는 서비스가 있다.
그러나 블록체인은 컴퓨팅 자원 낭비가 심한 비효율적인 운영 구조를 갖고 있다. 구체적으로, 비트코인의 경우 거래 트랜잭션의 무결성을 검증하기 위해 시간이 소요되며, 각 참여 노드는 30Gbyte 크기의 장부를 저장해야 한다. 또한 거래를 승인하기 위하여서 모든 노드가 장부를 통해 트랜잭션을 검증하고, 검증 결과를 기반으로 거래를 승인해야 한다.
언급한 바와 같이, 블록체인이란 비트코인에서 탈 중앙화된 화폐관리를 위해 사용된 핵심기술이다. 블록체인은 중앙 관리 기관이 없이 임의의 사용자가 데이터를 위 변조하는 것을 불가능하게 하여 거래의 무결성을 유지한다.
본 발명은 상술한 블록체인 기법을 활용한 인증을 통해 소프트웨어의 안정성을 검증하고 이를 적용하는데 그 목적이 있다.
또한, 서버에 집중 시키지 않고 각 단말이 블록 정보를 보유하여 서버의 과부하를 방지할 수 있고, 각 단말의 해시 값을 사용하여, 악성코드에 감염되는 경우, 최초 감염 단말을 확인하는데 그 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따르는, 단말에 의해 수행되는 블록체인을 이용한 소프트웨어 인증 방법은 사용자 입력에 의해 특정 소프트웨어에 대한 실행 요청을 수신하고, 상기 단말과 동일한 네트워크 망을 공유하는 복수의 타 단말로 상기 특정 소프트웨어에 대한 블록정보를 요청하고, 요청결과를 수신하고, 상기 요청 결과를 확인하여, 상기 특정 소프트웨어에 대응하는 타 단말이 보유한 블록정보가 기 설정된 비율을 넘는 것으로 판단되어, 소프트웨어에 대한 검증이 완료 된 경우, 상기 특정 소프트웨어를 실행하되, 상기 블록 정보는, 소프트웨어의 식별정보 및 소프트웨어의 해시 값을 포함할 수 있다.
또한, 블록체인 인증을 이용한 소프트웨어 인증을 수행하는 단말은 복수의 단말 중 어느 하나의 단말로부터 특정 소프트웨어에 대한 실행 요청을 수신하고, 상기 복수의 단말 중 어느 하나의 단말을 제외한 복수의 타 단말로 상기 특정 소프트웨어에 대한 블록정보를 확인하여 확인결과를 수신하고, 상기 확인결과를 확인하여, 소프트웨어에 대한 검증이 완료 된 경우, 상기 특정 소프트웨어에 대한 블록을 생성하고 실행하며, 상기 블록을 공유할 수 있다.
본 발명의 실시예는 블록체인 인증을 이용하여, 소프트웨어 인증을 수행함으로써, 소프트웨어의 안정성에 대한 검증을 수행할 수 있다. 동일한 네트워크 망을 사용하는 다른 단말들로부터 특정 소프트웨어에 대한 식별정보와 해시 값을 비교하여 인증을 수행하여, 악성코드 감염에 대한 확인이 가능할 수 있다.
또한, 다른 단말들로부터 수신한 정보에서 악성코드 감염을 확인하면, 변경된 해시 값의 생성 시각이 가장 빠른 블록 정보를 검출하여 최초 악성코드 감염 단말을 확인하는 것이 가능할 수 있다.
도 1은 본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법을 수행하기 위한 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법을 설명하기 위한 순서도 이다.
도 3은 본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법의 추가 검증 과정을 설명하기 위한 순서도 이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), VR HMD(예를 들어, HTC VIVE, Oculus Rift, GearVR, DayDream, PSVR 등)등을 포함할 수 있다. 여기서, VR HMD 는 PC용 (예를 들어, HTC VIVE, Oculus Rift, FOVE, Deepon 등)과 모바일용(예를 들어, GearVR, DayDream, 폭풍마경, 구글 카드보드 등) 그리고 콘솔용(PSVR)과 독립적으로 구현되는 Stand Alone 모델(예를 들어, Deepon, PICO 등) 등을 모두 포함한다. 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰(smart phone), 태블릿 PC, 웨어러블 디바이스뿐만 아니라, 블루투스(BLE, Bluetooth Low Energy), NFC, RFID, 초음파(Ultrasonic), 적외선, 와이파이(WiFi), 라이파이(LiFi) 등의 통신 모듈을 탑재한 각종 디바이스를 포함할 수 있다.
또한, "네트워크"는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
이하 도 1을 참조하여 본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법을 수행하는 시스템에 대해 구체적으로 설명한다.
본 발명의 일 실시예에 따르는, 시스템(10)은 단말(100)과 서버(200)를 포함할 수 있으며, 단말(100)과 서버(200)는 유/무선 네트워크를 통하여 통신 연결될 수 있다. 동일한 네트워크를 공유하는 복수개의 단말이 존재할 수 있다.
단말(100)은 사용자가 소지하는 디바이스 또는 특정 장소에 설치된 컴퓨팅 장치로서, 블록체인 인증을 이용한 소프트웨어 인증 프로그램이 설치되어 있을 수 있다.
단말(100)은 사용자의 요청에 의해 특정 소프트웨어를 실행하는 경우, 네트워크를 공유하는 타 단말들로 특정 소프트웨어에 대한 블록 정보를 요청하고, 이에 대한 요청 결과를 수신하여, 소프트웨어의 실행 또는 소프트웨어의 실행 차단에 대한 메시지를 사용자에게 제공할 수 있다.
서버(200)는, 사용자가 단말(100)을 통해 특정 소프트웨어에 대한 실행요청을 하여, 요청 결과를 수신한 결과 실행 차단이 된 경우, 단말로부터 특정 소프트웨어에 대한 식별정보 및 해시 값을 수신하고 데이터 베이스 내 저장된 복수의 소프트웨어 리스트에서 매칭되는 정보를 검색하고 매칭되는 경우, 특정 소프트웨어에 대한 검증 완료 정보를 단말(100)로 제공할 수 있다.
이하, 도 2를 참조하여 본 발명의 일 실시예에 따르는 블록체인 인증을 이용한 소프트웨어 인증 방법에 대해 구체적으로 설명한다.
본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법을 수행하기에 앞서, 소정 개수의 미리 설정된 기본 소프트웨어에 대한 블록정보가 관리자 단말(100) 또는 서버(200)에 의해 미리 생성되어 단말(100) 내에 저장되되, 해당 기본 소프트웨어는 컴퓨터 기반의 문서 작업을 위한 소프트웨어가 될 수 있다.
예를 들어, 한글, 한컴 오피스, 마이크로 소프트 오피스와 같은 소프트웨어가 될 수 있으며, 윈도우, 리눅스 등의 OS가 될 수 있다.
추가로, 특정 회사에서 사용되는 캐드와 같은 업무 관련 프로그램 및 뷰어도 기본 소프트웨어가 될 수 있다.
단말(100)은 사용자 입력에 의해 특정 소프트웨어에 대한 실행 요청을 수신할 수 있다(S310).
실행 요청을 수신한 후, 단말(100)과 동일한 네트워크 망을 공유하는 복수의 타 단말로 특정 소프트웨어에 대한 블록정보를 요청하고, 요청결과를 수신할 수 있다(S320).
이때, 블록 정보는, 소프트웨어의 식별정보 및 소프트웨어의 해시 값을 포함하여 구성될 수 있으며, 블록 정보의 해시 값은, 소프트웨어의 버전 업데이트 또는 소프트웨어의 악성코드 감염여부에 따라 변경 가능할 수 있다.
즉, 단말(100)은 특정 소프트웨어에 대한 식별정보 및 해시 값을 전송하여 타 단말이 보유하고 있는 해당 식별정보 및 해시 값과 대응하는 블록정보를 요청하고, 해당 블록정보를 수신할 수 있다.
또한, 특정 소프트웨어에 대한 블록정보에서 악성코드를 발견하는 경우, 복수의 타 단말로 악성코드에 대한 블록정보 및 악성코드에 대한 블록정보가 발견될 경우 악성코드가 발견된 특정 소프트웨어의 삭제 또는 치료를 요구하는 명령을 전송하여, 복수의 타 단말로부터 매칭되는 블록정보를 가진 단말과 삭제 또는 치료 결과에 대한 정보를 수신할 수 있다.
또한, 매칭되는 블록정보들을 확인한 경우, 악성코드에 대응하는 해시 값의 생성시각이 가장 빠른 블록정보를 검출하고, 가장 빠른 블록정보에 대하여 이루어진 추가 검증과정의 식별정보를 검출하고, 이력관리 및 차단관리를 위해 서버로 악성코드가 발견된 블록정보 혹은 특정 소프트웨어의 식별정보를 전송할 수 있다.
이를 통해 악성코드에 감염된 최초 유포 단말을 확인하여 검출해 내는 것이 가능할 수 있다.
예를 들어, 단말(100)이 사용자로부터 'A' 프로그램에 대한 실행 요청을 수신하는 경우, 단말(100)은 네트워크를 공유하는 다른 단말들에게 'A'에 대한 블록 정보를 요청하여, 대응하는 블록정보를 수신하고 수신된 블록 정보 중 해시 값이 변경된 블록 정보가 존재하면, 해당 블록 정보를 제공한 단말을 확인할 수 있다.
또한, 해시 값이 변경된 블록 정보를 제공한 단말이 복수개인 경우, 해당 해시 값이 변경된 시각이 가장 빠른 블록 정보를 제공한 단말을 확인할 수 있다.
이때, 변경된 블록 정보는 해당 소프트웨어가 업데이트 된 버전에 대한 해시 값이 될 수도 있고, 악성코드 감염에 의한 해시 값이 될 수도 있다.
이후, 요청 결과를 확인하여, 특정 소프트웨어에 대응하는 타 단말(100)이 보유한 블록정보가 기 설정된 비율을 넘는 것으로 판단되어, 소프트웨어에 대한 검증이 완료 된 경우, 특정 소프트웨어를 실행할 수 있다(S330).
즉, 요청결과에 따라, 수신한 블록정보의 개수가 네트워크 내에 연결된 전체 단말(100)의 개수에 대하여 51% 이상인 경우 검증 완료로 확인 할 수 있다. 이때, 51%는 일 예일 뿐이며, 해당 비율은 다르게 변경될 수 있다.
소프트웨어에 대한 검증이 완료되면, 단말(100)은 소프트웨어의 블록정보를 생성하되, 블록정보는 사용기록 정보를 더 포함하며, 복수의 타 단말로 전송할 수 있다.
이미 검증을 완료한 특정 소프트웨어에 대해 재 실행 요청을 수신하는 경우 (S310) 내지 (S330) 단계를 수행하여 재 실행 요청에 대응하는 특정 소프트웨어를 검증할 수 있다.
즉, 한번 검증이 완료된 소프트웨어에 대해 실행을 요청을 하는 경우에도, 해당 소프트웨어에 대한 검증을 재차 수행할 수 있다. 이는 소프트웨어의 업데이트 또는 악성코드 감염 등을 확인하기 위해 매 실행 시 마다 (S310) 내지 (S330)단계를 수행하여, 소프트웨어에 대한 인증을 수행할 수 있다.
이하 도 3을 참조하여 본 발명의 일 실시예에 따르는, 블록체인 인증을 이용한 소프트웨어 인증 방법의 추가 검증 과정에 대해 구체적으로 설명한다.
(S320) 단계를 통해 요청결과를 수신한 이후, 요청결과에 따라, 상기 수신한 블록정보의 개수가 상기 네트워크 내에 연결된 전체 단말의 개수에 대하여 51% 미만인 경우, 상기 특정 소프트웨어에 대한 블록이 생성되지 않고, 상기 특정 소프트웨어에 대한 실행이 차단될 수 있다(S331).
이후, 특정 소프트웨어에 대한 추가 검증 과정을 수행할 수 있다(S332).
추가 검증 과정을 수행함에 있어서, 단말(100)의 사용자에게 특정 소프트웨어 실행 차단 메시지를 제공하고, 차단 메시지에 대한 사용자의 입력에 의해 특정 소프트웨어에 대한 사용 승인을 수신함에 따라 특정 소프트웨어에 대한 검증 완료로 확인할 수 있다.
즉, 특정 소프트웨어에 대해 타 단말로부터 수신한 블록정보가 전체 단말의 개수에 대해 51% 미만인 경우, 사용자는 단말(100)을 통해 해당 특정 소프트웨어에 대한 실행 불가 메시지를 수신하게 되며, 이 경우 보안 담당자에게 해당 특정 소프트웨어의 사용 승인을 요청할 수 있다.
보안 담당자가 특정 소프트웨어에 대해 문제가 없다고 판단하여, 해당 특정 소프트웨어에 대한 사용 승인을 하는 경우, 사용자는 단말을 통해 특정 소프트웨어에 대한 사용 승인을 수신할 수 있으며, 이 경우, 검증 완료로 확인 될 수 있다.
또한, 특정 소프트웨어에 대한 식별정보 및 해시 값을 서버로 전송하고, 서버로부터 서버의 데이터베이스 내 저장된 복수의 소프트웨어 리스트 중 어느 하나와 매칭된다는 결과 정보를 수신하는 경우, 특정 소프트웨어에 대한 검증 완료로 확인할 수 있다.
즉, 특정 소프트웨어에 대해 타 단말로부터 수신한 블록정보가 전체 단말의 개수에 대해 51% 미만인 경우, 단말(100)은 서버(200)로 특정 소프트웨어에 대한 인증을 요청하기 위해 소프트웨어에 대한 식별정보와 해시 값을 제공하고, 서버(200)는 인증 요청을 수신하는 경우, 데이터 베이스에 기 저장된 소프트웨어 리스트를 검색하여 매칭되는 결과가 리스트에 존재하는 경우 특정 소프트웨어에 대한 검증 완료로 확인할 수 있다.
또한, 특정 소프트웨어에 대하여 기 설정된 복수의 조건 중 만족하는 조건의 개수에 기초하여 등급을 판단하고 등급이 기 설정된 등록이 가능한 등급인 경우 특정 소프트웨어에 대한 검증 완료로 확인하는 단계를 포함하되, 복수의 조건은 단말의 운영 시스템 자체에서 확인 가능한 기술적 조건들 및 사용자 행위에 기초하여 확인 가능한 사회공학적 조건들 중 적어도 하나를 포함할 수 있다.
이때, 기술적 조건은 검증 대상 소프트웨어의 디지털 서명 보유 유무, 파일 설명(description) 보유 유무, 파일 버전의 최신 여부, 제품 버전의 최신 여부, 제품 이름 보유유무, 저작권 보유 유무, 기 등록된 그룹 이름 또는 사용자 이름 보유 여부, 상기 단말의 운영 시스템 상의 프로그램 등록 절차 완료 여부, 상기 운영 시스템에서 지정한 PID(Process Identifier) 범위, 부모 PID의 상기 운영 시스템 등록 유무, 미리 인증된 소프트웨어 데이터베이스 보유 유무, 언 인스톨 파일 보유 유무, 프로그램의 행위가 기 설정된 인공지능기법으로 분석될 수 있는지 여부 및 상기 인공지능 기법으로 분석한 이력 보유 유무 중 적어도 하나를 포함할 수 있다.
또한, 사회공학적 측면에서의 조건은, 검증 대상 소프트웨어에 대해 해당 프로그램이 입력장치(즉, 키보드, 마우스, 펜, 터치 패드 등)에 의해 적어도 한번 이상 실행되었는지 여부, 프로그램의 파일 이름의 해석 가능(예를 들어, 인간이 인지 할 수 있는 문자 등) 여부, 프로그램의 제품 이름 및 저작권 정보의 해석 가능 여부, 프로그램의 실행 시간의 기준 기간 경과(즉, 마지막으로 실행된 시간으로부터 기준 기간 이상 경과 되었는지) 여부, 사용자의 사용률이 기준 값 이상인지 여부, 및 기준 퍼센트(%) 이상의 사용자 인증 여부 중 적어도 하나를 포함할 수 있다.
즉, 특정 소프트웨어에 대한 무결성이 검증되는 경우, 특정 소프트웨어에 대한 검증 완료로 확인할 수 있다.
이후, 특정 소프트웨어에 대한 검증 완료 확인 및 특정 소프트웨어를 실행할 수 있다(S333).
아울러, 추가 검증 과정을 통하여 검증을 완료한 경우, 특정 소프트웨어에 대한 블록정보를 생성하고, 복수의 타 단말로 전송할 수 있다.
본 발명의 추가 실시예로, 추가 검증 과정을 통해 인증된 소프트웨어에 대해서는 서버(200)가 서버(200)를 관리하는 서버 관리자 또는 단말의 사용자로부터 검증완료지시를 수신하는 경우에만 소프트웨어에 대한 검증 완료 확인이 가능할 수 있다.
즉, 특정 소프트웨어에 대해 타 단말로부터 수신한 블록정보가 전체 단말의 개수에 대해 51% 미만인 경우에 추가 검증을 수행하게 되는데, 추가 검증을 수행한 이후, 해당 추가 검증 결과에 대해 서버 관리자에게 제공하고, 이에 대해 서버 관리자가 검증완료지시를 제공하는 경우에만 특정 소프트웨어에 대한 검증이 완료 될 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능 한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비 휘발성 매체, 분리형 및 비 분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비 휘발성, 분리형 및 비 분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상술한 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 시스템
100: 단말 200: 서버

Claims (17)

  1. 단말에 의해 수행되는 블록체인을 이용한 소프트웨어 인증 방법에 있어서,
    (a) 사용자 입력에 의해 특정 소프트웨어에 대한 실행 요청을 수신하는 단계;
    (b) 상기 단말과 동일한 네트워크 망을 공유하는 복수의 타 단말로 상기 특정 소프트웨어에 대한 블록정보를 요청하고, 요청결과를 수신하는 단계; 및
    (c) 상기 요청 결과를 확인하여, 상기 특정 소프트웨어에 대응하는 타 단말이 보유한 블록정보가 기 설정된 비율을 넘는 것으로 판단되어, 소프트웨어에 대한 검증이 완료 된 경우, 상기 특정 소프트웨어를 실행하는 단계;
    를 포함하되,
    상기 블록 정보는,
    소프트웨어의 식별정보 및 소프트웨어의 해시 값을 포함하는 것이고,
    상기 (b) 단계는,
    상기 특정 소프트웨어에 대한 블록정보에서 악성코드를 발견하는 경우,
    상기 복수의 타 단말로 상기 악성코드에 대한 블록정보 및 상기 악성코드에 대한 블록정보가 발견될 경우 상기 악성코드가 발견된 특정 소프트웨어의 삭제 또는 치료를 요구하는 명령을 전송하여, 상기 복수의 타 단말로부터 매칭되는 블록정보를 가진 단말과 삭제 또는 치료 결과에 대한 정보를 수신하는 단계를 더 포함하되,
    상기 매칭되는 블록정보들을 확인한 경우, 상기 악성코드에 대응하는 해시 값의 생성시각이 가장 빠른 블록정보를 검출하고, 상기 가장 빠른 블록정보에 대하여 이루어진 추가 검증과정의 식별정보를 검출하고, 이력관리 및 차단관리를 위해 서버로 상기 악성코드가 발견된 블록정보 혹은 특정 소프트웨어의 식별정보를 전송하는 것인,
    블록체인을 이용한 소프트웨어 인증 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계 이전에,
    소정 개수의 미리 설정된 기본 소프트웨어에 대한 블록정보가 관리자 단말 또는 서버에 의해 미리 생성되어 상기 단말 내에 저장되는 단계를 포함하되,
    상기 기본 소프트웨어는 컴퓨터 기반의 문서 작업을 위한 소프트웨어인 것인,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  3. 제 1 항에 있어서,
    상기 블록 정보의 해시 값은,
    소프트웨어의 버전 업데이트 또는 소프트웨어의 악성코드 감염여부에 따라 변경 가능한 것인,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계는,
    상기 특정 소프트웨어에 대한 식별정보 및 해시 값을 전송하여 타 단말이 보유하고 있는 해당 식별정보 및 해시 값과 대응하는 블록정보를 요청하여, 상기 블록정보를 수신하는 단계를 포함하는,
    블록체인을 이용한 소프트웨어 인증 방법.
  5. 제 1 항에 있어서,
    상기 (c) 단계는,
    상기 요청결과에 따라, 상기 수신한 블록정보의 개수가 상기 네트워크 내에 연결된 전체 단말의 개수에 대하여 51% 이상인 경우,
    상기 특정 소프트웨어에 대한 검증 완료로 확인하는 단계를 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  6. 제 1 항에 있어서,
    상기 (c) 단계는,
    (c-1) 상기 요청결과에 따라, 상기 수신한 블록정보의 개수가 상기 네트워크 내에 연결된 전체 단말의 개수에 대하여 51% 미만인 경우, 상기 특정 소프트웨어에 대한 블록이 생성되지 않고, 상기 특정 소프트웨어에 대한 실행이 차단되는 단계; 및
    (c-2) 상기 특정 소프트웨어에 대한 추가 검증 과정을 수행하는 단계;
    를 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  7. 제 6 항에 있어서,
    상기 (c-2) 단계는,
    상기 단말의 사용자에게 상기 특정 소프트웨어의 실행 차단 메시지를 제공하고, 상기 차단 메시지에 대한 상기 사용자의 입력에 의해 상기 특정 소프트웨어에 대한 사용 승인을 수신함에 따라 상기 특정 소프트웨어에 대한 검증 완료로 확인하는 단계를 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  8. 제 6 항에 있어서,
    상기 (c-2) 단계는,
    상기 특정 소프트웨어에 대한 식별정보 및 해시 값을 서버로 전송하고, 상기 서버로부터 서버의 데이터베이스 내 저장된 복수의 소프트웨어 리스트 중 어느 하나와 매칭된다는 결과 정보를 수신하는 경우, 상기 특정 소프트웨어에 대한 검증 완료로 확인하는 단계를 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  9. 제 6 항에 있어서,
    상기 (c-2) 단계는,
    상기 특정 소프트웨어에 대하여 기 설정된 복수의 조건 중 만족하는 조건의 개수에 기초하여 등급을 판단하고 상기 등급이 기 설정된 등록이 가능한 등급인 경우 상기 특정 소프트웨어에 대한 검증 완료로 확인하는 단계를 포함하되,
    상기 복수의 조건은 상기 단말의 운영 시스템 자체에서 확인 가능한 기술적 조건들 및 사용자 행위에 기초하여 확인 가능한 사회공학적 조건들 중 적어도 하나를 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  10. 제 8 항에 있어서,
    상기 (c-2) 단계의,
    상기 추가 검증 과정은,
    상기 서버를 관리하는 서버 관리자 또는 상기 단말의 사용자로부터 검증완료지시를 수신하는 경우, 검증이 완료되는 것인,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  11. 제 1 항에 있어서,
    상기 블록정보는 사용기록 정보를 더 포함하며,
    상기 (c) 단계 후, 블록정보를 생성하고 상기 복수의 타 단말로 전송하는 단계를 더 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  12. 제 6 항에 있어서,
    상기 (c) 단계의,
    추가 검증 과정을 통하여 검증을 완료한 경우, 상기 특정 소프트웨어에 대한 블록정보를 생성하고, 상기 복수의 타 단말로 전송하는 단계를 더 포함하는,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  13. 제 1 항에 있어서,
    상기 (c) 단계 후,
    이미 검증을 완료한 상기 특정 소프트웨어에 대해 재 실행 요청을 수신하는 경우, 상기 (a) 내지 (c) 단계를 수행하여 상기 재 실행 요청에 대응하는 특정 소프트웨어를 재 검증하는 것인,
    블록체인 인증을 이용한 소프트웨어 인증 방법.
  14. 삭제
  15. 삭제
  16. 블록체인 인증을 이용한 소프트웨어 인증을 수행하는 단말에 있어서,
    복수의 단말 중 어느 하나의 단말로부터 특정 소프트웨어에 대한 실행 요청을 수신하고,
    상기 복수의 단말 중 어느 하나의 단말을 제외한 복수의 타 단말로 상기 특정 소프트웨어에 대한 블록정보를 확인하여 확인결과를 수신하되,
    상기 특정 소프트웨어에 대한 블록정보에서 악성코드를 발견하는 경우,
    상기 복수의 타 단말로 상기 악성코드에 대한 블록정보 및 상기 악성코드에 대한 블록정보가 발견될 경우 상기 악성코드가 발견된 특정 소프트웨어의 삭제 또는 치료를 요구하는 명령을 전송하여, 상기 복수의 타 단말로부터 매칭되는 블록정보를 가진 단말과 삭제 또는 치료 결과에 대한 정보를 수신하되,
    상기 매칭되는 블록정보들을 확인한 경우, 상기 악성코드에 대응하는 해시 값의 생성시각이 가장 빠른 블록정보를 검출하고, 상기 가장 빠른 블록정보에 대하여 이루어진 추가 검증과정의 식별정보를 검출하고, 이력관리 및 차단관리를 위해 서버로 상기 악성코드가 발견된 블록정보 혹은 특정 소프트웨어의 식별정보를 전송하는 것이고,
    상기 확인결과를 확인하여, 소프트웨어에 대한 검증이 완료 된 경우, 상기 특정 소프트웨어에 대한 블록을 생성하고 실행하며, 상기 블록을 공유하는 것인,
    블록체인 인증을 이용한 소프트웨어 인증을 수행하는 단말.
  17. 제 1 항에 따르는 블록체인 인증을 이용한 소프트웨어 인증 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 기록 매체.
KR1020180027625A 2018-03-08 2018-03-08 블록체인 인증을 이용한 소프트웨어 인증 방법 KR102011363B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180027625A KR102011363B1 (ko) 2018-03-08 2018-03-08 블록체인 인증을 이용한 소프트웨어 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180027625A KR102011363B1 (ko) 2018-03-08 2018-03-08 블록체인 인증을 이용한 소프트웨어 인증 방법

Publications (1)

Publication Number Publication Date
KR102011363B1 true KR102011363B1 (ko) 2019-08-16

Family

ID=67806789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180027625A KR102011363B1 (ko) 2018-03-08 2018-03-08 블록체인 인증을 이용한 소프트웨어 인증 방법

Country Status (1)

Country Link
KR (1) KR102011363B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102177223B1 (ko) * 2020-06-26 2020-11-10 최원천 악성코드 모니터링을 수행하는 서버 및 그 시스템
WO2021075649A1 (ko) * 2019-10-16 2021-04-22 숭실대학교 산학협력단 블록체인을 이용하는 인공지능 법인 시스템, 인공지능 법인 등록 방법 및 인공지능 법인 이용 방법
KR20210059541A (ko) 2019-11-15 2021-05-25 한전케이디엔주식회사 블록체인을 활용한 운영프로그램 인증 방법
KR102345501B1 (ko) * 2020-07-30 2022-01-03 주식회사 발카리 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150056244A (ko) * 2013-11-15 2015-05-26 (주)닥터소프트 단말 장치 및 단말 장치의 소프트웨어 관리 방법
KR20150063815A (ko) * 2013-12-02 2015-06-10 (주)닥터소프트 소프트웨어 식별자 생성 방법, 서버 및 서버의 소프트웨어 관리 방법
KR20160150278A (ko) * 2016-06-15 2016-12-29 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150056244A (ko) * 2013-11-15 2015-05-26 (주)닥터소프트 단말 장치 및 단말 장치의 소프트웨어 관리 방법
KR20150063815A (ko) * 2013-12-02 2015-06-10 (주)닥터소프트 소프트웨어 식별자 생성 방법, 서버 및 서버의 소프트웨어 관리 방법
KR20160150278A (ko) * 2016-06-15 2016-12-29 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021075649A1 (ko) * 2019-10-16 2021-04-22 숭실대학교 산학협력단 블록체인을 이용하는 인공지능 법인 시스템, 인공지능 법인 등록 방법 및 인공지능 법인 이용 방법
KR20210059541A (ko) 2019-11-15 2021-05-25 한전케이디엔주식회사 블록체인을 활용한 운영프로그램 인증 방법
KR102177223B1 (ko) * 2020-06-26 2020-11-10 최원천 악성코드 모니터링을 수행하는 서버 및 그 시스템
KR102345501B1 (ko) * 2020-07-30 2022-01-03 주식회사 발카리 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
JP7030981B2 (ja) 資産管理方法および装置、および電子デバイス
US11347876B2 (en) Access control
US10956614B2 (en) Expendable access control
KR102011363B1 (ko) 블록체인 인증을 이용한 소프트웨어 인증 방법
US20170316497A1 (en) Method for creating, registering, revoking authentication information and server using the same
CN103098070B (zh) 用于监视网络服务中数据位置的方法、装置和系统
WO2017124960A1 (zh) 应用程序对接口的访问方法、授权请求方法及装置
US10397213B2 (en) Systems, methods, and software to provide access control in cloud computing environments
WO2017054985A1 (en) Access control
US9934310B2 (en) Determining repeat website users via browser uniqueness tracking
CN110445769B (zh) 业务系统的访问方法及装置
US20230370265A1 (en) Method, Apparatus and Device for Constructing Token for Cloud Platform Resource Access Control
GB2540976A (en) Access control
GB2540977A (en) Expendable access control
US11012233B1 (en) Method for providing authentication service by using decentralized identity and server using the same
US9509672B1 (en) Providing seamless and automatic access to shared accounts
US10404689B2 (en) Password security
CN108073823B (zh) 数据处理方法、装置及系统
US20220329446A1 (en) Enhanced asset management using an electronic ledger
EP3008876B1 (en) Roaming internet-accessible application state across trusted and untrusted platforms
CN105210076A (zh) 弹性、可恢复的动态设备识别
WO2019011187A1 (zh) 电子账户的挂失、解挂、业务管理方法、装置及设备
KR20210086433A (ko) 블록체인 네트워크를 이용한 영지식 증명 기반의 인증서 서비스 방법, 이를 이용한 인증 지원 서버 및 사용자 단말
US20190052632A1 (en) Authentication system, method and non-transitory computer-readable storage medium
CN112702419A (zh) 基于区块链的数据处理方法、装置、设备和存储介质

Legal Events

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