[go: up one dir, main page]

KR102854414B1 - Authentication methods and authentication systems that restrict unauthorized installation of software products - Google Patents

Authentication methods and authentication systems that restrict unauthorized installation of software products

Info

Publication number
KR102854414B1
KR102854414B1 KR1020250050495A KR20250050495A KR102854414B1 KR 102854414 B1 KR102854414 B1 KR 102854414B1 KR 1020250050495 A KR1020250050495 A KR 1020250050495A KR 20250050495 A KR20250050495 A KR 20250050495A KR 102854414 B1 KR102854414 B1 KR 102854414B1
Authority
KR
South Korea
Prior art keywords
authentication
user
installation
information
code
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020250050495A
Other languages
Korean (ko)
Inventor
박천오
박대원
이재춘
Original Assignee
주식회사 피앤피시큐어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 피앤피시큐어 filed Critical 주식회사 피앤피시큐어
Priority to KR1020250050495A priority Critical patent/KR102854414B1/en
Application granted granted Critical
Publication of KR102854414B1 publication Critical patent/KR102854414B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 소프트웨어 제품을 인증된 사용자만이 제품사용서버에 설치할 수 있게 한 인증 방법과 인증 시스템에 관한 것으로, 좀 더 구체적으로는 소프트웨어 제품의 설치를 시도하는 사용자를 식별해서 설치 권한 여부를 체크하고 인증된 사용자의 소프트웨어 제품 설치를 속행하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법과 인증 시스템에 관한 것으로, 소프트웨어 제품 설치를 위한 설치 패키지가 저장된 클라이언트와, 사용자정보가 저장된 사용자단말과, 상기 설치 패키지 실행의 인증 기능을 수행하는 인증서버가 상호 통신하도록 구성된 인증 시스템에서, 상기 인증서버에 권한 사용자의 사용자정보와 소프트웨어 제품의 고유코드가 등록되는 사용자정보 등록 단계; 클라이언트에 소프트웨어 제품을 설치하기 위해서 인증서버가 수신하도록, 상기 클라이언트가 설치 패키지의 고유코드와 챌린지 정보를 발송하고, 상기 사용자단말이 사용자정보를 발송하는 정보 통신 단계; 상기 인증서버가 수신한 사용자정보 및 고유코드를 인증서버에 등록된 사용자정보 및 고유코드와 비교해서 해당 설치 패키지의 실행 권한 유무를 확인하는 사용자 권한 확인 단계; 상기 사용자단말의 사용자정보에 대한 사용자 권한이 확인되면, 상기 인증서버는 챌린지 정보와 고유코드를 근거로 인증코드를 생성해서 클라이언트가 수신하도록 발송하는 인증코드 생성 단계; 상기 설치 패키지가 인증코드를 근거로 복호화키를 생성해서 설치 패키지에 구성된 암호화된 패키지 데이터를 복호화하고 클라이언트에 설치하는 패키지 설치 단계;를 포함하는 것이다.The present invention relates to an authentication method and an authentication system that allow only an authenticated user to install a software product on a product use server, and more particularly, to an authentication method and an authentication system that identify a user attempting to install a software product, checks whether the user has installation authority, and restricts unauthorized installation of a software product by proceeding with the installation of the software product by an authenticated user. The authentication system comprises a client storing an installation package for installing a software product, a user terminal storing user information, and an authentication server that performs an authentication function for executing the installation package, and communicates with each other, comprising: a user information registration step in which user information of an authorized user and a unique code of a software product are registered in the authentication server; an information communication step in which the client transmits the unique code of the installation package and challenge information so that the authentication server receives them in order to install the software product on the client, and the user terminal transmits the user information; a user authority confirmation step in which the user information and unique code received by the authentication server are compared with the user information and unique code registered in the authentication server to confirm whether the user has execution authority for the corresponding installation package; When the user authority for the user information of the user terminal is confirmed, the authentication server generates an authentication code based on the challenge information and the unique code and sends it to the client for receipt; and the installation package generates a decryption key based on the authentication code, decrypts the encrypted package data configured in the installation package, and installs it on the client.

Description

소프트웨어 제품의 무단 설치를 제한하는 인증 방법과 인증 시스템{Authentication methods and authentication systems that restrict unauthorized installation of software products}Authentication methods and authentication systems that restrict unauthorized installation of software products

본 발명은 소프트웨어 제품을 인증된 사용자만이 제품사용서버에 설치할 수 있게 한 인증 방법과 인증 시스템에 관한 것으로, 좀 더 구체적으로는 소프트웨어 제품의 설치를 시도하는 사용자를 식별해서 설치 권한 여부를 체크하고 인증된 사용자의 소프트웨어 제품 설치를 속행하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법과 인증 시스템에 관한 것이다.The present invention relates to an authentication method and an authentication system that allow only authenticated users to install a software product on a product use server, and more specifically, to an authentication method and an authentication system that identify a user attempting to install a software product, checks whether the user has installation authority, and restricts unauthorized installation of a software product by proceeding with the installation of the software product by an authenticated user.

한국 소프트웨어저작권협회(SPC : Software Property-right Council)에 따르면 불법적인 소프트웨어 제품의 무단 설치 및 사용으로 인한 피해액이 국내에서만 매년 수백 억 원에 이르고 있다. 이와 같이 불법 소프트웨어의 유통으로 인한 기업의 피해는 정상적인 판매의 이익에 몇 배에 이른다. According to the Software Property-rights Council (SPC), the unauthorized installation and use of illegal software products costs hundreds of billions of won annually in Korea alone. The damage to businesses caused by the distribution of illegal software is several times greater than the profits from legitimate sales.

소프트웨어 제품의 불법적인 설치 및 사용은 개인뿐만 아니라 기업에서도 이루어지고 있기는 하지만, 기업보다는 개인의 불법적인 사용을 막는데 어려움이 크다. 개인의 경우 P2P(Peer To Peer), 와레즈, 웹하드(Web Hard) 등과 같이 인터넷을 통하여 저작권사의 동의없이 불법적으로 소프트웨어 제품을 유통시키기 때문에 이를 적발해 내기 어려울 뿐만 아니라, 최초에 유포한 개인을 찾아내기가 쉽지 않고, 소프트웨어 제품의 유통시에 원본 파일명을 변경하기 때문에 불법적으로 복제된 소프트웨어 제품의 유통을 원천적으로 차단하는 것은 어려운 실정이다. While the illegal installation and use of software products occurs not only by individuals but also by businesses, preventing illegal use by individuals is more challenging than by businesses. Individuals distribute software illegally over the Internet, through platforms like P2P (Peer-to-Peer), warez, and webhard, without the consent of the copyright holder. This makes detection difficult. Furthermore, tracking down the individual who initially distributed the software is challenging. Furthermore, because the original file names are often altered during distribution, it's difficult to fundamentally block the distribution of illegally copied software.

소프트웨어 제품의 특징인 복제(Copy)의 용이성은 역으로 소프트웨어 제품에 내포되는 잠재적이고 치명적인 단점으로 작용한다. 이에 소프트웨어 제품의 불법적인 복제와 무단 설치 및 사용으로부터 소프트웨어 제품을 보호하기 위한 다양한 기술이 제안되고 있으며, 널리 이용되는 방식으로 온라인으로 정품을 인증하는 방식과 오프라인 상에서 씨디키(CD-Key)나 시리얼 넘버(Serial Number)를 입력하는 방식이 있다. The inherent ease of copying, a hallmark of software products, conversely presents a potential and potentially fatal flaw. Various technologies have been proposed to protect software products from illegal copying, unauthorized installation, and use. Popular methods include online authentication and offline activation using a CD key or serial number.

이와 같이 온라인으로 소프트웨어 제품의 정품 여부를 인증하는 기술의 일례가 대한민국 특허 등록공보 제0602107호(2006.07.10 등록, 네트워크 환경의 소프트웨어 저작권 관리 시스템 및 그 방법; 이하 '선행기술1')에 개시되어 있다. 선행기술1에 개시된 기술은 특정 소프트웨어 제품이 설치된 클라이언트 PC, 클라이언트 PC로부터 네트워크를 통해 사용자 정보를 발송받아 소프트웨어 제품에 대한 인증을 수행하는 라이센스(Licence) 서버로 구성되며, 라이센스 서버는 클라이언트 PC와 데이터를 송수신하는 통신모듈, 제품 일련번호를 발송받아 제품을 등록시키는 제품등록모듈, 제품 일련번호가 저장되는 제품등록DB, 정식 사용자인지에 대해 판단하는 사용인증모듈, 허가된 사용자 인증 로그를 저장하는 사용인증DB로 구성된다고 기재되어 있다. 즉, 선행기술1에 개시된 기술에서는 사용자가 클라이언트 PC의 소프트웨어 제품 설치와 사용에 대한 권한을 허가받기 위하여 네트워크를 통해 라이센스 서버에 접속하고, 라이센스 서버는 소프트웨어 제품의 제품 일련번호, 충돌 여부, 실행 여부, IP 주소(Information Provider Address) 비교 및 적법 사용자에 대한 문의와 같은 단계적 비교 과정을 통해 소프트웨어 제품의 사용이 유효한 사용인지 판단하고, 그 허가 여부를 다시 클라이언트 PC로 발송함으로써 불법 사용을 차단하여 소프트웨어 제품의 저작권을 보호할 수 있는 기술이 기재되어 있다.An example of a technology for authenticating the authenticity of a software product online is disclosed in Korean Patent Registration No. 0602107 (registered on July 10, 2006, Software Copyright Management System in a Network Environment and Method Therefor; hereinafter referred to as “Prior Art 1”). The technology disclosed in Prior Art 1 is composed of a client PC on which a specific software product is installed, a license server that receives user information from the client PC over a network and performs authentication for the software product, and the license server is described as being composed of a communication module that transmits and receives data with the client PC, a product registration module that receives a product serial number and registers the product, a product registration DB that stores the product serial number, a user authentication module that determines whether the user is a legitimate user, and a user authentication DB that stores an authorized user authentication log. That is, in the technology disclosed in prior art 1, a user accesses a license server through a network to obtain permission to install and use a software product on a client PC, and the license server determines whether the use of the software product is valid through a step-by-step comparison process such as comparing the product serial number, whether there is a conflict, whether it is executable, the IP address (Information Provider Address), and inquiries about legitimate users, and sends back to the client PC whether permission has been granted, thereby blocking illegal use and protecting the copyright of the software product.

