KR101190124B1 - 소스 코드 보호 - Google Patents

소스 코드 보호 Download PDF

Info

Publication number
KR101190124B1
KR101190124B1 KR1020077008385A KR20077008385A KR101190124B1 KR 101190124 B1 KR101190124 B1 KR 101190124B1 KR 1020077008385 A KR1020077008385 A KR 1020077008385A KR 20077008385 A KR20077008385 A KR 20077008385A KR 101190124 B1 KR101190124 B1 KR 101190124B1
Authority
KR
South Korea
Prior art keywords
file
original
difference
user
image
Prior art date
Application number
KR1020077008385A
Other languages
English (en)
Other versions
KR20070057938A (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 엠스타 소프트웨어 알앤디 (센젠) 리미티드
Publication of KR20070057938A publication Critical patent/KR20070057938A/ko
Application granted granted Critical
Publication of KR101190124B1 publication Critical patent/KR101190124B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

원본인 일반문서파일(original plain text file)을 암호화하고, 보호된 파일(protected file)(101)로 사용자가 이용 가능하게 제작하는 단계; 상기 사용자가 보호된 파일(101)을 복호하여 원본 파일의 이미지를 볼 수 있게 하면서 여분의 보호된 파일 이외의 용도로 원본 파일의 이미지가 복사되는 것을 방지하기 위해, 유저 프로그램(user program)과 유저 라이센스(user licence)(103)를 상기 사용자에게 발행하는 단계;를 포함하는 방법이다. 상기 이미지는 컴퓨터의 스왑파일(swap file)로 백업되지 않고 바로 메모리로 저장되는 것이 바람직하다. 바람직하게는, 상기 유저 프로그램은 에디터 프로그램을 포함하고, 상기 사용자는 원본파일과 별도로, 암호화된 차분파일(encrypted difference file)(208)에 원본 이미지에서 편집된 차이점을 저장시킨다. 두 파일은 이후에 에디터 프로그램과 유저 라이센스(103)을 이용하여 편집된 문서를 재생성하는데 사용된다. 유저 프로그램은 컴파일러를 포함하는 임의의 컴퓨터 툴을 포함할 수 있다. 이외에도, 유저 프로그램은 에디터 프로그램에 의해 생성된 상기 이미지로부터 암호화된 소스코드(obfuscated code)를 생성하는 소스코드암호화기(obfuscator)(302)를 가진 특수 에디터 프로그램(special editor program)을 포함할 수 있다. 이를 통해, 오직 컴파일러(305) 혹은 이와 유사한 툴만이 암호화된 소스코드(obfuscated code)를 객체(object) 파일로 변환시킬 수 있도록 할 수 있다.

Description

소스 코드 보호{SOURCE CODE PROTECTION}
본 발명은 원본인 일반문서파일(original plain text file) 보호 방법과 보호되어지는 원본인 일반문서파일(original plain text file)에 사용자가 액세스할 수 있게 해주는 컴퓨터 툴(computer tool)에 관한 것이다.
본 발명은 일반문서파일에 관한 것으로, 더욱 상세하게는 컴퓨터 소스 코드와 이들의 고객에 대한 배포에 관한 것이다. 소프트웨어 개발자들이 C나 C++과 같은 고급언어로 된 소스코드로 제품을 제공하는 이유는 고객들 개개의 어플리케이션에 손쉽게 적용시킬 수 있다는 점 때문이다. 그러나, 이와 같은 형태로 소스코드를 배포하면, 개발자들은 고객들 사이에 복사를 통해 계속적인 사용을 하거나, 제 3자가 고객을 통해 코드를 얻어 사용하는 행위를 통제할 수 없게 된다. 그리고 개발자들은 이에 대해 계약상 법적강제 및 지적재산권을 통한 보호를 위한 등록에 전적으로 의존하고 있다.
본 발명의 목적은 일반문서파일(plain text file)이 불법복제 되는 것을 방지하고 인증된 사용자에게 배포된 경우에만 사용가능하게 하는 방법 및 수단을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명에 따른, 방법은, 원본인 일반문서파일(original plain text file)을 암호화하여, 보호된 파일(protected file)로 사용자가 이용 가능하게 제작하는 단계; 상기 사용자가 상기 보호된 파일을 복호하여 상기 원본 파일의 이미지를 볼 수 있게 하면서 여분용 보호된 파일 이외의 용도로 원본 파일의 이미지가 복사되는 것을 방지하기 위해, 유저 프로그램(user program)과 유저 라이센스(user licence)를 상기 사용자에게 발행하는 단계;를 포함한다.
따라서, 상기 일반문서파일에 대한 액세스는 유저 라이센스(user licence)와 특수 유저 프로그램의 조합으로 인증되며, 상기 특수 유저 프로그램은 유저 라이센스와 보호된 파일을 이용하여 보여지거나 편집될 수 있는 원본파일의 이미지를 컴퓨터 메모리에서 다시 생성한다. 상기 이미지는, 이미지 파일을 읽는 프로그램에 의해 파일이 누출되지 않게 하기 위해서, 컴퓨터 스왑파일(swap file)에 백업되지 않고 메모리에 바로 저장되게 함으로써 복사가 방지되어 있는 것이 바람직하다.
바람직하게는, 상기 유저 프로그램은 에디터 프로그램을 포함하고, 상기 사용자는 원본파일의 이미지를 편집하기 위해 상기 에디터 프로그램을 사용하며, 원본파일과 별도로 암호화된 형태의 차분파일(difference file)에 원본 이미지에서 변화된 부분을 저장시킨다. 상기 사용자는 에디터 프로그램과 유저 라이센스를 이용하여 보호된 파일과 차분파일로부터 원본파일의 편집된 이미지를 재생성한다. 필요에 따라, 사용자는 편집된 이미지를 재편집할 수 있으며, 재편집된 내용을 두번째 차분파일에 저장한다. 두번째 차분파일은 암호화 되어 있으며, 원본파일과 상기 첫번째 차분파일과는 별도이다. 계속해서, 사용자는 에디터 프로그램과 유저 라이센스를 이용하여 원본과 포함된 만큼의 차분파일로부터 가장 최근 편집된 이미지를 재생성한다.
차분파일 혹은 다중차분파일(multiple difference file)로 원본파일의 변화를 저장하는 것의 이점은, 각 파일의 소유주(ownership)가 각 개발자와 동일한지 쉽게 확인할 수 있게 해주는 검증용 목록이 된다는 점에 있다. 또한 상기 확인과정은 연속적인 편집과정에서도 계속된다.
또한, 각 차분파일이 동일한 혹은 보호된 파일과는 별도의 라이센스를 이용해 암호화되어 있다면, 각 차분파일들도 마찬가지로 보호될 것이다.
상기 유저프로그램은 오직 전형적인 데이터 카피 기능인 "잘라내기 및 붙여넣기"에 의해서만 다른 보호된 파일 내로 복사되는 것이 허용되도록, 제한된 복사 기능을 가지는 것이 바람직하다.
원본파일의 특정 부분은 에디터 프로그램에 의해 지워지는 일이 없도록 하기 위해 편집불가(non-editable) 혹은 숨김(invisible)으로 표시될 수 있다. 따라서 라이센싱(licensing) 또는 다른 목적을 위한 원본파일의 확인을 허용하거나, 사용자 라이센스에 의해 정의된 상기 특정부분에 원본파일의 사용을 제한하기 위해, 상기 원본파일의 특정부분은 항상 존재하는 것이 바람직하다.
상기 유저 프로그램은 유저가 원본인 일반문서파일에 액세스할 수 있게 하기위한 임의의 컴퓨터 툴을 포함할 수 있으며, 상기 컴퓨터 툴은 컴파일러, 버전 혹은 환경 관리툴 및 소스레벨 디버거(source level debugger)를 포함할 수 있다. 다중툴(multiple tool)이 일반문서 소스코드에 액세스하고 소스코드로부터 실행 가능한 코드를 생성할 것을 필요로 하는 지점에서, 상기 각각의 툴은 본 발명의 상기 보호 특성을 요구할 것이다.
한편, 본 발명의 또 다른 실시예에 따른, 상기 사용자 프로그램은 에디터 프로그램에 의해 생성된 이미지로부터 암호화된 소스코드(obfuscated code)를 생성하는 소스코드 암호화기(obfuscator)를 가지는 특수 에디터 프로그램(special editor program)을 포함한다. 따라서 오직 컴파일러 혹은 이와 유사한 툴을 제외하고는 상기 소스코드에 액세스하는것을 방지할 수 있다. 또한 상기 컴파일러 혹은 이와 유사한 툴은 암호화된 소스코드(obfuscated code)를 이해하기 쉬운 객체(object) 코드로 변환시킬 수 있으며, 상기 객체코드는 컴파일러가 암호화 되지 않은 원본 소스코드에 액세스하였다면 생성되었을 코드와 동일하다.
한편, 본 발명의 다른 측면에 따른, 보호된 파일(protected file)로 암호화되어 보호되어지는 원본인 일반문서파일(original plain text file)에 사용자가 액세스할 수 있게 해주는 컴퓨터 툴(computer tool)은, 원본인 일반문서파일의 이미지를 제공하고 여분용 보호된 파일 이외의 용도로 원본 파일의 이미지가 복사되는 것을 막기 위해, 상기 보호된 파일에 부여한 인증권한으로 발행된 유저 라이센스에 의해 한번 인증되어진 보호된 파일을 복호하는데 적용된다.
상기 툴은 에디터 프로그램을 포함하는 것이 바람직하며, 상기 에디터 프로그램은 상기 기술한 소스코드 암호화기(obfuscator)를 가지는 특수 에디터 프로그램이 될 수도 있다.
본 발명은 첨부된 도면을 참조한 실시예에 의해 기술 된다.
도 1은 본 발명에 따른 방법에 의해, 소스 코드의 변경을 포함하고 있는 보호된 파일 내의 소스코드에 사용자의 액세스를 허용하는 단계를 도시한 블럭도,
도 2는 본 발명에 따른 방법에 의해, 보호된 파일 내의 소스코드에 사용자가 액세스하고, 보호된 파일과 별도인 차분파일(difference file) 내에 소스코드의 이미지에서 이루어진 변경사항을 저장하는 것을 허용하는 단계를 도시한 블럭도, 그리고
도 3은 도 1의 방법에 더 추가되는 단계를 도시한 도면으로, 소스코드의 소스코드 암호화를 포함하고 있는 소스코드에 사용자의 액세스를 허용하는 단계 및, 객체파일(object file)을 생성하기 위해 컴파일러에 소스코드 암호화된 파일을 통과시키는 단계를 도시한 블럭도이다.
도 1에 도시된 바와 같이, 보호된 파일(protected file)(101)은 고속대칭키 알고리즘(fast symmetric key algorithm)으로 암호화 된 일반문서파일(예를들어, 소스코드)로 구성되며, 일반문서파일은 공개키 암호화(public key cryptography)가 적용된 암호형식에 따라 파일의 시작부분에 저장된 키(key)를 포함한다. 그 후에 모든 파일(101)은 전자서명 알고리즘(digital signature algorithm)을 사용하여 보호된다.
보호된 파일(101)은 소스코드 소유자가 사용자에게 유저라이센스(103)과 함께 배포하며, 유저 라이센스(103)는 파일(101)의 보호를 위해 공개키 암호화가 적 용된 키를 포함하고 있다. 라이센스(103)는 공개키 기반구조(public key infrastructure : PKI) 또는 이와 유사한 인증기반 메커니즘을 사용하여 배포된다.
보호된 파일(101)과 유저 라이센스(103)을 제공받은 사용자는 보호된 파일 내의 소스코드에 액세스하기 위한 특수 컴퓨터 툴(special computer tool)도 같이 제공받는다.
우선, 툴은 수정되지 않았음을 확인하기 위해 자신소유의 실행파일에 저장된 전자서명을 확인하여 소유권의 유효성을 체크한다. 그 후에 라이센스(103)를 열고 실행권한이 주어졌는지를 결정한다.
툴이 실행권한이 주어졌다면, 보호된 파일(101)이 열리게 된다. 그 후에 두개의 복호엔진(decryption engine)(102,105)를 이용하여 암호화된 파일과 라이센스의 복호된 내용을 나타내는 데이터 스트림(data stream)들을 생성한다. 그 다음에, 이 스트림들은 재구성 엔진(reconstruction engine)(106)에 입력되며, 재구성 엔진은 두개의 스트림을 결합하여 인간 판독가능형 이미지(human readable image)(107)를 생성한다. 이 이미지는 컴퓨터 스왑파일(swap file)에 백업하지 않고 바로 메모리에 저장한다. 이를 통해, 이미지를 컴퓨터 상의 다른 프로그램이 찾아낼 수 없게 할 수 있다.
인간 판독가능형 이미지(107)는 특정 라인이 숨겨졌는지(invisible) 혹은 편집불가(non-editable)인지 여부를 나타내는 플래그(flag)와 더불어 모든 소스코드라인을 포함한다.
컴퓨터 툴은 이미지(107)를 편집할 수 있게 해주는 에디터(editor)를 포함한 다. 이에 대해 도 2에서 도시하고 있으며, 편집된 이미지(201)는 원본 이미지(107)로부터 생성된다. 툴은 원본 이미지(107)와 비교되는 차이점을 반영한 편집된 이미지(201)를 사용자가 저장할 수 있도록 허용해 준다. 이러한 기능은, 원본이미지(107)와 편집된 이미지(201)를 비교하여 차이점 세트(set of differences)을 결정해주는 차분엔진(differences engine)(206)에 의해 달성된다. 또한 차이점 세트는 원본이미지(107)로부터 편집된 이미지(201)가 순차적으로 생성되게 해준다.
차이점 세트는 암호화 엔진(encryption engine)(207)에 입력되며, 암호화 엔진(207)은 차분파일(difference file)(208) 생성을 위해 라이센스(103)에서 공개키 페어(pair)를 이용한다. 공개키 페어는 차분파일을 암호화하는데 사용되며, 보호된 파일(101)의 암호화에 사용되는 공개키 페어와는 다른 것을 사용하는 것이 바람직하다.
차분파일(208)은 보호된 파일(101)과는 별도로 존재하지만, 편집된 이미지를 생성하기 해서는 아래와 같이 보호된 파일(101)과 결합된다.
도 1에서 도시한 바와 같이, 차분파일(208)은 액세스되어졌을 때, 보호된 파일(101)과 결합된다. 그 후에 재구성 엔진(106)은 차분파일로부터 더 많은 명령(instruction)을 받게 되며, 명령라인은 보호된 파일(101) 또는 차분파일(208) 중에 적절한 곳으로부터 복사된다. 이를 통해 원본 이미지(107)에 대한 편집된 이미지(201)가 생성된다.
도 3은 소스코드 암호화기(source code obfuscator)(302)를 이용하여 보호된 소스파일을 컴파일하는 과정을 도시하고 있다.
우선적인 절차로, 소스코드 암호화기(302)는 라이센스(103)를 기초로 하여 도 1의 메커니즘을 이용하여 인간 판독가능 이미지(107)를 생성하는 과정을 수행한다.
이미지(107)가 이용가능하게 되면, 소스코드 암호화기(302)는 암호화된 소스 파일(obfuscated source file)(304)을 생성하는 과정을 거칠 수 있다. 소스코드 암호화(obfuscation) 과정은 파일로부터 모든 인간 판독가능형 정보(human intelligible information)을 삭제하는 과정을 포함하며, 이는 널리 알려진 기술(예를들어 미국특허 US6668325)에 해당한다. 소스코드 암호화는 일반적으로 소스코드의 모든 주석(comment)을 삭제하고, 임의적으로 선택된 명칭을 포함한 사람이 의미를 알 수 있는 변수명을 교체하며, 사람이 이해하기 어려운 코드로 이루어진 포멧으로 수정하는 과정을 포함한다.
일단 암호화된 소스파일(304)이 이용가능하게 되면, 소정의 컴파일러(305)에 의해서만 읽혀질 수 있다. 또한 컴퍼일러(305)는 인간 판독가능형 이미지(107)를 컴파일하면 생성되었을 파일과 동일한 오브젝트 파일(306)을 생성할 수 있다.

Claims (23)

  1. a) 소스코드 소유자 측의 장치에서, 원본파일(original file)을 암호화하여, 보호된 파일(protected file) (101)로 사용자가 이용 가능하게 제작하는 단계;및
    b) 상기 소스코드 소유자 측의 장치에서, 상기 사용자가 상기 보호된 파일을 복호하여 상기 원본파일의 이미지를 볼 수 있게 하면서 여분용 보호된 파일 이외의 용도로 상기 원본파일의 이미지가 복사되는 것을 방지하기 위해, 유저 프로그램(user program)과 유저 라이센스(user license)(103)를 상기 사용자에게 발행하는 단계;를 포함하며,
    상기 유저 프로그램은 상기 사용자가 상기 원본파일의 이미지를 편집할 수 있게 하고, 상기 원본파일과 별도로 상기 원본파일의 이미지와 차이점(changes)을 암호화된 형식으로 저장할 수 있게 하는 에디터 프로그램을 포함하고,
    상기 원본파일의 이미지와 차이점은, 차분엔진(difference engine)에 의해 저장되며,
    상기 차분엔진은, 상기 유저 라이센스(103)를 이용하여 상기 보호된 파일을 다시 열고, 편집된 이미지와 상기 원본파일의 이미지를 비교하여 저장될 차분파일(difference file)(208)을 생성하는 것을 특징으로 하는 원본인 일반문서파일(original plain text file) 보호 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 차이점은, 상기 유저 라이센스(103) 또는 이외에 다른 라이센스 키를 이용하는 상기 에디터 프로그램에 의해 암호화되는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  4. 제 1 항에 있어서,
    상기 차이점은, 상기 보호된 파일(101) 또는 상기 보호된 파일과 관련된 차분파일(208) 내에 저장되어 있는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  5. 제 1 항에 있어서,
    상기 사용자는, 상기 에디터 프로그램과 상기 유저 라이센스(103)를 이용하여, 상기 보호된 파일(101)과 상기 차분파일(208)로부터 상기 원본파일의 편집된 이미지를 생성하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  6. 제 5 항에 있어서,
    상기 사용자는, 상기 편집된 이미지를 다시 편집한 후에 두번째 차분파일에 재편집된 이미지의 차이점을 저장시키며, 상기 두번째 차분파일은 암호화 되어있고 원본파일 및 상기 차분파일(208)과는 별도로 존재하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  7. 제 1 항에 있어서,
    상기 원본파일의 특정 파트가 편집불가(non-editable)로 표시되어 있으면,
    상기 에디터 프로그램은 상기 파트를 편집할 수 없게 되고, 상기 파트는 항상 상기 원본파일 및 특정 차분파일 또는 차분파일들로부터 생성된 특정 이미지를 가지게 되는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  8. 제 1 항에 있어서,
    상기 원본파일의 특정 파트가 숨기기(invisible)로 표시되어 있으면,
    상기 에디터 프로그램은 상기 원본파일 및 적어도 하나의 차분파일로부터 생성된 특정 이미지로 상기 파트가 표시되지 않게 하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  9. 제 1 항에 있어서,
    상기 유저 프로그램은,
    특정 소프트웨어 툴만이 판독할 수 있는 소스코드 암호화된(obfuscated) 출력파일을 상기 원본파일의 이미지로부터 생성하는 소스코드 암호화기(obfuscator) (302)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  10. 제 9 항에 있어서,
    상기 특정 소프트웨어 툴은 컴파일러(305)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  11. 제 1 항에 있어서,
    상기 원본인 일반문서파일은 소스코드(source code)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
  12. 보호된 파일(protected file)로 암호화되어 보호되어지는 원본 일반문서파일(original plain text file)에 사용자가 액세스할 수 있게 해주는 컴퓨터 툴(computer tool)이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    상기 컴퓨터 툴은, 상기 원본 일반문서파일의 이미지를 제공하면서 여분용 보호된 파일 이외의 용도로 상기 원본 일반문서파일의 이미지가 복사되는 것을 막기 위해, 상기 보호된 파일에 부여한 인증권한으로 발행된 유저 라이센스(103)에 의해 인증되어진 상기 보호된 파일을 복호하는데 적용되며,
    상기 원본 일반문서파일의 이미지를 편집한 후에, 상기 원본 일반문서파일과 별도로 상기 원본 일반문서파일의 이미지와 차이점(changes)을 암호화된 형식으로 저장하는 에디터 프로그램을 더 포함하며,
    상기 원본 일반문서파일의 이미지와 차이점은, 차분엔진(difference engine)에 의해 저장되며,
    상기 차분엔진은, 상기 유저 라이센스(103)를 이용하여 상기 보호된 파일을 다시 열고, 편집된 이미지와 상기 원본 일반문서파일의 이미지를 비교하여 저장될 차분파일(difference file)(208)을 생성하는 것을 특징으로 하는 컴퓨터 툴(computer tool)이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 컴퓨터 툴은,
    상기 유저 라이센스(103) 또는 이외에 다른 라이센스 키를 이용하여 상기 차이점을 암호화 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  15. 제 12 항에 있어서,
    상기 컴퓨터 툴은,
    상기 보호된 파일(101) 또는 상기 보호된 파일과 관련된 차분파일(208) 내에 상기 차이점을 저장하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  16. 제 12 항에 있어서,
    상기 컴퓨터 툴은,
    상기 에디터 프로그램과 상기 유저 라이센스를 이용하여, 상기 보호된 파일과 상기 차분파일로부터 상기 원본 일반문서파일의 편집된 이미지를 생성하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  17. 제 16 항에 있어서,
    상기 컴퓨터 툴은,
    상기 편집된 이미지를 다시 편집한 후에 두번째 차분파일에 재편집된 이미지의 차이점을 저장시키며, 재편집된 상기 두번째 차분파일을 암호화하고 원본 일반문서파일 및 상기 차분파일(208)과는 별도로 존재하게 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  18. 제 12 항에 있어서,
    상기 원본 일반문서파일의 특정 파트가 편집불가(non-editable)로 표시되어 있으면,
    상기 에디터 프로그램은 상기 파트를 편집할 수 없게 되고, 상기 파트는 항상 상기 원본 일반문서파일 및 특정 차분파일 혹은 차분파일들로부터 생성된 특정 이미지를 가지게 되는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  19. 제 12 항에 있어서,
    상기 원본 일반문서파일의 특정 파트가 숨기기(invisible)로 표시되어 있으면,
    상기 에디터 프로그램은 상기 원본 일반문서파일 및 적어도 하나의 차분파일로부터 생성된 특정 이미지로 상기 파트가 표시되지 않게 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  20. 제 12 항에 있어서,
    상기 유저 프로그램은,
    특정 소프트웨어 툴만이 판독할 수 있는 소스코드 암호화된(obfuscated) 출력파일을 상기 원본 일반문서파일의 이미지로부터 생성하는 소스코드 암호화기(obfuscator) (302)를 포함하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  21. 제 20 항에 있어서,
    상기 특정 소프트웨어 툴은 컴파일러(305)를 포함하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  22. 삭제
  23. 삭제
KR1020077008385A 2004-09-30 2005-09-29 소스 코드 보호 KR101190124B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0421774.1A GB0421774D0 (en) 2004-09-30 2004-09-30 Source code protection
GB0421774.1 2004-09-30
PCT/GB2005/003735 WO2006035227A2 (en) 2004-09-30 2005-09-29 Source code protection

Publications (2)

Publication Number Publication Date
KR20070057938A KR20070057938A (ko) 2007-06-07
KR101190124B1 true KR101190124B1 (ko) 2012-10-12

Family

ID=33427849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077008385A KR101190124B1 (ko) 2004-09-30 2005-09-29 소스 코드 보호

Country Status (7)

Country Link
US (1) US8935681B2 (ko)
EP (1) EP1810113A2 (ko)
KR (1) KR101190124B1 (ko)
CN (1) CN100568152C (ko)
GB (1) GB0421774D0 (ko)
TW (1) TWI298449B (ko)
WO (1) WO2006035227A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464301C (zh) * 2007-08-09 2009-02-25 威盛电子股份有限公司 应用程序处理方法及系统
KR100907798B1 (ko) * 2007-12-04 2009-07-15 주식회사 엘지씨엔에스 다운로드 가능한 콘텐츠 보안시스템 및 그 보안방법
US20100125827A1 (en) * 2008-11-18 2010-05-20 International Business Machines Corporation Developing software code using parameterized annotations
CN101764954B (zh) * 2008-11-28 2013-06-05 新奥特(北京)视频技术有限公司 一种字幕单的备份和还原方法
TWI384377B (zh) 2008-12-04 2013-02-01 Ind Tech Res Inst 資料編碼及解碼方法
US9141787B2 (en) * 2009-05-06 2015-09-22 Irdeto B.V. Interlocked binary protection using whitebox cryptography
CN101887500B (zh) * 2010-06-10 2013-01-02 复旦大学 基于标签的程序控制流深度混淆方法
KR101292004B1 (ko) * 2011-08-23 2013-08-23 주식회사 인프라웨어 웹 어플리케이션의 소스코드 패키지 보안 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN103218549B (zh) * 2012-01-19 2015-11-25 阿里巴巴集团控股有限公司 一种Java源代码加解密的方法及装置
TWI496071B (zh) * 2013-02-01 2015-08-11 Wei Ju Long 可攜式虛擬印表機
CN104123481A (zh) * 2013-04-24 2014-10-29 贝壳网际(北京)安全技术有限公司 防止应用程序被篡改的方法及装置
US10075291B1 (en) * 2015-05-27 2018-09-11 Citigroup Technology, Inc. Data deduplication and compression evaluation methods and systems
CN104992083B (zh) * 2015-07-09 2018-02-16 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
WO2017066318A1 (en) * 2015-10-12 2017-04-20 Renesas Electronics America Inc. Secure code delivery
CN107992725B (zh) * 2017-12-29 2020-08-07 北京星河星云信息技术有限公司 一种代码加密、解密方法及装置
CN112115501B (zh) * 2019-06-04 2024-10-15 珠海金山办公软件有限公司 文档中图形形状的保护方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020067833A1 (en) * 2000-12-05 2002-06-06 Han Ching-Chih (Jason) Method and apparatus for providing conditional access to the source code of a program

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271865A (ja) 1994-04-01 1995-10-20 Mitsubishi Corp データベース著作権管理方法
EP0704785B1 (en) 1994-09-30 2003-11-19 Mitsubishi Corporation Data copyright management system
EP0709760B1 (en) 1994-10-27 2006-05-31 Intarsia Software LLC Data copyright management system
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US7130831B2 (en) 1999-02-08 2006-10-31 Copyright Clearance Center, Inc. Limited-use browser and security system
US6591367B1 (en) * 1999-03-31 2003-07-08 Atabok Japan, Inc. Method and apparatus for preventing unauthorized copying and distributing of electronic messages transmitted over a network
NO311197B1 (no) * 2000-03-02 2001-10-22 Ramirez Olguin Nelson Eric Sikkerhetssystem mot ulovlig bruk eller kopiering av elektronisk data
AU7593601A (en) * 2000-07-14 2002-01-30 Atabok Inc Controlling and managing digital assets
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US7496767B2 (en) * 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
JP4448623B2 (ja) * 2001-03-29 2010-04-14 セイコーエプソン株式会社 デジタルコンテンツ提供システム,デジタルコンテンツ提供方法,サーバ装置及びデジタルコンテンツ提供プログラム
US20030088783A1 (en) * 2001-11-06 2003-05-08 Dipierro Massimo Systems, methods and devices for secure computing
NO20023860D0 (no) * 2002-08-14 2002-08-14 Sospita As Fremgangsmåte for å generere og prosessere dataströmmer som inneholder krypterte og dekrypterte data
US7213201B2 (en) * 2003-03-03 2007-05-01 International Business Machines Corporation Meta editor for structured documents
US7515717B2 (en) * 2003-07-31 2009-04-07 International Business Machines Corporation Security containers for document components
US7721111B2 (en) * 2003-12-14 2010-05-18 Realnetworks, Inc. Auto-negotiation of content output formats using a secure component model
US7484107B2 (en) * 2004-04-15 2009-01-27 International Business Machines Corporation Method for selective encryption within documents

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020067833A1 (en) * 2000-12-05 2002-06-06 Han Ching-Chih (Jason) Method and apparatus for providing conditional access to the source code of a program

