KR101611104B1 - 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법 - Google Patents

인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법 Download PDF

Info

Publication number
KR101611104B1
KR101611104B1 KR1020140195497A KR20140195497A KR101611104B1 KR 101611104 B1 KR101611104 B1 KR 101611104B1 KR 1020140195497 A KR1020140195497 A KR 1020140195497A KR 20140195497 A KR20140195497 A KR 20140195497A KR 101611104 B1 KR101611104 B1 KR 101611104B1
Authority
KR
South Korea
Prior art keywords
software
user terminal
information
file
executable file
Prior art date
Application number
KR1020140195497A
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 KR1020140195497A priority Critical patent/KR101611104B1/ko
Application granted granted Critical
Publication of KR101611104B1 publication Critical patent/KR101611104B1/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/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
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Abstract

인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법이 개시된다. 사용자 단말은 소프트웨어를 실행하는 실행 파일의 유효성을 검증하기 위한 정보를 서버에 전송하는 단계, 상기 전송된 정보를 바탕으로 서버에서 수행된 상기 실행 파일의 유효성 검증 결과를 수신하는 단계, 상기 수신한 결과에 기초하여 2차 파일을 생성하는 단계, 상기 생성된 2차 파일의 암호화에 사용될 해시값을 수신하는 단계, 상기 수신된 해시값을 적용하여 상기 생성된 2차 파일을 암호화하는 단계 및 상기 암호화된 2차 파일을 저장하는 단계를 포함할 수 있다.

Description

