KR20140099126A - 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20140099126A
KR20140099126A KR1020130011980A KR20130011980A KR20140099126A KR 20140099126 A KR20140099126 A KR 20140099126A KR 1020130011980 A KR1020130011980 A KR 1020130011980A KR 20130011980 A KR20130011980 A KR 20130011980A KR 20140099126 A KR20140099126 A KR 20140099126A
Authority
KR
South Korea
Prior art keywords
identifier
software
serial number
access
generating
Prior art date
Application number
KR1020130011980A
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 KR1020130011980A priority Critical patent/KR20140099126A/ko
Priority to PCT/KR2014/000865 priority patent/WO2014119936A1/en
Priority to EP14746103.2A priority patent/EP2920734A4/en
Priority to US14/169,195 priority patent/US20140223580A1/en
Publication of KR20140099126A publication Critical patent/KR20140099126A/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 소프트웨어를 보안 하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법에 관한 것으로, 본 발명의 일 실시 예에 따르면, 사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성하는 단계; 및 상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성하는 단계를 포함하며, 상기 제1 일련번호는 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것을 특징으로 할 수 있다.
또한, 본 발명의 다른 실시 예에 따르면, 상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하는 단계; 상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성하는 단계; 상기 생성된 제 2 식별자와 제 1 식별자의 일치 여부에 따라 선택적으로 소프트웨어 접근을 허용하는 단계; 를 포함할 수 있다.

Description