Also Published As

Publication number Publication date
KR20070057938A (ko) 2007-06-07
TW200622703A (en) 2006-07-01
WO2006035227A3 (en) 2006-05-26
GB0421774D0 (en) 2004-11-03
US20110078669A1 (en) 2011-03-31
CN100568152C (zh) 2009-12-09
WO2006035227A2 (en) 2006-04-06
EP1810113A2 (en) 2007-07-25
TWI298449B (en) 2008-07-01
CN101031859A (zh) 2007-09-05
US8935681B2 (en) 2015-01-13

Similar Documents

Publication Publication Date Title
KR101190124B1 (ko) 소스 코드 보호
JP4304220B2 (ja) 自己保護文書が記録されたコンピュータ読み取り可能な記録媒体及び自己保護文書を使用する方法
US5673316A (en) Creation and distribution of cryptographic envelope
US11176225B2 (en) Computer-implemented method, a system, and computer programs for digital files management and preservation in digital licenses
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US6314409B2 (en) System for controlling access and distribution of digital property
EP1596269A2 (en) A system and method for rendering selective presentation of documents
US20060178997A1 (en) Systems and methods for authoring and protecting digital property
JPWO2004109972A1 (ja) ライセンス受信用ユーザ端末
JP4593549B2 (ja) ファイル自動復号暗号化システムおよびプログラム
JP4662138B2 (ja) 情報漏洩防止方法及びシステム
JP2004046859A (ja) 媒体上のコンテンツの自由配布防止
CN101132275B (zh) 一种实现数字内容使用权利的安全保护系统
JP5631251B2 (ja) 情報漏洩防止方法
KR100848369B1 (ko) 암호화 데이터 생성, 암호화 데이터 해독, 재서명된데이터 생성을 위한 장치와 방법
JP4192738B2 (ja) 電子文書編集装置、電子文書編集プログラム
JP2008011219A (ja) 電子透かし埋込システム、装置及びプログラム
KR20020081762A (ko) 디지털 콘텐츠를 위한 보안 서비스 방법 및 그를 위한시스템
TWI465957B (zh) 以終端裝置執行的之版權管理離線授權之方法與終端裝置
CN116186648A (zh) 一种低代码元数据保护的方法及系统
JPH01240948A (ja) プログラム盗用防止装置
Cha et al. Copyrights Expression and Secure Container of Software Source Code
KR20040061827A (ko) 컴팩트 디스크 소프트웨어 보호 시스템 및 그 방법
KR20080013058A (ko) 보안 공씨디

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 7