KR101190124B1 - 소스 코드 보호 - Google Patents
소스 코드 보호 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- 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/2107—File encryption
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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
-
- 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
-
- 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
- H04L9/3247—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 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
본 발명은 원본인 일반문서파일(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)
- a) 소스코드 소유자 측의 장치에서, 원본파일(original file)을 암호화하여, 보호된 파일(protected file) (101)로 사용자가 이용 가능하게 제작하는 단계;및b) 상기 소스코드 소유자 측의 장치에서, 상기 사용자가 상기 보호된 파일을 복호하여 상기 원본파일의 이미지를 볼 수 있게 하면서 여분용 보호된 파일 이외의 용도로 상기 원본파일의 이미지가 복사되는 것을 방지하기 위해, 유저 프로그램(user program)과 유저 라이센스(user license)(103)를 상기 사용자에게 발행하는 단계;를 포함하며,상기 유저 프로그램은 상기 사용자가 상기 원본파일의 이미지를 편집할 수 있게 하고, 상기 원본파일과 별도로 상기 원본파일의 이미지와 차이점(changes)을 암호화된 형식으로 저장할 수 있게 하는 에디터 프로그램을 포함하고,상기 원본파일의 이미지와 차이점은, 차분엔진(difference engine)에 의해 저장되며,상기 차분엔진은, 상기 유저 라이센스(103)를 이용하여 상기 보호된 파일을 다시 열고, 편집된 이미지와 상기 원본파일의 이미지를 비교하여 저장될 차분파일(difference file)(208)을 생성하는 것을 특징으로 하는 원본인 일반문서파일(original plain text file) 보호 방법.
- 삭제
- 제 1 항에 있어서,상기 차이점은, 상기 유저 라이센스(103) 또는 이외에 다른 라이센스 키를 이용하는 상기 에디터 프로그램에 의해 암호화되는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 차이점은, 상기 보호된 파일(101) 또는 상기 보호된 파일과 관련된 차분파일(208) 내에 저장되어 있는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 사용자는, 상기 에디터 프로그램과 상기 유저 라이센스(103)를 이용하여, 상기 보호된 파일(101)과 상기 차분파일(208)로부터 상기 원본파일의 편집된 이미지를 생성하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 5 항에 있어서,상기 사용자는, 상기 편집된 이미지를 다시 편집한 후에 두번째 차분파일에 재편집된 이미지의 차이점을 저장시키며, 상기 두번째 차분파일은 암호화 되어있고 원본파일 및 상기 차분파일(208)과는 별도로 존재하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 원본파일의 특정 파트가 편집불가(non-editable)로 표시되어 있으면,상기 에디터 프로그램은 상기 파트를 편집할 수 없게 되고, 상기 파트는 항상 상기 원본파일 및 특정 차분파일 또는 차분파일들로부터 생성된 특정 이미지를 가지게 되는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 원본파일의 특정 파트가 숨기기(invisible)로 표시되어 있으면,상기 에디터 프로그램은 상기 원본파일 및 적어도 하나의 차분파일로부터 생성된 특정 이미지로 상기 파트가 표시되지 않게 하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 유저 프로그램은,특정 소프트웨어 툴만이 판독할 수 있는 소스코드 암호화된(obfuscated) 출력파일을 상기 원본파일의 이미지로부터 생성하는 소스코드 암호화기(obfuscator) (302)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 9 항에 있어서,상기 특정 소프트웨어 툴은 컴파일러(305)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 제 1 항에 있어서,상기 원본인 일반문서파일은 소스코드(source code)를 포함하는 것을 특징으로 하는 원본인 일반문서파일 보호 방법.
- 보호된 파일(protected file)로 암호화되어 보호되어지는 원본 일반문서파일(original plain text file)에 사용자가 액세스할 수 있게 해주는 컴퓨터 툴(computer tool)이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,상기 컴퓨터 툴은, 상기 원본 일반문서파일의 이미지를 제공하면서 여분용 보호된 파일 이외의 용도로 상기 원본 일반문서파일의 이미지가 복사되는 것을 막기 위해, 상기 보호된 파일에 부여한 인증권한으로 발행된 유저 라이센스(103)에 의해 인증되어진 상기 보호된 파일을 복호하는데 적용되며,상기 원본 일반문서파일의 이미지를 편집한 후에, 상기 원본 일반문서파일과 별도로 상기 원본 일반문서파일의 이미지와 차이점(changes)을 암호화된 형식으로 저장하는 에디터 프로그램을 더 포함하며,상기 원본 일반문서파일의 이미지와 차이점은, 차분엔진(difference engine)에 의해 저장되며,상기 차분엔진은, 상기 유저 라이센스(103)를 이용하여 상기 보호된 파일을 다시 열고, 편집된 이미지와 상기 원본 일반문서파일의 이미지를 비교하여 저장될 차분파일(difference file)(208)을 생성하는 것을 특징으로 하는 컴퓨터 툴(computer tool)이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 삭제
- 제 12 항에 있어서,상기 컴퓨터 툴은,상기 유저 라이센스(103) 또는 이외에 다른 라이센스 키를 이용하여 상기 차이점을 암호화 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 12 항에 있어서,상기 컴퓨터 툴은,상기 보호된 파일(101) 또는 상기 보호된 파일과 관련된 차분파일(208) 내에 상기 차이점을 저장하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 12 항에 있어서,상기 컴퓨터 툴은,상기 에디터 프로그램과 상기 유저 라이센스를 이용하여, 상기 보호된 파일과 상기 차분파일로부터 상기 원본 일반문서파일의 편집된 이미지를 생성하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 16 항에 있어서,상기 컴퓨터 툴은,상기 편집된 이미지를 다시 편집한 후에 두번째 차분파일에 재편집된 이미지의 차이점을 저장시키며, 재편집된 상기 두번째 차분파일을 암호화하고 원본 일반문서파일 및 상기 차분파일(208)과는 별도로 존재하게 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 12 항에 있어서,상기 원본 일반문서파일의 특정 파트가 편집불가(non-editable)로 표시되어 있으면,상기 에디터 프로그램은 상기 파트를 편집할 수 없게 되고, 상기 파트는 항상 상기 원본 일반문서파일 및 특정 차분파일 혹은 차분파일들로부터 생성된 특정 이미지를 가지게 되는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 12 항에 있어서,상기 원본 일반문서파일의 특정 파트가 숨기기(invisible)로 표시되어 있으면,상기 에디터 프로그램은 상기 원본 일반문서파일 및 적어도 하나의 차분파일로부터 생성된 특정 이미지로 상기 파트가 표시되지 않게 하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 12 항에 있어서,상기 유저 프로그램은,특정 소프트웨어 툴만이 판독할 수 있는 소스코드 암호화된(obfuscated) 출력파일을 상기 원본 일반문서파일의 이미지로부터 생성하는 소스코드 암호화기(obfuscator) (302)를 포함하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 20 항에 있어서,상기 특정 소프트웨어 툴은 컴파일러(305)를 포함하는 것을 특징으로 하는 컴퓨터 툴이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 삭제
- 삭제
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)
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)
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)
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 |
-
2004
- 2004-09-30 GB GBGB0421774.1A patent/GB0421774D0/en not_active Ceased
-
2005
- 2005-09-29 US US11/664,431 patent/US8935681B2/en not_active Expired - Fee Related
- 2005-09-29 KR KR1020077008385A patent/KR101190124B1/ko active IP Right Grant
- 2005-09-29 CN CNB2005800329130A patent/CN100568152C/zh not_active Expired - Fee Related
- 2005-09-29 EP EP05794690A patent/EP1810113A2/en not_active Ceased
- 2005-09-29 WO PCT/GB2005/003735 patent/WO2006035227A2/en active Application Filing
- 2005-09-30 TW TW094134228A patent/TWI298449B/zh not_active IP Right Cessation
Patent Citations (1)
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 |