씨디키(CD-Key)를 이용하여 인증하는 기술의 일례가 대한민국 특허 공개공보 제2005-0052980호(2005.06.07공개, 소프트웨어나 콘텐츠 또는 전자정보의 식별자를 내포하는 시리얼넘버의 전자적 생성 방법, 상기 시리얼넘버가 인쇄된 쿠폰의 발행 방법, 및 상기 시리얼넘버 의해 인증 방법, 그리고 이들 방법을 이를 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체; 이하 '선행기술2')에 개시되어 있다. 선행기술2에 개시된 기술은 소프트웨어 제품의 정품 여부를 인증할 수 있는 시리얼넘버(Serial Number)를 생성하고, 생성된 시리얼넘버를 이용하여 정품인증을 수행하는 방법에 관한 것으로, 특히 인증방법은 생성된 최종 시리얼넘버를 입력받는 단계, 입력된 시리얼넘버를 복호화하는 단계, 복호화된 시리얼넘버로부터 변수와 특정 함수식의 해를 추출하는 단계, 추출된 변수와 특정 함수식의 해가 시리얼넘버 생성 서버와 인증서버 간에 기 규정된 특정 함수식을 만족하는가의 여부를 검사하는 단계, 추출된 변수가 소프트웨어 제품이나 콘텐츠(Contents) 또는 전자정보의 식별자를 내포하는가 여부를 확인하는 단계로 이루어진다고 기재되어 있다. 선행기술2에 개시된 기술에서는 발권자 서버와 콘텐츠 제공자 서버가 온라인 상에서 교류가 없으면서도 인증은 원활하게 이루어지므로, 종래 기술에서 발생하는 네트워크 문제로 인한 결제 불가 사태나 해킹에 의한 시리얼넘버 유출 사태의 영향을 받지 않을뿐더러, 중간 정산 결제 서버의 개입이 필요치 않아, 불필요한 수수료의 절감을 기하며 콘텐츠 제공자의 프라이버시 및 영업 비밀의 보호를 더욱 확고하게 할 수 있는 기술이 기재되어 있다.An example of a technology for authentication using a CD-Key is disclosed in Korean Patent Publication No. 2005-0052980 (published on June 7, 2005, electronic generation method of a serial number containing an identifier of software, content, or electronic information, method for issuing a coupon with the serial number printed on it, and method for authentication using the serial number, and a computer-readable recording medium recording a program for performing these methods; hereinafter referred to as “prior art 2”). The technology disclosed in prior art 2 relates to a method for generating a serial number capable of authenticating the authenticity of a software product and performing authentication using the generated serial number. In particular, the authentication method is described as comprising a step of receiving a generated final serial number, a step of decrypting the input serial number, a step of extracting variables and solutions of specific functional formulas from the decrypted serial number, a step of checking whether the extracted variables and solutions of specific functional formulas satisfy specific functional formulas predefined between the serial number generation server and the authentication server, and a step of checking whether the extracted variables contain an identifier of a software product, contents, or electronic information. In the technology disclosed in prior art 2, authentication is performed smoothly without any online interaction between the issuer server and the content provider server, so it is not affected by the network problems that occur in the prior art or the serial number leak due to hacking, and the technology is described that reduces unnecessary fees and more firmly protects the privacy and trade secrets of the content provider because the intervention of an intermediate settlement payment server is not required.

전술한 선행기술1과 선행기술2 등에서 확인할 수 있는 바와 같이, 일반적인 종래 기술은 암호화된 소프트웨어 제품의 설치 패키지와 시리얼넘버를 확보한 사용자가 설치 패키지 실행을 통해 소프트웨어 제품을 설치할 수 있고, 설치 기록을 위해서 사용자 정보(Email 등)와 제품 정보를 입력해서 로그 수집 서버에 전달 및 저장한다.As can be seen from the above-mentioned prior art 1 and prior art 2, a typical prior art allows a user who has obtained an encrypted software product installation package and serial number to install the software product by executing the installation package, and inputs user information (email, etc.) and product information for installation records, and transmits and stores them on a log collection server.

하지만, 종래 기술은 설치 패키지와 시리얼넘버가 설치 권한이 없는 사용자에게 유출되었을 경우, 무권한 사용자의 설치를 막을 수 있는 방법이 전무하였다. 또한, 소프트웨어 제품의 설치 이력에 관한 로그 수집이 강제되지 않으므로 소프트웨어 제품의 무단 설치를 완전히 제압할 수도 없었다. 따라서 소프트웨어 제품 설치를 위한 시리얼넘버가 노출된 상태에서 불법으로 복제된 소프트웨어 제품을 무단으로 설치해 이용하던 종래 문제를 시급히 해결해야 했다.However, in the past, there was no way to prevent installation by unauthorized users if the installation package and serial number were leaked to users without installation authority. In addition, since log collection regarding the installation history of software products was not mandatory, it was not possible to completely suppress unauthorized installation of software products. Therefore, there was an urgent need to resolve the existing problem of unauthorized installation and use of illegally copied software products while the serial number for software product installation was exposed.

이에 본 발명은 상기의 문제를 해소하기 위한 것으로, 소프트웨어 제품을 설치 권한이 있는 사용자만 단말 또는 보안서버에 설치할 수 있도록 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법과 인증 시스템의 제공이 해결하고자 하는 과제이다.Accordingly, the present invention is intended to solve the above problem, and the problem to be solved is to provide an authentication method and an authentication system that restrict unauthorized installation of a software product so that only a user with installation authority can install the software product on a terminal or a security server.

상기의 과제를 달성하기 위하여 본 발명은,In order to achieve the above task, the present invention,

소프트웨어 제품 설치를 위한 설치 패키지가 저장된 클라이언트와, 사용자정보가 저장된 사용자단말과, 상기 설치 패키지 실행의 인증 기능을 수행하는 인증서버가 상호 통신하도록 구성된 인증 시스템에서, 상기 인증서버에 권한 사용자의 사용자정보와 소프트웨어 제품의 고유코드가 등록되는 사용자정보 등록 단계;In an authentication system configured to allow a client storing an installation package for installing a software product, a user terminal storing user information, and an authentication server performing an authentication function for executing the installation package to communicate with each other, a user information registration step in which user information of an authorized user and a unique code of a software product are registered in the authentication server;

클라이언트에 소프트웨어 제품을 설치하기 위해서 인증서버가 수신하도록, 상기 클라이언트가 설치 패키지의 고유코드와 챌린지 정보를 발송하고, 상기 사용자단말이 사용자정보를 발송하는 정보 통신 단계;An information communication step in which the client sends a unique code and challenge information of an installation package so that the authentication server receives them in order to install a software product on the client, and the user terminal sends user information;

상기 인증서버가 수신한 사용자정보 및 고유코드를 인증서버에 등록된 사용자정보 및 고유코드와 비교해서 해당 설치 패키지의 실행 권한 유무를 확인하는 사용자 권한 확인 단계;A user authorization verification step for comparing the user information and unique code received by the authentication server with the user information and unique code registered in the authentication server to check whether the installation package has execution authority;

상기 사용자단말의 사용자정보에 대한 사용자 권한이 확인되면, 상기 인증서버는 챌린지 정보와 고유코드를 근거로 인증코드를 생성해서 클라이언트가 수신하도록 발송하는 인증코드 생성 단계; 및When the user authority for the user information of the user terminal is confirmed, the authentication server generates an authentication code based on the challenge information and the unique code and sends it to the client for receipt; and

상기 설치 패키지가 인증코드를 근거로 복호화키를 생성해서 설치 패키지에 구성된 암호화된 패키지 데이터를 복호화하고 클라이언트에 설치하는 패키지 설치 단계;A package installation step in which the above installation package generates a decryption key based on the authentication code, decrypts the encrypted package data configured in the installation package, and installs it on the client;

를 포함하는 것을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.An authentication method for restricting unauthorized installation of a software product, characterized in that it includes:

상기의 본 발명은, 소프트웨어 제품의 설치 패키지가 유출 되지 않도록 제품 설치 패키지를 암호화해서 보호할 수 있고, 유출될 설치 패키지인 경우에도 인증만을 통하여 제품이 설치될 수 있으므로 설치 패키지의 무단 설치를 제한할 수 있다. The above invention can protect the product installation package by encrypting it so that the installation package of the software product is not leaked, and even if the installation package is leaked, the product can be installed only through authentication, thereby restricting unauthorized installation of the installation package.

또한 본 발명은, 부차적으로 보안서버에서 사용자에게 허용된 설치 패키지에 대해서만 복호화를 위한 인증코드를 부여받을 수 있으므로, 무단 사용자의 설치 패키지 실행을 제한할 수 있다. In addition, the present invention can restrict execution of installation packages by unauthorized users by allowing the user to receive an authentication code for decryption only for installation packages permitted by the security server.

또한 본 발명은, 소프트웨어 제품을 설치하기 위해서는 설치 패키지의 복호화를 위해 필수적으로 인증코드를 부여받아야 하므로, 소프트웨어 제품의 설치 이력을 감시하여 부적절하게 실행된 소프트웨어 제품을 확인해서 즉각적인 제한 조치가 가능하다.In addition, since the present invention requires an authentication code to be provided for decryption of an installation package in order to install a software product, it is possible to monitor the installation history of a software product to identify a software product that has been improperly executed and take immediate restrictive measures.

도 1은 본 발명에 따른 인증 시스템의 일실시 예를 도시한 블록도이고,
도 2는 본 발명에 따른 인증 시스템을 이용해서 실행되는 설치 패키지의 구조를 개략적으로 예시한 도면이고,
도 3은 본 발명에 따른 인증 시스템을 이용해서 실행되는 인증 방법의 일실시 예를 도시한 플로차트이다.
Figure 1 is a block diagram illustrating an example of an authentication system according to the present invention.
FIG. 2 is a drawing schematically illustrating the structure of an installation package executed using the authentication system according to the present invention.
FIG. 3 is a flowchart illustrating an example of an authentication method executed using an authentication system according to the present invention.

실시 예들에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당하는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the examples are selected from widely used, current terms, taking into account the functions of the present invention. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, the applicant may arbitrarily select terms, in which case their meanings will be described in detail in the description of the relevant invention. Therefore, the terms used in the present invention should be defined not simply based on their names, but based on their meanings and the overall content of the present invention.

본 명세서에 있어서 '부(部)'란, 특정한 기능을 발휘하는 한 부분을 의미한다. '~부'는 한 몸체에서 범위가 지정된 일부분일 수도 있고, 다수의 구성요소가 조합되어 이루어진 객체일 수도 있다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. '~부'는 특정한 기능 발휘를 위해 형태가 구체화된 단위로 이해되어야 한다.In this specification, a "part" refers to a portion that performs a specific function. A "part" may be a portion of a single body with a defined scope, or it may be an object formed by combining multiple components. The functions provided within the components and "parts" may be combined into a smaller number of components and "parts" or further separated into additional components and "parts." A "part" should be understood as a unit whose form is concretized to perform a specific function.

아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present invention are described in detail so that those skilled in the art can easily implement them. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein.

이하, 본 발명을 구체적인 내용이 첨부된 도면에 의거하여 상세히 설명한다.Hereinafter, the present invention will be described in detail based on the attached drawings.

도 1은 본 발명에 따른 인증 시스템의 일실시 예를 도시한 블록도이고, 도 2는 본 발명에 따른 인증 시스템을 이용해서 실행되는 설치 패키지의 구조를 개략적으로 예시한 도면이다.FIG. 1 is a block diagram illustrating an example of an authentication system according to the present invention, and FIG. 2 is a drawing schematically illustrating the structure of an installation package executed using the authentication system according to the present invention.

도 1과 도 2를 참조하면, 본 발명에 따른 인증 시스템은, 암호화된 설치 패키지가 복호화되어 설치되는 컴퓨터 단말인 클라이언트(10)와, 소프트웨어 제품의 설치 권한이 있는 사용자의 사용자정보를 인증서버(30)에 제시하는 사용자단말(20)과, 클라이언트(10)에 설치가 시도되는 소프트웨어 제품의 설치 패키지를 확인하고 사용자의 권한 여부를 파악해서 해당 설치 패키지의 복호화를 위한 인증코드를 제공하는 인증서버(30)로 구성된다.Referring to FIGS. 1 and 2, the authentication system according to the present invention comprises a client (10), which is a computer terminal on which an encrypted installation package is decrypted and installed, a user terminal (20) that presents user information of a user with installation authority for a software product to an authentication server (30), and an authentication server (30) that verifies the installation package of a software product attempted to be installed on the client (10), determines whether the user has the authority, and provides an authentication code for decrypting the installation package.

우선, 클라이언트(10)는 OS(Operating System, 11)을 기반으로 운영되는 일반 컴퓨터이고, 유,무선 데이터 통신이 가능한 통신 체계를 구성한다. 또한, 설치 패키지를 포함한 각종 데이터를 저장하는 저장부(12)를 구성한다. 이러한 일반 컴퓨터 구조의 클라이언트(10)에서 사용자의 선택으로 설치 패키지의 설치가 시도되면, 설치 바이너리의 설정값에 따라 설치부(13)가 활성화된다. 설치부(13)는 설치 패키지의 설치 프로세스를 처리하는 설치 패키지 실행모듈(131)과, 설치 패키지의 암호화된 패키지 데이터를 복호화하는 복호화모듈(132)을 포함한다. First, the client (10) is a general computer that operates based on an OS (Operating System, 11) and configures a communication system capable of wired and wireless data communication. In addition, it configures a storage unit (12) that stores various data including an installation package. When an installation package is attempted by a user's selection on the client (10) of such a general computer structure, the installation unit (13) is activated according to the setting value of the installation binary. The installation unit (13) includes an installation package execution module (131) that handles the installation process of the installation package, and a decryption module (132) that decrypts the encrypted package data of the installation package.

본 실시 예의 설치 패키지는 상기 설치 바이너리를 구성하고, 실행 바이너리에서 설치할 데이터인 복호화/체크섬 데이터와 패키지 정보 데이터와 암호화된 패키지 데이터의 위치를 찾기 위한 고정된 32Byte의 문자열 데이터인 데이터 위치 구분 문자열을 구성한다. 또한, 본 실시 예에서 암호화된 패키지 데이터의 복호화를 위한 검증과 복호화를 위해 필요한 데이터인 32Byte의 파일 검증 해시와, 32Byte의 암호화 검증 해시와, 32Byte의 암호키 보정 데이터와, 16Byte의 IV(Initial Vector) 보정 데이터를 구성한다. 또한, 설치 패키지의 정보인 2Byte의 정보 데이터 전체길이와, 16Byte의 UUID(Universally Unique Identifier) 형식을 이루는 설치 패키지의 고유코드와, 각 문자가 2Byte를 이루는 설치 패키지의 이름과, 각 문자가 2Byte를 이루는 설치 디렉토리와, 각 문자가 2Byte를 이루는 설치 명령어를 포함한다.The installation package of the present embodiment configures the above-mentioned installation binary, and configures the decryption/checksum data, which is data to be installed in the executable binary, and the package information data, and the data location delimiter string, which is a fixed 32-byte string data for finding the location of the encrypted package data. In addition, it configures the 32-byte file verification hash, which is data necessary for verification and decryption for decrypting the encrypted package data in the present embodiment, the 32-byte encryption verification hash, the 32-byte encryption key correction data, and the 16-byte IV (Initial Vector) correction data. In addition, it includes the total length of the 2-byte information data, which is the information of the installation package, the unique code of the installation package in the form of a 16-byte UUID (Universally Unique Identifier), the name of the installation package, each character of which is 2 bytes, the installation directory, each character of which is 2 bytes, and the installation command, each character of which is 2 bytes.

본 실시 예의 설치 패키지는 클라이언트(10)에 설치되어야 할 데이터를 암호화한 패키지 데이터를 구성한다. 본 실시 예에서 패키지 데이터는 'tar + zip' 형식으로 압축된 후 암호화된다. 본 발명에 따른 인증 시스템과 인증 방법은 소프트웨어 제품을 설치하기 위해 동작하는 암호화된 패키지 데이터를 복호화하기 위해 동작한다.The installation package of this embodiment comprises encrypted package data containing data to be installed on a client (10). In this embodiment, the package data is compressed in a 'tar + zip' format and then encrypted. The authentication system and method according to the present invention operate to decrypt the encrypted package data used to install a software product.

사용자단말(20)은, 사용자가 손쉽게 조작할 수 있는 OS(21) 기반의 모바일, 태블릿 등이고, 클라이언트(10)에 소프트웨어 제품을 설치하는 과정에서 사용자가 해당 소프트웨어 제품의 설치 권한이 있음을 증명하기 위해 사용자 자신의 사용자정보를 인증서버(30)에 전달할 수 있도록 동작한다. 이를 위해서 사용자단말(20)에 설치된 인증 애플리케이션인 인증정보 통신모듈(22)은 사용자의 ID/PW, 생체인식정보, OTP, 인증서 등의 사용자정보를 수집하고, 수집된 사용자정보를 인증서버(30)에 전달한다.The user terminal (20) is a mobile device, tablet, etc. based on an OS (21) that can be easily operated by the user, and operates so that the user can transmit his/her own user information to the authentication server (30) to prove that the user has the right to install the software product during the process of installing the software product on the client (10). To this end, the authentication information communication module (22), which is an authentication application installed on the user terminal (20), collects user information such as the user's ID/PW, biometric information, OTP, and certificate, and transmits the collected user information to the authentication server (30).