소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 {Method of securing software using a hash function, Computer readable storage medium of recording the method and a software processing apparatus}
본 발명은 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
IT제품의 지능화, 그린화, 무선화에 힘입어 소프트웨어의 중요성이 한층 증가함에 따라, 소프트웨어의 보안 취약점을 이용한 공격위협 또한 커지고 있다. 네트워크 인프라가 전국적으로 구축되면서 발달한 온라인 환경은 웹 소프트웨어의 활성화를 가져왔지만, 본질적으로 개방된 웹 상에서는 소프트웨어의 취약점을 이용한 보안 사고의 위험성이 더욱 커지고 있다.
이에 따라 소프트웨어의 변조를 방지하는 요구가 커지고 있다. 소프트웨어의 변조란 소프트웨어에 악성코드를 주입시키거나, 소프트웨어의 내용을 변조시키는 것이다.
더욱 자세하게는, 사용자 디바이스에 저장된 소프트웨어가 불법 수정되는 것을 방지하기 위하여, 소프트웨어가 원본과 동일한지 여부에 대한 검증이 요구된다. 소프트웨어의 불법 수정은 저작권으로 보호되는 컨텐츠를 해킹하는 경우 등을 포함한 다양한 상황에서 발생할 수 있다.
또한, 소프트웨어 보안방법으로써, 상기 소프트웨어에 액세스 권한을 체크함에 따라, 법적으로 권한을 인정받은 사용자에 의하여서만 접근이 가능하도록 하도록 하였다.
예를 들면, 소프트웨어의 불법 수정 여부를 검증하기 위해 전자 서명 방식이 대표적으로 사용된다. 즉, 소프트웨어와 함께 그 소프트웨어에 대한 전자 서명이 사용자 디바이스 내에 저장하여, 사용자 디바이스의 동작이 시작될 때, 소프트웨어의 전자 서명의 검증 결과에 따라서 소프트웨어의 시작 여부가 결정된다.
전자 서명 방식은 펌웨어와 같은 소프트웨어가 불법 수정된 경우에 그 수정 여부를 확인할 수 있다는 장점을 가진다. 그러나, 사용자 디바이스의 성능에 따라서 전자 서명이 올바른지 여부를 검증하는 데는 상당히 오랜 시간이 걸리는 문제가 있다.
또한, 소프트웨어의 불법 수정 여부를 검증하기 위하여, 저작권으로 보호받는 소프트웨어는 지정된 기계에서 제한되는 보안 매커니즘을 이용하여 오직 승인 받은 컴퓨터에서만 실행되도록 할 수 있다. 승인 받은 컴퓨터 인지 여부는 컴퓨터 칩의 일련번호, 하드디스크의 일련번호 및 컴퓨터 OS의 일련번호로 이루어진 CIN(Computer Identification Number)의 일치 여부에 따라서 알 수 있다. 그러나, 상기 CIN은 해커에 의하여 용이하게 알려질 수 있다는 문제가 존재한다.
본 발명의 실시 예들은, 사용자 입력에 기초한 일련번호로부터 해시 함수를 이용하여 생성된 식별자를 소프트웨어와 결합하여 보안 실행 파일을 생성하여, 상기 식별자를 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보로 이용함으로써, 승인받지 않은 사용자의 접근을 차단하여, 해커나 역 설계에 의하여 소프트웨어의 변조를 방지하는 소프트웨어 처리 방법을 제공하고자 한다.
또한, 상기 방법을 처리하는 소프트 처리 장치를 제공하고자 한다.
또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
본 발명의 일 실시예의 일 측면에 따르면, 소프트웨어의 보안을 위하여 소프트웨어를 처리하는 방법에 있어서, 사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성하는 단계; 및 상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성하는 단계를 포함하며, 상기 제1 일련번호는 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것을 특징으로 하는 소프트웨어 처리 방법을 제공한다.
또한, 상기 제1 식별자를 생성하는 단계 이전에, 의사난수열을 생성시키는 단계; 및 상기 소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여 상기 의사난수열 중에서 제1 일련번호를 선택하는 단계를 더 포함할 수 있다.
또한, 상기 제1 식별자를 생성하는 단계는, 상기 제1 일련번호들의 각각에 대하여 해시 값을 계산하는 단계; 및 상기 해시 값에 대한 식별자를 생성하는 단계를 포함할 수 있다.
또한, 상기 보안 실행 파일에는 상기 해시 함수를 포함할 수 있다.
본 발명의 다른 실시예의 일 측면에 따르면, 상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하는 단계; 상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성하는 단계; 상기 생성된 제 2 식별자와 제 1 식별자의 일치 여부에 따라 선택적으로 소프트 웨어 접근을 허용하는 단계; 를 포함할 수 있다.
또한, 선택적으로 소프트 웨어 접근을 허용하는 단계는, 상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고, 동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없는 것을 특징으로 할 수 있다.
또한, 상기 제2 식별자를 생성하는 단계는 상기 제2 일련번호의 해시 값을 계산하는 단계; 및 상기 해시 값에 대한 식별자를 생성하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예의 다른 측면에 따르면, 소프트웨어의 보안을 위한 소프트웨어를 처리장치에 있어서, 사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성하는 제1 식별자 생성부; 상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성하는 하는 보안 실행 파일 생성부;를 포함하며, 상기 제1 일련번호는 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것을 특징으로 하는 소프트웨어 처리 장치를 제공한다.
또한, 의사난수열을 생성하는 의사난수열 생성부; 소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여, 상기 의사난수열 중에서 제1 일련번호를 선택하는 제1 일련번호 선택부;를 더 포함할 수 있다.
또한, 상기 제1 식별자 생성부는 상기 제1 일련번호들의 각각에 대하여 해시 값을 계산하는 제1 해시 값 산술부를 포함하며, 상기 제1 해시 값 산술부에서 산출된 해시 값에 기초하여 제1 식별자를 생성할 수 있다.
본 발명의 다른 실시예의 다른 측면에 따르면, 상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하는 접근 권한 정보 요청부; 상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성하는 제 2 식별자 생성부; 및 상기 생성된 제 2 식별자와 제 1 식별자의 일치 여부를 판단하는 식별자 동일 판단부를 더 포함할 수 있다.
또한, 상기 제 2 식별자 생성부는 상기 제2 일련번호의 해시 값을 계산하는 제2 해시 값 산술부를 포함하며, 상기 제2 해시 값 산술부에서 산출된 해시 값에 기초하여 제2 식별자를 생성할 수 있다.
또한, 상기 식별자 판단부에서 상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고, 동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없는 것을 특징으로 할 수 있다.
아울러, 본 발명의 일 실시예의 또 다른 측면에 따르면, 상술한 이동 통신 단말이 연결 정보를 제공하는 방법을 수행하는 컴퓨터 프로그램 코드들을 저장하는 컴퓨터 판독가능 저장매체를 제공할 수 있다.
본 발명의 실시 예들은, 사용자 입력에 기초한 일련번호로부터 해시 함수를 이용하여 생성된 식별자를 소프트웨어와 결합하여 보안 실행 파일을 생성하여, 상기 식별자를 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보로 이용함으로써, 승인받지 않은 사용자의 접근을 차단하여, 해커나 역 설계에 의하여 소프트웨어의 변조를 방지하는 소프트웨어 처리 방법을 제공하고자 한다.
더욱 자세하게는, 상기 식별자는 일방향 함수인 해시 함수에 의하여 생성되는 값이므로, 역설계가 어렵고 따라서, 더욱 효과적으로 상기 소프트웨어에 대한 접근성의 보안을 강화하는 효과가 있다.
도 1 은 본 발명의 일 실시 예에 따른 소프트웨어의 보안 실행 파일을 생성하는 소프트웨어 처리 방법의 흐름도이다.
도 2 는 본 발명의 일 실시 예에 따른 식별자를 생성하는 개념도이다.
도 3 은 본 발명의 일 실시 예에 따른 식별자를 이용하여 소프트웨어의 보안 실행 파일을 생성하는 개념도이다.
도 4 는 본 발명의 일 실시 예에 따른, 보안 실행 파일을 생성하는데 이용되는 식별자를 생성하는 방법의 흐름도이다.
도 5 은 본 발명의 다른 실시 예에 따른 소프트웨어에 접근하고자 하는 외부의 접근 요청에 대한 소프트웨어의 처리 방법에 관한 것이다.
도 6 은 본 발명의 다른 실시 예에 따른 소프트웨어에 접근하고자 하는 외부의 접근 요청에 대한 소프트웨어의 접근 권한을 검증하는 방법에 관한 것이다.
도 7 및 도 8 는 본 발명의 다른 실시 예에 따른 소프트웨어의 접근 권한을 검증하는 개념도이다.
도 9 및 도 10 은 본 발명의 일 실시 예에 따른 소프트웨어 처리 장치에 대한 블록도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시 예들은 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하, 첨부된 도면을 참조하여, 본 발명의 각 실시 예에 따른 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 대하여 설명하기로 한다.
이하의 설명에서 본 발명에 대한 이해를 명확히 하기 위하여, 본 발명의 특징에 대한 공지의 기술에 대한 설명은 생략하기로 한다. 이하의 실시 예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아님은 당연할 것이다. 따라서, 본 발명과 동일한 기능을 수행하는 균등한 발명 역시 본 발명의 권리 범위에 속할 것이다. 이하의 설명에서 동일한 식별 기호는 동일한 구성을 의미하며, 불필요한 중복적인 설명 및 공지 기술에 대한 설명은 생략하기로 한다.
도 1 은 본 발명의 일 실시 예에 따른 소프트웨어의 보안 실행 파일을 생성하는 소프트웨어 처리 방법의 흐름도 이다.
소프트웨어는 다양한 형태로 구현될 수 있다. 본 명세서에서 기술되는 소프트웨어는 저장장치에 저장된 특정한 목적의 하나 또는 다수의 컴퓨터 프로그램을 뜻한다. 프로그램 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공함으로써, 그것이 수행하도록 구현된 기능을 수행한다. 또한, 실행 파일은 단순히 데이터만 담고 있는 파일과 달리 암호화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일을 말한다. 인터프리터나 CPU, 아니면 가상 머신을 위한 명령을 포함하는 파일들은 실행 파일로 생각할 수 있지만 더 구체적으로 말하면 이들은 스크립트나 바이트코드이다. 실행 파일들은 이진 파일로 불리며 이는 프로그램의 원시 코드와는 대비되는 용어이다. 일반적으로, 운영 체제 속에서 실행 파일은 상호 작용을 하는데, 일부 운영 체제가 파일 확장자로 실행 파일을 구분하거나 메타데이터에 따라 파일을 알아본다. 대부분의 운영 체제는 해당 파일이 올바른 실행 파일 형식인지를 확인하여 명령으로서 우발적으로 부주의하게 수행하는 데서 임의의 비트 시퀀스를 보호할 수 있게 한다. 현대의 운영 체제들은 컴퓨터의 리소스에 대한 제어권을 보유하며 이로써 각 프로그램이 시스템 호출을 하여 권한을 받은 리소스에 접근할 것을 요구한다. 각 운영 체제 계열이 자체적인 호출 구조를 갖고 있으므로 실행 파일들은 일반적으로 특정 운영 체제에 한정된다.
단계 S100 은 사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성한다.
예를 들면, 상기 제1 일련번호는 사용자가 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것으로, 상기 소프트웨어에 접근권한을 가지는 사용자의 입력에 기초하여 생성될 수 있다. 또한, 상기 제1 일련번호를 생성함에 있어서, 의사난수열을 발생시키고, 상기 소프트웨어에 접근권한을 가지는 사용자의 입력에 기초하여 상기 발생된 의사난수열 중에서 제1 일련번호를 선택할 수도 있다. 여기서 제 1 일련번호는 상기 의사난수열 중에서 선택된 적어도 하나 이상의 연속된 수를 말하는 것으로, 사용자의 입력에 따라 적어도 하나 이상의 제1 일련번호를 선택할 수 있다.
또한, 해시 함수란, 임의 크기의 메시지 M을 입력으로 받아들여 일정한 크기의 메시지 다이제스트(Message Digest)인 H(M)를 출력하는 함수이다. 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어 내며 이 결과를 흔히 해시 값이라고 한다. 또한, 해시 함수는 결정론적 알고리즘으로 작동해야 하는데, 결정론적 알고리즘이란 예측한 그대로 동작하는 알고리즘으로 어떤 특정한 입력이 들어오면 언제나 똑 같은 과정을 거쳐서 언제나 똑 같은 결과를 내놓는 것으로, 두 해시 값이 다르면 그 해시 값에 대한 원래 데이터도 달라야 하는 것을 의미하는 것이다. 본 발명의 일 실시 예에 따르면, 제1 일련번호로부터 해시 함수를 이용하여 생성된 제1 식별자와 제2 일련번호로부터 해시 함수를 이용하여 생성된 제2 식별자가 다르면, 제1 일련번호와 제2 일련번호는 서로 다르다는 것을 의미한다. 본 발명에서 제1 일련번호는 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보 이므로, 제2 일련번호가 제1 일련번호와 서로 다르다면, 제2 일련번호는 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보가 될 수 없게 되며, 따라서 제2 일련번호를 수신한 경우 본 발명의 소프트웨어는 실행될 수 없게 되는 것이다.
그리고 해시 함수의 특징은 일방향 함수(One way function)로 다양한 길이의 입력을 고정된 짧은 길이의 출력으로 변환하는 함수를 말하며 데이터의 무결성 검증, 메시지 인증에 사용된다. 예를 들면, 상기 해시 함수를 이용하여 메시지 인증 코드(MAC)를 생성할 수 있다. 일반적으로 일방향 함수인 해시 함수는 메시지 인증 코드를 생성하는데 사용되나, 본 발명의 일 실시 예에 따르면 해시 함수를 이용하여 소프트 웨어의 접근 권한을 검증할 수 있다.
예를 들면, 해시 함수에서 임의 크기의 메시지 M은 본 발명의 일 실시 예에 따른 제1 일련번호일 수 있다. 상기 제1 일련번호를 해시 함수의 입력 값으로 하면, 출력 값으로써 해시 값을 얻을 수 있다. 이에 대한 자세한 설명은 도2 에서 한다.
사용자 입력에 기초한 제1 일련번호로부터 해시 함수를 이용하여 제1 식별자를 생성한다. 일방향 함수인 해시 함수를 이용하여 제1 식별자를 생성하는 것은, 상기 제1 식별자를 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보로 이용함으로써, 승인 받지 않은 사용자의 접근을 차단하여, 해커나 역 설계에 의하여 소프트웨어의 변조를 방지하는 소프트웨어 처리 방법을 제공하고자 한다.
단계 S110 은 상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성한다.
더욱 자세하게는, 제1 식별자를 상기 소프트웨어의 실행 파일에 결합한 보안 실행 파일을 생성하여, 상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 있을 때, 상기 제1 식별자를 상기 소프트웨어의 접근권한을 검증하는데 이용할 수 있게 하는 것이다.
도 2 는 본 발명의 일 실시 예에 따른 제1 식별자를 생성하는 개념도이다.
보안 실행 파일에서 소프트웨어의 접근권한을 검증하는데 이용되는 제1 식별자는,
기밀성과 무결성이 요구된다. 부적절한 노출 방지, 허가 받은 사용자가 아니면 소프트웨어에 접근할 수 없게 하는 것이며, 무결성이란 상기 소프트웨어의 부적절한 변경 방지 및 허가 받은 사용자가 아니면 내용을 변경할 수 없도록 하는 것이다. 기밀성과 무결성을 위해서는 상기 소프트웨어에 접근하고자 할 때마다, 접근권한을 검증 받아, 접근권한이 있다고 인정되는 경우에만 상기 소프트웨어를 실행할 수 있도록 하는 것이다. 이를 위하여, 제1 식별자는 암호문이 되어야 하고, 이로써 보호받아야 할 평문은 제1 일련번호가 될 수 있도록 하여야 한다.
예를 들면, 제 1 식별자는 제1 일련번호로부터 해시 함수를 이용하여 생성된 해시 값일 수도 있고, 상기 해시 값을 암호화시킨 것 일 수도 있다. 여기서 해시 함수는 임의 길이의 제 1 일련번호를 고정된 길이의 해시 값으로 대응시키는 공개 함수로써 상기 해시 함수가 암호화될 필요는 없다.
도 3 은 본 발명의 일 실시 예에 따른 식별자를 이용하여 소프트웨어의 보안 실행 파일을 생성하는 개념도이다.
소프트웨어에 대한 법적인 접근권한이 있는 사용자의 입력에 기초하여 생성된 제1 일련번호로부터 생성한 제1 식별자를 상기 소프트웨어의 접근권한을 검증하는데 이용할 수 있어야 한다. 따라서 역변환이 불가능한 일방향 함수인 해시 함수를 이용해서 제1 식별자를 생성하고, 상기 생성된 제1 식별자를 인증정보로 이용하기 위하여 상기 소프트웨어에 결합하여 보안 실행 파일을 생성할 수 있다.
상기 보안 실행 파일에서 제1 식별자와 동일한 식별자가 상기 소프트웨어에 접근하고자 하는 외부의 요청에 의하여 인식되면, 상기 보안 실행 파일에 있는 소프트웨어가 실행할 수 있다.
도 4 는 본 발명의 일 실시 예에 따른, 보안 실행 파일을 생성하는데 이용되는 식별자를 생성하는 방법의 흐름도이다.
본 발명의 일 실시 예에 따른 식별자는, 승인받지 않은 사용자의 접근을 차단하기 위하여, 소프트웨어에 결합 되어 상기 소프트웨어의 접근 권한을 검증하고자 이용되는 인증정보가 될 수 있다. 따라서, 역설계를 방지하기 위하여 일방향 함수인 해시 함수를 이용하여 식별자를 생성할 수 있다. 이때, 상기 해시 함수의 출력 값이 식별자가 되고, 입력 값은 본 발명의 일 실시 예에 따르면 제1 일련번호가 될 수 있다. 상기 보안 실행 파일 생성 당시에, 소프트웨어에 대한 접근권한을 가진 사용자의 입력에 기초하여 제1 일련번호가 생성될 수 있는데, 상기 제 1 일련번호는 사용자가 직접 입력할 수 있다.
단계 S200 은 상기 제1 식별자를 생성하는 단계 이전에, 의사난수열을 생성시킨다.
의사난수란, 가짜의 임의의 수, 예측 불가능 한 수를 의미하는 것이다. 소프트웨어적으로 난수를 생성하는 방식에는 1) 초기 값(seed)에서 출발 2) 특정한 공식을 통하여 수 생성 3) 그 수를 다시 초기 값(seed) 로 지정하는 내용을 계속해서 하게 되면 특정한 공식을 통하여 생성되는 의사난수열이 만들어진다. 즉, 연관성이 없는 듯한 수열을 만들어 내는 것이 소프트웨어의 난수 생성 방식이다. 따라서 진정한 난수가 아니기 때문에, 의사난수라고 한다. 이러한 의사난수열은 계산된 수열이기 때문에 계산 방식에 따라 같은 수가 다시 반복되겠지만, 그 주기가 길다면 실질적으로 난수라고 할 수 있다. 또한 임의의 수를 나열한 것처럼 느끼게 하려면 주기 내에서 발생하는 수의 분포가 균일해야 한다. 그러나 연관성이 없어 보인다고 하여 예측 불가능한 것이 아니다. 의사난수 역시 계산에 의하여 생성되는 것이기 때문에 만드는 법을 안다면 이론적으로 예측이 가능하고 내부의 초기값을 안다면 먼저 계산할 수도 있다. 이처럼, 소프트웨어에서 난수를 생성하는 코드를 의사 난수 생성기(PRNG: Psudeo-Random Number Generator) 라고 한다. 의사난수열을 생성하는 알고리즘의 대표적인 예로, 선형 합동법이 있을 수 있다.
단계 S210 은 소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여 상기 의사난수열 중에서 제1 일련번호를 선택한다.
한층 보안을 강화하기 위하여, 제 1 일련번호를 사용자가 직접 입력하는 대신, 소프트웨어 에서 생성시킨 의사난수열 중에서 사용자가 일련의 수를 선택할 수 있다. 상기 일련의 수의 데이터의 크기 제한은 없을 수 있다. 또한, 상기 제1 일련번호는 의사난수열 중에서 적어도 하나 이상을 선택할 수 있다. 상기 선택된 각각의 제1 일련번호의 데이터의 크기는 다양할 수 있다.
단계 S220 은 상기 선택된 적어도 하나 이상의 제1 일련번호로부터 해시 함수를 이용하여 제1 식별자를 생성한다.
예를 들면, 사용자의 입력에 기초하여 선택된 제1 일련번호가 복수인 경우, 각각의 제1 일련번호로부터 해시 함수를 이용하여 각각의 제1 식별자를 생성할 수 있다. 또한, 제 1 식별자는 제1 일련번호로부터 해시 함수를 이용하여 생성된 해시 값일 수도 있고, 상기 해시 값을 암호화 시킨 것 일 수도 있다. 여기서 해시 값을 암호화 하는 방식은 키(key)를 이용할 수 있는데, 여기서 키란 평문을 암호문으로 전환하는 것이고 암호문을 복호화하는 역할도 할 수 있다. 키를 이용하여 인증을 할 수 있고, 디지털 서명 구조 등에 이용될 수 있다. 또한, 암호화와 복호화에서 동일한 키를 사용하는 비밀 키로써 대칭암호 방식이 있을 수 있고, 암호화와 복호화에서 다른 키를 사용하는 개인 키와 공개 키를 가지는 공개 키 암호 방식이 있을 수 있다. 예를 들면, 송신자와 수신자가 공통 키를 사용해서 인증을 수행하는 메시지 인증 코드가 있을 수 있고, 서명 작성과 서명 검증에 서로 다른 키를 사용하는 디지털 서명이 있을 수 있다. 이와 같이 바른 키를 모르는 사람은 데이터를 수정하거나 거짓 행세를 할 수 없는 바, 본 발명의 일 실시 예에 따른 제1 식별자가 제1 일련번호로부터 해시 함수를 이용하여 생성된 해시 값을 키를 이용하여 암호화된 것이라면, 상기 암호에 사용된 키는 인증을 위한 키가 될 수 있다. 이와 같이 일방향 함수인 해시 함수를 이용하여 해시 값을 생성하고, 상기 해시 값을 키를 이용하여 암호화 함으로 인하여, 본 발명의 일 실시 예에 따른 소프트웨어에 접근권한을 검증하는 보안이 더욱 강해지는 효과가 있다.
여기서 해시 함수는 임의 길이의 제 1 일련번호를 고정된 길이의 해시 값으로 대응시키는 공개 함수로써 상기 해시 함수가 암호화될 필요는 없다.
단계 S230 은 상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성한다.
의사난수열에서 적어도 하나 이상의 제1 일련번호를 사용자의 입력에 기초한 선택에 의하여 생성된 경우, 각각의 제1 일련번호로부터 해시 함수를 이용하여 각각의 제1 식별자를 생성할 수 있다. 상기 생성된 적어도 하나 이상의 제1 식별자를 한 세트로 하여 소프트웨어와 결합하여 보안 실행 파일을 생성할 수 있다.
이로써, 상기 소프트웨어에 접근권한을 검증하는데 이용되는 인증정보가 복수 일 수 있게 된다.
도 5 은 본 발명의 다른 실시 예에 따른 소프트웨어에 접근하고자 하는 외부의 접근 요청에 대한 소프트웨어의 처리 방법에 관한 것이다.
단계 S300 은 소프트웨어에 접근하고자 하는 외부로부터 접근 요청을 수신한다.
소프트웨어와 제1 식별자를 결합하여 생성한 보안 실행 파일을 실행시키기 위해서는, 상기 소프트웨어에 접근 권한을 검증 받아야 한다. 상기 접근 권한을 검증 하고자 이용되는 인증정보로써 제1 식별자가 이용될 수 있다.
단계 S310 은 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청한다.
승인받지 않은 사용자의 접근을 차단하여, 해커나 역 설계에 의하여 소프트웨어의 변조를 방지하기 위하여, 소프트웨어에 접근하기 위한 권한이 있다는 것의 인증이 필요하다. 이를 위하여 소프트웨어의 접근 권한을 검증하고자 접근 권한을 입증하는 정보를 요청한다. 예를 들면, 보안 실행 파일은 소프트웨어에 대한 접근 권한을 입증하는 정보를 요청함에 있어서, 접근 권한을 검증하는데 필요한 일정의 일련번호를 입력하는 창을 팝업 창으로 생성할 수 있다. 또한, 접근 권한을 입증하는 정보를 입력할 수 있는 팝업 창의 필드에 커서를 움직이는 것으로 정보를 요청 할 수도 있다.
단계 S320 은 상기 정보의 요청에 대해 사용자 입력에 기초하여 제2 일련번호를 수신한다.
예를 들면, 소프트웨어는 팝업 창의 커서가 움직이는 필드에 입력되는 사용자 입력에 기초하여 접근 권한을 입증하는 정보를 수신할 수 있다. 입증하는 정보는 사용자 입력에 기초한 일련의 수가 될 수 있는데, 상기 일련의 수를 제2 일련번호라고 할 수 있다. 즉 제 2 일련번호는 본 발명의 일 실시 예에 따른 접근 권한을 검증하기 위한 인증정보로 이용될 수 있다. 상기 제2 일련번호가 제1 일련번호와 일치하게 된다면, 상기 소프트웨어의 접근이 허용될 수 있다. 또한, 제2 일련번호가 복수의 제 1 일련번호 중에서 적어도 하나만 일치하더라도 접근이 허용될 수 있다.
단계 S330 은 수신된 제 2 일련번호로부터 해시 함수를 이용하여 제2 식별자를 생성한다.
본 발명의 일 실시 예에 따르면, 소프트웨어의 접근 권한의 인증의 보안을 더욱 높이기 위하여 사용자의 입력에 기초한 제1 일련번호보다는, 상기 제1 일련번호를 해시 함수를 이용하여 해시 값으로 산출하거나, 또는 상기 산출된 해시 값을 키를 이용하여 암호화하여 제1 식별자를 생성할 수 있다. 따라서, 단계 S320 은 사용자 입력에 기초하여 제2 일련번호를 수신한다고 해도, 이를 보안 실행 파일에 결합되어 있는 제1 식별자와 비교하기 위해서는, 제2 일련번호도 변환이 필요하다.
제 2 일련번호로부터 해시 함수를 이용하여 제 2 식별자를 생성하는데, 상기 해시 함수는 보안 실행 파일을 생성할 때 이용된 해시 함수와 같아야 한다. 상기 해시 함수는 보안 실행 파일에 포함될 수 있다. 또한, 소프트웨어에 접근권한을 인증받은 사용자로 하여금, 해시 함수를 사전에 공유할 수 있다. 해시 함수는 공개 함수로써 암호화가 될 필요는 없다.
제 1 식별자와 제2 식별자의 생성 알고리즘이 같아야, 제 2 식별자와 제 1 식별자의 일치 여부에 따라 선택적으로 소프트웨어 접근을 허용할지를 결정할 수 있다.
예를 들면, 보안 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값인 경우, 제 2 식별자는 제 2 일련번호로부터 산출된 해시 값일 수 있다. 또한, 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값을 키를 이용하여 암호화시킨 것인 경우에, 제 2 식별자는 제 2 일련번호로부터 산출된 해시 값을 상기 키를 이용하여 암호화시킨 것일 수 있다.
도 6 은 본 발명의 다른 실시 예에 따른 소프트웨어에 접근하고자 하는 외부의 접근 요청에 대한 소프트웨어의 접근 권한을 검증하는 방법에 관한 것이다.
단계 S400 은 도 5의 단계 S320 와 같다.
단계 S410 은 도5 의 S330 과 같다.
단계 S420 은 상기 제 2 식별자와 제 1 식별자의 일치 여부에 따라 선택적으로 소프트웨어 접근을 허용한다. 예를 들면, 상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고, 동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없다. 또한 일치 여부를 판단함에 있어서, 제 2 식별자가 복수 개의 제 1 식별자 중에서 적어도 하나와 일치하는 경우도 포함할 수도 있다.
만약, 제 2 식별자와 제1 식별자가 일치하지 않는다면, 소프트웨어의 접근 권한이 검증되지 않은 것이므로, 소프트웨어를 실행할 수 없으며, 단계 S400으로 되돌아 간다.
단계 S430 은 상기 소프트웨어의 접근 권한을 검증받는데 성공하면, 상기 소프트웨어를 실행한다.
제 2 식별자와 보안 생성 파일에 결합되어 있는 제 1 식별자의 일치 여부에 따라 선택적으로 소프트웨어 접근을 허용되는 데, 제 2 식별자가 제1 식별자와 일치하게 되면, 상기 소프트웨어 접근 권한이 검증 된 것일 수 있다. 따라서, 상기 보안 생성 파일의 소프트웨어를 실행할 수 있다.
도 7 및 도 8 는 본 발명의 다른 실시 예에 따른 소프트웨어의 접근 권한을 검증하는 개념도이다.
도 7은 보안 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값인 경우, 제 2 일련번호로부터 산출된 해시 값인 제 2 식별자와 동일 여부를 판단하는 개념도를 나타낸 것이다. 또한, 도 8 은 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값을 키를 이용하여 암호화시킨 것인 경우에, 제 2 일련번호로부터 산출된 해시 값을 상기 키를 이용하여 암호화시킨 제 2 식별자와 동일 여부를 판단하는 개념도를 나타낸 것이다.
도 9 및 도 10 은 본 발명의 일 실시 예에 따른 소프트웨어 처리 장치에 대한 블록도이다.
제1 식별자 생성부(310) 은 사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성한다. 또한, 제1 식별자 생성부(310)는 의사난수열을 생성하는 의사난수열 생성부(311) 및 소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여, 상기 의사난수열 중에서 제1 일련번호를 선택하는 제1 일련번호 선택부(313)을 더 포함하여 제1 식별자를 생성하는데 보안을 강화할 수 있다.
또한, 제1 식별자 생성부(310)는 상기 제1 일련번호들의 각각에 대하여 해시 값을 계산하는 제1 해시 값 산술부(315) 를 포함하며, 상기 제1 해시 값 산술부(315) 에서 산출된 해시 값에 기초하여 제1 식별자를 생성할 수 있다. 또한, 제 1 식별자는 제1 일련번호로부터 해시 함수를 이용하여 생성된 해시 값일 수도 있고, 상기 해시 값을 암호화시킨 것 일 수도 있다.
보안 실행 파일 생성부(320) 은 제1 식별자 생성부(310) 로부터 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성한다.
제 2 식별자 생성부(330) 은 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하고, 상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성한다.
또한, 보안 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값인 경우, 제 2 식별자는 제 2 일련번호로부터 산출된 해시 값일 수 있다. 또한, 실행 파일에 결합 되어 있는 제 1 식별자가 제1 일련번호로부터 산출된 해시 값을 키를 이용하여 암호화시킨 것인 경우에, 제 2 식별자는 제 2 일련번호로부터 산출된 해시 값을 상기 키를 이용하여 암호화시킨 것일 수 있다.
또한, 제 2 식별자 생성부(330) 는 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신하는 접근 권한 정보 요청부(331) 및 상기 요청에 대해 사용자 입력에 기초하여 제 2 일련번호를 수신하는 제2 일련번호 수신부(333)를 포함할 수 있다.
또한, 제 2 식별자 생성부(330) 은 상기 제2 일련번호의 해시 값을 계산하는 제2 해시 값 산술부(335)를 포함하며, 상기 제2 해시 값 산술부에서 산출된 해시 값에 기초하여 제2 식별자를 생성할 수 있다.
식별자 동일 판단부(340) 은 제 2 식별자 생성부(330)로부터 생성된 제2 식별자를 제1 식별자 생성부(310) 로부터 생성된 제1 식별자와 일치 여부를 판단한다. 또한, 제 2 식별자가 복수 개의 제 1 식별자 중에서 적어도 하나와 일치하는 경우도 포함할 수도 있다.
식별자 동일 판단부(340) 에서 상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고, 동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없다.
저장부(370) 는 보안 실행 파일에 결합 되는 제1 식별자를 저장할 수도 있고, 해시 함수를 저장할 수도 있다.
사용자 입력부(360)는 사용자가 소프트웨어 처리 장치의 동작 제어를 위한 입력 데이터를 발생시킨다. 본 발명의 일 실시 예에 따르면, 사용자 입력부(360) 에 의하여, 소프트웨어 처리 장치에서는 사용자 입력에 기초하여 제1 일련번호와 제2 일련번호를 입력할 수 있다.
제어부(350)는 제1 식별자 생성부(310), 의사난수열 생성부(311), 제1 일련번호 선택부(313), 제1 해시 값 산술부(315), 보안 실행 파일 생성부(320), 제 2 식별자 생성부(330), 접근 권한 정보 요청부(331), 제2 일련번호 수신부(333), 제2 해시 값 산술부(335), 식별자 동일 판단부(340), 저장부(370), 사용자 입력부(360)를 제어할 수 있다.
이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 본 발명의 각 실시 예에 따른 유저 제스처 입력을 처리하는 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 적어도 하나의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 적어도 하나에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송 받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 적어도 하나로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
300: 소프트웨어 처리 장치. 310: 제1 식별자 생성부
311: 의사난수열 생성부 313: 제1일련번호 선택부
315: 제1 해시 값 산술부 320: 보안 실행 파일 생성부
330: 제2 식별자 생성부 331: 접근 권한 정보 요청부
333: 제2 일련번호 수신부 335: 제2 해시 값 산술부
340: 식별자 동일 판단부 350: 제어부
360: 사용자 입력부 370: 저장부

