KR101453742B1 - 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 - Google Patents
웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 Download PDFInfo
- Publication number
- KR101453742B1 KR101453742B1 KR1020100045190A KR20100045190A KR101453742B1 KR 101453742 B1 KR101453742 B1 KR 101453742B1 KR 1020100045190 A KR1020100045190 A KR 1020100045190A KR 20100045190 A KR20100045190 A KR 20100045190A KR 101453742 B1 KR101453742 B1 KR 101453742B1
- Authority
- KR
- South Korea
- Prior art keywords
- web application
- execution
- access control
- plug
- layer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000009434 installation Methods 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 44
- 238000012795 verification Methods 0.000 claims description 19
- 238000002054 transplantation Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 31
- 239000003795 chemical substances by application Substances 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 239000006096 absorbing agent Substances 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 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
- 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
- G06F21/128—Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
-
- 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/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/3236—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 using cryptographic hash functions
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 웹 표준에 따르고 단말 자원에 접근하는 웹 어플리케이션을 실행시키는데 있어서, 웹 어플리케이션의 실행 및 설치와, 단말 자원으로의 접근을 제어하여, 웹 어플리케이션의 실행에 대한 안전성을 제공할 수 있는 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법에 관한 것이다. 본 발명에 따르면, 인증 모듈을 통해 웹 어플리케이션의 설치 또는 실행 또는 로딩 전에, 웹 어플리케이션의 코드 사인을 검증하도록 하고, 정책 모듈을 통해 웹 어플리케이션의 이식 계층부에 대한 접근 제어 규칙을 관리하고, 상기 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어한다.
Description
본 발명은 웹 어플리케이션 실행을 위한 보안 제공 방법 및 장치에 관한 것으로서, 더욱 상세하게는 웹 표준을 지원하며 단말 자원에 접근할 수 있는 웹 어플리케이션 실행 환경을 제공하는데 있어서, 웹 어플리케이션의 실행 및 설치와, 단말 자원으로의 접근을 제어하여, 웹 어플리케이션의 실행에 대한 안전성을 제공할 수 있는 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법에 관한 것이다.
최근 이동 통신 단말기에 오픈 환경이 적용됨에 따라서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 장치 환경이 요구되고 있다.
더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 오픈 환경의 이동 통신 단말기가 급성장하면서, 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 OMP(Open Market Place)도 활성화되고 있다.
그런데 현재 이동 통신 단말에는 다양한 종류의 운영체제가 사용되고 있기 때문에, 어플리케이션 개발자는 여러 종류의 운영체제 환경을 감안하여 모바일 어플리케이션을 개발하여야 한다.
한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다.
따라서, 이동 통신 단말에 대하여, 표준 웹 기술을 지원하는 웹 어플리케이션 플랫폼을 구현할 경우, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있으며, 더하여, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있게 된다.
본 발명은, 웹 표준에 따르고 단말 자원에 접근하는 웹 어플리케이션을 실행시키는데 있어서, 웹 어플리케이션의 실행 및 설치와, 단말 자원으로의 접근을 제어하여, 웹 어플리케이션의 실행에 대한 안전성을 제공할 수 있는 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법을 제공하고자 한다.
본 발명은 과제를 해결하기 위한 수단으로서, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부와, 운영체제의 기능 및 단말의 자원에 대한 이식 계층 API를 지원하는 이식 계층부를 포함하는 웹 어플리케이션 실행 장치에서 웹 어플리케이션의 실행을 위한 보안 제공 장치를 제공한다. 본 발명에 의한 보안 제공 장치는 인증모듈과, 정책 모듈을 포함하는 웹 어플리케이션 실행을 위한 보안 제공 장치를 제공한다. 인증 모듈은, 웹 어플리케이션의 설치 전에, 웹 어플리케이션의 코드 사인을 검증한다. 정책 모듈은 웹 어플리케이션의 이식 계층부에 대한 접근 제어 규칙을 관리하고, 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 이식 계층부에 대한 접근을 제어한다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 인증 모듈은 브라우저 엔진 계층부에 구비되어 이식 계층부의 특정 기능에 대한 호출 및 응답을 처리하는 플러그 인의 설치 전에, 플러그 인의 코드 사인을 검증하는 기능을 더 수행할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 인증 모듈은 웹 어플리케이션 또는 플러그 인의 실행 또는 로딩 요청 시, 웹 어플리케이션 또는 플러그 인의 코드 사인을 검증하는 기능을 더 수행할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 인증 모듈은, 웹 어플리케이션 또는 플러그 인의 설치 또는 실행 또는 로딩 요청 시에, 웹 어플리케이션 및 플러그 인의 코드사인을 인증하는 인증 엔진; 및 인증 엔진에서 인증 처리에 요구되는 하나 이상의 해싱 알고리즘 및 정보를 제공하는 보안 라이브러리를 포함하여 이루어진다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 정책 모듈은 전달된 접근 제어 규칙을 이식 계층부를 통해 보안 저장 영역에 저장하고, 저장한 접근 제어 규칙들을 메모리에 올려 고속 검색할 수 있도록 하는 데이터 매니저; 접근 제어 규칙을 집행할 하나 이상의 정책 인에이블러를 설치 및 관리하며, 하기의 정책 집행 매니저의 요청에 따라서 검색된 접근 제어 규칙에 대응하는 정책 인에이블러를 호출하여 구동시키는 인에이블러 매니저; 인에이블러 매니저에 의해 설치되고 실행되어, 대응하는 접근 제어 규칙을 집행하는 하나 이상의 정책 인에이블러; 및 실행 계층부로부터 접근 제어 규칙 및 정책 인에이블러를 전달받아, 데이터 매니저 및 인에이블러 매니저를 통해 저장 및 설치하고, 이식 계층부의 특정 API에 대한 접근 요청이 발생하면, 데이터 매니저를 통해 관련된 접근 제어 규칙을 검색하고, 검색된 접근 제어 규칙을 파싱하여, 이에 대한 집행을 인에이블러 매니저에게 요청하는 정책 집행 매니저를 포함한다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 접근 제어 규칙은, 웹 어플리케이션의 다운로드 시에 함께 제공된다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 웹 어플리케이션의 패키지 전체에 대하여 기본 접근 레벨을 부여하고, 패키지 내 개별 페이지 별로 세부 접근 레벨을 부여하고, 정책 모듈은 상기 웹 어플리케이션의 기본 접근 레벨 및 세부 접근 레벨을 더 참조하여 접근 제어를 수행할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서, 접근 제어 규칙은, 접근 제어 규칙을 전달받을 때, 이벤트의 발생이 없더라도 바로 접근 제어 규칙의 조건을 체크하여, 조건을 만족하면 설정된 동작을 실행하는 실행 규칙(Execution); 단말 자원에 대한 접근 이벤트가 발생한 경우에 접근 제어 규칙의 조건을 만족하면 설정된 동작을 실행하는 의무 규칙(Obligation); 금지 규칙에 의하여 실행 권한이 없어진 동작에 대하여 실행 권한을 부여한 후, 조건을 만족하는 경우에 설정된 동작을 실행하는 허용 규칙(permission); 접근 제어 규칙의 동작에 대하여 실행 권한을 제한하는 것으로서, 정책의 조건을 만족하는 경우에 설정된 동작을 실행하지 못하게 하는 금지 규칙(Prohibition); 접근 제어 규칙을 실행할 때, 위임 제한되어 있는 지를 체크하여, 조건을 만족하는 경우에 해당 동작을 실행하지 못하게 하는 위임 규칙(Delegation) 중 하나 이상을 포함할 수 있다.
더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 상술한 웹 어플리케이션 실행을 위한 보안 제공 장치를 구비한 단말기를 제공한다.
더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 실행 계층부의 업데이터를 통해 외부의 서버로부터 웹 어플리케이션 별 접근 제어 규칙 및 상기 접근 제어 규칙을 집행하는 정책 인에이블러를 전달받아, 저장 및 설치하는 단계; 웹 어플리케이션의 실행 중에, 브라우저 엔진 계층부로부터 상기 이식 계층부의 특정 API에 대한 접근 가능 여부를 질의 받는 단계; 및 저장된 접근 제어 규칙에서 상기 이식 계층에 대한 접근 요청과 관련된 접근 제어 규칙을 검색하고, 검색된 접근 제어 규칙에 대응하는 정책 인에이블러를 구동하여, 상기 이식 계층에 대한 접근을 제어하는 단계를 포함하는 웹 어플리케이션 실행을 위한 보안 제공 방법을 제공한다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법은, 웹 어플리케이션 또는 브라우저 엔진 계층에 설치되어 이식 계층에 대한 호출 및 응답을 수행하는 플러그 인의 설치 요청을 확인하는 단계; 웹 어플리케이션 및 플러그 인의 설치 완료 전, 상기 웹 어플리케이션 또는 플러그 인의 암호화된 해쉬값 및 인증서를 추출하여, 코드 사인을 검증하는 단계; 및 코드 사인의 검증이 성공하면, 웹 어플리케이션 또는 플러그 인의 설치를 완료하도록 하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법은, 코드 사인의 검증이 성공하지 않으면, 웹 어플리케이션 또는 플러그 인이 검증된 인증서를 포함하고 있지 않음을 사용자에게 안내하는 단계; 사용자로부터 설치 계속 여부를 확인하는 단계; 및 사용자가 설치 계속을 선택하면, 플러그 인 및 웹 어플리케이션의 설치가 완료되도록 하고, 사용자가 설치 중단을 선택하면, 설치를 중단하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법은, 플러그 인이나 웹 어플리케이션의 실행 요청이나 로딩 요청을 확인하는 단계; 실행 요청이나 로딩 요청이 있으면, 웹 어플리케이션 및 플러그 인의 암호화된 해쉬값 및 인증서를 추출하여 코드 사인을 검증하는 단계; 및 코드 사인의 검증이 성공하면, 웹 어플리케이션 및 플러그 인을 실행 또는 로딩을 계속 수행하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법은, 코드 사인의 검증이 성공하지 않으면, 사용자에게 웹 어플리케이션 또는 플러그 인이 검증된 인증서를 포함하고 있지 않음을 안내하는 단계; 사용자에게 웹 어플리케이션 또는 플러그 인의 실행 또는 로딩 계속 여부를 확인하는 단계; 사용자가 실행 또는 로딩의 계속을 선택하면, 플러그 인 및 웹 어플리케이션의 실행 또는 로딩을 계속하고, 사용자가 중단을 선택하면, 플러그 인 및 웹 어플리케이션의 실행 및 로딩을 중단하는 단계를 더 포함할 수 있다.
더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 상술한 웹 어플리케이션 실행을 위한 보안 제공 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법은, 단말에서 웹 표준에 따르면서 운영체제의 종류에 무관한 단일의 웹 어플리케이션의 실행 환경을 제공하는데 있어서, 웹 어플리케이션 및 플러그 인의 실행 및 설치와, 단말 자원에 대한 접근을 제어하여, 정당한 웹 어플리케이션 및 플러그 인이 설치되거나 실행되고, 실행된 웹 어플리케이션이 부여된 권한 내에서 단말 자원에 접근하도록 한다. 그 결과, 본 발명은 해킹 등의 불순한 목적으로 인해 변조된 웹 어플리케이션이 설치되거나 실행되지 못하도록 하고, 불순한 의도를 갖는 웹 어플리케이션에 의해서 단말 자원이 해킹되는 것을 방지함으로써, 웹 어플리케이션의 설치 및 이용에 대한 안전성을 사용자에게 제공할 수 있다.
도 1은 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 장치를 나타낸 블럭도이다.
도 2는 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서, 웹 어플리케이션 및 플러그 인에 대한 인증 과정을 나타낸 흐름도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서, 단말 자원에 대한 접근 제어 과정을 나타낸 흐름도이다.
도 4는 본 발명에 적용되는 웹 어플리케이션의 패키지 구조를 나타낸 블록도이다.
도 5는 본 발명이 적용되는 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션의 설치 정보 관리 테이블을 나타낸 도면이다.
도 2는 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서, 웹 어플리케이션 및 플러그 인에 대한 인증 과정을 나타낸 흐름도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서, 단말 자원에 대한 접근 제어 과정을 나타낸 흐름도이다.
도 4는 본 발명에 적용되는 웹 어플리케이션의 패키지 구조를 나타낸 블록도이다.
도 5는 본 발명이 적용되는 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션의 설치 정보 관리 테이블을 나타낸 도면이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
도 1은 본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 장치(이하, 보안 제공 장치라 약칭함)의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명에 의한 보안 제공 장치(300)는, 웹 어플리케이션 플랫폼(200)이 운영체제(100)에 독립된 웹 어플리케이션 실행 환경을 제공하는데 있어서, 부적절한 목적의 웹 어플리케이션이 설치되고 불법적인 목적으로 단말 자원에 접근하는 것을 방지함으로써, 단말 자원에 대한 보안을 구현하기 위한 것이다.
이하, 본 발명의 보안 제공 장치(300)에 대한 이해를 돕기 위하여, 먼저, 본 발명이 적용되는 웹 어플리케이션 플랫폼(200)에 대해서 설명하기로 한다.
본 발명이 적용되는 웹 어플리케이션 플랫폼(200)은, 크게 이식 계층부(Porting layer)와, 웹 어플리케이션 런타임 계층부(Web Application Runtime layer)와, 브라우저 엔진 계층부(Browser Engine layer)와, 실행 계층부(Executable layer)를 포함한다. 여기서, 웹 어플리케이션 런타임 계층부와, 브라우저 엔진 계층부가 브라우저 엔진 컨테이너 커먼(Browser Engine Container Common) 모듈로 구현될 수 있다. 여기서 웹 어플리케이션 런타임 계층부가 주도적으로 웹 어플리케이션의 관리 기능을 수행하며, 브라우저 엔진 계층부는 각 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력한다. 상기 브라우저 엔진 컨테이너 커먼은 운영체제(100)에는 독립적이면서, 이식 계층부에만 의존성을 갖는다.
그리고, 상기 브라우저 엔진 컨테이너 커먼과, 이식 계층부를 포함하여, 브라우저 엔진 컨테이너 코어(Browser Engine Container Core)를 구현한다.
상기 브라우저 엔진 컨테이너 코어는, 다수 웹 어플리케이션의 동시 실행과, 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원하는 멀티-태스킹 컨테이너로, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.
즉, 브라우저 엔진 컨테이너 코어는, 웹 어플리케이션의 실행 시마다 네이티브 윈도우를 생성하고, 랜더러 인스턴스를 생성하여, 웹 어플리케이션의 디폴트 페이지 또는 요청 페이지를 실행한다.
이때, 실행 계층부는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트로 사용되는 것으로서, 브라우저 엔진 컨테이너 코어는 실행 계층부에 의하여 실행되어, 웹 어플리케이션을 실행시킨다.
한편, 상기 웹 어플리케이션 플랫폼(200)에 의해 실행되는 웹 어플리케이션은, 다수의 페이지로 구성되는 것으로서, 구조 정보(Configuration 파일), 웹 컨텐츠(HTML, xHTML 파일), 포맷 정보(CSS 파일), 각종 리소스를 포함하여 이루어진다. 더하여, 웹 어플리케이션은, 접근 레벨을 부여 받는다. 상기 접근 레벨은, 상기 웹 어플리케이션이, 단말의 자원 및 운영체제의 기능에 접근 시에 접근 가능한 범위를 제한하는데 이용된다.
이러한 웹 어플리케이션은 다수의 페이지를 포함하는 패키지 형태로 제공되며, 도 4에 도시된 바와 같이, 웹 어플리케이션을 구성하는 각 페이지를 구성하는 html, xhtml, css, java script 파일 등과 같은 소스 파일과, 상기 페이지에 삽입되는 이미지 등과 같은 리소스 파일로 이루어지는 웹 컨텐츠(11)와, 웹 어플리케이션 패키지에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보(화면 크기, 타겟 CPU, 타겟 OS, 웹 어플리케이션 실행 장치의 버전 등)를 포함하는 구성 정보(Configuration 파일)(12)와, 상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보(13)를 포함하여 이루어진다. 상기 정책 정보(13)는 웹 어플리케이션 패키지 전체에 부여되는 기본 접근 권한 정보와, 웹 어플리케이션의 각 페이지 별로 부여되는 세부 접근 권한 정보를 포함할 수 있으며, 이를 통해 단말의 자원, 예를 들어, 사진, 주소록, 단말 기능, 통화 기록 들에 대한 접근 가능 여부를 정할 수 있다. 이러한 웹 컨텐츠(11)와, 구성 정보(12)와, 정책 정보(13)를 포함하는 웹 어플리케이션은, 압축 파일 형태로 제공되며, 웹 어플리케이션이 인증된 기관 또는 사업자를 통해 배포되는 것임을 증명하는 인증서를 더 포함할 수 있다.
본 발명에 의한 장치는, 이러한 웹 어플리케이션을 URL(Uniform Resource Locators) 형태의 식별 정보를 통해 실행한다.
일반적으로, 웹 브라우저에서는 file://, http://, https://와 같은 프로토콜 스키마를 통해 웹 자원에 접근한다. 여기서, file://은 해당 URL의 웹 자원을 파일 시스템에서 가져오는 것을 의미하고, http://와 https://는 해당 URL의 웹 자원을 네트워크에서 가져오는 것을 의미한다. 본 발명에 의한 웹 어플리케이션 실행 장치는, 여기에 더하여, 웹 어플리케이션의 처리를 위한 프로토콜 스키마 httpa://를 새로 설정한다. httpa://는 해당 URL로 식별되는 웹 어플리케이션을 로컬 스토리지에서 검색하여 실행해야 함을 의미한다.
더하여, 본 발명에서는 웹 어플리케이션의 URL은 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인 명을 더 포함하여 구성할 수 있다. 이렇게 포함된 도메인 명은, 추후 해당 웹 어플리케이션을 다운로드 받을 때 이용될 수 있다.
즉, 본 발명에 있어서, 웹 어플리케이션의 URL은 웹 어플리케이션의 실행을 의미하는 프로토콜 스키마와, 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션 명으로 구성된다. 예를 들면, 웹 어플리케이션 명이 application1.swa라고 하고, 컨텐츠 제공자의 도메인 명이 www.abc.com이라 할 때, 그 URL은 httpa://www.abc.com/application1.swa 로 표현될 수 있다. 여기서, swa라는 확장자는 웹 어플리케이션 패키지임을 나타내는 확장자로서, 임의로 지정된 이름이다.
웹 어플리케이션 플랫폼(200)의 이식 계층부는, 단말기에 탑재된 운영체제(100)의 위에 구현되는 것으로서, 웹 어플리케이션 런타임 계층부 및 브라우저 엔진 계층부가 운영체제(100)에 독립적으로 구현되고 동작할 수 있도록, 운영체제(100)의 다양한 기능들을 정리하여 제공한다. 즉, 이식 계층부에서는 상위의 웹 어플리케이션 런타임 계층부 및 브라우저 엔진 계층부에 대하여, 단말의 자원 및 운영체제의 기능들에 대한 이식 계층 API를 제공하며, 상기 이식 계층 API의 호출 시 실제 해당하는 단말 자원 및 운영체제의 API를 호출한다. 이러한 이식 계층부에서 제공 가능한 이식 계층 API는, HTTP 및 HTTPS와 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI 구현을 위해 필요한 네이티브 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 저장 기능을 API 형태로 제공하는 보안 스토리지 모듈, 단말 자원(예를 들어, 전화부, 사진, 통화 기록, SMS 목록 등)에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS API(예를 들어, 통화 연결, SMS 전송, 단말 시스템의 Property 설정 등)을 API 형태로 제공하는 OS API 모듈, 웹 어플리케이션에 포함되지 않은 페이지에 대한 연동 기능을 API 형태로 제공하는 협업 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화 모듈, 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지 모듈 중에서 하나 이상을 포함할 수 있으며, 이외에 필요에 따라서 다른 이식 계층 API를 더 추가할 수 있다. 이식 계층부의 각 모듈은 모두 향후 업데이트가 용이하도록 DLL 형태로 구현된다.
이러한 이식 계층부는 운영체제에 의존적인 것으로서, 단말에 적용되는 여러 종류의 운영체제에 모두 적용할 수 있도록 구현되는 것이 바람직하다.
다음으로, 웹 어플리케이션 런타임 계층부(400)에 대해서 설명한다.
웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 실행 환경을 관리하여, 추후 설명할 브라우저 엔진 계층부(500)에서 웹 어플리케이션의 각 페이지를 실행하는데 필요한 네트워크 및 UI를 제공한다. 더 구체적으로 설명하면, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 인스턴스들을 관리하고, 웹 어플리케이션의 설치 및 정보 설정을 위한 레지스트리 관리 및 유저 인터페이스 관리를 수행한다. 이를 위하여, 웹 어플리케이션 런타임 계층부(400)은, 웹 어플리케이션 런타임 모듈과, 레지스트리 모듈과, UI(User Interface) 엔진과, 네트워크 셀렉터(Network Selector)와, 다이내믹 동기화 모듈(Dynamic Sync module)를 포함한다.
웹 어플리케이션 런타임 모듈은, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부(600)으로부터의 커맨드 처리를 수행한다. 이러한 웹 어플리케이션 런타임 모듈은, 커맨드 핸들러(Command Handler)와, 컨텍스트 매니저(Context manager)와, 이벤트 핸들러(Event Handler)와, 라이프사이클 매니저(Lifecycle manager)를 포함하여 이루어진다. 커맨드 핸들러는 실행 계층부(600)으로부터 웹 어플리케이션의 실행과 관련된 명령을 IPC(Interprocess Communication)로 전달받아 해석한 뒤, 해당하는 모듈에 동작을 지시하는 것으로서, 일종의 IPC 명령 처리기이다. 커맨드 핸들러에서 처리 가능한 명령어로는, 웹 어플리케이션의 실행/종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 플러그 인에 대한 인스톨/언인스톨/업데이트가 포함될 수 있다. 컨텍스트 매니저는 웹 어플리케이션 인스턴스들의 컨텍스트를 관리하는 것으로서, 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어한다. 즉, 커맨드 핸들러와 브라우저 엔진 모듈로부터 전달되는 웹 어플리케이션의 실행 명령과, 브라우저 엔진 모듈로부터 전달되는 윈도우 생성 명령에 따라, 윈도우를 생성하고, 랜더러(Render)의 인스턴스를 생성하고, 실행 요청된 페이지를 랜더링한 결과를 브라우저 엔진 모듈(510)로부터 전달받아 해당 네이티브 윈도우에 출력한다. 또한, 커맨드 핸들러로부터 전달되는 웹 어플리케이션 종료 명령과 이벤트 핸들러 및 브라우저 엔진 모듈(510)으로부터 전달되는 윈도우 소멸 명령에 따라서, 랜더러와 윈도우의 자원을 정리하고, 윈도우를 소멸시키며, 웹 어플리케이션이 소유하고 있는 모든 윈도우가 소멸되면, 해당 웹 어플리케이션을 종료시킨다. 이벤트 핸들러는 컨텍스트 매니저에서 생성한 윈도우와 관련한 이벤트와 웹 어플리케이션 실행 장치에서 확장한 시스템 관련 이벤트를 받아 처리한다. 더하여, 윈도우 내 페이지 전환이나, 네이티브 윈도우 전환 시에 UI 이펙트를 줄 수 있도록, 미리 정의된 상황과 관련된 이벤트가 발생하면, 이를 UI 엔진으로 전달한다. 라이프사이클 매니저는, 웹 어플리케이션의 라이프 사이클을 관리한다. 하나의 웹 어플리케이션은 다수의 페이지로 구성되는데, 웹 어플리케이션의 각각의 페이지들은 방문에 의해 시작되고, 다른 페이지로 전환될 때마다 종료된다. 웹 어플리케이션은 상기 실행 계층부(600)이나 다른 웹 어플리케이션 또는 네이티브 어플리케이션의 실행 요청에 의해 웹 어플리케이션 마다 하나의 윈도우를 생성하여 시작되고, 사용자가 해당 웹 어플리케이션과 관련된 모든 윈도우를 닫거나 자바 스크립트를 통한 창 닫기 요청이 발생하여 모든 윈도우가 닫히면 종료된다. 또한, 웹 어플리케이션의 인스턴스가 생성한 윈도우가 1개뿐인 상태에서 다른 웹 어플리케이션이나 외부 페이지를 로딩한 경우에도 종료하게 된다. 상기 라이프사이클 매니저는 이러한 웹 어플리케이션의 시작과 종료를 관리한다.
웹 어플리케이션 런타임 계층부(400)에서 레지스트리 모듈은 웹 어플리케이션의 설치 정보 및 웹 어플리케이션 실행 장치의 구조(Configuration) 정보를 관리한다. 여기서, 설치 정보 및 구조 정보는 이식 계층부(200)를 통해 단말의 보안 스토리지에 저장한다. 더하여, 웹 어플리케이션의 설치 정보는, 웹 어플리케이션의 설치 시에 등록되거나, 단말 바이너리 패키징 시에 등록될 수 있다. 더 구체적으로, 레지스트리 모듈은, 웹 어플리케이션의 설치, 삭제 및 갱신 등과 같은 웹 어플리케이션 컨텐츠 관리, 웹 어플리케이션의 속성 설정, 웹 어플리케이션의 인증 정보 추출 및 제공, 웹 어플리케이션 실행 장치 전체 또는 모듈별 갱신, 모듈간 종속성 관리 등을 포함하는 모듈 관리, 웹 어플리케이션 실행 장치의 속성 설정 기능, 및 플러그 인의 설치 정보에 대한 관리기능을 수행한다. 이러한 레지스트리 모듈은 웹 어플리케이션의 설치, 삭제 및 웹 어플리케이션 실행 장치 업데이트를 위한 API 등을 제공한다.
도 5는 웹 어플리케이션 런타임 계층부(400)에 의하여 관리되는 웹 어플리케이션의 설치 정보 관리 테이블의 구성을 예시한 도면이다. 도 5를 참조하면 상기 웹 어플리케이션의 설치 정보는, 웹 어플리케이션을 식별하는 고유 정보인 웹 어플리케이션 URL과, 상기 URL로 구분되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 경로인 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 접근 권한 정보를 포함하여 이루어진다. 이러한 정보는 웹 어플리케이션을 다운로드하여 설치 시에 추출되어 단말의 보안 스토리지 영역에 저장된다.
다음으로, UI 엔진은 브라우저 엔진 모듈(510)에 의해 랜더링되는 영역 이외의 표시 영역에 대한 UI 및 사용자 입력을 처리한다. 구체적으로는, 단말의 전체 화면 중에서, 웹 어플리케이션의 페이지가 출력되는 영역 이외의 나머지 영역에 대한 처리를 담당하는데, 여기에는 실행 상태를 표시하는 상태 바와, 사용자 입력을 위한 소프트 버튼 영역이 포함될 수 있다. 이때, 안테나의 신호 수신 강도, 통화 가능 여부, 배터리 잔량 등을 표시하는 annuniciator 영역은 운영체제(100)의 종류에 따라서 커스터마이징을 허용하지 않는 경우가 있으므로, UI 엔진의 처리 영역에서 제외할 수 있다. 더하여, UI 엔진은 여러 개의 웹 어플리케이션을 동시에 실행되어, 각 웹 어플리케이션 마다 별개의 윈도우를 생성하여 할당할 때, 각 윈도우 사이의 전환을 단말의 윈도우 매니저를 통해 수행한다. 즉, UI 엔진은 컨텍스트 매니저와 이식 계층부(200)에서 제공하는 UI 백엔드 모듈간의 유기적인 동작을 통해 UX(User eXperience) 관련 기능을 처리한다. 더하여, UI 엔진은 웹 어플리케이션의 실행 중에 화면과 화면 사이를 전환할 때 다이내믹한 이펙트를 제공한다. 이러한 화면 전환 효과는 웹 표준 기술(예를 들어, HTML, CSS, JavaScript)를 이용해서 구현할 수 있다. 더하여, 복잡하고 화려한 화면 전환 효과를 사용자에게 생동감 있게 제공하기 위해, UI 엔진은 네이티브 코드 수준에서 실행되는 화면 전환 효과를 플러그 인 형태로 제공할 수 있다.
다음으로, 네트워크 셀렉터는, 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리한다. 이를 위하여, 네트워크 셀렉터는 해당 단말에서 사용 가능한 네트워크(예를 들어, 모뎀, Wi-Fi, 블루투스 등)에 대한 선택 방법과 우선 순위를 사용자로부터 입력 받아 설정한다. 여기서, 선택 방법은, 자동, 수동, 반자동의 3가지 옵션을 제공할 수 있으며, 자동은 설정된 우선순위에 따라서 가능한 네트워크에 접속을 시도하는 것이며, 수동은 사용자가 선택한 네트워크에 대해서만 접속을 시도하는 것이고, 반 자동은 네트워크 전환이 요구될 때마다 팝업을 띄워 사용자가 선택하도록 하는 것이다.
다이내믹 동기화 모듈은, 해당 단말이 온라인 상태인지, 오프라인 상태 인지에 상관없이 끊김 없는 웹 어플리케이션의 실행을 보장한다. 더 구체적으로, 외부 데이터에 접근하는 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊기는 경우, 캐싱 메카니즘(cache mechanism)을 통해 동작하도록 하며, 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터와 외부 데이터에 대한 동기화를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 수행한다.
더하여, 웹 어플리케이션 플랫폼(200)은 브라우저 엔진 계층부를 더 포함할 수 있는데, 브라우저 엔진 계층부는, 웹 어플리케이션의 각 페이지에 대한 파싱/랜더링 및 스크립트 인터프리팅(JavaScript Interpreting)을 실행하는 계층으로서, 브라우저 엔진 모듈과, 플러그 인 관리 모듈과, 하나 이상의 플러그 인을 포함한다. 이 중에서, 브라우저 엔진 모듈은, HTML, CSS, JavaScript와 같은 웹 표준 언어로 작성된 웹 어플리케이션을 해석하여 실행시킨다. 이러한 브라우저 엔진 모듈은, 오픈 소스 기반의 브라우저 엔진인 Webkit으로 구현될 수 있다. 이 경우, PC 환경과 달리 프로세서의 처리능력과 네트워크 대역폭에 제한이 있는 단말의 환경에 맞도록 Webkit의 코드를 최적화하는 것이 바람직하다. 브라우저 엔진 모듈은, 웹 표준 언어를 파싱/랜더링하는 웹코어(WebCore)와, 스크립트의 인터프리팅을 수행하는 스크립트코어(ScriptCore)로 이루어진다. 브라우저 엔진 모듈을 구현하는데 있어서, 웹코어와, 스크립트코어를 분리 구성함으로써, 이를 통해 모듈 별 업데이트 및 교체가 가능하다. 브라우저 엔진 모듈(510)은, 해킹 등을 방지하기 위하여, 웹 어플리케이션 간에 상호 참조를 금지하도록 구현되는 것이 바람직하다. 이러한 브라우저 엔진 모듈은, 웹 어플리케이션을 실행시키는 중에, 단말 자원을 이용하는 경우, 이식 계층부를 통해 운영체제(100)에 접근한다. 더 구체적으로, 브라우저 엔진 모듈은, HTTP, HTTPS와 같은 프로토콜 처리 기능과, XML 파서, XML 변환 등의 XML 처리 기능과, 윈도우 처리 기능, 폰트 처리 기능, 이미지 디코더 처리 기능, 다국어 처리를 위한 문자열 변환 기능, 타이머 등의 시스템 기능을 제공하며, 이러한 기능을 제공하기 위하여, 필요한 기본적인 기능은 이식 계층부를 통해 가져온다. 즉, 이식 계층부의 HTTP 모듈, XLM 모듈, UI 백엔드 모듈, OS API 모듈 등을 통해 운영체제(100) 및 단말 자원에 접근하여 필요한 기능을 사용한다.
더하여, 웹 어플리케이션은 웹 표준 기능 이외에 주소록이나 단말 어플리케이션과 같은 단말 자원을 이용할 수 있어야 한다. 이를 위하여, 상기 브라우저 엔진 계층부는, 플러그 인 관리 모듈 및 하나 이상의 플러그 인을 더 포함하며, 이를 통해 단말 의존적인 기능을 처리한다. 이에 따르면, Webkit을 이용하여 브라우저 엔진 모듈을 구현할 경우, 단말 의존적 기능의 처리는 상기 플러그 인 관리 모듈 및 하나 이상의 플러그 인을 통해 이루어지므로, 브라우저 엔진 모듈의 구현 시, 최신의 브라우저 엔진을 큰 수정 없이 빠르게 웹 어플리케이션 실행 장치에 적용할 수 있다. 또한, 향후 제공 가능한 새로운 기능을 플러그 인 형태로 추가할 수 있으므로, 기능 확장이 더 쉬워진다.
플러그 인 관리 모듈은 복수의 플러그 인의 다운로드 및 설치, 설치된 플러그 인의 목록 관리, 업데이트, 웹 어플리케이션의 플러그 인 호출 요청에 대한 응답을 수행한다. 여기서, 신규 플러그 인의 다운로드 요청, 업데이트 요청은 실행 계층부에 포함된 업데이터에 의해 발생하고, 해당 요청이 웹 어플리케이션 런타임 계층부를 통해 플러그 인 관리 모듈로 전달된다. 다운로드 요청을 전달받은 플러그 인 관리 모듈은 OMA 다운로드 표준에 따라서, 플러그 인 패키지를 다운받고, 플러그 인의 설치 정보는 웹 어플리케이션 런타임 계층부를 통해 단말의 보안 스토리지에 저장한다. 이러한 플러그 인 관리 모듈은 브라우저가 플러그 인에 제공해야 하는 브라우저측 API와, 플러그 인이 브라우저에 제공해야 하는 플러그측 API로 이루어지며, 플러그 인은 브라우저측 API를 호출하여 작업을 수행하고, 브라우저는 플러그 인측 API를 호출하여 플러그 인의 생성/동작/소멸에 관한 플러그 인 라이프 사이클을 관리한다.
상기 하나 이상의 플러그 인은, 웹 어플리케이션에서 요구하는 웹 표준 이외의 단말의 자원 및 운영체제 기능을 호출하여 그에 대한 응답을 브라우저 엔진 모듈로 전달하는 것으로서, 웹 어플리케이션의 단말 자원과 관련된 기능 호출을 이식 계층부의 리소스 모듈에 전달하는 리소스 플러그 인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부의 OS API 모듈에 전달하고, 웹 어플리케이션 런타임 계층부의 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인과, 웹 어플리케이션 사이의 연동을 위한 기능 호출을 이식 계층부의 협업(Collaboration) 모듈로 전달하는 협업 플러그 인과, 웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부의 동기화 모듈(Sync module)에 전달하는 동기화(Sync) 플러그 인 중에서 하나 이상을 포함할 수 있으며, 이외에도 필요에 따라서 다른 여러 가지 기능에 대한 플러그 인이 추가될 수 있다.
플러그 인 관리 모듈 및 하나 이상의 플러그 인을 통해서 접근할 수 있는 단말 자원은, 예를 들어, 사진, 주소록, 전화, SMS 기능, 통화 로그 조회 등에 관한 메소드와 프로퍼티를 포함한다.
웹 어플리케이션 플랫폼(200)은 실행 계층부를 더 포함할 수 있는데, 실행 계층부는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트 역할을 하며, 단일 인스턴스 형태로 동작한다. 이러한 실행 계층부는, 네이티브 OS의 실행 파일 형태로 구현되거나, DLL로 구현될 수 있다. 이때, 실행 계층부는 네이티브 OS 어플리케이션이라도 이식성을 높이기 위하여, 최대한 이식 계층부를 이용하여 운영체제(100)에 접근한다. 이에 따르면, 어떠한 운영체제에 대해서도 소스 레벨의 이식성을 가질 수 있게 된다.
실행 계층부는, 이식 계층부와 웹 어플리케이션 런타임 계층부 및 브라우저 엔진 계층부를 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행시키고, 사용자의 요청에 따른 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 계층부 또는 브라우저 엔진 계층부로 전달하고, SMS 푸시 또는 셀프 체크에 의해 웹 어플리케이션 플랫폼의 모듈별 업데이트를 확인하여 관련 다운로드 요청을 해당 모듈로 전달한다. 특히, 상기 브라우저 엔진 계층부에 구비되는 플러그 인에 대한 업데이트를 체크하여, 다운로드 요청을 상기 플러그 인 관리 모듈로 전달한다. 이러한 실행 계층부는, 컨테이너 에이전트와, 더미 실행(Dummy execution) 모듈과, 대기모드 에이전트(Idle Agent)를 포함한다.
컨테이너 에이전트는, 단말의 네이티브 어플리케이션 형태로 구현되며, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 명령을 웹 어플리케이션 런타임 계층부로 전달한다. 더 구체적으로는, 웹 어플리케이션 실행 장치가 실행중인 상태에서, 웹 어플리케이션의 실행이 요청되면, 해당 웹 어플리케이션의 실행 명령을 바로 웹 어플리케이션 런타임 계층부로 전달하고, 실행 중이 아닌 경우에는, 브라우저 엔진 컨테이너 코어를 로딩하여 실행시킨 후, 상기 웹 어플리케이션의 실행 명령을 웹 어플리케이션 런타임 계층부로 전달한다. 이를 위하여, 웹 어플리케이션 런처(Launcher)를 포함한다. 또한, 컨테이너 에이전트는, SMS 푸시 또는 셀프 체크(self check)를 통한 웹 어플리케이션 실행 장치의 모듈별 업데이트를 수행한다. 이를 위해 컨테이너 에이전트는, 업데이터를 포함한다. 업데이터는, 웹 어플리케이션 실행 장치에 설치되는 플러그 인의 업데이트와 새로 확장된 플러그 인 및 보안 정책의 다운로드 및 설치/삭제를 관리한다. 이러한 컨테이너 에이전트는, 데몬(Daemon) 형태가 아니라 해당 기능을 수행하고 즉시 종료하는 형태로 구현되는 것이 바람직한 것으로서, 긴 시간 구동되지 않고, 단축 아이콘이나 SMS Push에 의한 웹 어플리케이션의 구동 요청 시에 잠깐 실행되어, 더미 실행 모듈을 구동시키고, 바로 종료한다.
더미 실행 모듈은 컨테이너 에이전트에 의해 구동되어, 네이티브 OS에서 이식 계층부, 웹 어플리케이션 런타임 계층부, 및 브라우저 엔진 계층부를 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행하는 수단으로서, 더 구체적으로는, 상기 브라우저 엔진 컨테이너 코어를 로딩하여 웹 어플리케이션의 실행 명령을 전달하는 기능만을 수행한다.
대기모드 에이전트는, 웹 어플리케이션이 단말의 대기 화면에서 동작할 수 있도록 지원한다. 대기모드 에이전트는, 네이티브 OS의 특성에 맞춰 해당 규약에 따라 구현되며, 대기모드 관리자와 같은 별도의 실행 파일이 플러그 인이나 위젯 같은 콤포넌트를 로딩하여 실행할 수 있다. 더 구체적으로, 대기모드 에이전트는 네이티브 대기화면(native idle screen) 관리자에 의해 로딩되어, 대기화면에서 특정 웹 어플리케이션의 실행 요청이 있으면, 해당 요청을 웹 어플리케이션 런타임 계층부로 전달한다.
이상과 같이 구성되는 웹 어플리케이션 플랫폼(200)은, 다른 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저와, 사용자가 선택한 웹 어플리케이션의 다운로드를 관리하는 웹 어플리케이션 다운로더 중 하나 이상을 포함할 수 있다. 상기 웹 어플리케이션 매니저 및 웹 어플리케이션 다운로더는, 웹 어플리케이션 형태로 구현될 수 있다.
웹 어플리케이션 매니저는, 일반 웹 어플리케이션처럼 웹 어플리케이션 런타임 계층부 위에서 동작하여, 웹 어플리케이션 런타임 계층부를 통해 단말에 설치된 웹 어플리케이션들에 대한 정보를 가져와 UI를 통해 사용자에게 제공하며, 사용자의 선택에 의해 특정 웹 어플리케이션의 구동이 요청되면, 이를 웹 어플리케이션 런타임 계층부로 전달한다.
웹 어플리케이션 다운로더는, 외부의 서버에 접속하여, 웹 어플리케이션을 다운로드한다. 이상과 같이 구현된 웹 어플리케이션 플랫폼은, 다양한 종류의 운영체제(100)를 탑재한 단말에 설치되며, 상기 운영체제(100) 위에서 동작하여, 운영체제의 종류에 관계없이, 웹 어플리케이션에 대한 동일한 실행 환경을 제공한다.
상기 웹 어플리케이션 플랫폼(200)은, 다수 웹 어플리케이션의 동시 실행과 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원한다. 즉, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.
웹 어플리케이션 플랫폼(200)은 기본적으로 다수의 웹 어플리케이션의 동시 실행을 지원하는 멀티-태스킹 컨테이너로서, 웹 어플리케이션의 성격이나 종류 등에 따라 또는 특정 원칙에 따라서 웹 어플리케이션을 그룹핑하고, 그룹별로 구동시킬 수 있다. 예를 들어, 일반 웹 어플리케이션과, 대기 화면에서 위젯 서비스를 수행하는 웹 어플리케이션을 각각 그룹핑하여, 실행되도록 할 수 있다. 이때, 각 컨테이너 자체는 단일 인스턴스로 구동되며, 이 안에서 다수의 웹 어플리케이션들이 동시 구동된다. 이때, 웹 어플리케이션 실행 장치의 모든 모듈은 웹 어플리케이션들을 멀티-태스킹으로 구동하기 위하여, 쓰레드 세이프(Thread Safe)하도록 구현된다.
이와 같이, 컨테이너 별로 단일-인스턴스를 구현함에 의하여, 멀티 인스턴스를 지원하지 않는 운영체제에서도 본 발명의 웹 어플리케이션 실행 장치는 네이티브 시스템의 특성에 구애 받지 않고 이식될 수 있다.
웹 어플리케이션 플랫폼(200)은 웹 표준을 준수하여, 웹 어플리케이션이 실행될 때마다 네이티브 시스템의 윈도우를 생성하고, 랜더러 쓰레드를 생성하여 웹 어플리케이션의 디폴트 또는 요청 페이지를 실행할 수 있도록 한다. 또한, 하나의 웹 어플리케이션이 여러 윈도우를 생성하는 것이 가능하며, 이때 윈도우마다 랜더러 쓰레드가 생성되어 할당된다. 또한, 여러 웹 어플리케이션의 동시 실행이 가능하며, 하나의 웹 어플리케이션에 대해서도 멀티 인스턴스가 가능하다. 웹 어플리케이션의 모든 인스턴스들은 웹 어플리케이션 런타임 계층부가 관리하며, 유저 인터액션 또는 시스템에 의해 발생하는 모든 이벤트는 웹 어플리케이션 런타임 계층부에 의해 적정 웹 어플리케이션의 인스턴스로 전달된다.
그런데, 웹 어플리케이션 플랫폼(200)에서, 안전하게 웹 어플리케이션을 설치하여 실행하기 위해서는, 웹 어플리케이션과 단말 자원 사이의 보안과, 웹 어플리케이션 사이의 보안이 해결되어야 한다.
여기서, 웹 어플리케이션 사이의 보안은, 웹 어플리케이션의 상호 참조를 금지시키도록 함에 의해 구현할 수 있다. 즉, 더미 실행 모듈에 의해 로딩된 단일 프로세서상에서 다수의 웹 어플리케이션이 구동될 때, 각 웹 어플리케이션은 별도 쓰레드 상에 로딩된 브라우저 엔진 계층부 상에서 구동된다. 이때, 각 웹 어플리케이션은 하나의 윈도우를 소유하게 되며, 웹 표준에 의하면, 해당 윈도우의 이름을 알 경우, 제한 없이 다른 웹 어플리케이션이 또 다른 웹 어플리케이션의 내용을 참조할 수 있게 되는데, 상기 웹 어플리케이션 플랫폼(200)은 서로 다른 웹 어플리케이션이 서로의 웹 문서 객체에 접근하는 것을 제한한다. 이는 브라우전 엔진 모듈을 수정함에 의해 구현될 수 있다.
다음으로, 웹 어플리케이션과 단말 자원 사이의 보안은. 본 발명에 의한 보안 제공 장치(300)를 통해 구현한다.
본 발명에 의한 보안 제공 장치(300)는, 첫째, 개인 정보를 포함하는 단말 자원에 대한 접근을 제어하고, 둘째, 단말 자원에 대한 접근 제어 규칙들을 실시간으로 갱신할 수 있고, 셋째, 웹 어플리케이션 및 플러그 인의 설치 및 실행을 인증한다.
도 1을 참조하면, 본 발명에 의한 보안 제공 장치(300)는, 크게 웹 어플리케이션 및 플러그 인의 인증을 수행하는 인증 모듈(310)과, 접근 제어 규칙에 따른 단말 자원에 대한 접근을 제어하는 정책 모듈(320)을 포함하여 이루어진다.
인증 모듈(310)은 인증 엔진(311)과 보안 라이브러리(312)를 포함한다.
이 중에서, 인증 엔진(311)은 웹 어플리케이션 및 브라우저 엔진 계층부에 구비되는 플러그 인의 설치 및 실행 시, 해당 웹 어플리케이션 및 플러그 인의 인증서를 검증한다. 이러한 인증 엔진(311)은 인증 표준, 예를 들어 X.509의 규약에 따라서 동작한다. 보안 라이브러리(312)는 인증 엔진(311)에서 인증 처리를 위해 요구되는 각종 해싱 알고리즘(hashing algorithm) 및 정보를 제공한다.
정책 모듈(320)은, 단말의 자원에 대한 접근 제어 규칙을 관리하고, 상기 접근 제어 규칙에 따라서 각 웹 어플리케이션 별로 단말 자원에 대한 접근을 제어한다. 여기서, 정책 모듈(320)에서 적용되는 접근 제어 규칙은, 실행 규칙(Execution), 의무 규칙(Obligation), 허용 규칙(Permission), 금지 규칙(Prohibition), 위임 규칙(Delegation)을 포함한다. 여기서, 실행 규칙(Execution)은, 접근 제어 규칙을 전달받으면, 이벤트의 발생이 없더라도 바로 접근 제어 규칙의 조건을 체크하여, 조건을 만족하면 해당 동작을 실행하는 규칙을 의미한다. 의무 규칙(Obligation)은, 상위 계층으로부터 단말 자원에 대한 접근 이벤트가 발생한 경우에 적용되는 것으로서, 이벤트 발생시 해당 접근 제어 규칙의 조건을 만족하면 해당 동작을 실행하는 것을 의미한다. 허용 규칙(permission)은 금지 규칙(Prohibition)에 의하여 실행 권한이 없어진 동작에 대하여 실행 권한을 부여한 후, 조건을 만족하는 경우에 설정된 동작을 실행하는 것을 의미한다. 금지 규칙(Prohibition)은 접근 제어 규칙의 동작에 대하여 실행 권한을 제한하는 것으로서, 정책의 조건을 만족하는 경우에 설정된 동작이 실행 불가능하게 된다. 위임 규칙(Delegation)은 접근 제어 규칙의 동작에 대하여, 지정된 에이전트 이외의 다른 서비스 에이전트의 위임 실행 권한을 제한하는 정책으로서, 접근 제어 규칙을 실행할 경우, 해당 동작이 위임 제한되어 있는 지를 체크하고, 정책의 조건을 만족하는 경우에 해당 동작이 실행 불가능하게 된다.
정책 모듈(320)은, 상술한 접근 제어 규칙과 해당 접근 제어 규칙을 실행하는 정책 인에이블러를 실행 계층부의 업데이터로부터 전달받아 파싱한 후, 접근 제어 규칙은 단말의 보안 스토리지에 저장하고, 정책 인에이블러를 설치한다. 그리고, 이식 계층부로의 접근 이벤트 발생시에, 대응하는 정책 인에이블러를 구동시켜, 접근 제어를 실행한다. 이를 위하여, 정책 모듈(320)은, 정책 집행 매니저(321)와, 데이터 매니저(322)와, 인에이블러 매니저(323)와, 상기 인에이블러 매니저(323)에 의해 설치되어 각각 특정 접근 제어 규칙을 집행하는 정책 인에이블러(324)를 포함한다.
정책 집행 매니저(321)는 실행 계층부의 업데이터로부터 접근 제어 규칙 및 해당 규칙을 집행할 정책 인에이블러(Enabler)를 전달받아, 이를 데이터 매니저(322) 및 인에이블러 매니저(323)를 통해 저장하고 설치한다. 그리고, 웹 어플리케이션 런타임 계층부에 존재하는 대부분의 모듈과, 브라우저 엔진 계층부의 플러그 인이 이식 계층부의 특정 기능에 접근하기 직전에, 대응하는 접근 제어 규칙을 검색하여, 해당 접근 제어 규칙이 존재하는 이를 파싱하여 이에 대한 집행을 인에이블러 매니저(323)에게 요청한다.
데이터 매니저(322)는 정책 집행 매니저(321)의 요청에 따라서, 전달된 접근 제어 규칙을 이식 계층부의 보안 스토리지 모듈을 통해 보안 저장 영역에 저장하고, 저장한 접근 제어 규칙들을 메모리에 올려 고속 검색할 수 있도록 한다.
인에이블러 매니저(323)는 정책 집행 매니저(321)의 요청에 따라서, 전달받은 하나 이상의 정책 인에이블러(324)를 설치한 후, 상기 정책 집행 매니저(321)의 요청에 따라서, 해당하는 정책 인에이블러(324)를 호출하여 구동시킨다.
여기서 접근 제어 규칙은 웹 어플리케이션 별로 제공되는 것으로서, 웹 어플리케이션의 다운로드 시에 함께 제공될 수 있다. 더하여, 상기 접근 제어 규칙은, 예를 들어, 네트워크를 통해 외부 서버와 통신할 수 있는지의 여부, 단말 자원(사진, 주소록, 전화, SMS, 통화 로그 등)에 접근하거나 관련 기능을 사용할 수 있는 지의 여부를 포함한다. 여기서, 웹 어플리케이션의 접근 권한은, 웹 어플리케이션의 패키지 전체에 대하여 부여되는 기본 접근 권한과 패키지 내 개별 페이지 별로 부여되는 세부 접근 권한을 포함할 수 있다. 이때, 세부 접근 권한이 지정되지 않은 페이지는 기본 접근 권한을 따르도록 하고, 세부 접근 권한이 부여된 경우에는, 세부 접근 권한이 기본 접근 권한에 우선할 수 있다.
도 2 및 도 3은 본 발명에 의한 웹 어플리케이션 장치에서의 보안 제공 방법을 나타낸 순서도이다. 도 2 및 도 3의 보안 제공 방법은, 도 1에 보인 보안 제공 장치(300)에 의하여 실행된다.
먼저, 도 2를 참조하여, 본 발명에 의한 보안 제공 방법에 의하여, 인증 모듈(310)에 의해 실행되는 인증 과정을 설명한다. 여기서, 합법적인 웹 어플리케이션 및 플러그 인은 모두 배포 전에 코드 사인(code sign)을 거친 것으로서, 내부에 암호화된 해쉬값과 인증서 정보를 포함한다. 반대로, 불법적인 목적을 갖는 웹 어플리케이션이나 플러그 인은 이러한 정당한 코드 사인이 이루어지지 않은 것으로, 정당한 해쉬값과 인증서를 포함하지 않는다.
본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서는, 인증 모듈(310)은 웹 어플리케이션 및 플러그 인의 설치 요청이 있는 지를 확인한다(S201). 도 1에 보인 장치에 있어서, 웹 어플리케이션이나 플러그 인이 다운로드 되면, 웹 어플리케이션은 웹 어플리케이션 매니저에 의해 설치가 시작되고, 플러그 인은 플러그 인 관리 모듈에 의해 설치가 시작된다. 이때, 상기 웹 어플리케이션 매니저 및 플러그 인 관리 모듈은 웹 어플리케이션 및 플러그 인의 설치를 시작하기 전에, 인증 모듈(310)로 웹 어플리케이션 및 플러그 인의 인증을 요청하고, 이에 인증 모듈(310)이 웹 어플리케이션 및 플러그 인의 코드 사인을 검증한다(S202). 이를 위하여, 인증 모듈(310)는, 웹 어플리케이션 플랫폼(200)의 웹 어플리케이션 런타임 계층부를 통해 해당 웹 어플리케이션 및 플러그 인의 다운로드 파일로부터 인증서 및 암호화된 해쉬값을 추출하고, 인증 엔진(311)이 보안 라이브러리(312)를 참조하여, 해당 플러그 인 및 웹 어플리케이션의 암호화된 해쉬값 및 인증서에 대한 검증을 수행한다. 여기서, 인증서 검증은, 일반적으로 알려져 있는 인증 표준, 예를 들어, X509에 이루어질 수 있으며, 이러한 인증 방법 및 검증 방법은 잘 알려져 있으므로, 여기서 그 상세한 설명은 생략하기로 한다.
상기 인증 모듈(310)는 상기 해당 플러그 인 및 웹 어플리케이션의 인증서 검증 결과를 상기 웹 어플리케이션 매니저 및 플러그 인 관리 모듈에 알린다. 이에, 웹 어플리케이션 매니저 및 플러그 인 관리 모듈은, 인증서 검증 결과를 확인하여, 검증이 성공한 경우, 해당 웹 어플리케이션 및 플러그 인의 설치를 완료한다(S203, S204).
반대로, 해당 플러그 인 및 웹 어플리케이션의 인증서에 대한 검증이 성공하지 못한 경우, 상기 웹 어플리케이션 매니저 및 플러그 인 관리 모듈은, 해당 웹 어플리케이션 및 플러그 인이 검증된 인증서를 포함하지 않고 있음을 사용자에게 안내한다(S205).
그리고, 상기 사용자에게 설치를 계속할 것인지를 확인하여, 사용자가 설치를 선택하면, 상기 단계(S204)를 수행하여, 해당 플러그 인 및 웹 어플리케이션을 단말에 설치하고, 사용자가 설치 중단을 선택하면, 그대로 종료한다(S206).
더하여, 본 발명에 의한 보안 제공 방법에서는, 인증 모듈(310)이 단말에 설치된 웹 어플리케이션 및 플러그 인의 매 실행 및 로딩 시마다, 해당 웹 어플리케이션 및 플러그 인의 코드 사인을 검증하도록 한다.
즉, 웹 어플리케이션 플랫폼(200)의 웹 어플리케이션 런타임 계층부는, 각 플러그 인이나 웹 어플리케이션의 실행 요청이나 로딩 요청이 있으면, 이를 인증 모듈(310)로 전달하며, 이를 통해 인증 모듈(310)는 웹 어플리케이션 장치의 구동 중에 특정 플러그 인 및 웹 어플리케이션에 대한 실행이나 로딩 요청이 있는 지를 더 확인한다(S207).
확인 결과, 플러그 인 및 웹 어플리케이션의 실행 요청이나 로딩 요청이 있는 경우, 인증 모듈(310)은 해당 웹 어플리케이션 및 플러그 인의 암호화된 해쉬값 및 인증서를 웹 어플리케이션 런타임 계층부로부터 가져와 코드 사인을 검증한다(S208).
상기 인증 모듈(310)은 상기 해당 플러그 인 및 웹 어플리케이션의 인증서 검증 결과를 웹 어플리케이션 플랫폼(200)에 알린다. 이에, 웹 어플리케이션 플랫폼(200)은 인증서 검증 결과를 확인하여, 검증이 성공한 경우, 해당 웹 어플리케이션 및 플러그 인의 실행 또는 로딩을 실행한다(S209, S210). 반대로, 검증이 성공하지 못한 경우, 상기 웹 어플리케이션 플랫폼(200)은, 해당 웹 어플리케이션 및 플러그 인이 검증된 인증서를 포함하지 않고 있음을 사용자에게 안내한다(S211).
그리고, 상기 사용자에게 실행 또는 로딩을 계속할 것인지를 확인하여, 사용자가 실행 또는 로딩을 선택하면, 상기 단계(S210)를 수행하여, 해당 플러그 인 및 웹 어플리케이션을 실행하거나 로딩하고, 중단을 선택하면, 그대로 종료한다(S212).
여기서, 각 플러그 인 및 웹 어플리케이션의 인증서 및 해쉬값은 이식 계층부를 통해 단말의 보안 스토리지에 저장된다.
이와 같이, 웹 어플리케이션 및 플러그 인에 대한 설치, 실행 또는 로딩 시마다, 코드 사인의 검증 과정을 수행하도록 함으로써, 제3 개발자나 해커에 의해 플러그 인이 악의적인 목적으로 사용되거나, 검증되지 않은 플러그 인 및 웹 어플리케이션이 구동되지 않게 함으로써, 웹 어플리케이션의 실행에 대한 보안 레벨을 높일 수 있다.
다음으로, 도 3을 참조하여, 본 발명에 의한 웹 어플리케이션 실행을 위한 보안 제공 방법에 있어서, 접근 제어 과정에 대하여 설명한다.
도 3을 참조하면, 먼저 웹 어플리케이션 플랫폼(200)은, SMS 푸시 또는 셀프 체크에 의해 외부의 서버로부터 접근 제어 규칙 및 이를 집행하는 정책 인에이블러를 다운로드 하여, 정책 모듈(320)에게 전달한다(S301). 여기서 다운로드 되는 접근 제어 규칙은 웹 어플리케이션 별로 제공되는 것으로서, 웹 어플리케이션의 다운로드 시에 제공될 수 있다. 더하여, 상기 접근 제어 규칙은, 예를 들어, 네트워크를 통해 외부 서버와 통신할 수 있는지의 여부, 단말 자원(사진, 주소록, 전화, SMS, 통화 로그 등)에 접근하거나 관련 기능을 사용할 수 있는 지의 여부를 포함한다. 여기서, 웹 어플리케이션의 접근 권한은, 웹 어플리케이션의 패키지 전체에 대하여 기본 접근 권한을 부여될 수 있으며, 더하여, 패키지 내 개별 페이지 별로 세부 접근 권한을 부여할 수 있다. 이때, 세부 접근 권한이 지정되지 않은 페이지는 기본 접근 권한을 따르도록 하고, 세부 접근 권한이 부여된 경우에는, 세부 접근 권한이 기본 접근 권한에 우선하도록 설정할 수 있다. 이러한 접근 권한은 상기 웹 어플리케이션 플랫폼(200)을 통해 단말의 보안 스토리지에 저장되어 관리될 수 있으며, 이 경우, 정책 모듈(320)은 웹 어플리케이션 플랫폼(200)을 통해 단말의 보안 스토리지로부터 접근 권한 정보를 가져와 사용한다.
정책 모듈(320)는, 웹 어플리케이션 플랫폼(200)으로부터 접근 제어 규칙 및 정책 인에이블러를 전달받으면, 웹 어플리케이션 플랫폼(200)의 이식 계층부를 호출하여 상기 접근 제어 규칙을 단말의 보안 스토리지에 저장하고, 정책 인에이블러(324)는 인에이블러 매니저(323)를 통해 설치한다(S302).
이후에, 특정 웹 어플리케이션이 실행되는 중에, 웹 어플리케이션 플랫폼(200) 내부의 웹 어플리케이션 런타임 계층부) 또는 브라우저 엔진 계층에서 이식 계층부에 대한 접근 요청이 발생한다(S303).
이 경우, 상기 웹 어플리케이션 런타임 계층부의 해당 모듈이나 브라우저 엔진 계층부의 해당 플러그 인은 정책 모듈(320)에 이식 계층부(200)의 특정 API에 대하여 접근해도 좋은 지를 질의한다(S304).
질의를 받은 정책 모듈(320)은, 데이터 매니저(322)를 통해 보안 스토리지에 저장된 접근 제어 규칙들을 로딩하여, 상기 질의와 관련된 접근 제어 규칙, 즉, 상기 특정 API와 관련된 접근 제어 규칙이 존재하는 지를 검색한다(S305).
그리고, 상기 정책 모듈(320)의 정책 집행 매니저(321)를 통해 상기 검색된 접근 제어 규칙을 파싱한 후, 인에이블러 관리자(323)를 통해 대응하는 정책 인에이블러(324)를 구동한다(S306).
상기 정책 인에이블러(324)는 상기 관련된 접근 제어 규칙을 적용하여, 상기 접근 제어 규칙에 따라서 웹 어플리케이션 플랫폼(200)의 이식 계층부에 접근하여 지시된 동작을 실행한다(S307). 더 구체적으로, 정책 인에이블러(324)는 접근 제어 규칙을 조건을 확인하여, 상기 이식 계층(200)의 특정 API에 대한 접근 동작을 허용하거나, 금지한다.
이에 의하면, 상기 웹 어플리케이션 플랫폼(200) 상에서 이식 계층부로의 접근은 본 발명에 의한 보안 제공 장치의 정책 모듈(320)을 통해 제어됨으로써, 부적절한 웹 어플리케이션이나 플러그 인에 의해 단말 자원이 해킹되는 것을 방지할 수 있다.
본 발명에 따른 웹 어플리케이션 실행을 위한 보안 제공 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명은, 운영체제를 탑재한 이동 통신 단말에 적용되어, 웹 표준에 따르면서 단말 자원을 이용할 수 있는 웹 어플리케이션의 실행 환경을 제공하면서, 웹 어플리케이션 및 플러그 인의 실행 및 설치와, 단말 자원에 대한 접근을 제어하여, 정당한 웹 어플리케이션 및 플러그 인이 설치되거나 실행되고, 실행된 웹 어플리케이션이 부여된 권한 내에서 단말 자원에 접근하도록 할 수 있으며, 그 결과, 본 발명은 해킹 등의 불순한 목적으로 인해 변조된 웹 어플리케이션이 설치되거나 실행되지 못하도록 하고, 불순한 의도를 갖는 웹 어플리케이션에 의해서 단말 자원이 해킹되는 것을 방지하고, 웹 어플리케이션의 설치 및 이용에 대한 안전성을 사용자에게 제공할 수 있다.
100: 운영체제
200: 웹 어플리케이션 플랫폼
300: 보안 제공 장치
310: 인증 모듈
311: 인증 엔진
312: 보안 라이브러리
320: 정책 모듈
321: 정책 집행 매니저
322: 데이터 매니저
323: 인에이블러 매니저
324: 정책 인에이블러
200: 웹 어플리케이션 플랫폼
300: 보안 제공 장치
310: 인증 모듈
311: 인증 엔진
312: 보안 라이브러리
320: 정책 모듈
321: 정책 집행 매니저
322: 데이터 매니저
323: 인에이블러 매니저
324: 정책 인에이블러
Claims (16)
- 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부와, 운영체제의 기능 및 단말의 자원에 대한 이식 계층 API를 지원하는 이식 계층부를 포함하는 단말에서의 웹 어플리케이션 실행을 위한 보안 제공 장치에 있어서,
웹 어플리케이션의 설치 전에, 상기 웹 어플리케이션의 코드 사인을 검증하는 인증 모듈; 및
웹 어플리케이션의 상기 이식 계층부에 대한 접근 제어 규칙을 관리하고, 상기 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서, 상기 인증 모듈은
상기 브라우저 엔진 계층부에 구비되어 상기 이식 계층부에 대한 호출 및 응답을 처리하는 플러그 인의 설치 전에, 상기 플러그 인의 코드 사인을 검증하는 기능을 더 수행하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서, 상기 인증 모듈은
상기 웹 어플리케이션 또는 플러그 인의 실행 또는 로딩 요청 시, 상기 웹 어플리케이션 또는 플러그 인의 코드 사인을 검증하는 기능을 더 수행하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제3항에 있어서, 상기 인증 모듈은
상기 웹 어플리케이션 또는 플러그 인의 설치 또는 실행 또는 로딩 요청 시에, 상기 웹 어플리케이션 및 플러그 인의 코드사인을 인증하는 인증 엔진; 및
상기 인증 엔진에서 인증 처리에 요구되는 하나 이상의 해싱 알고리즘 및 정보를 제공하는 보안 라이브러리를 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서, 상기 정책 모듈은
전달된 접근 제어 규칙을 이식 계층부를 통해 보안 저장 영역에 저장하고, 저장한 접근 제어 규칙들을 메모리에 올려 검색할 수 있도록 하는 데이터 매니저;
접근 제어 규칙을 집행할 하나 이상의 정책 인에이블러를 설치 및 관리하며, 하기의 정책 집행 매니저의 요청에 따라서 검색된 접근 제어 규칙에 대응하는 정책 인에이블러를 호출하여 구동시키는 인에이블러 매니저;
상기 인에이블러 매니저에 의해 설치되고 실행되어, 대응하는 접근 제어 규칙을 집행하는 정책 인에이블러; 및
상기 접근 제어 규칙 및 정책 인에이블러를 전달받아, 상기 데이터 매니저 및 인에이블러 매니저를 통해 저장 및 설치하고, 상기 이식 계층부에 대한 접근 요청이 발생하면, 상기 데이터 매니저를 통해 관련된 접근 제어 규칙을 검색하고, 검색된 접근 제어 규칙을 파싱하여, 이에 대한 집행을 상기 인에이블러 매니저에게 요청하는 정책 집행 매니저를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서, 상기 접근 제어 규칙은,
웹 어플리케이션의 다운로드 시에 함께 전달받는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서,
웹 어플리케이션의 패키지 전체에 대하여 기본 접근 레벨을 부여하고, 패키지 내 개별 페이지 별로 세부 접근 레벨을 부여하고, 상기 정책 모듈은 상기 웹 어플리케이션의 기본 접근 레벨 및 세부 접근 레벨을 더 참조하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항에 있어서, 상기 접근 제어 규칙은
접근 제어 규칙을 전달받을 때, 이벤트의 발생이 없더라도 바로 접근 제어 규칙의 조건을 체크하여, 조건을 만족하면 설정된 동작을 실행하는 실행 규칙(Execution);
단말 자원에 대한 접근 이벤트가 발생한 경우에 접근 제어 규칙의 조건을 만족하면 설정된 동작을 실행하는 의무 규칙(Obligation);
금지 규칙에 의하여 실행 권한이 없어진 동작에 대하여 실행 권한을 부여한 후, 조건을 만족하는 경우에 설정된 동작을 실행하는 허용 규칙(permission);
접근 제어 규칙의 동작에 대하여 실행 권한을 제한하는 것으로서, 정책의 조건을 만족하는 경우에 설정된 동작을 실행하지 못하게 하는 금지 규칙(Prohibition);
접근 제어 규칙을 실행할 때, 위임 제한되어 있는 지를 체크하여, 조건을 만족하는 경우에 해당 동작을 실행하지 못하게 하는 위임 규칙(Delegation)
중 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 장치. - 제1항 내지 제8항 중 어느 한 항에 기재된 웹 어플리케이션 실행을 위한 보안 제공 장치를 구비한 단말기.
- 단말의 자원 및 운영체제의 기능에 대한 이식 계층 API를 지원하는 이식 계층부와, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 브라우저 엔진 컨테이너 코어와, 상기 브라우저 엔진 컨테이너 코어의 엔트리 포인트인 실행 계층부를 포함하는 단말에서의 웹 어플리케이션의 실행을 위한 보안 제공 방법에 있어서,
상기 실행 계층부의 업데이터를 통해 외부의 서버로부터 웹 어플리케이션 별 접근 제어 규칙 및 상기 접근 제어 규칙을 집행하는 정책 인에이블러를 전달받아, 저장 및 설치하는 단계;
웹 어플리케이션의 실행 중에, 상기 브라우저 엔진 계층부로부터 상기 이식 계층부의 특정 API에 대한 접근 가능 여부를 질의 받는 단계; 및
상기 저장된 접근 제어 규칙에서 상기 이식 계층부에 대한 접근 요청과 관련된 접근 제어 규칙을 검색하고, 검색된 접근 제어 규칙에 대응하는 정책 인에이블러를 구동하여, 상기 이식 계층부에 대한 접근 여부를 제어하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제10항에 있어서,
상기 웹 어플리케이션 또는 브라우저 엔진 계층부에 설치되어 이식 계층부에 대한 호출 및 응답을 수행하는 플러그 인의 설치 요청을 확인하는 단계;
상기 웹 어플리케이션 및 플러그 인의 설치 완료 전, 상기 웹 어플리케이션 또는 플러그 인의 암호화된 해쉬값 및 인증서를 추출하여, 코드 사인을 검증하는 단계; 및
코드 사인의 검증이 성공하면, 상기 웹 어플리케이션 또는 플러그 인의 설치를 완료하도록 하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제11항에 있어서,
코드 사인의 검증이 성공하지 않으면, 상기 웹 어플리케이션 또는 플러그 인이 검증된 인증서를 포함하고 있지 않음을 사용자에게 안내하는 단계;
상기 사용자로부터 설치 계속 여부를 확인하는 단계; 및
상기 사용자가 설치 계속을 선택하면, 상기 플러그 인 및 웹 어플리케이션의 설치가 완료되도록 하고, 사용자가 설치 중단을 선택하면, 설치를 중단하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제10항에 있어서,
플러그 인이나 웹 어플리케이션의 실행 요청이나 로딩 요청을 확인하는 단계;
실행 요청이나 로딩 요청이 있으면, 상기 웹 어플리케이션 및 플러그 인의 암호화된 해쉬값 및 인증서를 추출하여 코드 사인을 검증하는 단계; 및
상기 코드 사인의 검증이 성공하면, 상기 웹 어플리케이션 및 플러그 인을 실행 또는 로딩을 계속 수행하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제13항에 있어서,
상기 코드 사인의 검증이 성공하지 않으면, 사용자에게 웹 어플리케이션 또는 플러그 인이 검증된 인증서를 포함하고 있지 않음을 안내하는 단계;
상기 사용자에게 웹 어플리케이션 또는 플러그 인의 실행 또는 로딩 계속 여부를 확인하는 단계;
상기 사용자가 실행 또는 로딩의 계속을 선택하면, 상기 플러그 인 및 웹 어플리케이션의 실행 또는 로딩을 계속하고, 상기 사용자가 중단을 선택하면, 상기 플러그 인 및 웹 어플리케이션의 실행 및 로딩을 중단하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제10항에 있어서, 상기 접근 제어 규칙은
접근 제어 규칙을 전달받을 때, 이벤트의 발생이 없더라도 바로 접근 제어 규칙의 조건을 체크하여, 조건을 만족하면 설정된 동작을 실행하는 실행 규칙(Execution);
단말 자원에 대한 접근 이벤트가 발생한 경우에 접근 제어 규칙의 조건을 만족하면 설정된 동작을 실행하는 의무 규칙(Obligation);
금지 규칙에 의하여 실행 권한이 없어진 동작에 대하여 실행 권한을 부여한 후, 조건을 만족하는 경우에 설정된 동작을 실행하는 허용 규칙(permission);
접근 제어 규칙의 동작에 대하여 실행 권한을 제한하는 것으로서, 정책의 조건을 만족하는 경우에 설정된 동작을 실행하지 못하게 하는 금지 규칙(Prohibition);
접근 제어 규칙을 실행할 때, 위임 제한되어 있는 지를 체크하여, 조건을 만족하는 경우에 해당 동작을 실행하지 못하게 하는 위임 규칙(Delegation)
중 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행을 위한 보안 제공 방법. - 제10항 내지 제15항 중 어느 한 항에 기재된 웹 어플리케이션 실행을 위한 보안 제공 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100045190A KR101453742B1 (ko) | 2010-05-14 | 2010-05-14 | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100045190A KR101453742B1 (ko) | 2010-05-14 | 2010-05-14 | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110125698A KR20110125698A (ko) | 2011-11-22 |
KR101453742B1 true KR101453742B1 (ko) | 2014-10-22 |
Family
ID=45395035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100045190A KR101453742B1 (ko) | 2010-05-14 | 2010-05-14 | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101453742B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018117747A1 (en) * | 2016-12-22 | 2018-06-28 | Samsung Electronics Co., Ltd. | Electronic device, method for controlling thereof and computer-readable recording medium |
KR102719304B1 (ko) * | 2016-12-22 | 2024-10-21 | 삼성전자주식회사 | 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130116414A (ko) | 2012-03-14 | 2013-10-24 | 삼성전자주식회사 | 휴대 단말기에서 어플리케이션을 위한 권한을 제어하는 장치 및 방법 |
WO2014010847A1 (ko) * | 2012-07-09 | 2014-01-16 | 주식회사 안랩 | 악성 애플리케이션 진단장치 및 방법 |
US8856864B2 (en) * | 2012-09-27 | 2014-10-07 | Intel Corporation | Detecting, enforcing and controlling access privileges based on sandbox usage |
US8918837B2 (en) * | 2012-12-28 | 2014-12-23 | Intel Corporation | Web application container for client-level runtime control |
US9495558B2 (en) | 2013-03-26 | 2016-11-15 | Google Inc. | Systems, methods, and computer program products for managing access control |
KR101616702B1 (ko) | 2014-09-16 | 2016-04-29 | 주식회사 엠엘소프트 | 코드사인을 이용한 소프트웨어 관리방법 |
KR101775518B1 (ko) | 2016-02-23 | 2017-09-06 | 한국전자통신연구원 | 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 |
KR102538096B1 (ko) | 2016-09-13 | 2023-05-31 | 삼성전자주식회사 | 어플리케이션을 검증하는 디바이스 및 방법 |
US11237843B2 (en) * | 2018-03-05 | 2022-02-01 | Beijing Zhanxinzhanli Information Technology Co., Ltd. | Application-level runtime environment for executing applications native to mobile devices without full installation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520763A (ja) | 2003-06-24 | 2007-07-26 | ノキア インコーポレイテッド | リモートクライアントの完全性検証を実施するための装置、システム、方法及びコンピュータプログラム製品 |
JP2010033592A (ja) | 2005-02-14 | 2010-02-12 | Panasonic Corp | アプリケーション実行装置、管理方法、プログラム |
-
2010
- 2010-05-14 KR KR1020100045190A patent/KR101453742B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520763A (ja) | 2003-06-24 | 2007-07-26 | ノキア インコーポレイテッド | リモートクライアントの完全性検証を実施するための装置、システム、方法及びコンピュータプログラム製品 |
JP2010033592A (ja) | 2005-02-14 | 2010-02-12 | Panasonic Corp | アプリケーション実行装置、管理方法、プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018117747A1 (en) * | 2016-12-22 | 2018-06-28 | Samsung Electronics Co., Ltd. | Electronic device, method for controlling thereof and computer-readable recording medium |
KR102719304B1 (ko) * | 2016-12-22 | 2024-10-21 | 삼성전자주식회사 | 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20110125698A (ko) | 2011-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101453742B1 (ko) | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 | |
US9342689B2 (en) | File system access for one or more sandboxed applications | |
US8887152B1 (en) | Android application virtual environment | |
TWI420338B (zh) | 安全之瀏覽器基礎應用程式 | |
US9317681B2 (en) | Information processing apparatus, information processing method, and computer program product | |
KR20110099310A (ko) | 컴퓨터 플랫폼에 프로그램을 설치하기 위한 방법과 장치 및 컴퓨터 판독가능 저장 매체 | |
KR101586154B1 (ko) | 네트워크 시스템 및 비-일시적인 컴퓨터-판독 가능 저장 매체 | |
KR101482150B1 (ko) | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 | |
JP2009503648A (ja) | 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新 | |
KR20130040692A (ko) | 보안 웹 위젯 런타임 시스템을 위한 방법 및 장치 | |
US9560122B1 (en) | Secure native application messaging with a browser application | |
US20050204127A1 (en) | Mobile wireless device with protected file system | |
US11073994B2 (en) | System and method to secure a computer system by selective control of write access to a data storage medium | |
KR101482151B1 (ko) | 웹 어플리케이션 실행 장치 및 방법 | |
JP2013065114A (ja) | 情報処理システムの制御方法、中継装置の制御プログラム及びクライアント装置の制御プログラム | |
US20240281234A1 (en) | Method, apparatus, electronic device and storage medium for installing applications across systems | |
JP5765185B2 (ja) | 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法 | |
CN102467632B (zh) | 一种浏览器隔离使用的方法 | |
KR101482152B1 (ko) | 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 | |
EP2645293A2 (en) | Method and apparatus for controlling operations performed by a mobile computing device | |
JP7248219B2 (ja) | コンピュータセキュリティのためのシステムおよび方法 | |
KR101397431B1 (ko) | 격리된 실행 환경 제공 시스템 및 그 방법 | |
CN116077929A (zh) | 云游戏场景下的应用程序控制方法、装置、设备及介质 | |
Vérez et al. | Security Model of Firefox OS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
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: 20170928 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190916 Year of fee payment: 6 |