사용자는 인증서버(20)에 계정을 생성해서 로그인 절차를 진행할 수 있고, 이 과정에서 인증서버(20)의 요청에 따라 사용자정보를 전달한다. 이외에도 소프트웨어 제품의 설치가 진행되는 클라이언트(10)로부터 설치 패키지의 인증정보 통신모듈(22)이 발송한 고유코드와 챌린지 정보를 수신하면, 사용자단말(20)의 인증정보 통신모듈(22)은 상기 고유코드 및 챌린지 정보와 함께 사용자정보를 인증서버(30)에 발송할 수 있다.A user can create an account on the authentication server (20) and proceed with the login procedure, and during this process, user information is transmitted at the request of the authentication server (20). In addition, when the authentication information communication module (22) of the installation package receives a unique code and challenge information from the client (10) where the software product is being installed, the authentication information communication module (22) of the user terminal (20) can transmit the user information along with the unique code and challenge information to the authentication server (30).

이외에도 사용자단말(20)의 인증정보 통신모듈(22)은 인증서버(20)로부터 인증코드를 수신하면, 상기 인증코드를 클라이언트(10)의 설치 패키지에 발송하는 중계 기능을 수행할 수 있다. 하지만, 사용자단말(20)의 전술한 중계 기능을 대신해서 인증서버(20)가 인증코드를 클라이언트(10)에 직접 발송할 수도 있다.In addition, the authentication information communication module (22) of the user terminal (20) may perform a relay function to send the authentication code to the installation package of the client (10) when receiving the authentication code from the authentication server (20). However, instead of the aforementioned relay function of the user terminal (20), the authentication server (20) may directly send the authentication code to the client (10).

인증서버(30)는 일반적인 서버와 같이 OS(31)를 기반으로 실행되고, 클라이언트(10)와 사용자단말(20)로부터 수신한 고유코드와 챌린지 정보와 사용자정보를 설정된 프로세스에 따라 조합해서 인증코드를 생성하도록 설계된다. 또한, 인증서버(30)는 상기 인증코드를 사용자단말(20) 또는 클라이언트(10)에 발송한다. 인증서버(30)는, 고유코드와 챌린지 정보와 사용자정보를 근거로 인증코드를 생성하기 위한 본 발명의 필수 정보인 소프트웨어 제품별 고유코드와 파일 검증 해시와 사용자정보와 보안코드를 저장하는 권한정보 저장부(32)와, 소프트웨어 제품의 설치 이력을 저장하는 설치이력 로그저장부(33)와, 클라이언트(10)와 사용자단말(20)로부터 수신한 고유코드와 챌린지 정보와 사용자정보를 조합해서 인증코드를 생성하는 인증모듈(34)을 구성한다.The authentication server (30) is designed to run on the basis of an OS (31) like a general server, and to generate an authentication code by combining a unique code, challenge information, and user information received from a client (10) and a user terminal (20) according to a set process. In addition, the authentication server (30) sends the authentication code to the user terminal (20) or the client (10). The authentication server (30) comprises an authority information storage unit (32) that stores a unique code, a file verification hash, user information, and a security code for each software product, which are essential information of the present invention for generating an authentication code based on the unique code, challenge information, and user information; an installation history log storage unit (33) that stores the installation history of the software product; and an authentication module (34) that generates an authentication code by combining the unique code, challenge information, and user information received from the client (10) and the user terminal (20).

이상 설명한 인증 시스템의 각 구성인 클라이언트(10)와 사용자단말(20)과 인증서버(30)에 대해 본 발명에 따른 인증 방법의 실시 예를 설명하면서 상세히 한다.The following describes in detail an embodiment of an authentication method according to the present invention for each component of the authentication system described above, namely a client (10), a user terminal (20), and an authentication server (30).

도 3은 본 발명에 따른 인증 시스템을 이용해서 실행되는 인증 방법의 일실시 예를 도시한 플로차트이다.FIG. 3 is a flowchart illustrating an example of an authentication method executed using an authentication system according to the present invention.

도 1 내지 도 3을 참조하면, 본 발명에 따른 인증 방법은, 사용자정보 등록 단계(S11)와 정보 통신 단계(S12)와 사용자 권한 확인 단계(S13)와 인증코드 생성 단계(S14)와 패키지 설치 단계(S15)를 포함하고, 이와 더불어 해당 소프트웨어 제품의 설치 이력을 로그로 기록하는 설치 이력정보 저장 단계(S16)를 더 포함한다.Referring to FIGS. 1 to 3, the authentication method according to the present invention includes a user information registration step (S11), an information communication step (S12), a user authority confirmation step (S13), an authentication code generation step (S14), and a package installation step (S15), and further includes an installation history information storage step (S16) that records the installation history of the corresponding software product as a log.

S11 : 사용자정보 등록 단계S11: User information registration stage

본 발명에 따른 인증 방법은, 소프트웨어 제품 설치를 위한 설치 패키지가 저장된 클라이언트(10)와, 사용자정보가 저장된 사용자단말(20)과, 상기 설치 패키지 실행의 인증 기능을 수행하는 인증서버(30)가 상호 통신하도록 구성된 인증 시스템에서, 인증서버(30)에는 소프트웨어 제품 제작 시 소프트웨어 제품별로 고유코드가 권한정보 저장부(32)에 등록된다. The authentication method according to the present invention is an authentication system configured to allow a client (10) storing an installation package for installing a software product, a user terminal (20) storing user information, and an authentication server (30) performing an authentication function for executing the installation package to communicate with each other, wherein, when the software product is manufactured, a unique code for each software product is registered in the authorization information storage unit (32) of the authentication server (30).

이후, 소프트웨어 제품 구매 시 또는 소프트웨어 제품의 설치 책임자가 지정되면 인증서버(30)의 권한정보 저장부(32)에는 권한 사용자의 사용자정보가 해당 고유코드와 셋(Set)으로 등록된다. 추가적으로 설치 패키지의 암호화된 패키지 데이터를 복호화하기 위해서 소프트웨어 제품 정보인 파일 검증 해시와 보안코드 또한 인증서버(30)의 권한정보 저장부(32)에 등록된다. Thereafter, when purchasing a software product or when a person responsible for installing the software product is designated, the user information of the authorized user is registered as a set with the corresponding unique code in the authorization information storage unit (32) of the authentication server (30). Additionally, in order to decrypt the encrypted package data of the installation package, the file verification hash and security code, which are software product information, are also registered in the authorization information storage unit (32) of the authentication server (30).

따라서, 소프트웨어 제품은 인증서버(30)에 등록된 사용자정보가 입력되어야만 클라이언트(10)에 설치할 수 있으므로, 등록된 사용자정보의 사용자 이외에는 해당 소프트웨어 제품을 무단 설치할 수 없다. Accordingly, since the software product can be installed on the client (10) only when the user information registered in the authentication server (30) is entered, the software product cannot be installed without permission by anyone other than the user of the registered user information.

S12 : 정보 통신 단계S12: Information and Communication Stage

클라이언트(10)에 소프트웨어 제품을 설치하기 위해서 인증서버(30)가 수신하도록, 클라이언트(10)는 소프트웨어 제품의 고유코드와 챌린지 정보를 발송하고, 사용자단말(20)이 사용자정보를 발송한다.In order to install a software product on a client (10), the client (10) sends a unique code and challenge information of the software product so that the authentication server (30) receives it, and the user terminal (20) sends user information.

전술한 바와 같이 사용자단말(20)의 인증 애플리케이션인 인증정보 통신모듈(22)은 사용자의 조작을 통해 사용자정보를 수집하고 인증서버(30)에 발송한다. 이와 더불어서, 본 실시 예의 인증정보 통신모듈(22)은 클라이언트(10)의 인증 애플리케이션인 설치 패키지 실행모듈(131)이 발송한 설치 패키지의 고유코드(소프트웨어 제품의 고유코드)와 챌린지 정보를 수신하고, 사용자정보와 함께 인증서버(30)에 발송할 수 있다. 결국 사용자단말(20)은 사용자정보와 고유코드와 챌린지 정보를 인증서버(30)에 전송하는 중계 기능을 수행한다.As described above, the authentication information communication module (22), which is the authentication application of the user terminal (20), collects user information through user operation and sends it to the authentication server (30). In addition, the authentication information communication module (22) of the present embodiment can receive the unique code (unique code of the software product) and challenge information of the installation package sent by the installation package execution module (131), which is the authentication application of the client (10), and send them to the authentication server (30) together with the user information. Ultimately, the user terminal (20) performs a relay function of transmitting the user information, the unique code, and the challenge information to the authentication server (30).