Claims (14)

  1. 소프트웨어의 보안을 위하여 소프트웨어를 처리하는 방법에 있어서,
    사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성하는 단계; 및
    상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성하는 단계를 포함하며,
    상기 제1 일련번호는 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것을 특징으로 하는, 소프트웨어 처리 방법.
  2. 제1 항에 있어서,
    상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하는 단계;
    상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성하는 단계;
    상기 생성된 제 2 식별자와 제 1 식별자의 일치 여부에 따라 선택적으로 소프트웨어 접근을 허용하는 단계; 를 포함하는 소프트웨어 처리 방법.
  3. 제 2항에 있어서,
    선택적으로 소프트웨어 접근을 허용하는 단계는,
    상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고,
    동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없는 것을 특징으로 하는, 소프트웨어 처리 방법.
  4. 제 1항에 있어서,
    상기 제1 식별자를 생성하는 단계 이전에,
    의사난수열을 생성시키는 단계; 및
    상기 소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여 상기 의사난수열 중에서 제1 일련번호를 선택하는 단계를 더 포함하는 것을 특징으로 하는, 소프트웨어 처리 방법.
  5. 제 1항에 있어서,
    상기 제1 식별자를 생성하는 단계는,
    상기 제1 일련번호들의 각각에 대하여 해시 값을 계산하는 단계; 및
    상기 해시 값에 대한 식별자를 생성하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 처리 방법.
  6. 제 1항에 있어서,
    상기 보안 실행 파일에는 상기 해시 함수를 포함하는 것을 특징으로 하는, 소프트웨어 처리 방법.
  7. 제2 항에 있어서,
    상기 제2 식별자를 생성하는 단계는;
    상기 제2 일련번호의 해시 값을 계산하는 단계; 및
    상기 해시 값에 대한 식별자를 생성하는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 처리 방법.
  8. 소프트웨어의 보안을 위한 소프트웨어를 처리장치에 있어서,
    사용자 입력에 기초한 제1 일련번호로부터, 해시 함수를 이용하여 제1 식별자를 생성하는 제1 식별자 생성부;
    상기 생성된 제1 식별자를 상기 소프트웨어와 결합하여 보안 실행 파일을 생성하는 하는 보안 실행 파일 생성부;를 포함하며,
    상기 제1 일련번호는 상기 소프트웨어의 접근권한을 검증하고자 이용되는 인증정보인 것을 특징으로 하는, 소프트웨어 처리 장치.
  9. 제 8 항에 있어서,
    상기 소프트웨어에 접근하고자 하는 외부로부터 접근 요청이 수신되면 접근 권한을 입증하는 정보를 요청하는 접근 권한 정보 요청부;
    상기 요청에 대해 입력인 제 2 일련번호로부터 상기 해시 함수를 이용하여 제2 식별자를 생성하는 제 2 식별자 생성부; 및
    상기 생성된 제 2 식별자와 제 1 식별자의 일치 여부를 판단하는 식별자 동일 판단부; 를 포함하는 것을 특징으로 하는 소프트웨어 처리 장치.
  10. 제 8 항에 있어서,
    의사난수열을 생성하는 의사난수열 생성부;
    소프트웨어에 접근하는 법적 권한이 있는 사용자 입력에 기초하여, 상기 의사난수열 중에서 제1 일련번호를 선택하는 제1 일련번호 선택부;를 더 포함하는, 소프트웨어 처리 장치.
  11. 제 8 항에 있어서,
    상기 제1 식별자 생성부는 상기 제1 일련번호들의 각각에 대하여 해시 값을 계산하는 제1 해시 값 산술부를 포함하며,
    상기 제1 해시 값 산술부에서 산출된 해시 값에 기초하여 제1 식별자를 생성하는 것을 특징으로 하는, 소프트웨어 처리 장치.
  12. 제 9 항에 있어서,
    상기 제 2 식별자 생성부는
    상기 제2 일련번호의 해시 값을 계산하는 제2 해시 값 산술부를 포함하며,
    상기 제2 해시 값 산술부에서 산출된 해시 값에 기초하여 제2 식별자를 생성하는 것을 특징으로 하는, 소프트웨어 처리 장치.
  13. 제 9 항에 있어서,
    상기 식별자 판단부에서 상기 제2 식별자가 제1 식별자와 동일하면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 있고,
    동일하지 않다면, 상기 제2 일련번호는 상기 소프트웨어의 접근권한을 검증하는 인증정보로써 이용될 수 없는 것을 특징으로 하는, 소프트웨어 처리 장치.
  14. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램으로 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020130011980A 2013-02-01 2013-02-01 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 KR20140099126A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130011980A KR20140099126A (ko) 2013-02-01 2013-02-01 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