인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법{METHOD FOR PREVENTING UNAUTHORIZED SOFTWARE USAGE BY INTERNET AUTHENTICATION AND ENCRYPTION OF SECONDARY FILES}
본 발명은 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법에 관한 것으로, 보다 구체적으로 1차적으로 인터넷 인증을 사용하여 소프트웨어의 유효성을 검증하고, 소프트웨어 사용으로 얻어지는 2차 파일들을 암호화하여 부정 사용자로 하여금 소프트웨어 사용으로 얻을 수 있는 편익을 차단하는 소프트웨어 부정 사용 방지 방법에 관한 것이다.
종래의 소프트웨어 부정 사용 방지 기술은 일정한 규칙을 가진 Serial Key를 이용하여 인증하는 방법을 시작으로 CD/DVD시절 자체 복사 방지 기술사용, USB나 기타 하드웨어 장치를 이용한 하드웨어 인증 방식 기술, 컴퓨터의 랜카드 고윳값(MAC Address)을 이용한 인증 기술이 존재해왔다. 인터넷이 발달한 이후에는 서버와 일정한 주기로 통신을 수행하여 인증 및 탐지를 실시하는 기술들이 추가 되었다. 이러한 기술들은 소프트웨어 실행 파일의 부정 사용을 방지하는 방법으로 소프트웨어의 부정 사용을 방지한다는 공통점이 있다.
그러나 종래의 기술들은 대부분 우회 방법이 정형화되어 사용되고 있고, 그 결과 여러 인증 방식이 소프트웨어 출시 이후 단기간 내에 우회되어 유포되고 있다. 그로 인해 불법 소프트웨어 사용자들이 소프트웨어를 사용해 만들어 낸 2차 창작물을 아무 제약 없이 사용할 수 있는 문제점이 있다.
본 발명은 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법에 관한 것으로, 상기의 단점을 극복하기 위하여 기존의 방법들에 비해 강화된 인터넷 인증 기반의 새로운 인증 방법뿐 아니라, 2차 창작물을 암호화함으로써, 부정 사용자의 2차 창작물에 대한 접근을 원천적으로 차단하는 방법을 제공한다.
사용자 단말이 수행하는 소프트웨어 불법 사용 방지 방법에 있어서, 사용자 단말은 소프트웨어를 실행하는 실행 파일의 유효성을 검증하기 위한 정보를 서버에 전송하는 단계, 상기 전송된 정보를 바탕으로 서버에서 수행된 상기 실행 파일의 유효성 검증 결과를 수신하는 단계, 상기 수신한 결과에 기초하여 2차 파일을 생성하는 단계, 상기 생성된 2차 파일의 암호화에 사용될 해시값을 수신하는 단계, 상기 수신된 해시값을 적용하여 상기 생성된 2차 파일을 암호화하는 단계 및 상기 암호화된 2차 파일을 저장하는 단계를 포함할 수 있다.
상기 실행 파일의 유효성을 검증하기 위한 정보는 상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함할 수 있다.
상기 해시값은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함할 수 있다.
상기 사용자 단말은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치할 수 있다.
사용자 단말이 수행하는 소프트웨어 불법 사용 방지 방법에 있어서 사용자 단말은 소프트웨어를 실행하는 실행 파일의 유효성을 검증하기 위한 정보를 서버에 전송하는 단계, 상기 전송된 정보에 기초하여 서버에서 수행된 상기 실행 파일의 유효성 검증 결과를 수신하는 단계, 상기 수신한 결과에 기초하여 불러올 파일의 Checksum을 계산하는 단계, 상기 계산된 Checksum에 대응하는 해시값을 서버로부터 수신하여 상기 불러올 파일을 복호화하는 단계 및 상기 복호화된 파일을 디스플레이 하는 단계를 포함할 수 있다.
상기 불러올 파일은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 해시값을 이용하여 암호화될 수 있다.
상기 사용자 단말은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치할 수 있다.
상기 실행 파일의 유효성을 검증하기 위한 정보는 상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함할 수 있다.
서버가 수행하는 소프트웨어 불법 사용 방지 방법에 있어서 서버는 소프트웨어를 실행하는 사용자 단말로부터 실행 파일의 유효성을 검증하기 위한 정보를 수신하는 단계, 상기 수신한 정보에 기초하여 상기 실행 파일의 유효성을 검증하는 단계, 상기 실행 파일의 유효성을 검증한 결과를 사용자 단말에 전송하는 단계, 상기 전송된 결과에 기초하여 생성된 2차 파일의 암호화에 사용될 해시값을 상기 사용자 단말에 전달하는 단계 및 상기 전달된 해시값을 이용하여 암호화된 2차 파일의 해시값 및 Checksum을 상기 사용자 단말로부터 수신하여 저장하는 단계를 포함할 수 있다.
상기 실행 파일의 유효성을 검증하기 위한 정보는 상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함할 수 있다.
상기 해시값은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함할 수 있다.
상기 사용자 단말은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치할 수 있다.
서버가 수행하는 소프트웨어 불법 사용 방지 방법에 있어서 서버는 소프트웨어를 실행하는 사용자 단말로부터 실행 파일의 유효성을 검증하기 위한 정보를 수신하는 단계, 상기 수신한 정보에 기초하여 상기 실행 파일의 유효성을 검증하는 단계, 상기 실행 파일의 유효성을 검증한 결과를 사용자 단말에 전송하는 단계, 상기 전송된 결과에 기초하여 사용자 단말에서 불러올 파일의 Checksum에 대응하는 해시값을 전송하는 단계를 포함할 수 있다.
상기 불러올 파일은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 해시값을 이용하여 암호화될 수 있다.
상기 사용자 단말은 상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치할 수 있다.
상기 실행 파일의 유효성을 검증하기 위한 정보는 상기 소프트웨어의 실행 파일에 대한 Checksum, 사용자 단말의 고유 정보 및 소프트웨어의 설치키 정보 중 적어도 하나를 포함할 수 있다.
본 발명의 일실시예에 따르면, 인터넷 기반의 새로운 인증 방법 및 2차 창작물에 대한 암호화를 통해 부정 사용자가 2차 창작물에 접근하는 것을 원천적으로 차단할 수 있다.
도 1은 일실시예에 따른 소프트웨어 부정 사용 방지 방법에 있어서, 서버와 사용자 단말간의 관계를 도시화한 것이다.
도 2는 일실시예에 따른 소트프웨어를 사용자 단말에 설치하는 과정을 도시화한 것이다.
도 3는 일실시예에 따른 사용자 단말이 수행하는 소프트웨어 실행 및 2차 파일 저장 과정을 도시화한 것이다.
도 4은 일실시예에 따른 사용자 단말이 2차 파일을 불러오는 과정을 도시화한 것이다.
도 5는 일실시예에 따른 소프트웨어 실행 및 2차 파일 저장 과정에서 수행하는 서버의 역할을 도시화한 것이다.
도 6는 일실시예에 따른 2차 파일을 불러오는 과정에서 수행하는 서버의 역할을 도시화한 것이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 소프트웨어 부정 사용 방지 방법에 있어서, 서버와 사용자 단말간의 관계를 도시화한 것이다.
일실시예에 따른 본 발명의 소프트웨어 부정 사용 방지 방법에서, 서버(110)와 사용자 단말(120)은 인터넷 인증을 통한 실행 파일의 유효성을 검증할 수 있다. 또한, 사용자 단말의 고유 정보, 소프트웨어의 설치 키 정보 및 서버(110)에서 임의로 정한 값을 이용한 해시값을 이용하여 2차 파일(130)을 암호화함으로써, 소프트웨어의 부정 사용을 방지할 수 있다.
서버(110)와 사용자 단말(120)은 인터넷 통신을 함에 있어, 인증서를 사용한 SSL(Secure Sockets Layer) 통신을 이용할 수 있다. SSL은 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이며 인증 암호화 기능을 포함하고 있다. SSL 통신은 공격자가 통신을 가로채더라도 내용을 파악할 수 없기 때문에 안전한 통신이 가능하다. 또한, 사용자 단말(120)이 서버(110)의 유효성을 확인하기 위하여 서버(110)의 인증서를 수신할 때, 서버(110)에서 수신한 인증서의 속성을 확인하여 수신한 인증서가 접속하고자 하는 서버(110)의 인증서임을 확인한 후 통신을 수행할 수 있다.
도 2는 일실시예에 따른 소트프웨어를 사용자 단말에 설치하는 과정을 도시화한 것이다.
사용자 단말(120)이 소프트웨어를 실행하기 전 사용자 단말(120)은 소프트웨어를 설치할 수 있다. 처음 설치 시 소프트웨어 제공자는 사용자에게 소프트웨어의 설치 키 정보 및 소프트웨어의 설치 파일을 제공할 수 있다.
이때, 단계(210)에서, 소프트웨어의 설치 파일은 서버(110)와의 SSL 통신을 위한 인증서를 생성할 수 있다.
인증서가 생성된 후 단계(221)에서, 소프트웨어의 설치 파일은 사용자 단말(120)의 고유 정보를 수집할 수 있다. 사용자 단말(120)의 고유 정보는 컴퓨터 하드 디스크의 UUID(Universally unique identifier)를 이용할 수 있다. 컴퓨터 하드 디스크의 UUID를 이용한 방식은 컴퓨터가 부팅하는 과정에서 부팅 하드디스크를 불러올 때 사용하는 값이기 때문에 위/변조를 하는 것이 쉽지 않을 수 있다.
단계(212)에서, 소프트웨어의 설치 파일은 사용자 단말(120)의 고유 정보 및 사용자가 입력한 소프트웨어의 설치 키 정보를 서버(110)에 전달할 수 있다.
단계(213)에서, 서버(110)는 소프트웨어의 설치 파일이 전달한 사용자 단말(120)의 고유 정보 및 사용자가 입력한 소프트웨어의 설치 키 정보의 기 등록 여부를 확인 할 수 있다. 상기 정보들은 서버(110)내 데이터베이스에 저장될 수 있으며, 서버(110)는 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 데이터베이스에 저장된 정보와 비교함으로써, 불법 소프트웨어 사용자를 판단할 수 있다.
예를 들어, 사용자가 입력한 소프트웨어의 설치 키 정보와 연관 된 사용자 단말(120)의 고유 정보를 확인하여, 이미 해당 설치 키 정보와 연관되는 사용자 단말(120)의 고유 정보가 존재하면, 서버(110)는 더 이상 소프트웨어의 설치가 진행되는 것을 막을 수 있다.
또한 단계(214)에서, 서버(110)는 소프트웨어의 설치 키의 규칙과 비교하여 사용자가 입력한 소프트웨어의 설치 키 정보가 유효한 정보인지 확인할 수 있다.
상기 과정에 문제가 없다면, 단계(215)에서 서버(110)는 소프트웨어를 사용하여 생성된 2차 파일 암호화 및 복호화에 사용될 해시값을 생성할 수 있다. 본 발명의 일실시예에 따라 상기 서버(110)는 SHA256 알고리즘을 이용하여 해시값을 생성할 수 있다. SHA256 알고리즘을 이용하여 해시값을 생성할 경우, 서버(110)는 사용자 단말(120)의 고유 정보, 소프트웨어의 설치 키 정보 및 서버(110)에서 지정한 특정값을 추가하여 해시값을 생성할 수 있다. 서버(110)에서 특정값을 추가하여 해시값을 생성하는 이유는 공격자가 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보를 획득한 경우 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보의 단순 조합으로 2차 파일의 암호화에 사용한 해시값을 얻을 수 있기 때문이다.
단계(216)에서, 서버(110)는 소프트웨어의 실행 파일을 생성할 수 있다. 이때, 소프트웨어의 실행 파일은 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 포함할 수 있다. 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 포함한 소프트웨어의 실행 파일은 모두 동일한 기능을 수행할 수 있다. 그러나, 각각의 소프트웨어의 실행 파일은 고유한 SHA256 Checksum을 가질 수 있다. 고유한 SHA256 Checksum을 가지는 소프트웨어의 실행 파일은 소프트웨어의 불법 사용 여부를 확인하는데 사용될 수 있다.
단계(217)에서, 서버(110)는 소프트웨어의 실행 파일을 생성하는데 사용한 정보들을 서버(110)내 데이터베이스에 저장할 수 있다. 서버(110)가 데이터베이스에 저장하는 정보들은 실행 파일이 가지는 고유한 SHA256 Checksum, 사용자 단말(120)의 고유 정보, 소프트웨어의 설치 키 정보 및 2차 파일의 암호화/복호화에 사용될 SHA256 해시값 중 적어도 하나를 포함할 수 있다.
단계(218)에서, 서버(110)는 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 포함하는 소프트웨어의 설치 파일을 사용자 단말(120)에 전달할 수 있으며, 사용자 단말(120)에 소프트웨어의 설치 파일이 전달되면, 설치 과정은 완료(219)된다.
도 3는 일실시예에 따른 사용자 단말이 수행하는 소프트웨어 실행 및 2차 파일 저장 과정을 도시화한 것이다.
사용자가 설치된 소프트웨어를 실행하면 사용자 단말(120)은 소프트웨어의 실행 파일의 유효성을 검사할 수 있다. 단계(310)에서, 사용자 단말(120)은 소프트웨어의 실행 파일에 포함된 사용자 단말(120)의 고유 정보를 소프트웨어가 실행되고 있는 사용자 단말(120)의 고유 정보와 비교할 수 있다. 만약, 실행 파일에 포함된 사용자 단말(120)의 고유 정보와 소프트웨어를 실행되고 있는 사용자 단말(120)의 고유 정보가 일치하지 않으면 소프트웨어는 실행되지 않을 수 있다.
단계(311)에서, 사용자 단말(120)은 소프트웨어의 실행 파일의 유효성 검증을 위한 정보를 서버(110)로 전송할 수 있다. 이때, 사용자 단말(120)은 소프트웨어의 실행 파일의 SHA256 Checksum을 계산하여, 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보와 함께 서버(110)로 전달할 수 있다.
단계(312)에서, 사용자 단말(120)은 서버(110)에서 확인된 소프트웨어의 실행 파일의 유효성 검증 결과를 수신할 수 있다. 만약, 서버(110)에서 전송된 소프트웨어의 실행 파일의 유효성 검증 결과 소프트웨어의 실행 파일이 유효하지 않다고 확인되면 소프트웨어는 실행되지 않을 수 있다.
단계(313)에서, 사용자 단말(120)은 소프트웨어를 사용하여 2차 파일을 생성할 수 있다. 이때, 사용자 단말(120)이 생성된 2차 파일을 저장하기 위하여 소프트웨어의 실행 파일의 유효성을 재 검증 할 수 있다. 사용자 단말(120)은 소프트웨어의 실행 파일의 유효성을 재 검증하여 소프트웨어의 실행 파일의 손상 여부 및 부정 사용 여부를 판단할 수 있다.
이때. 인터넷 연결이 불안정하여 소프트웨어의 실행 파일의 유효성 검증이 불가능할 경우, 소프트웨어의 실행 파일의 유효성 검증을 실시할 수 있는 환경이 갖추어질 때까지 사용자 단말(120)은 작업 상태를 보존하고 동작을 정지할 수 있다. 사용자 단말(120)은 인터넷 연결이 원활해지면 다시 저장 과정을 수행할 수 있다. 소프트웨어의 실행 파일의 유효성을 검증하는 방법은 단계(310)에서 단계(312)에 설명되어 있으므로 생략하도록 한다.
단계(314)에서, 사용자 단말(120)은 사용자 단말(120)의 고유 정보를 서버(110)에 전송할 수 있다.
단계(315)에서, 사용자 단말(120)은 서버(110)로부터 사용자 단말(120)의 고유 정보와 대응하는 SHA256 해시값을 수신할 수 있다. 상기 SHA256 해시값은 소프트웨어 설치 과정에서 생성되어 서버(110)내 데이터베이스에 저장될 수 있다. 상기 SHA256 해시값은 사용자 단말(120)의 고유 정보, 소프트웨어의 설치 키 정보 및 서버(110)에서 지정한 특정값을 추가하여 생성될 수 있다. 서버(110)에서 지정한 특정값을 추가하여 해시값을 생성하는 이유는 공격자가 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보를 획득한 경우 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보의 단순 조합으로 2차 파일의 암호화에 사용한 해시값을 얻을 수 있기 때문이다.
단계(316)에서, 사용자 단말(120)은 생성된 2차 파일을 암호화 할 수 있다. 이때, 사용자 단말(120)은 서버(110)에서 수신된 SHA256 해시값을 이용하여 ARIA 알고리즘을 통해 생성된 2차 파일을 암호화 할 수 있다. 2차 파일을 암호화하여 생성함으로써, 부정 사용자는 암호화 시 사용하였던 SHA256 해시값을 알지 않는 이상 생성된 2차 파일의 내용을 확인할 수 없다.
단계(317)에서, 사용자 단말은 암호화된 2차 파일을 사용자 단말(120) 내부에 저장할 수 있으며, 단계(318)에서, 2차 파일을 생성할 때 이용한 SHA 256 해시값 및 생성된 2차 파일의 SHA256 Checksum을 서버(110)에 전송할 수 있다. 상기 전송된 SHA 256 해시값 및 2차 파일의 SHA256 Checksum은 추후 생성된 2차 파일을 불러올 때 사용될 수 있다.
도 4은 일실시예에 따른 사용자 단말이 2차 파일을 불러오는 과정을 도시화한 것이다.
사용자 단말(120)이 2차 파일을 불러올 때에 사용자 단말(120)은 소프트웨어의 실행 파일의 유효성 검증을 수행하여 소프트웨어의 실행 파일의 손상 여부 및 부정 사용 여부를 판단할 수 있다.
단계(410)에서, 사용자 단말(120)은 소프트웨어의 실행 파일에 포함된 사용자 단말(120)의 고유 정보를 소프트웨어가 실행되고 있는 사용자 단말(120)의 고유 정보와 비교할 수 있다. 만약, 실행 파일에 포함된 사용자 단말(120)의 고유 정보와 소프트웨어를 실행되고 있는 사용자 단말(120)의 고유 정보가 일치하지 않으면 소프트웨어는 실행되지 않을 수 있다.
단계(411)에서, 사용자 단말(120)은 소프트웨어의 실행 파일의 유효성 검증을 위한 정보를 서버(110)로 전송할 수 있다. 이때, 사용자 단말(120)은 소프트웨어의 실행 파일의 SHA256 Checksum을 계산하여, 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보와 함께 서버(110)로 전달할 수 있다.
단계(412)에서, 사용자 단말(120)은 서버(110)에서 확인된 소프트웨어의 실행 파일의 유효성 검증 결과를 수신할 수 있다. 만약, 서버(110)에서 전송된 소프트웨어의 실행 파일의 유효성 검증 결과 소프트웨어의 실행 파일이 유효하지 않다고 확인되면 소프트웨어는 실행되지 않을 수 있다.
단계(413)에서, 사용자 단말(120)은 불러올 2차 파일의 SHA256 Checksum을 계산할 수 있다.
단계(414)에서, 사용자 단말(120)은 불러올 2차 파일의 SHA256 Checksum을 서버(110)로 전송할 수 있다.
단계(415)에서, 사용자 단말(120)은 서버(110)로부터 불러올 2차 파일의 SHA256 Checksum에 대응하는 SHA256 해시값을 수신할 수 있다. 이때, 수신한 SHA256 해시값은 불러올 2차 파일을 암호화하는데 사용한 SHA256 해시값일 수 있다.
단계(416)에서, 사용자 단말(120)은 상기 수신된 SHA256 해시값을 이용하여 ARIA 알고리즘을 통해 불러올 2차 파일의 복호화를 수행할 수 있고, 단계(417)에서, 상기 불러올 2차 파일을 디스플레이 화면에 표시할 수 있다.
상기 과정에서 사용자가 소프트웨어를 부정 사용하여 2차 파일을 생성하더라도, 서버에 생성된 2차 파일의 SHA256 Checksum을 정상적으로 등록하지 않았다면, 추후 불러오기 과정에서 생성된 2차 파일을 복호화할 수 없다. 따라서, 부정 소프트웨어 사용자는 소프트웨어를 사용으로 인한 편익을 얻을 수 없다.
도 5는 일실시예에 따른 소프트웨어 실행 및 2차 파일 저장 과정에서 수행하는 서버의 역할을 도시화한 것이다.
단계(510)에서, 사용자가 설치된 소프트웨어를 실행할 경우, 서버(110)는 소프트웨어의 실행 파일의 유효성을 검증하기 위한 정보를 수신할 수 있다. 이때, 서버(110)가 수신하는 정보는 소프트웨어의 실행 파일의 SHA256 Checksum, 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보 중 적어도 하나를 포함할 수 있다.
단계(511)에서, 서버(110)는 사용자가 사용하려는 소프트웨어의 실행 파일의 유효성을 검증할 수 있다. 서버(110)는 사용자 단말(120)로부터 수신한 소프트웨어의 실행 파일의 SHA256 Checksum을 데이터베이스에 저장된 SHA256 Checksum과 비교하여 소프트웨어의 실행 파일의 무결성을 확인할 수 있다.
또한, 서버(110)는 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 데이터베이스에 저장된 정보와 비교함으로써, 사용자가 사용하려는 소프트웨어의 실행 파일의 유효성을 검증할 수 있다. 만약 소프트웨어의 실행 파일의 손상으로 SHA256 Checksum이 달라지거나, 유효성 검증을 위해 수신한 정보들이 데이터베이스에 저장된 정보들과 일치하지 않는다면 소프트웨어는 실행되지 않을 수 있다.
단계(512)에서, 서버(110)는 사용자 단말(120)로 소프트웨어의 실행 파일의 유효성 검증 결과를 전송할 수 있다.
상기 검증 결과에 따라 사용자 단말(120)은 2차 파일을 생성할 수 있고, 생성된 2차 파일을 저장할 수 있다. 사용자 단말(120)이 2차 파일을 저장할 때, 소프트웨어의 실행 파일의 유효성 검증을 실시하고 서버(110)는 소프트웨어의 실행 파일의 유효성 검증 결과를 전송할 수 있다.
단계(513)에서, 서버(110)는 사용자 단말(120)로부터 사용자 단말(120)의 고유 정보를 수신할 수 있다.
단계(514)에서, 서버(110)는 사용자 단말(120)로부터 수신한 사용자 단말(120)의 고유 정보와 대응하는 SHA256 해시값을 사용자 단말(120)로 전달할 수 있다. 이때, 전달 되는 SHA256 해시값은 소프트웨어 설치 과정에서 생성되어 서버(110)내 데이터베이스에 저장될 수 있다. 상기 SHA256 해시값은 사용자 단말(120)의 고유 정보, 소프트웨어의 설치 키 정보 및 서버(110)에서 지정한 특정값을 추가하여 생성될 수 있다. 서버(110)에서 지정한 특정값을 추가하여 해시값을 생성하는 이유는 공격자가 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보를 획득한 경우 사용자 단말의 고유 정보와 소프트웨어의 설치 키 정보의 단순 조합으로 2차 파일의 암호화에 사용한 해시값을 얻을 수 있기 때문이다.
단계(515)에서, 서버(110)는 암호화된 2차 파일의 SHA256 Checksum 및 2차 파일을 암호화할 때 사용된 SHA256 해시값을 수신할 수 있고, 상기 암호화된 2차 파일의 SHA256 Checksum 및 2차 파일을 암호화할 때 사용된 SHA256 해시값은 데이터베이스에 저장(516)될 수 있다. 상기 저장된 암호화된 2차 파일의 SHA256 Checksum 및 2차 파일을 암호화할 때 사용된 SHA256 해시값은 추후 생성된 2차 파일을 불러올 때 사용될 수 있다.
도 6는 일실시예에 따른 2차 파일을 불러오는 과정에서 수행하는 서버의 역할을 도시화한 것이다.
단계(610)에서, 서버(110)는 사용자 단말(120)로부터 소프트웨어의 실행 파일의 유효성 검증을 위한 정보를 수신할 수 있다. 이때, 서버(110)는 소프트웨어의 실행 파일의 SHA256 Checksum, 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보 중 적어도 하나를 수신할 수 있다.
단계(611)에서, 서버(110)는 사용자가 사용하려는 소프트웨어의 실행 파일의 유효성을 검증할 수 있다. 서버(110)는 사용자 단말(120)로부터 수신한 소프트웨어의 실행 파일의 SHA256 Checksum을 데이터베이스에 저장된 SHA256 Checksum과 비교하여 소프트웨어의 실행 파일의 무결성을 확인할 수 있다.
또한, 서버(110)는 사용자 단말(120)의 고유 정보 및 소프트웨어의 설치 키 정보를 데이터베이스에 저장된 정보와 비교함으로써, 사용자가 사용하려는 소프트웨어의 실행 파일의 유효성을 검증할 수 있다. 만약 소프트웨어의 실행 파일의 손상으로 SHA256 Checksum이 달라지거나, 유효성 검증을 위해 수신한 정보들이 데이터베이스에 저장된 정보들과 일치하지 않는다면 소프트웨어는 실행되지 않을 수 있다.
단계(612)에서, 서버(110)는 사용자 단말(120)로 소프트웨어의 실행 파일의 유효성 검증 결과를 전송할 수 있다.
단계(613)에서, 서버(110)는 사용자 단말(120)로부터 불러올 파일의 SHA256 Checksum을 수신할 수 있다.
단계(614)에서, 서버(110)는 불러올 파일의 SHA256 Checksum에 대응하는 해시값을 확인할 수 있다. 상기 불러올 파일의 SHA256 Checksum 및 불러올 파일을 암호화하는데 사용된 해시값은 서버(110)내 데이터베이스에 확인할 수 있다.
단계(615)에서, 서버(110)는 사용자 단말(120)에 해시값을 전송할 수 있다. 상기 전송된 해시값은 사용자 단말에 의해 불러올 파일을 복호화하는데 사용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110 : 서버
120 : 사용자 단말
130 : 2차 파일