한편, 본 실시 예에서 클라이언트(10)에 설치된 설치 패키지 실행모듈(131)은 고유코드와 챌린지 정보 중 하나 이상을 QR코드로 출력하거나, 상기 고유코드와 챌린지 정보를 텍스트로 출력한다. 따라서 사용자는 사용자단말(20)을 이용해서 클라이언트(10)에 출력된 QR코드를 촬영해서 고유코드와 챌린지 정보 중 하나 이상을 수집하거나, 클라이언트(10)에 출력된 고유코드와 챌린지 정보를 사용자의 자판 조작을 통해 텍스트 입력으로 수집할 수 있다.Meanwhile, in the present embodiment, the installation package execution module (131) installed on the client (10) outputs at least one of the unique code and challenge information as a QR code, or outputs the unique code and challenge information as text. Accordingly, the user can collect at least one of the unique code and challenge information by taking a picture of the QR code output on the client (10) using the user terminal (20), or can collect the unique code and challenge information output on the client (10) as text input through the user's keyboard operation.

결국, 클라이언트(10)와 사용자단말(20) 간에 유,무선 통신이 가능한 상태에서는 클라이언트(10)의 설치 패키지 실행모듈(131)은 고유코드와 챌린지 정보를 데이터 통신으로 발송해서 사용자단말(20)의 인증정보 통신모듈(22)이 수신한다. 그러나 클라이언트(10)와 사용자단말(20) 간에 유,무선 통신이 불가능한 상태인 경우에도 설치 패키지 실행모듈(131)이 출력한 QR코드 또는 텍스트를 사용자가 확인하고 사용자단말(20)을 조작해 입력해서 인증정보 통신모듈(22)이 수신할 수 있다.Ultimately, when wired or wireless communication is possible between the client (10) and the user terminal (20), the installation package execution module (131) of the client (10) sends a unique code and challenge information via data communication, which are then received by the authentication information communication module (22) of the user terminal (20). However, even when wired or wireless communication is not possible between the client (10) and the user terminal (20), the user can check the QR code or text output by the installation package execution module (131) and input it by operating the user terminal (20), so that the authentication information communication module (22) can receive it.

전술한 바와 같이, 클라이언트(10)에 저장된 설치 패키지의 고유코드와 챌린지 정보는 사용자단말(20)을 통해 인증서버(30)에 전달될 수도 있으나, 이외에도 클라이언트(10)의 설치 패키지 실행모듈(131)은 고유코드와 챌린지 정보를 인증서버(30)에 직접 발송할 수 있다. 이 경우, 본 실시 예에서 인증서버(30)의 인증모듈(34)은 생성된 인증코드를 클라이언트(10)에 직접 발송한다. As described above, the unique code and challenge information of the installation package stored in the client (10) may be transmitted to the authentication server (30) via the user terminal (20), but in addition, the installation package execution module (131) of the client (10) may directly send the unique code and challenge information to the authentication server (30). In this case, in the present embodiment, the authentication module (34) of the authentication server (30) directly sends the generated authentication code to the client (10).

참고로, 사용자가 클라이언트(10)에 소프트웨어 제품을 설치하기 위해서 자신의 로그인 계정으로 인증서버(30)에 로그인하고, 지정 사용자 여부를 확인하기 위해서 OTP 또는 모바일 인증 등의 절차를 진행하면, 인증모듈(34)은 해당 클라이언트(10)의 설치 패키지 실행모듈(131)에 요청해서 고유코드와 챌린지 정보를 수신할 수 있다. 이외에도 사용자가 클라이언트(10)를 조작해서 설치 패키지 실행모듈(131)이 고유코드와 챌린지 정보를 인증서버(30)에 발송하면, 고유코드와 챌린지 정보를 수신한 인증모듈(34)은 해당 사용자를 확인해서 사용자단말(20)에 사용자정보 요청데이터를 발송하고, 사용자단말(20)의 인증정보 통신모듈(22)은 사용자에게 통지해서 사용자정보를 수집하고 인증서버(30)에 발송할 수 있다.For reference, when a user logs in to the authentication server (30) with his/her login account to install a software product on the client (10) and performs a procedure such as OTP or mobile authentication to confirm whether the user is a designated user, the authentication module (34) may request the installation package execution module (131) of the client (10) to receive a unique code and challenge information. In addition, when the user operates the client (10) so that the installation package execution module (131) sends a unique code and challenge information to the authentication server (30), the authentication module (34) that receives the unique code and challenge information verifies the user and sends user information request data to the user terminal (20), and the authentication information communication module (22) of the user terminal (20) may notify the user to collect user information and send it to the authentication server (30).

설치 패키지 실행모듈(131)이 고유코드와 챌린지 정보를 인증서버(30)에 직접 발송한 경우에도 인증모듈(34)은 인증코드를 사용자단말(20)에 발송할 수 있고, 사용자단말(20)의 인증정보 통신모듈(22)은 인증서버(30)에서 수신한 인증코드를 해당 클라이언트(10)의 설치부(13)에 발송할 수 있다.Even if the installation package execution module (131) directly sends the unique code and challenge information to the authentication server (30), the authentication module (34) can send the authentication code to the user terminal (20), and the authentication information communication module (22) of the user terminal (20) can send the authentication code received from the authentication server (30) to the installation unit (13) of the client (10).

한편, 인증서버(30)의 권한정보 저장부(32)는 파일 검증 해시와 보안코드를 저장한다. 또한 정보 통신 단계(S12)에서, 클라이언트(10)에 소프트웨어 제품을 설치하기 위한 설치 패키지 실행 시 SHA256 알고리즘을 기반으로 설치 패키지의 파일 해시와 파일 검증 해시를 비교하는 단계와, 상기 파일 해시의 정상을 확인하면 챌린지 정보를 생성하는 단계와, 설치 패키지의 고유코드와 챌린지 정보를 발송하는 단계를 포함한다. Meanwhile, the authorization information storage unit (32) of the authentication server (30) stores the file verification hash and security code. In addition, in the information communication step (S12), when executing the installation package for installing a software product on the client (10), the step of comparing the file hash of the installation package and the file verification hash based on the SHA256 algorithm, the step of generating challenge information when the file hash is confirmed to be normal, and the step of sending the unique code and challenge information of the installation package are included.

전술한 바와 같이, 클라이언트(10)의 설치 패키지 실행모듈(131)은 소프트웨어 제품 설치를 위해서 고유코드와 챌린지 정보를 발송한다. 여기서 고유코드는 소프트웨어 제품을 식별하기 위한 ID에 해당하며, 설치 패키지에 패키지 정보 데이터에 구성된다. 따라서 설치 패키지 실행모듈(131)은 설치 패키지의 고정된 고유코드를 패키지 정보 데이터에서 검색한다. 이에 반해 챌린지 정보는 소프트웨어 제품 설치를 위한 설치 패키지 실행 시, 설치 패키지 실행모듈(131)이 랜덤하게 생성한다. As described above, the installation package execution module (131) of the client (10) sends a unique code and challenge information for software product installation. Here, the unique code corresponds to an ID for identifying the software product and is configured in the package information data of the installation package. Accordingly, the installation package execution module (131) searches for the fixed unique code of the installation package from the package information data. In contrast, the challenge information is randomly generated by the installation package execution module (131) when executing the installation package for software product installation.

챌린지 정보의 랜덤한 생성을 위해서, 설치 패키지 실행모듈(131)은 설치 패키지의 정상 여부를 판단한다. 이를 위해서 설치 패키지 실행모듈(131)은 설치 패키지에서 파일 검증 해시를 제외한 모든 부분인 파일 해시(SHA256)를 확인하고, SHA256 - SHA256해시 알고리즘을 수행해서 계산된 파일 해시와 파일 검증 해시를 비교한다. 상기 비교 결과 설치 패키지가 정상인 것으로 확인되면, 8Byte의 랜덤한 바이트 코드인 챌린지 정보를 생성한 후, 32 Bytes의 설치 패키지의 고유코드와 8 Bytes의 챌린지 정보를 발송한다.To randomly generate challenge information, the installation package execution module (131) determines whether the installation package is normal. To this end, the installation package execution module (131) checks the file hash (SHA256), which is all parts of the installation package except the file verification hash, and compares the file hash calculated by performing the SHA256 - SHA256 hash algorithm with the file verification hash. If the installation package is confirmed to be normal as a result of the comparison, the challenge information, which is a random byte code of 8 bytes, is generated, and then the unique code of the installation package of 32 bytes and the challenge information of 8 bytes are sent.

S13 : 사용자 권한 확인 단계S13: User Permission Verification Step

인증서버(30)는 수신한 사용자정보 및 고유코드를 인증서버에 등록된 사용자정보 및 고유코드와 비교해서 해당 설치 패키지의 실행 권한 유무를 확인한다.The authentication server (30) compares the received user information and unique code with the user information and unique code registered in the authentication server to check whether the installation package has execution authority.

전술한 바와 같이, 인증서버(30)는 소프트웨어 제품별 고유코드와 파일 검증 해시와 사용자정보와 보안코드를 권한정보 저장부(32)에 저장하므로, 인증모듈(34)은 클라이언트(10)와 사용자단말(20)에서 수신한 사용자정보와 고유코드를 권한정보 저장부(32)에 저장된 사용자정보 및 고유코드와 비교한다. 성가 비교 결과, 인증서버(30)가 수신한 사용자정보와 보안코드가 권한정보 저장부(32)에 저장된 정보와 일치하면, 클라이언트(10)에서 소프트웨어 제품의 설치 시도는 정당한 것으로 판단하고 후속 단계를 진행한다. As described above, the authentication server (30) stores a unique code for each software product, a file verification hash, user information, and a security code in the authorization information storage unit (32), so the authentication module (34) compares the user information and unique code received from the client (10) and the user terminal (20) with the user information and unique code stored in the authorization information storage unit (32). As a result of the comparison, if the user information and security code received by the authentication server (30) match the information stored in the authorization information storage unit (32), the client (10) determines that the attempt to install the software product is legitimate and proceeds to the next step.