PCT/KR2014/000865 WO2014119936A1 (en) 2013-02-01 2014-01-29 Method of and apparatus for processing software using hash function to secure software, and computer-readable medium storing executable instructions for performing the method
EP14746103.2A EP2920734A4 (en) 2013-02-01 2014-01-29 METHOD AND APPARATUS FOR SOFTWARE PROCESSING THROUGH A HASH FUNCTION FOR BACKUPING THE SOFTWARE AND COMPUTER READABLE MEDIUM FOR STORING EXECUTABLE COMMANDS FOR CARRYING OUT THIS METHOD
US14/169,195 US20140223580A1 (en) 2013-02-01 2014-01-31 Method of and apparatus for processing software using hash function to secure software, and computer-readable medium storing executable instructions for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130011980A KR20140099126A (ko) 2013-02-01 2013-02-01 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Publications (1)

Publication Number Publication Date
KR20140099126A true KR20140099126A (ko) 2014-08-11

Family

ID=51260512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130011980A KR20140099126A (ko) 2013-02-01 2013-02-01 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Country Status (4)

Country Link
US (1) US20140223580A1 (ko)
EP (1) EP2920734A4 (ko)
KR (1) KR20140099126A (ko)
WO (1) WO2014119936A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180084444A (ko) * 2017-01-17 2018-07-25 삼성전자주식회사 전자 장치와 이의 동작 방법
KR20210139105A (ko) * 2020-05-13 2021-11-22 김원국 다수 사용자가 출입할 수 있는 시설의 각 출입자 식별 정보를 관리하는 시스템

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450757B2 (en) * 2014-05-07 2016-09-20 Oxcept Limited Method and device for communication security
GB2562621A (en) 2016-02-23 2018-11-21 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
EA201891829A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Способ и система для эффективного перевода криптовалюты, связанной с заработной платой, в блокчейне для создания способа и системы автоматизированной выплаты заработной платы на основе смарт-контрактов
EP3420517B1 (en) 2016-02-23 2022-07-06 nChain Holdings Limited A method and system for the secure transfer of entities on a blockchain
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
EP3420507A1 (en) 2016-02-23 2019-01-02 Nchain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
JP7249148B2 (ja) 2016-02-23 2023-03-30 エヌチェーン ライセンシング アーゲー ブロックチェーンベースユニバーサルトークン化システム
WO2017145048A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
EP4167165A1 (en) 2016-02-23 2023-04-19 nChain Licensing AG Blockchain-based exchange with tokenisation
AU2017222421B2 (en) 2016-02-23 2022-09-01 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
JP7114469B2 (ja) 2016-02-23 2022-08-08 エヌチェーン ホールディングス リミテッド セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
MX2018010057A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo de registro y de manejo automatico para contratos inteligentes de cumplimiento obligado por cadenas de bloques.
CA3013185A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
EP3862956B1 (en) 2016-02-23 2024-01-03 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
WO2017145016A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
JP6477553B2 (ja) * 2016-03-14 2019-03-06 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法
CN105897731B (zh) * 2016-05-12 2019-09-13 北京明华联盟科技有限公司 一种认证方法及认证装置
CN108804880B (zh) * 2017-04-28 2020-07-10 中移(杭州)信息技术有限公司 一种软件生成方法和装置
US11288360B2 (en) 2020-03-04 2022-03-29 Kyndryl, Inc. Preventing untrusted script execution
CN111488568B (zh) * 2020-04-13 2023-04-11 抖音视界有限公司 客户端方法、装置、设备和存储介质
CN114065140A (zh) * 2020-08-04 2022-02-18 富泰华工业(深圳)有限公司 软件程序验证方法、电子装置及存储介质
BR102021001278A2 (pt) * 2021-01-22 2022-08-09 Rogerio Atem De Carvalho Dispositivo e método para autenticação de hardware e/ou software embarcado
CN116680673B (zh) * 2023-06-20 2024-04-16 深圳市彤兴电子有限公司 显示器的身份校验方法、装置以及计算机设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7503072B2 (en) * 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
US20040117628A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content
US20030061488A1 (en) * 2001-09-25 2003-03-27 Michael Huebler Cloning protection for electronic equipment
US7694147B2 (en) * 2006-01-03 2010-04-06 International Business Machines Corporation Hashing method and system
JP5090790B2 (ja) * 2006-06-07 2012-12-05 株式会社リコー 機器、ライセンス管理方法、ライセンス管理プログラム、及びライセンス管理システム
US7831517B1 (en) * 2006-10-24 2010-11-09 Adobe Systems Incorporated Single binary software license distribution
US20080263366A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Self-verifying software to prevent reverse engineering and piracy
US20110145581A1 (en) * 2009-12-14 2011-06-16 Verizon Patent And Licensing, Inc. Media playback across devices
US8775797B2 (en) * 2010-11-19 2014-07-08 Microsoft Corporation Reliable software product validation and activation with redundant security

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180084444A (ko) * 2017-01-17 2018-07-25 삼성전자주식회사 전자 장치와 이의 동작 방법
KR20210139105A (ko) * 2020-05-13 2021-11-22 김원국 다수 사용자가 출입할 수 있는 시설의 각 출입자 식별 정보를 관리하는 시스템