Claims (16)

  1. 사용자 단말이 수행하는 소프트웨어 불법 사용 방지 방법에 있어서,
    소프트웨어를 실행하는 실행 파일의 유효성을 검증하기 위한 정보를 서버에 전송하는 단계;
    상기 전송된 정보를 바탕으로 서버에서 수행된 상기 실행 파일의 유효성 검증 결과를 수신하는 단계;
    상기 수신한 결과에 기초하여 상기 소프트웨어를 사용함으로써 2차 파일을 생성하는 단계;
    상기 생성된 2차 파일의 암호화에 사용될 해시값을 수신하는 단계;
    상기 수신된 해시값을 적용하여 상기 생성된 2차 파일을 암호화하는 단계; 및
    상기 암호화된 2차 파일을 저장하는 단계
    를 포함하는 소프트웨어 불법 사용 방지 방법.
  2. 제1항에 있어서,
    상기 실행 파일의 유효성을 검증하기 위한 정보는,
    상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함하는 소프트웨어 불법 사용 방지 방법.
  3. 제1항에 있어서,
    상기 해시값은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 소프트웨어 불법 사용 방지 방법.
  4. 제1항에 있어서,
    상기 사용자 단말은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치하는 소프트웨어 불법 사용 방지 방법.
  5. 사용자 단말이 수행하는 소프트웨어 불법 사용 방지 방법에 있어서,
    소프트웨어를 실행하는 실행 파일의 유효성을 검증하기 위한 정보를 서버에 전송하는 단계;
    상기 전송된 정보에 기초하여 서버에서 수행된 상기 실행 파일의 유효성 검증 결과를 수신하는 단계;
    상기 수신한 결과에 기초하여 상기 소프트웨어를 사용함으로써 생성된 불러올 파일의 Checksum을 계산하는 단계;
    상기 계산된 Checksum에 대응하는 해시값을 서버로부터 수신하여 상기 불러올 파일을 복호화하는 단계; 및
    상기 복호화된 파일을 디스플레이 하는 단계
    를 포함하는 소프트웨어 불법 사용 방지 방법.
  6. 제5항에 있어서,
    상기 불러올 파일은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 해시값을 이용하여 암호화하는 소프트웨어 불법 사용 방지 방법.
  7. 제5항에 있어서,
    상기 사용자 단말은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치하는 소프트웨어 불법 사용 방지 방법.
  8. 제5항에 있어서,
    상기 실행 파일의 유효성을 검증하기 위한 정보는,
    상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함하는 소프트웨어 불법 사용 방지 방법.
  9. 서버가 수행하는 소프트웨어 불법 사용 방지 방법에 있어서,
    소프트웨어를 실행하는 사용자 단말로부터 실행 파일의 유효성을 검증하기 위한 정보를 수신하는 단계;
    상기 수신한 정보에 기초하여 상기 실행 파일의 유효성을 검증하는 단계;
    상기 실행 파일의 유효성을 검증한 결과를 사용자 단말에 전송하는 단계;
    상기 전송된 결과에 기초하여 상기 소프트웨어를 사용함으로써 생성된 2차 파일의 암호화에 사용될 해시값을 상기 사용자 단말에 전달하는 단계; 및
    상기 전달된 해시값을 이용하여 암호화된 2차 파일의 해시값 및 Checksum을 상기 사용자 단말로부터 수신하여 저장하는 단계
    를 포함하는 소프트웨어 불법 사용 방지 방법.
  10. 제9항에 있어서,
    상기 실행 파일의 유효성을 검증하기 위한 정보는,
    상기 소프트웨어의 실행 파일에 대한 Checksum, 상기 사용자 단말의 고유 정보 및 상기 소프트웨어의 설치키 정보 중 적어도 하나를 포함하는 소프트웨어 불법 사용 방지 방법.
  11. 제9항에 있어서,
    상기 해시값은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 소프트웨어 불법 사용 방지 방법.
  12. 제9항에 있어서,
    상기 사용자 단말은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치하는 소프트웨어 불법 사용 방지 방법.
  13. 서버가 수행하는 소프트웨어 불법 사용 방지 방법에 있어서,
    소프트웨어를 실행하는 사용자 단말로부터 실행 파일의 유효성을 검증하기 위한 정보를 수신하는 단계;
    상기 수신한 정보에 기초하여 상기 실행 파일의 유효성을 검증하는 단계;
    상기 실행 파일의 유효성을 검증한 결과를 사용자 단말에 전송하는 단계;
    상기 전송된 결과에 기초하여 상기 소프트웨어를 사용함으로써 생성된 불러올 파일의 Checksum에 대응하는 해시값을 전송하는 단계
    를 포함하는 소프트웨어 불법 사용 방지 방법.
  14. 제13항에 있어서,
    상기 불러올 파일은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 서버에서 지정한 특정값을 포함하는 해시값을 이용하여 암호화하는 소프트웨어 불법 사용 방지 방법.
  15. 제13항에 있어서,
    상기 사용자 단말은,
    상기 사용자 단말의 고유 정보, 상기 소프트웨어의 설치키 정보 및 상기 사용자 단말의 고유 정보와 상기 소프트웨어의 설치키 정보를 포함하는 실행 파일을 이용하여 소프트웨어를 설치하는 소프트웨어 불법 사용 방지 방법.
  16. 제13항에 있어서,
    상기 실행 파일의 유효성을 검증하기 위한 정보는,
    상기 소프트웨어의 실행 파일에 대한 Checksum, 사용자 단말의 고유 정보 및 소프트웨어의 설치키 정보 중 적어도 하나를 포함하는 소프트웨어 불법 사용 방지 방법.