그러나 인증서버(30)가 수신한 사용자정보와 보안코드가 권한정보 저장부(32)에 저장된 정보와 불일치한 것으로 확인되면, 해당 설치 시도는 부당한 것으로 판단하고, 설치 패키지에 구성된 암호화된 패키지 데이터의 복호화를 위한 후속 단계를 중단한다.However, if the user information and security code received by the authentication server (30) are confirmed to be inconsistent with the information stored in the authorization information storage unit (32), the installation attempt is judged to be invalid, and the subsequent steps for decrypting the encrypted package data configured in the installation package are stopped.

S15 : 인증코드 생성 단계S15: Authentication code generation step

사용자단말(20)의 사용자정보에 대한 사용자 권한이 확인되면, 인증서버(30)는 챌린지 정보와 고유코드를 근거로 인증코드를 생성해서 클라이언트(10)가 수신하도록 발송한다.When user authority for user information of the user terminal (20) is confirmed, the authentication server (30) generates an authentication code based on the challenge information and a unique code and sends it to the client (10) for receipt.

이와 관련해서 좀 더 구체적으로 설명하면, 인증모듈(34)은 클라이언트(10)로부터 수신한 고유코드에 해당하는 파일 검증 해시와 보안코드를 권한정보 저장부(32)에서 검색한다. 해당하는 파일 검증 해시와 보안코드가 검색되면, 인증모듈(34)은 인증코드 생성을 위한 소스코드인 '인증코드=HMAC_SHA256(파일 검증 해시, 챌린지 정보)[0, 8] xor 보안코드'에 따라 파일 검증 해시를 키로 사용해서 챌린지 정보를 MAC_SHA256 알고리즘으로 처리하고, 보안코드와의 XOR 연산을 통해 인증코드를 생성한다. 참고로, 상기 소스코드에서 "[0, 8]"은 해시 처리한 32 바이트 중 앞의 8바이트만 사용하도록 제한한 명령값이다.In more detail, the authentication module (34) searches for the file verification hash and security code corresponding to the unique code received from the client (10) in the authority information storage unit (32). When the corresponding file verification hash and security code are searched, the authentication module (34) processes the challenge information with the MAC_SHA256 algorithm using the file verification hash as a key according to the source code for generating the authentication code, 'Authentication code = HMAC_SHA256 (file verification hash, challenge information) [0, 8] xor security code', and generates an authentication code through an XOR operation with the security code. For reference, "[0, 8]" in the above source code is a command value that restricts the use of only the first 8 bytes of the hashed 32 bytes.

인증모듈(34)은 생성된 인증코드를 사용자단말(20)에 발송하거나, 클라이언트(10)에 직접 발송한다. 사용자단말(20)이 인증코드를 수신한 경우, 사용자단말(20)의 인증정보 통신모듈(22)은 인증코드를 클라이언트(10)에 발송한다.The authentication module (34) sends the generated authentication code to the user terminal (20) or directly to the client (10). When the user terminal (20) receives the authentication code, the authentication information communication module (22) of the user terminal (20) sends the authentication code to the client (10).

S16 : 패키지 설치 단계S16: Package Installation Step

상기 설치 패키지가 인증서버(30)에서 수신한 인증코드를 근거로 복호화키를 생성해서 설치 패키지에 구성된 암호화된 패키지 데이터를 복호화하고 클라이언트(10)에 설치한다.The above installation package generates a decryption key based on the authentication code received from the authentication server (30), decrypts the encrypted package data configured in the installation package, and installs it on the client (10).

이와 관련해서 좀 더 구체적으로 설명하면, 클라이언트(10)의 복호화모듈(132)은 보안코드 생성을 위한 소스코드인 '보안코드(8bytes)=HMAC_SHA256(파일 검증 해시, 챌린지 정보)[0, 8] xor 인증코드'에 따라 파일 검증 해시를 키로 사용해서 챌린지 정보를 MAC_SHA256 알고리즘으로 처리하고 인증코드와의 XOR 연산을 통해 보안코드를 생성한다. 즉, 복호화모듈(132)은 인증서버(30)로부터 수신한 인증코드를 근거로 인증서버(30)에 저장된 보안코드를 도출하는 것이다.In this regard, to explain in more detail, the decryption module (132) of the client (10) processes the challenge information with the MAC_SHA256 algorithm using the file verification hash as a key according to the source code for generating the security code, 'security code (8 bytes) = HMAC_SHA256 (file verification hash, challenge information) [0, 8] xor authentication code', and generates a security code through an XOR operation with the authentication code. That is, the decryption module (132) derives the security code stored in the authentication server (30) based on the authentication code received from the authentication server (30).

보안코드가 확인되면, 복호화모듈(132)은 제1해시값 생성을 위한 소스코드인 '제1해시값=SHA256(보안코드 || 패키지 정보 데이터 || 더미데이터)'에 따라 보안코드와 설치 패키지의 패키지 정보 데이터와 더미데이터를 단일 데이터 스트림으로 연결해서 SHA256 알고리즘으로 제1해시값을 생성한다. 또한, 복호화모듈(132)은 복호화키 생성을 위한 소스코드인 '복호화키=제1해시값 xor 암호키 보정 데이터'에 따라 제1해시값을 설치 패키지의 암호키 보정 데이터와의 XOR 연산을 통해 복호화키를 생성한다. When the security code is verified, the decryption module (132) connects the security code and the package information data and dummy data of the installation package into a single data stream according to the source code for generating the first hash value, 'First hash value = SHA256 (security code || package information data || dummy data)', and generates the first hash value using the SHA256 algorithm. In addition, the decryption module (132) generates a decryption key through an XOR operation of the first hash value with the encryption key correction data of the installation package according to the source code for generating the decryption key, 'Decryption key = first hash value xor encryption key correction data'.

전술한 과정에 따라 복호화키가 생성되면, 복호화모듈(132)은 복호화키를 사용해서 인증코드를 확인하고, 암호화된 패키지 데이터의 복호화를 위한 복호화IV(Initial Vector)를 생성한다.When a decryption key is generated according to the process described above, the decryption module (132) verifies the authentication code using the decryption key and generates a decryption IV (Initial Vector) for decrypting the encrypted package data.

복호화IV 생성에 대해 좀 더 구체적으로 설명하면, 복호화모듈(132)은 소스코드인 '1차 IV = 16 bytes 0, 초기 복호화데이터=AES256_CBC_DECRYPT(복호화키, 1차 IV, 암호화된 패키지 데이터)'에 따라 설치 패키지의 암호화된 패키지 데이터를, '0'으로 초기화한 1차 IV와 복호화키를 사용해서 AES-256 암호화 알고리즘의 CBC(Cipher Block Chaining) 모드를 이용해 복호화하고 초기 복호화데이터로 생성한다. To explain the decryption IV generation in more detail, the decryption module (132) decrypts the encrypted package data of the installation package using the CBC (Cipher Block Chaining) mode of the AES-256 encryption algorithm using the primary IV initialized to '0' and the decryption key according to the source code 'primary IV = 16 bytes 0, initial decryption data = AES256_CBC_DECRYPT(decryption key, primary IV, encrypted package data)' and generates the initial decryption data.

이후, 복호화모듈(132)은 소스코드인 '제2해시값=HMAC_SHA256(복호화키, 초기 복호화데이터)'에 따라 복호화키를 키로 사용해서 초기 복호화데이터를 MAC_SHA256 알고리즘으로 제2해시값을 생성한다. 복호화모듈(132)은 생성된 제2해시값과 설치 패키지의 암호키 검증 해시를 비교해서 서로 불일치하면 암호화된 패키지 데이터의 복호화 과정을 종료한다. 이에 관해 좀 더 설명하면, 상기 제2해시값과 암호키 검증 해시가 불일치한다는 것은, 복호화모듈(132)이 상기 챌린지 정보 및 인증코드를 변수로 해서 소스코드에 따라 생성한 복호화키가 비정상임을 의미하므로, 인증서버(30)에서 수신한 인증코드가 설치 패키지가 생성한 챌린지 정보에 근거하지 않은 것으로 추정하여 복호화 과정을 종료한다.Afterwards, the decryption module (132) uses the decryption key as a key according to the source code 'second hash value = HMAC_SHA256 (decryption key, initial decryption data)' to generate a second hash value using the MAC_SHA256 algorithm on the initial decrypted data. The decryption module (132) compares the generated second hash value with the encryption key verification hash of the installation package, and if they do not match, the decryption process of the encrypted package data is terminated. To explain this in more detail, the fact that the second hash value and the encryption key verification hash do not match means that the decryption key generated by the decryption module (132) according to the source code using the challenge information and authentication code as variables is abnormal, and therefore, the authentication code received from the authentication server (30) is assumed to be not based on the challenge information generated by the installation package, and the decryption process is terminated.

