KR20100095298A - 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 - Google Patents
실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 Download PDFInfo
- Publication number
- KR20100095298A KR20100095298A KR1020090014500A KR20090014500A KR20100095298A KR 20100095298 A KR20100095298 A KR 20100095298A KR 1020090014500 A KR1020090014500 A KR 1020090014500A KR 20090014500 A KR20090014500 A KR 20090014500A KR 20100095298 A KR20100095298 A KR 20100095298A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- authentication
- client
- code
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6236—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 문서는 클라이언트가 프로그램 실행 인증 과정에서 인증 결과에 따라 상기 프로그램을 구성하는 소스 코드들 중에서 상기 프로그램 실행시 필수적이나 상기 프로그램 보급시 제공되지 않았던 복구 코드를 수신함으로써 상기 프로그램의 소스 코드가 완성되도록 하는 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및 그 방법을 개시한다. 이에 따르면 게임 서버 등과 같은 특정 서버의 불법 실행을 효과적으로 통제할 수 있으며 서버 프로그램의 소스 코드 일부분을 실시간으로 복구하여 서버 설치 프로그램 유출 시에도 서버 설치 및/또는 그 실행을 사전에 차단시킬 수 있는 효과가 있다.
네트워크, 클라이언트/서버, 인증, 실시간 코드 복구, 복구 코드
Description
본 발명은 네트워크 상에서의 인증 시스템에 관한 것으로, 보다 구체적으로는 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및 그 인증 방법에 관한 것이다.
최근 전자 통신 기술의 발달과 더불어 최근 전자 통신 기술의 발달과 더불어 사용자에게 유용한 컨텐츠를 포함한 소프트웨어들이 급속도로 전파되고 있다. 이러한 컨텐츠를 포함하고 있는 프로그램에 배포에 있어서 사용자는 적절한 절차와 비용을 지불해야만 한다.
하지만 최근 만연하고 있는 불법적인 프로그램 복사와 프로그램 파일의 유출 등에 대해서 일반적인 소프트웨어는 매우 취약하다고 할 수 있다. 기존 라이센스 코드 입력, 유저정보 입력 등의 사용자 인증방식은 해킹 등에 의해 그 정보의 유출이 쉽게 발생되고, 이러한 해킹 정보들에 의해 불법적인 일들이 벌어지면서 보다 강력한 보안방법이 요구되고 있다. 특히 기존 게임서버등과 같이 서버 프로그램에 대한 인증 기술의 경우, 단순 클라이언트 인증 기술만을 사용하여 이를 우회하기가 쉬었으며, 인증 프로토콜이 노출된 경우 이를 막을 수 있는 방법이 없었다. 온라인 게임 서버의 설치파일이 악의적 또는 실수로 인해 유출되면, 프리 서버가 운영되어 막대한 사업적 손실을 발생시킬 수 있다.
본 발명은 상술한 배경기술에 있어서 프로그램 보급시 제공되지 않았던 일부 코드를 인증 과정에서 실시간으로 제공함으로써 인증의 신뢰도를 높이는 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및 그 방법을 제공함을 해결 과제로 한다.
상술한 과제를 해결하기 위한 일 수단으로서의 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템은, 프로그램 실행 인증을 요청하고, 그 인증 결과에 따라 수신되는 복구 코드를 상기 프로그램의 실행 파일에 삽입하여 상기 프로그램을 실행시키는 클라이언트와, 상기 인증 결과에 따라 상기 프로그램을 구성하는 소스 코드들 중에서 상기 프로그램 실행시 필수적이나 상기 프로그램 보급시 제공되지 않았던 복구 코드를 상기 클라이언트로 제공하는 인증 서버, 상기 인증 서버와 연계되어 상기 클라이언트 및 프로그램 정보를 저장하고 관리하는 인증 데이터 베이스 및 상기 복구 코드 정보를 저장하고 관리하는 복구 코드 데이터 베이스를 포함한다.
상기 복구 코드는, 상기 프로그램 실행시마다 호출되되, 1회 실행 과정 중 호출 횟수는 상기 프로그램에 포함되는 다른 소스 코드 부분들보다 상대적으로 적은 것으로 설정될 수 있다.
상기 복구 코드는, 상기 클라이언트와 상기 인증 서버 간에 공유되는 임시키 를 통해 생성된 암호용 비밀키를 이용하여 암호화되어 상기 클라이언트로 전송되고, 클라이언트는 상기 암호용 비밀키를 이용하여 이 복구 코드를 복호한 후 설치 파일에 삽입할 수 있다.
상술한 과제를 해결하기 위한 일 수단으로서의 실시간 코드 복구 방식의 클라이언트/서버 인증 방법은, 인증 서버로 프로그램 실행 인증을 요청하는 단계, 상기 인증 결과에 따라 상기 프로그램을 구성하는 소스 코드들 중에서 상기 프로그램 실행시 필수적이나 상기 프로그램 보급시 제공되지 않았던 복구 코드를 수신하는 단계 및 상기 복구 코드를 상기 프로그램의 실행 파일에 삽입하여 상기 프로그램을 실행시키는 단계를 포함한다.
상기 복구 코드는, 상기 프로그램 실행시마다 호출되되, 1회 실행 과정 중 호출 횟수는 상기 프로그램에 포함되는 다른 소스 코드 부분들보다 상대적으로 적은 것으로 설정될 수 있다.
상기 복구 코드는, 상기 클라이언트와 상기 인증 서버 간에 공유되는 임시키를 통해 생성된 암호용 비밀키를 이용하여 암호화되어 상기 클라이언트로 전송되고, 클라이언트는 상기 암호용 비밀키를 이용하여 이 복구 코드를 복호한 후 설치 파일에 삽입할 수 있다.
본 발명에 따르면 게임 서버뿐만 아니라 특정 서버의 불법 실행을 효과적으로 통제할 수 있으며 서버 프로그램의 소스 코드 일부분을 실시간으로 복구하여 서버 설치 프로그램 유출 시에도 서버 설치 및/또는 그 실행을 사전에 차단시킬 수 있다.
또한, 오프라인상 프로그램의 불법복제방지를 위한 간편하고 효과적인 해결책을 제시한다. 종래의 하드웨어 보안장치는 고비용이며, 분실 등 관리상의 어려움이 있었지만, 본 발명으로 임대 프로그램 제공업자는 임대 사용자를 저비용으로 편리하게 관리할 수 있다.
그리고, 임대 프로그램를 관리하는 서버에 매우 적은 부하를 주며, 임대 프로그램은 고성능의 수행력(Performance)을 가질 수 있다. 본 발명은 기본적인 사용자인증부분만 서버와 교신하고, 프로그램의 실행은 클라이언트에서 수행하는 클라이언트 컴퓨팅 방식이므로, Stand Alone에서의 실행과 동일한 정도의 수행력(Performance)을 가진다.
또한, 본 발명으로 본격적인 오프라인 프로그램의 임대 서비스를 위한 프로그램 자동배포, 고객관리, 사용현황관리 등의 제반기능을 쉽게 확장할 수 있다. 본 발명은 관리부분인 서버와 임대프로그램 사용부분인 클라이언트과의 교신에 의한 인증 방식이므로, 그 교신을 확장하여 최신 버전판 설치, 고객관리(CRM), 사용자 현황관리분석 및 보고서작성 등의 여러 부가서비스를 수행할 수 있다.
이하 도면을 참조하여 본 발명에 따라 프로그램 보급시 제공되지 않았던 일부 코드를 인증 과정에서 실시간으로 제공함으로써 인증의 신뢰도를 높이는 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및 그 방법에 대한 본 발명의 실시예들을 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 클라이언트/서버 인증 시스템의 기본 구성도를 나타낸다.
도 1을 참조하면 본 실시예에 따른 클라이언트/서버 인증 시스템은 클라이언트측 장치, 예를 들어 클라이언트 PC(100)와 서버측 장치, 예를 들어 서버 PC(103)를 포함하여 이루어진다. 그리고, 클라이언트 PC(100)에는 네트워크 장치(101)와 하나 이상의 실행 프로그램(102)이 포함되고, 서버 PC(103)에는 네트워크 장치(104), 인증 서버(105) 및 클라이언트 정보 및 각 클라이언트로 보급된 프로그램 정보를 저장하고 관리하는 인증 데이터 베이스(106), 프로그램에 대한 복구 코드 정보를 저장하고 관리하는 복구 코드 데이터 베이스(107) 등이 포함된다.
물론 인증 데이터 베이스(106), 및 복구 코드 데이터 베이스(107)는, 하나의 데이터 베이스로 구성되고, 각 데이터 종류로 구분되는 다수의 셀로 구분되어 이용될 수도 있음은 당연하다.
본 실시예에 따른 클라이언트 PC(100)는 네트워크 장치(101)를 통해 서버 PC(103)로 프로그램(102) 실행 인증을 요청하고, 그 인증 결과에 따라 수신되는 코드를 프로그램(102)의 실행 파일에 삽입하여 프로그램(102)을 실행시키도록 동작한다.
그리고, 본 실시예에 따른 서버 PC(103)는 클라이언트 PC(100)와 사용자 인증 데이터 베이스(106)와 연계되어 이루어지는 인증 결과에 따라 프로그램(102)을 구성하는 소스 코드들 중에서 일부 코드를 네트워크 장치(104)를 통해 클라이언트 PC(100)로 제공하도록 동작한다. 이때 인증 결과에 따라 클라이언트 PC(100)로 전 달되는 코드는 프로그램(102) 실행시 필수적이나 프로그램(102) 보급시 제공되지 않았던 코드로서 이하 복구 코드라고 칭한다. 이 복구 코드는 복구 코드 데이터 베이스(107)에 프로그램 정보의 하나로서 저장되어 필요시 인증 서버(105)로 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 실시간 코드 복구 방식의 클라이언트/서버 인증 방법을 나타내는 흐름도이다. 그리고 도 3은 본 발명의 일 실시예에 따른 프로그램 실행 파일(Test.exe)의 인증 전후 상태를 나타낸다. 특히, 도 3a는 본 실시예에 따라 인증 전 즉, 보급 상태의 프로그램 실행 파일(Test.exe)을 나타내고, 도 3b는 본 실시예에 따라 인증 후 즉, 프로그램 실행시 인증을 통해 완성된 상태의 프로그램 실행 파일(Test.exe)을 나타낸다.
먼저, 본 실시예에 따르면 클라이언트는 단계 S200에서 프로그램 실행 파일에 대한 실행 요청이 입력되면, 단계 S210에서 이 프로그램 실행 파일을 실행시키기 위한 일정 메모리 영역을 할당받고, 단계 S220에서 프로그램 실행 파일을 실행시킨다. 이때 프로그램 실행 파일은 도 3a에 도시된 바와 같이 인증 전 즉, 보급 상태의 프로그램 실행 파일(300)이다. 도 3a를 참조하면 인증 전 상태의 프로그램 실행시 필수적인 복구 코드(MyCode, 310)가 빠진 상태임을 확인할 수 있다. 즉, 클라이언트는 이 복구 코드(310)를 복구하지 않고서는 이 프로그램 실행 파일을 정상적으로 실행시킬 수 없다.
따라서, 본 실시예에 따르면 클라이언트는 인증 절차를 통해서 필요한 복구 코드를(310) 제공받게 된다. 이를 위해 먼저 단계 S230에서 네트워크 상으로 인증 서버와 통신하여 인증 절차를 진행한다. 이때 사용될 수 있는 인증 방법으로는 사용자 ID와 비밀번호(PASSWORD)를 입력하여 수행되는 온라인 소프트웨어의 단순 로그온 방식, 온라인 소프트웨어의 동시 접속자를 체크하는 로그온 방식, 하드웨어 보안 장치(Hardware Security Device), 해당 소프트웨어를 유일한 특정 PC에서만 사용하도록 하는 소프트웨어적 보안 방식 등이 적용될 수 있다.
단계 S240에서 인증 결과가 성공적인 경우에는 단계 S250에서 인증 서버로부터 프로그램 실행시 필수적인 복구 코드(310)를 수신하고 단계 S260에서 이 수신된 복구 코드(310)를 메모리에 저장되어 있는 보급 상태의 프로그램 실행 파일(300)을 구성하는 소스 코드들 사이의 해당 위치에 복사하여 삽입시킨다. 그 결과 프로그램 실행 파일은 도 3b에 도시된 바와 같이 인증 후 즉, 프로그램 실행시 인증을 통해 완성된 상태의 프로그램 실행 파일(300)이 된다. 도 3b에는 복구 코드(MyCode, 320)의 개략적인 일례도 함께 도시되어 있음을 확인할 수 있다.
이로써 클라이언트는 단계 S270에서 이 완성된 상태의 프로그램 실행 파일(300)을 통해 프로그램 실행을 계속 진행시킬 수 있게 되고 결국 이 프로그램 실행 파일을 정상적으로 종료시킬 수 있게 된다.
본 실시예에 따른 복구 코드는, 인증 대상이 되는 프로그램을 구성하는 소스 코드들 중에서 이 프로그램을 설치할 때나 실행시킬 때마다 실행되는 코드로 설정됨이 바람직하다. 그리고, 인증 대상이 되는 프로그램을 구성하는 소스 코드들이 각 부분마다 1회 실행 과정 중 호출 횟수가 서로 다른 경우에는 상대적으로 이 호출 횟수가 빈번하지 않은, 예를 들어 기 설정된 횟수보다 적은 코드부분으로 복구 코드를 설정하는 것이 시스템 성능면에서 효과적일 것이다.
그리고, 바람직하게는 클라이언트로 제공되는 복구 코드가 클라이언트 PC나 다른 클라이언트측 장치에 영구적으로 저장되거나 클라이언트 측에서 임의로 도용/배포되는 경우를 사전에 차단할 수 있도록, 이를 위한 장치적 요소나 프로그램적 요소가 추가될 수 있다. 이 경우에는 클라이언트가 수차례 반복되는 프로그램을 실행시킬 때마다 인증 절차를 거치게 되고 실시간으로 이 복구 코드를 획득하게 될 것이다.
도 4는 본 발명의 다른 실시예에 따른 실시간 코드 복구 방식의 클라이언트/서버 인증 방법을 나타내는 흐름도이다.
본 실시예에 따르면, 복구 코드가 클라이언트와 인증 서버 간에 공유되는 암호용 비밀키를 이용하여 암호화되고, 이 암호화된 상태로 인증 서버에서 클라이언트로 제공될 수 있다. 이는 암호화된 복구 코드를 주고 받음으로써 보안 효과를 더욱 높이기 위함이다.
도 4를 참조하여 보다 구체적으로 설명하면, 먼저 클라이언트가 단계 S400에서 인증 서버로의 연결을 시도하고 단계 S410에서 인증 서버로부터 그 연결에 대한 확인 응답을 수신하여 클라이언트와 인증 서버 사이의 네트워크 통신을 구축한다.
그리고나서 단계 S420부터 단계 S424까지의 인증 과정이 수행된다.
단계 S420에서 클라이언트가 인증 서버로 인증 정보 예를 들어 사용자 정보와 사용자 확인 정보 등을 전송하면 인증 서버에서는 단계 S421에서 클라이언트로부터 수신되는 사용자 정보를 기초로 이 인증 서버와 연계되어 있는 인증 데이터 베이스에서 해당 사용자에 대한 사용자 확인 정보를 조회한다.
그리고, 단계 S422에서 인증 데이터 베이스에서 조회된 사용자 확인 정보나 다른 인증 정보를 인증 서버로 전달한다. 인증 서버에서는 단계 S423에서 클라이언트로부터 수신된 사용자 인증 정보와 인증 데이터 베이스로부터 전달된 사용자 인증 정보를 서로 비교하여 일치하는지 여부등을 판단한다. 그리고, 인증 서버는 단계 S424에서 클라이언트로 인증 결과 즉, 인증이 성공하였는지 실패하였는지를 통보해 준다. 이 통보 결과에 따라 후속 과정에 의해 복구 코드가 제공될지 여부가 결정될 것이다.
인증이 성공한 경우 본 실시예에 따르면 단계 S430에서 단계 S433까지의 암효용 비밀키 생성 과정이 수행된다.
이 과정은 복구 코드가 클라이언트와 인증 서버 간에 공유되는 암호용 비밀키를 이용하여 암호화되고, 이 암호화된 상태로 인증 서버에서 클라이언트로 제공하기 위한 것으로 먼저 인증 서버에서는 단계 S430에서 해당 클라이언트에 대한 임시키를 생성하고 단계 S431에서 이 생성된 임시키를 클라이언트로 전송해 준다. 그러면 단계 S432와 단계 S433에서 인증 서버와 클라이언트가 각각 공유하게 되는 임시키를 이용하여 암호용 비밀키를 생성한다.
물론 인증 서버에서 직접 암호용 비밀키를 클라이언트로 전송해 줄 수도 있지만 상술한 바와 같이 실제로 복구 코드 암호화 및 복호화에 사용되는 암호용 비밀키 대신 클라이언트와 인증 서버 사이에는 임시키가 송수신되도록 하고 이 임시키를 기초로 암호용 비밀키는 각 장치에서 생성되도록 함으로써 암호용 비밀키에 대한 보안 효과를 높일 수 있을 것이다.
그리고나서 단계 S440에서 인증 서버에서는 복구 코드 데이터 베이스로 인증된 클라이언트에 대한 복구 코드를 요청하여 단계 S441에서 이 복구 코드를 전달받는다. 그리고, 단계 S442에서 상술한 암호용 비밀키 생성 과정을 통해 생성된 암호용 비밀키를 이용하여 복구 코드 데이터 베이스로부터 전달받은 복구 코드를 암호화하고 단계 S443에서 이 암호화된 복구 코드를 해당 클라이언트로 전송하여 복구 코드 수신 과정 수행된다.
그러면 클라이언트에서는 단계 S450에서 상술한 암호용 비밀키 생성 과정을 통해 생성된 암호용 비밀키를 이용하여 수신된 복구 코드를 복호화한다. 그리고, 이 복호화된 복구 코드를 프로그램의 실행 파일을 구성하는 소스 코드들 사이의 해당 위치에 복사하여 삽입시킨다. 이로써 클라이언트는 복구된 프로그램 실행 파일을 통해 프로그램 실행을 계속 진행시킬 수 있게 되고 결국 실행과정을 정상적으로 종료시킬 수 있게 된다.
이렇게 프로그램이 복구되고 나면 클라이언트는 단계 S460에서 인증 서버와의 연결 종료를 요청하고 단계 S470에서 이에 대한 확인 응답을 수신함으로써 인증 서버와의 연결이 종료된다. 물론 인증 서버와의 연결 종료가 복구 코드 수신 이후나 이와 동시에 이루어질 수 있음은 당연할 것이다.
기존 서버 인증 기술의 경우, 단순 클라이언트 인증 기술만을 사용하여 이를 우회하기가 쉬었고, 인증 프로토콜이 노출된 경우 이를 막을 수 있는 방법이 없었으나, 본 발명의 실시예에 따른 실시간 코드 복구 방식의 클라이언트/서버 인증 방 법이 게임 서버, 메일 서버, 파일 서버 등의 서버 프로그램에 적용되는 경우, 온라인상으로 서버를 인증하고 인증 받지 못한 서버의 경우 서버 실행을 할 수 없게 하여, 온라인 서버 설치 파일의 악의적 또는 실수로 인한 유출로 프리 서버가 운영되어 발생될 수 있는 막대한 사업적 손실을 방지할 수 있을 것이다.
상기에서는 도면 및 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 기술적 사상으로부터 벗어나지 않는 범위 내에서 본 발명은 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 클라이언트/서버 인증 시스템의 기본 구성도.
도 2는 본 발명의 일 실시예에 따른 실시간 코드 복구 방식의 클라이언트/서버 인증 방법을 나타내는 흐름도.
도 3a는 본 발명의 일 실시예에 따라 인증 전 즉, 보급 상태의 프로그램 실행 파일(Test.exe)의 일부를 나타낸 도면.
도 3b는 본 발명의 일 실시예에 따라 인증 후 즉, 프로그램 실행시 인증을 통해 완성된 상태의 프로그램 실행 파일(Test.exe)의 일부를 나타낸 도면.
도 4는 본 발명의 다른 실시예에 따른 실시간 코드 복구 방식의 클라이언트/서버 인증 방법을 나타내는 흐름도.
<도면의 주요구성에 대한 부호의 설명>
100: 클라이언트 PC 101: 클라이언트측 네트워크 장치
102: 프로그램 103: 서버 PC
104: 서버측 네트워크 장치 105: 인증 서버
106: 인증 데이터 베이스 107: 복구 코드 데이터 베이스
Claims (9)
- 프로그램 실행 인증을 요청하고, 그 인증 결과에 따라 수신되는 복구 코드를 상기 프로그램의 실행 파일에 삽입하여 상기 프로그램을 실행시키는 클라이언트;상기 인증 결과에 따라 상기 프로그램을 구성하는 소스 코드들 중에서 상기 프로그램 실행시 필수적이나 상기 프로그램 보급시 제공되지 않았던 복구 코드를 상기 클라이언트로 제공하는 인증 서버;상기 인증 서버와 연계되어 상기 클라이언트 및 프로그램 정보를 저장하고 관리하는 인증 데이터 베이스; 및상기 복구 코드 정보를 저장하고 관리하는 복구 코드 데이터 베이스를 포함하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템.
- 청구항 1에 있어서,상기 복구 코드는, 상기 프로그램 실행시마다 호출되되, 1회 실행 과정 중 호출 횟수는 상기 프로그램에 포함되는 다른 소스 코드 부분들보다 상대적으로 적은 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템.
- 청구항 1에 있어서,상기 복구 코드는, 상기 클라이언트와 상기 인증 서버 간에 공유되는 임시키를 통해 생성된 암호용 비밀키를 이용하여 암호화되는 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템.
- 청구항 1에 있어서,상기 프로그램은, 서버 프로그램인 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템.
- 인증 서버로 프로그램 실행 인증을 요청하는 단계;상기 인증 결과에 따라 상기 프로그램을 구성하는 소스 코드들 중에서 상기 프로그램 실행시 필수적이나 상기 프로그램 보급시 제공되지 않았던 복구 코드를 수신하는 단계; 및상기 복구 코드를 상기 프로그램의 실행 파일에 삽입하여 상기 프로그램을 실행시키는 단계를 포함하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 방법.
- 청구항 5에 있어서,상기 복구 코드는, 상기 프로그램 실행시마다 호출되되, 1회 실행 과정 중 호출 횟수는 상기 프로그램에 포함되는 다른 소스 코드 부분들보다 상대적으로 적은 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 방법.
- 청구항 5에 있어서,상기 복구 코드는, 상기 클라이언트와 상기 인증 서버 간에 공유되는 임시키를 통해 생성된 암호용 비밀키를 이용하여 암호화되는 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 방법.
- 청구항 5에 있어서,상기 프로그램은, 서버 프로그램인 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 방법.
- 청구항 5에 있어서,상기 인증 서버로부터 상기 프로그램에 대한 최신버전 설치 파일 데이터를 수신하는 것을 특징으로 하는, 실시간 코드 복구 방식의 클라이언트/서버 인증 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090014500A KR20100095298A (ko) | 2009-02-20 | 2009-02-20 | 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090014500A KR20100095298A (ko) | 2009-02-20 | 2009-02-20 | 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100095298A true KR20100095298A (ko) | 2010-08-30 |
Family
ID=42759058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090014500A KR20100095298A (ko) | 2009-02-20 | 2009-02-20 | 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100095298A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101588965B1 (ko) * | 2014-08-04 | 2016-01-26 | 주식회사 엔씨소프트 | 실행파일의 실행인증을 통한 보안처리 프로그램을 실행하는 컴퓨팅 디바이스 및 매체에 저장된 컴퓨터 프로그램 |
-
2009
- 2009-02-20 KR KR1020090014500A patent/KR20100095298A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101588965B1 (ko) * | 2014-08-04 | 2016-01-26 | 주식회사 엔씨소프트 | 실행파일의 실행인증을 통한 보안처리 프로그램을 실행하는 컴퓨팅 디바이스 및 매체에 저장된 컴퓨터 프로그램 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11178121B2 (en) | Secure software updates | |
CN110162936B (zh) | 一种软件内容的使用授权方法 | |
US8683214B2 (en) | Method and device that verifies application program modules | |
US20140059679A1 (en) | Software updating apparatus, software updating system, invalidation method, and invalidation program | |
US20120137117A1 (en) | System and method for providing secure virtual machines | |
US20090138699A1 (en) | Software module management device and program | |
US20040030911A1 (en) | Contents distribution scheme using tamper-resistant processor | |
CN105635082A (zh) | 动态授权方法和系统以及授权中心、授权客户端 | |
US10154023B1 (en) | Method and system for secure instantiation of an operation system within the cloud | |
CN111460410A (zh) | 服务器登录方法、装置、系统与计算机可读存储介质 | |
CN110324283B (zh) | 基于非对称加密的许可方法、装置及系统 | |
CN104955043B (zh) | 一种智能终端安全防护系统 | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
KR20100095298A (ko) | 실시간 코드 복구 방식의 클라이언트/서버 인증 시스템 및그 방법 | |
CN104866761B (zh) | 一种高安全性安卓智能终端 | |
CN111246480A (zh) | 基于sim卡的应用通信方法、系统、设备及存储介质 | |
KR20150074128A (ko) | 적어도 하나의 소프트웨어 구성요소를 컴퓨팅 디바이스에 다운 로딩하는 방법, 관련 컴퓨터 프로그램 제조물, 컴퓨팅 디바이스, 컴퓨터 시스템 | |
CN112468544B (zh) | 基于中间件的快递数据传输方法和中间件 | |
AU2011202785B2 (en) | Secure software updates | |
CN110737448A (zh) | 一种包含有微控制器的固件加密系统及其固件保护和升级方法 | |
CN115459933A (zh) | 数字证书管理方法、装置及电子设备 | |
CN115757101A (zh) | 应用程序的运行方法、装置及电子设备 | |
JP5483754B2 (ja) | ソフトウェアモジュール管理装置およびソフトウェアモジュール管理プログラム | |
JP2006058995A (ja) | アクセス権限設定装置、方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |