KR20100033766A - 프로그램 소스 다운로드 시스템 및 방법 - Google Patents
프로그램 소스 다운로드 시스템 및 방법 Download PDFInfo
- Publication number
- KR20100033766A KR20100033766A KR20080092789A KR20080092789A KR20100033766A KR 20100033766 A KR20100033766 A KR 20100033766A KR 20080092789 A KR20080092789 A KR 20080092789A KR 20080092789 A KR20080092789 A KR 20080092789A KR 20100033766 A KR20100033766 A KR 20100033766A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- terminal
- source
- download
- server
- Prior art date
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 프로그램 소스 다운로드 시스템 및 방법에 관한 것이다.
이를 위한 본 발명은 프로그램 구입 서비스를 제공하는 컨텐츠 포탈 서버; 상기 컨텐츠 포탈 서버로부터, 구매가 이루어진 프로그램의 식별정보와 상기 프로그램을 구입한 단말기의 인증정보를 전송받아서 상기 식별정보에 대응되는 프로그램의 소스를 암호화하는 컨텐츠 다운로드 서버; 및 인증정보를 상기 컨텐츠 포탈 서버에 전달하고, 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일하여 실행파일로 변환하는 단말기;로 구성된 것에 특징이 있다.
소스 암호화, XML(extensible markup language), UUID(Universal Unique Identifier),
Description
본 발명은 이동통신단말기의 프로그램을 바이너리가 아닌 소스코드 형태로 배포하는 프로그램 소스 다운로드 시스템 및 방법에 관한 것이다.
주지하다시피, 현재 이동통신산업은 날로 성장하여 이동통신가입자 수가 국내는 물론 전 세계적으로 증가하고 있는 추세이다. 이러한 상황 가운데 이동통신기술의 발달과 함께 무선 인터넷에 대한 관심이 갈수록 증대되어, 최근에는 셀룰러 폰, PCS, PDA 등으로 대표되는 단말기를 이용해 언제 어디서나 무선인터넷 통신을 사용할 수 있게 되었다.
따라서, 무선 인터넷의 발달은 다양한 프로그램 산업에도 큰 영향을 미치게 되었고, 최근 들어서는 가상 머신(VM : Virtual Machine), 브루(Brew), WinCE 등과 같은 단말기용 다운로드 플랫폼이 개발됨에 따라 단말기를 통해 다양한 응용프로그램들을 다운로드 받아 이용할 수 있게 되었다.
이러한 소프트웨어 배포과정을 살펴보면, 컨텐츠 다운로드 서버에서 해당 프 로그램 소스코드를 컴파일하여 실행가능한 바이너리 파일로 변환한 후 단말기로로 다운로드 서비스를 제공하였기 때문에, 별도의 바이너리 변환 서버 인프라가 발생해 시스템구조가 복잡해질 뿐만 아니라, 단말기의 VM에 최적화된 컴파일이 진행되지 않아 그만큼 프로그램 실행속도가 느려지는 문제점이 있었다.
또한 종래의 프로그램 다운로드 방법에 의하면, 응용프로그램 다운로드시 별도의 보안체계가 구축되지 않은 상태에서 다운로드를 허용했기 때문에, 그만큼 불법다운로드 및 불법복제 등과 같은 보안사고가 발생할 수밖에 없어 프로그램 사업자 입장에서는 막대한 손실로 이어지는 문제점이 있었다.
본 발명은 별도의 바이너리 변환 서버 인프라를 제거하여 소프트웨어 다운로드 시스템의 구조를 단순화시키고, 컴파일 및 보안성의 향상을 가능케하는 것을 목적으로 한다.
상기와 같은 목적을 해결하고자 하는 본 발명의 프로그램 소스 다운로드 시스템은, 프로그램 구입 서비스를 제공하는 컨텐츠 포탈 서버;
상기 컨텐츠 포탈 서버로부터, 구매가 이루어진 프로그램의 식별정보와 상기 프로그램을 구입한 단말기의 인증정보를 전송받아서 상기 식별정보에 대응되는 프로그램의 소스를 암호화하는 컨텐츠 다운로드 서버; 및
인증정보를 상기 컨텐츠 포탈 서버에 전달하고, 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일하여 실행파일로 변환하는 단말기;를 구비하는 것을 특징으로 한다.
한편, 상기와 같은 목적을 해결하고자 하는 본 발명의 프로그램 소스 다운로드방법은, 단말기가 프로그램을 선택한 후 인증정보를 컨텐츠 포탈 서버에 전달하는 단계;
컨텐츠 다운로드 서버가 상기 컨텐츠 포탈 서버로부터 상기 단말기의 인증정 보 및 프로그램 식별정보를 전달받아 상기 단말기의 인증정보를 이용하여 프로그램 소스를 암호화하여 상기 단말기로 전송하는 단계; 및
상기 단말기가 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일하여 실행파일로 변환하는 단계;로 이루어지는 것을 특징으로 한다.
본 발명에 의하면 응용프로그램 다운로드시 프로그램 소스코드 자체를 단말기로 제공하되, 해당 단말기의 전화번호 또는 UUID 정보 등과 같은 단말정보를 이용해 그 프로그램 소스코드를 XML 암호화하여 제공해줌으로써, 별도의 바이너리 변환 서버 인프라를 제거하여 프로그램 다운로드 시스템의 구조를 최적화시킴과 동시에 그만큼 프로그램 보안체계를 향상시키고,
단말 입장에서는 응용프로그램 소스코드 자체를 다운로드 받아 자신이 직접 컴파일한 후 프로그램을 실행시키기 때문에 VM 기반 프로그램 실행속도가 현격히 빨라지는 뛰어난 효과가 있다.
이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 프로그램 소스 다운로드 시스템의 구성을 상세히 설명하기로 한다. 도 1은 본 발명에 의한 프로그램 소스 다운로드 시스템의 구성을 도시하는 망 구성도이다.
도 1에 도시된 바에 의하면 프로그램 소스 다운로드 시스템은 단말기(100), 컨텐츠 포탈 서버(200) 및 컨텐츠 다운로드 서버(Contents Download Server)(300)로 구성된다.
단말기(100)는 사용자가 컨텐츠 포탈 서버(200)로 접속하여 프로그램을 선택 구입하면, 단말기 자신의 전화번호 또는 UUID(Universal Unique Identifier) 정보 를 상기 컨텐츠 포탈 서버(200)로 전송한다. 이때, UUID란 인터넷상에서 객체나 실체를 식별하는 데 사용되는 128비트 숫자를 의미하며, 전화번호와 마찬가지로 단말마다 유일하게 결정되는 정보이다.
도 1에서는 비록 단말기(100)가 이동통신단말기인 경우를 예를 들어 설명하고 있으나, 단말기(100)는 상기의 제한을 만족하는 것이라면 하드웨어의 형태에는 국한되지 아니한다.
한편, 컨텐츠 포탈 서버(200)는 상기 단말기(100)가 무선망을 통해 접속하여 프로그램을 구입할 수 있도록 서비스를 제공하며, 상기 단말기(100)로부터 전송받은 전화번호 또는 UUID 정보를 컨텐츠 다운로드 서버(300)로 전달한다.
상기 컨텐츠 다운로드 서버(300)는 사용자가 구입한 프로그램을 상기 단말기(100)로 전송함에 있어, 프로그램 소스 자체를 전송하되, 보안을 위해 암호화시켜 전송한다. 이때, 상기 프로그램 소스는 이미 상술한 바와 같이 단말기(100)의 인증정보(전화번호 또는 UUID)를 이용하여 XML 워터마크(WaterMark) 방식으로 암호화된다.
한편, 프로그램 소스는 C/C++, java 기타의 언어에 의해 작성된 것일 수 있으며, 컴파일 이전 고급언어로 작성된 상태를 의미한다.
도 2는 본 발명에 적용된 단말기(100)의 계층도이다. 상기 단말기(100)는 상기 컨텐츠 다운로드 서버(300)로부터 XML로 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일(Compile) 과정을 거쳐 프로그램 실행 파일을 생성하는 다운로드 플랫폼(Download Platform)(110)과; 상기 다운로드 플랫폼(110)에 의해 생성된 프로그램 실행 파일을 실행시키는 어플리케이션 계층(Application Layer)(120)로 구성된다.
또한, 상기 다운로드 플랫폼(110)은 도 2에 도시된 것처럼, 소스 다운로드 복호화모듈(111), 프로그램 소스 컴파일러(112), 프로그램 보관 매니저(113) 및 프로그램 실행 로더(114)로 구성되어 있다.
상기 소스 다운로드 복호화모듈(111)은 상기 컨텐츠 다운로드 서버(300)로부터 수신받은 암호화된 XML 소스문서를 자신의 단말정보, 즉 전화번호 또는 UUID와 비교하여 일치하면 즉, 암호화된 XML 소스가 자신의 전화번호 또는 UUID를 이용하여 암호화된 것이라면, 이번에는 반대로 자신의 전화번호 또는 UUID를 이용하여 복호화한다. 따라서, 자신의 단말정보와 일치하지 않는 암호화된 XML 소스인 경우, 복호화는 물론 실행파일을 생성하는 것은 불가능하다.
또한, 상기 프로그램 소스 컴파일러(112)는 프로그램 소스코드를 컴파일하여 바이너리(Binary) 실행파일을 생성한다. 이때, 단말 고유의 VM 환경이나 무선플랫폼에 기반한 최적화된 컴파일이 가능함은 물론이다.
한편, 상기 프로그램 보관 매니저(113)는 프로그램 바이너리 실행파일을 저장하는 역할을 하고, 상기 프로그램 실행 로더(114)는 프로그램 실행 바이너리 파일을 검색하여 실행하는 역할을 한다.
그러면, 상기와 같은 구성을 가지는 시스템을 이용한 본 발명의 일 실시예에 따른 프로그램 소스 다운로드방법에 대해 첨부된 도면을 참조하여 설명하기로 한다.
우선, 도 1에 도시된 것처럼 프로그램 개발자는 프로그램 소스를 상기 컨텐츠 다운로드 서버(300)로 등록한다.
한편, 상기 단말기(100)의 사용자는 컨텐츠 서버(200)에 접속하여 자신이 원하는 프로그램을 인터넷에서 검색하여 구입한 후, 인증을 위한 처리동작을 수행한다. 그러면, 상기 단말기(100)는 도 3에 도시된 것처럼, 자신의 전화번호 또는 UUID 정보를 상기 컨텐츠 포탈 서버(200)로 전달한다(S110).
상기 단말기(100)의 전화번호 또는 UUID 정보가 상기 컨텐츠 포탈 서버(200)로 전달되면, 상기 컨텐츠 포탈 서버(200)는 상기 전달된 상기 단말기(100)의 전화번호 또는 UUID 정보를 상기 컨텐츠 다운로드 서버(300)로 전송한다(S120).
상기 컨텐츠 다운로드 서버(300)는 상기 단말기(100)로 해당 프로그램을 다운로드시키기에 앞서, 먼저 상기 컨텐츠 다운로드 서버(300)로부터 전송된 상기 단말기의 전화번호 또는 UUID 정보를 이용하여 프로그램 소스를 XML 소스문서로 암호화한다. 이는 프로그램 소스의 보안을 위한 것으로, 본 발명에서 중요한 점은 단말마다 유일하게 결정되는 정보를 이용해 XML 소스문서로 암호화한다는 점이다. 이에 의하여 단 하나의 단말기(100)만이 암호화된 소스를 복호화할 수 있게 된다.
그런 후, 상기 컨텐츠 다운로드 서버(300)는 암호화된 XML 소스문서를 상기 단말기(100)로 전송한다(S130).
그러면, 상기 단말기(100)는 해당 XML 소스문서를 다운로드 받아 복호화과정을 처리한다. 이때 상기 컨텐츠 다운로드 서버(300)로부터 다운로드 받은 상기 XML 소스문서가 자신의 단말정보 즉, 자신의 전화번호 또는 UUID 정보와 다를 경우, 상기 단말기(100)는 복호화를 진행하는 것이 불가능하므로 종료한다. 나아가, 보안성의 향상을 위하여, 단말정보와 일치하지 않는 경우에는 암호화된 XML 소스를 삭제한다.
반면에, 상기 XML 소스문서와 자신의 전화번호 또는 UUID 정보가 동일하면, 상기 단말기(100)는 복호화한 후 컴파일하여 실행파일로 변환한다(S140).
도 4는 상술한 단말기(100)의 세부과정을 더 구체적으로 설명한다. 즉, 상기 단말기(100)는 프로그램 구입과정에서 인증정보를 컨텐츠 포탈 서버(200)로 전달한다(S210). 이때의 인증정보는 단말 자신의 전화번호 또는 UUID 정보임은 물론이다.
그런 후, 상기 단말기(100)는 상기 컨텐츠 다운로드 서버(300)에 접속하여 XML로 암호화된 프로그램 소스를 다운로드 받는데, 상기 프로그램 소스는 단말(100)의 전화번호 또는 UUID 정보를 통해 암호화되어 있다(S220).
상기 단말기(100)는 XML 소스문서의 복호화를 위해, 해당 XML 문서와 단말정보를 비교하여(S230), 일치하면(YES) 복호화한다(S240). 따라서 복호화과정을 통해 프로그램 소스코드가 생성되는 것이다.
이후, 컴파일 과정을 거쳐(S250), 최종적으로 프로그램 실행 바이너리 파일이 생성됨으로써, 단말기(100) 내에서 실행될 수 있게 된다.
이러한 과정을 거쳐 프로그램 실행 바이너리 파일이 생성되면, 상기 단말기(100)의 VM 이나 무선 플랫폼 등의 환경에 최적화된 프로그램 컴파일이 가능하므로, 단말 VM 기반의 프로그램 실행속도가 향상된다.
반면에, 상기 단말기(100)는 상기 비교단계(S230)에서 암호화된 XML 소스문서와 단말기의 정보가 다르면(NO), 복호화 과정의 진행이 불가능함은 물론, 나아가 암호화된 XML 소스문서 자체를 강제로 삭제함으로써 보안성을 강화한다(S260).
이상 다수의 실시예를 들어 본 발명을 상세하게 설명하였으나, 본 발명의 권리범위는 이러한 실시예로 국한되어 해석되지 아니하며, 본 발명은 특허청구범위에 기재된 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로그램 소스 다운로드 시스템의 구성을 나타낸 망 구성도,
도 2는 도 1에 따른 프로그램 소스 다운로드 시스템에서 단말기(100)의 계층도,
도 3은 본 발명의 일 실시예에 따른 프로그램 소스 다운로드방법을 나타낸 동작 플로우챠트,
도 4는 도 2에 따른 프로그램 소스 다운로드방법에서 단말기(100) 입장에서의 처리과정을 나타낸 동작 플로우챠트이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 단말기
110 : 다운로드 플랫폼
111 : 소스 다운로드 복호화모듈
112 : 프로그램 소스 컴파일러
113 : 프로그램 보관 매니저
114 : 프로그램 실행 로더
120 : 어플리케이션 계층
200 : 컨텐츠 포탈 서버
300 : 컨텐츠 다운로드 서버
Claims (8)
- 프로그램 구입 서비스를 제공하는 컨텐츠 포탈 서버;상기 컨텐츠 포탈 서버로부터, 구매가 이루어진 프로그램의 식별정보와 상기 프로그램을 구입한 단말기의 인증정보를 전송받아서 상기 식별정보에 대응되는 프로그램의 소스를 암호화하는 컨텐츠 다운로드 서버; 및인증정보를 상기 컨텐츠 포탈 서버에 전달하고, 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일하여 실행파일로 변환하는 단말기를 포함하는 프로그램 소스 다운로드 시스템.
- 제 1항에 있어서,상기 단말기의 인증정보는 상기 단말기의 전화번호 또는 UUDI(Universal Unique Identifier)인 프로그램 소스 다운로드 시스템.
- 제 1항 또는 제 2항에 있어서,상기 컨텐츠 다운로드 서버는 상기 단말기의 인증정보를 이용해 프로그램 소스를 XML 워터마크(WaterMark) 방식으로 암호화하는 프로그램 소스 다운로드 시스템.
- 제 3항에 있어서,상기 XML 암호화는 암호화된 데이터의 복사시 유효성이 상실되도록 이루어진 프로그램 소스 다운로드 시스템.
- 제 3항에 있어서,상기 단말기는 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일 과정을 거쳐 프로그램 실행 파일로 변환하는 다운로드 플랫폼; 및상기 다운로드 플랫폼에 의해 생성된 프로그램 실행 파일을 실행시키는 어플리케이션 계층;를 구비하는 프로그램 소스 다운로드 시스템.
- 제 5항에 있어서,상기 다운로드 플랫폼은 상기 컨텐츠 다운로드 서버로부터 수신받은 XML 소스 문서의 암호화 정보에 포함된 상기 단말기의 인증정보를 단말정보와 비교하여 일치할 경우 프로그램 소스로 변환하는 소스 다운로드 복호화모듈;상기 소스 다운로드 복호화모듈을 통해 변환된 프로그램 소스를 컴파일하여 프로그램 실행 바이너리 파일을 생성하는 프로그램 소스 컴파일러;상기 프로그램 소스 컴파일러에 의해 생성된 프로그램 실행 바이너리 파일을 저장하는 프로그램 보관 매니저; 및상기 프로그램 보관 매니저에 저장된 프로그램 실행 바이너리 파일을 검색하여 실행하는 프로그램 실행 로더;를 구비하는 프로그램 소스 다운로드 시스템.
- 단말기가 프로그램을 선택한 후 인증정보를 컨텐츠 포탈 서버에 전달하는 단계;컨텐츠 다운로드 서버가 상기 컨텐츠 포탈 서버로부터 상기 단말기의 인증정보 및 프로그램 식별정보를 전달받아 상기 단말기의 인증정보를 이용하여 프로그램 소스를 암호화하여 상기 단말기로 전송하는 단계; 및상기 단말기가 상기 컨텐츠 다운로드 서버로부터 암호화된 프로그램 소스를 다운로드 받아 복호화 및 컴파일하여 실행파일로 변환하는 단계;로 이루어지는 프로그램 소스 다운로드방법.
- 제 7항에 있어서,상기 인증정보 전달단계에서, 단말기가 자신의 전화번호 또는 UUID(Universal Unique Identifier) 정보를 인증정보로써 컨텐츠 포탈 서버로 전달하는 프로그램 소스 다운로드방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080092789A KR101520097B1 (ko) | 2008-09-22 | 2008-09-22 | 프로그램 소스 다운로드 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080092789A KR101520097B1 (ko) | 2008-09-22 | 2008-09-22 | 프로그램 소스 다운로드 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100033766A true KR20100033766A (ko) | 2010-03-31 |
KR101520097B1 KR101520097B1 (ko) | 2015-05-14 |
Family
ID=42182552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080092789A KR101520097B1 (ko) | 2008-09-22 | 2008-09-22 | 프로그램 소스 다운로드 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101520097B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020017860A1 (ko) * | 2018-07-19 | 2020-01-23 | (주)코믹스브이 | 파노라마 형식의 이미지를 이용한 가상현실 만화 서비스 제공 방법 |
US11055075B2 (en) | 2015-12-15 | 2021-07-06 | Samsung Electronics Co., Ltd. | User terminal device, server, and application execution method thereof |
-
2008
- 2008-09-22 KR KR1020080092789A patent/KR101520097B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055075B2 (en) | 2015-12-15 | 2021-07-06 | Samsung Electronics Co., Ltd. | User terminal device, server, and application execution method thereof |
WO2020017860A1 (ko) * | 2018-07-19 | 2020-01-23 | (주)코믹스브이 | 파노라마 형식의 이미지를 이용한 가상현실 만화 서비스 제공 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR101520097B1 (ko) | 2015-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6257754B2 (ja) | データの保護 | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
CN111832013A (zh) | 固件升级方法及装置 | |
CN101167070B (zh) | 域管理的方法和设备 | |
CN102236757A (zh) | 一种适用于Android系统的软件保护方法及系统 | |
CN104239757A (zh) | 应用程序防止逆向的方法及装置、运行方法及终端 | |
CN106415491B (zh) | 一种应用保护方法、服务器以及终端 | |
CN101957903A (zh) | 一种保护类文件的方法和装置 | |
CN108183796A (zh) | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 | |
CN111240654A (zh) | 一种Python代码加固保护的方法及其系统 | |
CN112966227A (zh) | 代码加密解密方法和装置、存储介质 | |
JP2007233426A (ja) | アプリケーション実行装置 | |
CN112256275A (zh) | 代码混淆方法、装置、电子设备及介质 | |
JP7331714B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN114547558B (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN111901287A (zh) | 一种为轻应用提供加密信息的方法、装置和智能设备 | |
CN107087004A (zh) | 源文件处理方法及装置、源文件获取方法及装置 | |
CN114115903A (zh) | 一种对小程序的加固、小程序运行方法及装置 | |
CN110135131B (zh) | 一种应用程序的加密方法、存储介质及终端设备 | |
KR101520097B1 (ko) | 프로그램 소스 다운로드 시스템 및 방법 | |
CN112416395A (zh) | 一种热修复更新方法和装置 | |
JP2013045277A (ja) | プログラム難読化方法およびリモートデバッグシステム | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
CN113420313A (zh) | 程序安全运行、加密方法及其装置、设备、介质 | |
KR20110035140A (ko) | 제이투엠이 응용프로그램이 포함된 제이에이알 파일 암호화를 통한 복제 방지 및 역컴파일 방지 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180411 Year of fee payment: 6 |