상기 제2해시값과 암호키 검증 해시가 서로 일치한 것으로 확인되면, 복호화모듈(132)은 소스코드인 '복호화IV = 2차 IV xor IV 보정 데이터'에 따라 2차 IV를 설치 패키지의 IV 보정 데이터와의 XOR 연산을 통해 복호화IV를 생성한다. 여기서 상기 2차 IV는 1차 IV를 AES-256 암호화 알고리즘의 CBC 모드로 복호화해서 변경된 IV 변수값이다.If it is confirmed that the above second hash value and the encryption key verification hash match, the decryption module (132) generates a decryption IV through an XOR operation of the second IV with the IV correction data of the installation package according to the source code 'decryption IV = second IV xor IV correction data'. Here, the second IV is an IV variable value changed by decrypting the first IV in the CBC mode of the AES-256 encryption algorithm.

이후, 복호화모듈(132)은 암호화된 패키지 데이터를 복호화키와 복호화IV를 사용해서 복호화하고 클라이언트에 설치한다. 이를 위해서 복호화모듈(132)은 소스코드인 '복호화 데이터=AES256_CBC_PKCS7Padding_DECRYPT(복호화키, 복호화IV, 암호화된 패키지 데이터)'에 따라 상기 복호화키와 복호화IV를 사용해서 AES-256 암호화 알고리즘의 CBC(Cipher Block Chaining) 모드와 PKCS7 패딩을 이용해 암호화된 패키지 데이터를 복호화 데이터로 완성한다.Afterwards, the decryption module (132) decrypts the encrypted package data using the decryption key and decryption IV and installs it on the client. To this end, the decryption module (132) uses the decryption key and decryption IV according to the source code 'decryption data = AES256_CBC_PKCS7Padding_DECRYPT (decryption key, decryption IV, encrypted package data)' to complete the encrypted package data into decryption data using the CBC (Cipher Block Chaining) mode of the AES-256 encryption algorithm and PKCS7 padding.

이상 설명한 과정에 따라 설치 패키지의 복호화모듈(132)은 사용자의 권한 여부와, 챌린지 정보를 근거로 상기 암호화된 패키지 데이터의 복호화 과정을 정상적으로 수행하므로, 클라이언트(10)에 저장된 고유한 소프트웨어 제품은 지정된 권한 사용자만이 해당 클라이언트(10)에 설치할 수 있게 된다.According to the process described above, the decryption module (132) of the installation package normally performs the decryption process of the encrypted package data based on the user's authority and challenge information, so that the unique software product stored in the client (10) can be installed on the client (10) only by a designated authorized user.

본 발명에 따른 인증 방법은 사용자 권한 확인 단계(S13) 이후 소프트웨어 제품의 설치이력정보를 생성 및 저장하는 설치이력정보 저장 단계(S14)를 더 포함한다. 이를 위해서 인증서버(30)는 설치이력정보가 저장되는 설치이력 로그저장부(33)를 포함한다. 이에 관해 좀 더 구체적으로 설명하면, 소프트웨어 제품을 클라이언트(10)에 설치하기 위해서는 인증서버(30)는 설치 패키지의 요청에 따라 인증코드를 생성 및 발급해야 하므로, 인증모듈(34)은 이에 관한 이력을 설치이력정보로 생성해서 설치이력 로그저장부(33)에 저장한다. 본 실시 예에서 상기 설치이력정보는 인증코드 생성 일시, 설치 대상 소프트웨어 제품의 고유코드, 사용자정보 등을 포함한다. The authentication method according to the present invention further includes an installation history information storage step (S14) for generating and storing installation history information of a software product after the user authority confirmation step (S13). For this purpose, the authentication server (30) includes an installation history log storage unit (33) in which the installation history information is stored. To explain this in more detail, in order to install a software product on a client (10), the authentication server (30) must generate and issue an authentication code according to a request from the installation package, and therefore, the authentication module (34) generates a history related to this as installation history information and stores it in the installation history log storage unit (33). In the present embodiment, the installation history information includes the date and time of authentication code generation, a unique code of the software product to be installed, user information, etc.

결국, 관리자는 설치이력정보에 저장된 고유코드를 통해 소프트웨어 제품의 종류와, 버전, 인증코드 생성 일자 등을 상세히 확인할 수 있고, 어느 사용자가 해당 소프트웨어 제품을 설치했는지도 확인할 수 있다.Ultimately, the administrator can check the type, version, and authentication code generation date of the software product in detail through the unique code stored in the installation history information, and can also check which user installed the software product.

이상 설명한 권한정보 저장부(32)와 설치이력 로그저장부(33)의 저장데이터를 통해 관리자는 소프트웨어 제품의 설치를 시도하는 사용자를 통제하고, 설치 권한이 부여된 사용자 등록과, 삭제 및 설치 권한이 제한된 사용자 리스트를 작성할 수 있다. 또한, 소프트웨어 제품을 설치할 수 있는 사용자의 권한 기간을 설정할 수 있다. 또한, 문제가 발생된 소프트웨어 제품에 대해서는 설치를 제한할 수도 있다.Using the storage data of the authority information storage unit (32) and the installation history log storage unit (33) described above, the administrator can control users attempting to install software products, register users granted installation rights, and create a list of users with restricted installation and deletion rights. Furthermore, the administrator can set the authorization period for users who can install software products. Furthermore, installation of software products that have encountered problems can be restricted.

앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예들을 참조해 설명했지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the detailed description of the present invention described above has been described with reference to preferred embodiments of the present invention, it will be understood by those skilled in the art or having ordinary knowledge in the art that various modifications and changes can be made to the present invention without departing from the spirit and technical scope of the present invention as set forth in the claims to be described later.

Claims (8)