KR1020140195497A 2014-12-31 2014-12-31 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법 KR101611104B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140195497A KR101611104B1 (ko) 2014-12-31 2014-12-31 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140195497A KR101611104B1 (ko) 2014-12-31 2014-12-31 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법

Publications (1)

Publication Number Publication Date
KR101611104B1 true KR101611104B1 (ko) 2016-04-08

Family

ID=55908170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140195497A KR101611104B1 (ko) 2014-12-31 2014-12-31 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법

Country Status (1)

Country Link
KR (1) KR101611104B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100367094B1 (ko) 1999-10-22 2003-01-06 한국전자통신연구원 컴퓨터 프로그램 온라인 유통 방법
JP2008159053A (ja) 2006-12-20 2008-07-10 Thomson Licensing セキュアソフトウェアインストールのための方法及び装置
KR100951866B1 (ko) 2007-12-04 2010-04-12 주식회사 텔레칩스 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
JP2012155626A (ja) 2011-01-27 2012-08-16 Fujitsu Ltd プログラム、情報処理方法、コンピュータ及びインストールシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100367094B1 (ko) 1999-10-22 2003-01-06 한국전자통신연구원 컴퓨터 프로그램 온라인 유통 방법
JP2008159053A (ja) 2006-12-20 2008-07-10 Thomson Licensing セキュアソフトウェアインストールのための方法及び装置
KR100951866B1 (ko) 2007-12-04 2010-04-12 주식회사 텔레칩스 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
JP2012155626A (ja) 2011-01-27 2012-08-16 Fujitsu Ltd プログラム、情報処理方法、コンピュータ及びインストールシステム