Also Published As

Publication number Publication date
US20140223580A1 (en) 2014-08-07
WO2014119936A1 (en) 2014-08-07
EP2920734A1 (en) 2015-09-23
EP2920734A4 (en) 2016-07-06

Similar Documents

Publication Publication Date Title
KR20140099126A (ko) 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN110378139B (zh) 一种数据密钥保护方法、系统及电子设备和存储介质
US10284372B2 (en) Method and system for secure management of computer applications
US8171306B2 (en) Universal secure token for obfuscation and tamper resistance
US8925109B2 (en) Client-side player file and content license verification
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
US10187373B1 (en) Hierarchical, deterministic, one-time login tokens
CN101199159A (zh) 安全引导
CN105408912A (zh) 处理认证和资源许可
CN113268715A (zh) 软件加密方法、装置、设备及存储介质
US20170099144A1 (en) Embedded encryption platform comprising an algorithmically flexible multiple parameter encryption system
KR20070057968A (ko) 랜덤 함수를 이용한 비밀 공유
US11943345B2 (en) Key management method and related device
CN109614774B (zh) 一种基于sgx的程序控制流混淆方法及系统
US7779269B2 (en) Technique for preventing illegal invocation of software programs
CN109302442B (zh) 一种数据存储证明方法及相关设备
JP2016111440A (ja) 情報処理装置、及びコンピュータプログラム
CN108933766B (zh) 一种提高设备id安全性的方法和客户端
KR101106101B1 (ko) 환경속성 정보를 이용한 데이터 열람장치 및 데이터 열람방법
Lee et al. Ubi‐RKE: A Rhythm Key Based Encryption Scheme for Ubiquitous Devices
KR20190046724A (ko) 어플리케이션의 무결성 검증 방법 및 장치
CN110263553B (zh) 基于公钥验证的数据库访问控制方法、装置及电子设备
US20240004986A1 (en) Cla certificateless authentication of executable programs
Alluhaybi et al. Achieving self-protection and self-communication features for security of agentbased systems
Costea et al. Secure software licensing: Models, constructions, and proofs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application