소프트웨어 제품 설치를 위한 설치 패키지가 저장된 클라이언트와, 사용자정보가 저장된 사용자단말과, 상기 설치 패키지 실행의 인증 기능을 수행하는 인증서버가 상호 통신하도록 구성된 인증 시스템에서, 상기 인증서버에 권한 사용자의 사용자정보와 소프트웨어 제품의 고유코드가 등록되는 사용자정보 등록 단계;
클라이언트에 소프트웨어 제품을 설치하기 위해서 인증서버가 수신하도록, 상기 클라이언트가 설치 패키지의 고유코드와 챌린지 정보를 발송하고, 상기 사용자단말이 사용자정보를 발송하는 정보 통신 단계;
상기 인증서버가 수신한 사용자정보 및 고유코드를 인증서버에 등록된 사용자정보 및 고유코드와 비교해서 해당 설치 패키지의 실행 권한 유무를 확인하는 사용자 권한 확인 단계;
상기 사용자단말의 사용자정보에 대한 사용자 권한이 확인되면, 상기 인증서버는 챌린지 정보와 고유코드를 근거로 인증코드를 생성해서 클라이언트가 수신하도록 발송하는 인증코드 생성 단계; 및
상기 설치 패키지가 인증코드를 근거로 복호화키를 생성해서 설치 패키지에 구성된 암호화된 패키지 데이터를 복호화하고 클라이언트에 설치하는 패키지 설치 단계;
를 포함하는 것을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In an authentication system configured to allow a client storing an installation package for installing a software product, a user terminal storing user information, and an authentication server performing an authentication function for executing the installation package to communicate with each other, a user information registration step in which user information of an authorized user and a unique code of a software product are registered in the authentication server;
An information communication step in which the client sends a unique code and challenge information of an installation package so that the authentication server receives them in order to install a software product on the client, and the user terminal sends user information;
A user authorization verification step for comparing the user information and unique code received by the authentication server with the user information and unique code registered in the authentication server to check whether the installation package has execution authority;
When the user authority for the user information of the user terminal is confirmed, the authentication server generates an authentication code based on the challenge information and the unique code and sends it to the client for receipt; and
A package installation step in which the above installation package generates a decryption key based on the authentication code, decrypts the encrypted package data configured in the installation package, and installs it on the client;
An authentication method for restricting unauthorized installation of a software product, characterized in that it includes:
제 1 항에 있어서,
상기 정보 통신 단계에서, 상기 설치 패키지의 고유코드와 챌린지 정보를 사용자단말에 발송하고, 상기 사용자단말이 고유코드와 챌린지 정보와 사용자정보를 인증서버에 발송하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In the first paragraph,
In the above information communication step, the unique code and challenge information of the installation package are sent to the user terminal, and the user terminal sends the unique code, challenge information, and user information to the authentication server;
An authentication method that restricts unauthorized installation of software products featuring .
제 2 항에 있어서,
상기 정보 통신 단계에서, 상기 설치 패키지는 고유코드와 챌린지 정보 중 하나 이상을 QR코드로 출력하거나, 상기 고유코드와 챌린지 정보를 텍스트로 출력하고, 상기 사용자단말은 QR코드를 촬영해서 고유코드와 챌린지 정보 중 하나 이상을 수집하거나, 텍스트 입력으로 수집하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In the second paragraph,
In the above information communication step, the installation package outputs at least one of the unique code and challenge information as a QR code, or outputs the unique code and challenge information as text, and the user terminal collects at least one of the unique code and challenge information by taking a picture of the QR code, or by inputting text;
An authentication method that restricts unauthorized installation of software products featuring .
제 1 항에 있어서,
상기 정보 통신 단계에서, 상기 설치 패키지는 고유코드와 챌린지 정보를 인증서버에 직접 발송하고;
상기 인증코드 생성 단계에서, 상기 인증서버는 인증코드를 클라이언트에 직접 발송하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In the first paragraph,
In the above information communication step, the installation package directly sends a unique code and challenge information to the authentication server;
In the above authentication code generation step, the authentication server directly sends the authentication code to the client;
An authentication method that restricts unauthorized installation of software products featuring .
제 1 항에 있어서,
상기 인증 시스템의 인증서버는 파일 검증 해시와 보안코드를 더 저장하고;
상기 정보 통신 단계는, 상기 클라이언트에 소프트웨어 제품을 설치하기 위한 설치 패키지 실행 시 SHA256 알고리즘을 기반으로 설치 패키지의 파일 해시와 파일 검증 해시를 비교하는 단계와, 상기 파일 해시의 정상을 확인하면 챌린지 정보를 생성하는 단계와, 설치 패키지의 고유코드와 챌린지 정보를 발송하는 단계를 포함하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In the first paragraph,
The authentication server of the above authentication system further stores the file verification hash and security code;
The above information communication step includes a step of comparing a file hash of the installation package and a file verification hash based on the SHA256 algorithm when executing an installation package for installing a software product on the client, a step of generating challenge information when the file hash is confirmed to be normal, and a step of sending a unique code of the installation package and the challenge information;
An authentication method that restricts unauthorized installation of software products featuring .
제 5 항에 있어서,
상기 인증코드 생성 단계는, 입력된 고유코드에 해당하는 파일 검증 해시와 보안코드를 검색하는 단계와, 상기 파일 검증 해시를 키로 사용해서 챌린지 정보를 MAC_SHA256 알고리즘으로 처리하고 보안코드와의 XOR 연산을 통해 인증코드를 생성하는 단계를 포함하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In paragraph 5,
The above authentication code generation step includes a step of searching for a file verification hash and a security code corresponding to the input unique code, and a step of processing challenge information with a MAC_SHA256 algorithm using the file verification hash as a key and generating an authentication code through an XOR operation with the security code;
An authentication method that restricts unauthorized installation of software products featuring .
제 6 항에 있어서,
상기 패키지 설치 단계는, 상기 파일 검증 해시를 키로 사용해서 챌린지 정보를 MAC_SHA256 알고리즘으로 처리하고 인증코드와의 XOR 연산을 통해 보안코드를 생성하는 단계와, 상기 보안코드와 설치 패키지의 패키지 정보 데이터와 더미데이터를 단일 데이터 스트림으로 연결해서 SHA256 알고리즘으로 제1해시값을 생성하는 단계와, 상기 제1해시값을 설치 패키지의 암호키 보정 데이터와의 XOR 연산을 통해 복호화키를 생성하는 단계와, 상기 복호화키를 사용해서 인증코드를 확인하고 암호화된 패키지 데이터의 복호화를 위한 복호화IV(Initial Vector)를 생성하는 단계와, 상기 암호화된 패키지 데이터를 복호화키와 복호화IV를 사용해서 복호화하고 클라이언트에 설치하는 단계를 포함하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.
In paragraph 6,
The above package installation step includes a step of processing challenge information with a MAC_SHA256 algorithm using the file verification hash as a key and generating a security code through an XOR operation with an authentication code, a step of connecting the security code and package information data and dummy data of the installation package into a single data stream and generating a first hash value with a SHA256 algorithm, a step of generating a decryption key through an XOR operation of the first hash value with encryption key correction data of the installation package, a step of verifying the authentication code using the decryption key and generating a decryption IV (Initial Vector) for decrypting encrypted package data, and a step of decrypting the encrypted package data using the decryption key and the decryption IV and installing the data on a client;
An authentication method that restricts unauthorized installation of software products featuring .
제 7 항에 있어서,
상기 복호화IV를 생성하는 단계는, 상기 암호화된 패키지 데이터를, '0'으로 초기화한 1차 IV와 상기 복호화키를 사용해서 AES-256 암호화 알고리즘의 CBC(Cipher Block Chaining) 모드를 이용해 복호화하고 초기 복호화데이터로 생성하는 단계와, 상기 복호화키를 키로 사용해서 초기 복호화데이터를 MAC_SHA256 알고리즘으로 제2해시값을 생성하는 단계와, 상기 제2해시값과 설치 패키지의 암호키 검증 해시를 비교해서 서로 불일치하면 암호화된 패키지 데이터의 복호화 과정을 종료하는 단계와, 상기 제2해시값과 암호키 검증 해시가 서로 일치하면 1차 IV를 AES-256 암호화 알고리즘의 CBC 모드로 복호화해서 변경된 IV 변수값인 2차 IV를 설치 패키지의 IV 보정 데이터와의 XOR 연산을 통해 복호화IV를 생성하는 단계를 포함하는 것;
을 특징으로 하는 소프트웨어 제품의 무단 설치를 제한하는 인증 방법.

In paragraph 7,
The step of generating the decrypted IV includes the steps of: decrypting the encrypted package data using the CBC (Cipher Block Chaining) mode of the AES-256 encryption algorithm using the first IV initialized to '0' and the decryption key, and generating initial decrypted data; the step of generating a second hash value of the initial decrypted data using the MAC_SHA256 algorithm using the decryption key as a key; the step of comparing the second hash value with the encryption key verification hash of the installation package and terminating the decryption process of the encrypted package data if they do not match; and the step of decrypting the first IV in the CBC mode of the AES-256 encryption algorithm and performing an XOR operation on the second IV, which is a changed IV variable value, with the IV correction data of the installation package if the second hash value and the encryption key verification hash do match, to generate the decrypted IV;
An authentication method that restricts unauthorized installation of software products featuring .

KR1020250050495A 2025-04-17 2025-04-17 Authentication methods and authentication systems that restrict unauthorized installation of software products Active KR102854414B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020250050495A KR102854414B1 (en) 2025-04-17 2025-04-17 Authentication methods and authentication systems that restrict unauthorized installation of software products

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020250050495A KR102854414B1 (en) 2025-04-17 2025-04-17 Authentication methods and authentication systems that restrict unauthorized installation of software products

Publications (1)

Publication Number Publication Date
KR102854414B1 true KR102854414B1 (en) 2025-09-04

Family

ID=97068550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020250050495A Active KR102854414B1 (en) 2025-04-17 2025-04-17 Authentication methods and authentication systems that restrict unauthorized installation of software products

Country Status (1)

Country Link
KR (1) KR102854414B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070100069A (en) * 2006-04-06 2007-10-10 삼성전자주식회사 Apparatus and method for software installation
KR20150101833A (en) * 2014-02-27 2015-09-04 박경란 The software license authentication apparatus and the method of using the portable terminal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070100069A (en) * 2006-04-06 2007-10-10 삼성전자주식회사 Apparatus and method for software installation
KR20150101833A (en) * 2014-02-27 2015-09-04 박경란 The software license authentication apparatus and the method of using the portable terminal

Similar Documents

Publication Publication Date Title
CN101174295B (en) Off-line DRM authentication method and system
CN102426640B (en) For the fail-safe software product identifiers of Product Validation and activation
US7526654B2 (en) Method and system for detecting a secure state of a computer system
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
US7270193B2 (en) Method and system for distributing programs using tamper resistant processor
EP1942430B1 (en) Token Passing Technique for Media Playback Devices
KR100615021B1 (en) How to distribute / receive content
US8321924B2 (en) Method for protecting software accessible over a network using a key device
US20110113235A1 (en) PC Security Lock Device Using Permanent ID and Hidden Keys
US20050044359A1 (en) Anti-piracy software protection system and method
CN109412812B (en) Data security processing system, method, device and storage medium
CN104639506B (en) Method, system and the terminal for carrying out management and control are installed to application program
CN116781359B (en) Portal security design method using network isolation and cryptograph
US8204233B2 (en) Administration of data encryption in enterprise computer systems
WO2011001371A2 (en) Method for remotely controlling and monitoring the data produced on desktop on desktop software
CN110096849A (en) A kind of License authorization and authentication method, device, equipment and readable storage medium storing program for executing
US20110154436A1 (en) Provider Management Methods and Systems for a Portable Device Running Android Platform
JP2005512170A (en) Information protection method and apparatus against unauthorized use
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
CN112437923A (en) Information processing device, information processing method, information processing program, and information processing system
KR102854414B1 (en) Authentication methods and authentication systems that restrict unauthorized installation of software products
CN118797581A (en) A mobile application authorization method and system based on smart door lock and smart door lock
CN113098899B (en) Intangible asset protection method, device and computer readable medium
CN116842545A (en) File encryption-based data anti-luxury method and system
US20130014286A1 (en) Method and system for making edrm-protected data objects available

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D16 Fast track examination requested

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D16-EXM-PA0302 (AS PROVIDED BY THE NATIONAL OFFICE)

D17 Fast track examination accepted

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D17-EXM-PA0302 (AS PROVIDED BY THE NATIONAL OFFICE)

PA0302 Request for accelerated examination

St.27 status event code: A-1-2-D10-D17-exm-PA0302

St.27 status event code: A-1-2-D10-D16-exm-PA0302

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)