Similar Documents

Publication Publication Date Title
US10547604B2 (en) Information recording apparatus with shadow boot program for authentication with a server
CN109075976B (zh) 取决于密钥认证的证书发布
CN109313690B (zh) 自包含的加密引导策略验证
US10409978B2 (en) Hypervisor and virtual machine protection
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
US11012241B2 (en) Information handling system entitlement validation
US9684789B2 (en) Arbitrary code execution and restricted protected storage access to trusted code
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
EP3275159B1 (en) Technologies for secure server access using a trusted license agent
US9489520B2 (en) Decryption and encryption of application data
US8667600B2 (en) Trusted computing source code escrow and optimization
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
JP2008537224A (ja) 安全な起動方法およびシステム
US10282549B2 (en) Modifying service operating system of baseboard management controller
US11838282B2 (en) Information recording apparatus with server-based user authentication for accessing a locked operating system storage
US20150262084A1 (en) Methods for defending static and dynamic reverse engineering of software license control and devices thereof
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
KR101611104B1 (ko) 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법
KR102089435B1 (ko) 안전한 usb 장치를 보장하는 부트 방법
CN111611551A (zh) 一种基于国密算法的动态链接库保护方法及其系统
US20150113281A1 (en) Multiple application platform owner keys in a secure object computer system
KR101738604B1 (ko) 라이브러리의 불법 사용 방지 시스템 및 방법
KR20180110432A (ko) 어플리케이션의 무결성 검증 방법 및 장치
CN109784085B (zh) 虚拟网络应用实现方法及管理系统、计算机可读存储介质
KR101425315B1 (ko) 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법

Legal Events

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

Payment date: 20190402

Year of fee payment: 4