KR101786060B1 - 프라이버시 보호를 위한 이중 스크립팅 엔진을 구비한 브라우저 - Google Patents
프라이버시 보호를 위한 이중 스크립팅 엔진을 구비한 브라우저 Download PDFInfo
- Publication number
- KR101786060B1 KR101786060B1 KR1020117019165A KR20117019165A KR101786060B1 KR 101786060 B1 KR101786060 B1 KR 101786060B1 KR 1020117019165 A KR1020117019165 A KR 1020117019165A KR 20117019165 A KR20117019165 A KR 20117019165A KR 101786060 B1 KR101786060 B1 KR 101786060B1
- Authority
- KR
- South Korea
- Prior art keywords
- scripting engine
- script
- personal
- public
- scripting
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
- H04L12/2818—Controlling appliance services of a home automation network by calling their functionalities from a device located outside both the home and the home network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2814—Exchanging control software or macros for controlling appliance services in a home automation network
-
- 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/2105—Dual mode as a secondary aspect
-
- 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
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
데이터 프로세싱 시스템은 스크립트를 실행하기 위하여 스크립팅 엔진 수단을 구비한 브라우저를 갖는다. 스크립팅 엔진 수단은 공중 스크립팅 엔진 및 개인 스크립팅 엔진을 구현한다. 브라우저는 스크립트가 시스템에 있는 미리 결정된 자원으로의 액세스를 요구하지 않는 경우 공중 스크립팅 엔진에 의해 실행되는 스크립트를 가지도록 구성된다. 상기 브라우저는 스크립트가 미리 결정된 자원으로의 액세스를 요구하는 경우 개인 스크립팅 엔진에 의해 실행되는 스크립트를 가지도록 구성된다. 단지 개인 스크립팅 엔진만이 스크립트로 하여금 미리 결정된 자원들에 액세스하도록 인에이블하는 인터페이스를 갖는다. 스크립팅 엔진 수단은 개인 스크립팅 엔진이 데이터를 공중 스크립팅 엔진으로 또는 데이터 프로세싱 시스템 외부의 비승인된 서버로 통신하지 못하게 하도록 구성된다.
Description
본 발명은 스크립트(script)를 실행하기 위한 스크립팅 엔진 수단을 가지는 런타임 환경(runtime environment)을 포함하는 데이터 프로세싱 시스템, 스크립팅 엔진 수단(scripting engine means)을 포함하는 런타임 환경, 컴퓨터 실행 가능 명령들을 포함하는 컴퓨터 프로그램 제품, 및 실행 제어 표시를 포함하는 스크립트를 나타내는 데이터 구조에 관한 것이다.
네트워크화된 전자 디바이스들을 이용하는 것이 점차 더욱 확산되고 있다. 홈 네트워크(home network)들의 분야에서, UPnP(Universal Plug and Play) 네트워크들 내의 가전 제품(consumer electronics: CE) 디바이스들에는 원격 이용자 인터페이스들이 제공된다. 원격 이용자 인터페이스들은 이용자가 UPnP 홈 네트워크를 통해 다른 UPnP 디바이스들 상의 애플리케이션들을 원격으로 제어하는 것을 인에이블(enable)하며, 또한 인터넷과 접속되는 CE 디바이스들은 이용하는 인터넷 서비스들과 상호 작용하는 것을 인에이블한다. 인터넷 서비스의 예는 이용자가 영화와 같은 콘텐츠 정보를 다운로드할 수 있는 것이다. UPnP에 대한 더 많은 배경지식은 예를 들어 WO 2005/002139를 참조하라.
다수의 인터넷 서비스들의 공급자, 상이한 유형들의 서비스들 및 다수의 소비자 디바이스 공급자들이 포함되는 것을 고려하면, 이용자에게 최선의 체험을 제공하기 위해서는 통신 프로토콜들 및 이용자 인터페이스들이 가능한 한 많이 표준화되는 것이 바람직하다.
하나의 그와 같은 표준은 CEA-2014(또는 Web4CE로 공지되어 있다), 가전 협회(consumer electronics association: CEA) 표준이다. 예를 들어 W. Dees 및 P.Shrubsole의 WWW 2007/논문, 제목: System의 pp.1303 내지 1304에서, "Web4CE: Accessing Web-based Applications on Consumer Devices"를 참조하라. 상기 표준은 UPnP 네트워크들 및 인터넷 상에서의 원격 이용자 인터페이스들을 위하여, 웹-기반 프로토콜 및 CE-HTML이라 칭해지는 XHTML-기반 콘텐츠 포맷을 지정한다. CE-HTML은 자바스크립트 1.5, XHTML 1.0 및 CSS TV 프로파일 1.0과 같은 공통 개방 인터넷 언어들에 기초한다. CE-HTML은 양방향 서비스들을 위하여 콘텐츠 포맷 및 스크립팅 시맨틱(semantic)들을 지정하고, 상기 서비스들을 호스팅(hosting)하고 렌더링(rendering)할 브라우저 환경을 규정한다. 현재의 CE-HTML의 버전의 표준화는 주로 두 표준화 단체들에서, 즉 가전 협회(CEA)에서 그리고 오픈 IPTV 포럼(Open IPTV Forum: OIPF)에서 추진되고 있다. CEA-2014는 2개의 주요한 애플리케이션들을 갖는다: 첫째로 이는 고객들로 하여금 UPnP 홈 네트워크 상의 다른 UPnP 디바이스들 상의 애플리케이션들을 원격으로 제어하도록 한다. 둘째로 이는 고객들이 인터넷에 접속되어 있는 고객 디바이스들을 이용하여 인터넷 서비스들 또는 웹-기반 애플리케이션들과 상호 작용하도록 한다. 이용자 상호 작용은 단지 원격 제어기, CEA-2014 호환 브라우저를 포함하는 디바이스, 예를 들어 미디어 어댑터, TV, 또는 모바일 전화기의 키들 또는 터치 스크린을 이용하여 발생할 수 있다.
전형적으로, 웹 브라우저는 HTML 포맷 내의 전자 문서를 렌더링하는데 이용되지만, 특수-목적의 언어들의 호스트는 HTML 문서 내에 임베딩되어 있는 실행 가능 콘텐츠를 통해 브라우저의 동작을 제어하기 위해서 개발되었다. 실행 가능 콘텐츠는 예를 들어 브라우저에 양방향성 및 자동화를 추가한다. 이 특수-목적 언어들의 예들은: ECMA스크립트(ECMAScript), 다용도 절차 스크립팅 언어와 피상적으로 유사한 자바; 스타일 메타데이터(style metadata)가 콘텐츠로부터 요약되는 것을 인에이블하는 캐스케이딩 스타일 시트(Cascading style sheet: CSS)들; HTML에 대한 대안으로, 스타일 메타데이터와 함께 콘텐츠에 이용될 수 있는, XML; 및 XML 콘텐츠를 새로운 형태로 변환하는 프레젠테이션 언어(presentation language)이다. 이용자의 응답의 주관적인 인상(impression)을 개선하도록 XML 및 자바스크립트 스크립팅의 결합을 포함하는 기술들이 발전하였다. 문서 객체 모델(Document Object Model) 표준은 모든 브라우저들이 예측 가능한 방식으로 동일한 자바스크립트에 응답하는 것을 보장한다(출처: Wikipedia). 더욱이, 브라우저 환경은 플러그-인(plug-in)에 의해 확장되어 Adobe Flash와 같은 외부 콘텐츠를 디스플레이하거나 상기 외부 콘텐츠와 상호 작용할 수 있다. 외부 콘텐츠는 시각적이거나 비시각적일 수 있고, 스크립팅 엔진(scripting engine)에 의해 이용될 수 있는 스크립팅 API를 제안할 수 있다. 따라서, 웹 브라우저는 웹 애플리케이션들에 그리고 예를 들어 서버로부터 다운로드된 전자 문서 내에 임베딩된 실행 스크립트들에 클라이언트-측 런타임 환경(runtime environment)을 제공한다. 스크립팅에 대한 더 많은 배경지식을 위해, 또한 WO 2006/106414를 참조하라.
전자 문서에 임베딩된(embedded) 스크립트는 문서 제공자에 의해 남용되어 상기 문서가 다운로드된 시스템은 조작이 될 수 있고 시스템의 이용자에 대한 프라이버시 민감(privacy sensitive) 정보가 획득될 수 있다. 즉, 다운로드된 문서 내의 수신된 스크립트를 실행하면 시스템의 보안 및 이용자의 프라이버시를 방해할 수 있다.
1998년 11월/12월, Internet Computing IEEE Vol.2, issue 6의 논문 pp.46 내지 55에서의 Anupam 및 A.Mayer의 논문 "Secure Web scripting"은 명시적 보안 모델을 기술한다. 제안된 모델은 모질라(Mozilla) 브라우저 소스 코드 내의 자바스크립트를 위해 구현되었다. 이는 "안전한" 해석기(interpreter)에 의해 인식되고 세 기본 빌딩 블록(building block)에 기초한다: 액세스 제어, 콘텍스트들의 독자성(independence of contexts) 및 신뢰 관리. 액세스 제어는 스크립트가 이용자의 기계 상의 어떤 데이터에 그리고 어떤 모드로 액세스할지를 조절한다. 콘텍스트들의 독자성은 상이한 콘텍스트들에서(예를 들어, 상이한 브라우저 윈도들에서 동시에 또는 동일한 브라우저 윈도에서 순서대로) 실행하는 두 스크립트들은 서로의 데이터에 임의로 액세스할 수 없음을 보장한다. 신뢰 관리는 어느 정도 신뢰가 확립되어 있는지 상이한 콘텍스트들에서 동시에 실행하는 스크립트들 중에서 어떻게 신뢰가 완료되는지를 조절한다. 상이한 이용자들은 프라이버시 및 보안에 대한 정도를 상이하게 요구하므로, 상기 상이한 정도는 웹 서버와 상호 작용할 때 상이한 정도의 유연성으로 변환된다. 이 차이들은 상이한, 이용자-선택 보안 정책들로 표현될 수 있다. 선택된 보안 정책은 스크립트들에 패딩(padding)된 셀들을 제공한다. 명칭 공간(name space)을 액세스 불가능하고, 판독 전용 및 기록 가능 아이템들로 분할함으로써, 액세스 제어는 스크립트들이 브라우징 동안 이용자의 프라이버시를 손상시키지 않는 브라우저- 및 윈도 관련 데이터의 상기 분할된 부분에 단지 액세스하는 것만을 보장한다. 보안 정책은 또한 외부 인터페이스들로의 액세스를 규제한다. 더욱이, 콘텍스트들의 독자성은 상이한 콘텍스트들 내의 스크립트들 중에서 "감추어져 있는 채널(hidden channel)들"이 없음을 보장한다. 예를 들어, 기록 가능 아이템이 콘텍스트의 변화들에 걸쳐 지속되었다면(현재 자바스크립트에서와 같이), 이는 이용자에게 보이지 않으며(비록 지속적이지 않을지라도) 협업하는 웹 사이트들에 액세스 가능한 "쿠키(cookie)"로서 이용될 수 있을 것이다. 이용자에 의해 특정한 윈도의 제 1 콘텍스트 내에서 제공되는(예를 들어, 이 콘텍스트의 HTML 문서에서의 폼(form)을 채움으로써) 데이터는, 제 2 콘텍스트가 제 1 컨택스트의 액세스 제어 목록(access control list: ACL) 내에 있는 경우, 단지 제 2 콘텍스트에서의 스크립트들에서만 이용 가능하다. 그러나, 임의의 다른 콘텍스트 내의 스크립트들은 이 데이터를 액세스할 수 없다.
상술한 WO 2006/106414는 스크립트 객체(script object)들을 갖는 도메인 보안을 기술한다. 이 공보는 스크립트 객체들을 갖는 도메인 보안을 제공하는 방법을 기술한다. 상기 방법은 제 1 소유자를 갖는 제 1 스크립트 객체가 제 2 소유자를 갖는 제 2 스크립트 객체에 액세스하려고 시도할 때 익셉션(exeption)를 생성하는 단계, 제 2 스크립트 객체에 액세스 권한들의 승인에 대해 질의하는 제 2 소유자에게 다이얼로그(dialogue)를 생성하는 단계, 및 제 2 스크립트 객체에 제 1 스크립트 객체 액세스 권한들을 승인하든 안하든지간에 명령들을 실행하는 단계를 포함한다. 상기 명령들은 제 2 소유자에게 생성된 다이얼로그에 응답한다. 용어 "소유자(owner)"에 대해, 전자 문서의 소유자는 문서를 발행한 도메인이다. 로컬 자원을 나타내는(예를 들어 클라이언트 데이터베이스 또는 파일) 임의의 객체의 소유자는 로컬 이용자이다. 공지되어 있는 바와 같이, 이 콘텍스트 내의 익셉션은 소프트웨어 명령들의 실행의 정상 흐름을 변경하는 상태가 발생한 것이다. 익셉션들을 처리하도록 설계된 컴퓨터 코드는 "익셉션 처리기"로 칭해진다.
WO 2005/031568은 웹 브라우저에 의해 동일한 이용자 인터페이스에서의 원격 및 로컬 서비스들 및 정보를 제공하는 것에 관한 것이다. 웹 브라우저는 ECMA스크립트 엔진을 포함한다. 이 엔진은 ECMA스크립트 확장 라이브러리를 통해 디바이스 원래의 환경과 통신하고 있는 ECMA스크립트 확장 모듈(코어 자바스크립트 언어의 표준화된 버전)에 의해 확장된다. 이는 ECMA스크립트 환경으로 하여금 본래의 코드로 구현되는 새로운 클래스들 및 방법들에 의해 확장되도록 한다. ECMA스크립트 엔진 및 ECMA스크립트 확장 모듈은 조건에 따라 잠재적으로 임의의 소프트웨어 플랫폼 상에 웹 브라우저의 빌드(build)로 컴파일링(compiling)될 수 있다. 일단 웹 브라우저의 빌드가 인에이블된 ECMA스크립트 확장 기능에 의해 생성되었다면, ECMA스크립트 환경은 특별히 기록된 ECMA스크립트 확장 라이브러리를 허용 파일(permissions file)과 함께 전자 디바이스 상의 특정한 디렉토리에 배치함으로써 확장될 수 있고, 상기 허용 파일은 확장자들에 어떤 웹 페이지들이 액세스할지를 지정한다. 이 파일은 보안의 이유들로 또한 중요하다.
CE 회사들, 네트워크 운영자들 및 서비스 제공자들은 현재, IPTV(Internet Protocol Television) 및 양방향 웹-기반 서비스들을 접속되어 있는 텔레비전으로 제공하는 표준을 개발하고 있다. 이 콘텍스트 내에서, 발명자들은 인터넷 상에서 서비스 제공자들에 의해 제공되는 서비스들이 실제로 홈 네트워크 내의 UPnP 디바이스들을 제어하는 것이 가능한 시나리오들을 고찰하였다. 발명자들은 특히 프라이버시의 문제들을 고찰하였다.
발명자들의 조사결과들에 기초하여, 발명자들은 제 3 자 서비스들에게 인-홈(in-home) 네트워크 기능을 제어할 권한이 부여될 때 상기 제 3 자 서비스들이 단지 이 기능을 제어하는 것만을 보장하도록 보안 시스템을 설치할 것을 주장한다. 발명자들은 추가로 제 3 자 서비스가 인-홈 네트워크 내의 디바이스들과의 상호 작용을 통해 프라이버시-민감 정보를 획득하도록 남용될 수 있는 것을 방지함으로써 최종-이용자의 프라이버시가 유지되는 것을 보장할 것을 주장한다.
그러므로 발명자들은 런타임 환경 모델, 예를 들어, 브라우저, 운영 시스템 또는 자바 가상 머신, 또는 기존 런타임 환경 모델에 대한 수정을 이용할 것을 제안하고, 이 모델 또는 수정 모델은 보안 및 프라이버시 문제들 모두를 처리하고, CE-HTML을 통해 UPnP 디바이스들의 제어를 위해 지정된 요건들의 완전한 세트를 만족시키고, (제 3 자) 서비스 제공자로부터의 스크립트에 의해 홈 네트워크 내의 UPnP 디바이스들의 제어를 지원한다.
본 발명의 실시예는 다음의 속성들을 실현하기 위해 이중 스크립팅 엔진을 (또는 두 상이한 모드들을 갖는 스크립팅 엔진의 별개의 두 인스턴스(instance)들을) 브라우저에 제공하는 것에 기초한다. 공중 스크립팅 엔진(public scripting engine)이 제공되며, 상기 공중 스크립팅 엔진은 현재 메인스트림 브라우저(mainstream browser)들(XTMLHttpRequest 스크립팅 객체를 포함하는)의 스크립팅 엔진의 완전한 기능을 구현하고, 데이터(예를 들어 스트링(string)으로 인코딩되는 스크립트들을 포함하는)를 공중 스크립팅 엔진으로부터 개인 스크립팅 엔진(private scripting engine)으로 통신하도록 스크립팅 지원을 제공한다. 개인 스크립팅 엔진은 현재의 메인스트림 브라우저들의 스크립팅 엔진의 완전한 기능을 구현하도록 제공되고, 이는 더욱이 상술한 스크립팅 API와 같은 프라이버시-민감 기능에 액세스하는데 이용될 수 있는 확장된 스크립팅 API들을 지원하여 홈 네트워크 내의 UPnP 디바이스들을 제어한다. 개인 스크립팅 엔진은 공중 스크립팅 엔진과의 데이터 통신을 위한 스크립팅 지원을 제공하지 않고, 예를 들어 홈 네트워크 외부의 비-승인된 서버들로의 XMLHttpRequest 호출들을 금지함으로써 공유된 저장소, 다른 프로그램들, 또는 홈 네트워크 외부의 비승인된 서버들로 통신하는 것을 방지한다. 이벤트들이 하나의 스크립팅 엔진으로부터 다른 스크립팅 엔진으로 전파되지 않는다.
홈 네트워크 외부에 있는 서버들과의 통신의 승인(approval)은, 이용자에 의한 이벤트 당 승인 및/또는 이용자 및/또는 런타임 환경의 개발자/사용자에 의한 사전 승인(예를 들어 서버당, 도메인-당 등)에 기초하여 발생할 수 있다. 사전 승인은 런타임 환경의 구성에 의해 획득되거나(예를 들어, 개인 스크립팅 엔진으로부터의 데이터 통신에 대한 제한으로부터 면제되는 서버들 또는 서버 도메인들의 로컬 또는 원격 저장 목록을 유지함으로써) 또는 보안 프로파일들 또는 이용자, 외부 서버, 및/또는 스크립트가 획득되었던 데이터 소스와 연관되는 인증서들로부터 간접적으로 도출될 수 있다.
특히, 본 발명의 실시예는 데이터 프로세싱 시스템, 예를 들어 홈 네트워크에 관한 것이고, 상기 데이터 프로세싱 시스템은 스크립트를 실행하기 위한 스크립팅 엔진 수단을 갖는 런타임 환경을 포함한다. 런타임 환경은 예를 들어, 브라우저, 자바 가상 머신, 운영 시스템 등을 포함한다. 스크립팅 엔진 수단은 공중 스크립팅 엔진 및 개인 스크립팅 엔진을 구현한다. 런타임 환경은 스크립트가 시스템에 있는 미리 결정된 자원으로의 액세스를 요구하지 않는 경우 상기 스크립트가 공중 스크립팅 엔진에 의해, 그리고 스크립트가 미리 결정된 자원으로의 액세스를 요구하는 경우 상기 스크립트가 개인 스크립팅 엔진에 의해 실행되도록 구성된다. 미리 결정된 자원은 예를 들어, 정상의 브라우저 샌드박스(sandbox)의 범위 외부에 있는 데이터 프로세싱 시스템의 하드-디스크 드라이브 또는 다른 메인 메모리 상의 또는 UPnP 홈 네트워크 상의 데이터를 포함한다. 스크립트가 미리 결정된 자원에 액세스하는 것을 인에이블하기 위해서 개인 스크립팅 엔진만이 인터페이스(예를 들어 스크립팅 애플리케이션 프로그램 인터페이스 또는 API)를 갖는다. 스크립팅 엔진 수단은, 데이터를 공중 스크립팅 엔진 또는 데이터 프로세싱 시스템 외부의 서버로 통신하는 것이 승인되지 않는 한 또는 일반적으로 서버로의 통신들이 승인되지 않는 한, 개인 스크립팅 엔진이 그와 같은 통신을 하지 못하게 하도록 구성된다. 이벤트들이 하나의 스크립팅 엔진으로부터 다른 스크립팅 엔진으로 전파되지 않는다.
따라서, 스크립트가 공중 스크립팅 엔진에 의해 실행되는 경우, 스크립트는 자신이 적절한 API를 가지지 못하므로 자원에 액세스할 수 없다. 스크립트가 개인 스크립팅 엔진에 의해 실행되는 경우, 스크립트는 미리 결정된 자원에 액세스한다. 그러나, 예를 들어, 이 목적들을 위한 적절한 인터페이스의 부족 또는 비 승인된 외부 서버로 통신하기 위해 이 인터페이스들을 이용하려는 요청의 거부의 결과로써 승인되지 않으면, 스크립트는 미리 결정된 자원으로부터 검색된 데이터가 공중 스크립팅 엔진 또는 외부 서버로 통신되도록 할 수 없다. 결과적으로, 미리 결정된 자원에서의 데이터의 프라이버시가 보장된다.
본 발명의 실시예에서, 스크립팅 엔진 수단은 상기 기재된 관련 속성들을 각각 갖는 이용 가능한 두 스크립팅 엔진들을 가짐으로써 공중 및 개인 스크립팅 엔진들을 구현한다. 예를 들어, 개인 스크립팅 엔진은 예를 들어 XHTML 및 CSS를 지원하는 브라우저로의 플러그-인, 및 데이터를 승인되지 않은 외부 서버들, 공유된 저장소들, 또는 공중 스크립팅 엔진으로 통신하는 임의의 인터페이스들이 결여된 특수한 개인 ECMA스크립트 엔진 인스턴스로 구현될 수 있다. 브라우저의 ECMA스크립트 엔진은 공중 스크립팅 엔진 기능을 할 수 있다. 공지되어 있는 바와 같이, 플러그-인은 기존 소프트웨어에 API를 추가하는데 이용될 수 있다. 대안으로, 스크립팅 엔진 수단은 두 동작 모드들: 공중 모드 및 개인 모드 중 하나로 선택적으로 구성 가능한 스크립팅 엔진을 포함한다. 공중 모드에서, 스크립팅 엔진은 공중 스크립팅 엔진인 것처럼 동작하고, 개인 모드에서 스르립팅 엔진은 개인 스크립팅 엔진인 것처럼 동작한다.
스크립트를 실행하기 위해 공중 또는 개인 스크립팅 엔진들 중 어느 것을 선택할지에 대한 프로세스는 다양한 방식들로 구현될 수 있다.
첫번째 방식에서, 스크립트는 개인 스크립팅 엔진 상에서 자신이 실행되는지의 여부를 표시하는 파일명 확장자를 갖는다. 파일명 확장자는 런타임 환경에 의해 해석되고 그에 따라 개인 및 공중 스크립팅 엔진들 중 어는 것이 인보킹(invoking)되는가를 결정한다. 예를 들어, 스크립트는 스크립트의 파일명 확장자를 포함하는 자체의 경로에 의해 HTML 파일 내에 참조된다. 스크립트가 자바스크립트이면, 이는 스크립트가 실행될 필요가 있는 콘텍스트에 파일명 확장자 ".js" 또는 ".xjs"를 가질 수 있다. 파일명 확장자가 ".js"인 경우, 런타임 환경은 이것을, 공중 스크립팅 엔진이 이 스크립트를 실행하는 엔진이라고 해석한다. 파일명 확장자가 ".xjs"인 경우, 런타임 환경은 이것을, 개인 스크립팅 엔진이 스크립트를 실행하는 것으로 해석한다.
제 2 방식에서, 스크립트가 개인 스크립팅 엔진이 스크립트를 실행하기 위해 인보킹되는 것임을 지정하는 명시적 진술문(explicit statement)을 갖는 다른 실행 가능 파일에 임베딩되거나 상기 파일에 의해 참조된다. 명시적 진술문은 선언문, 예를 들어 어떤 스크립팅 엔진이 스크립트를 해석하는데 이용되어야 하는지를 지정하는 유형 속성을 갖는 XHTML 스크립트 요소, 또는 전용 절차문, 예를 들어 스크립트 내의 "switchToPrivateMode()", 또는 "privateScript.run(script)"을 포함할 수 있다.
제 3 방식에서, 스크립트는 임베딩되거나 인용된 스크립트를 실행하기 위해 개인 스크립팅 엔진의 인보킹을 암시적으로(implicitly) 요구하는 다른 실행 가능 파일 내의 진술문에 임베딩되거나 상기 진술문에 의해 참조된다. 이 진술문은 예를 들어 미리 결정된 자원과 연관되는 MIME 유형을 지정하는 HTML <객체> 요소일 수 있다. 예를 들어, UPnP 홈 네트워크의 제어와 연관되는 런타임 환경 플러그-인이 MIME 유형 "application/upnpcontrol"에 의해 식별되는 것을 가정하면, MIME 유형의 HTML 객체 요소를 포함하는 실행 가능 파일은 임베딩되거나 참조되는 스크립트가 개인 스크립팅 엔진에서 실행되어야만 함을 암시적으로 지정한다. 개인 스크립팅 엔진을 인보킹할 필요성을 암시적으로 지정하는 다른 유형의 진술문은 개인 스크립팅 엔진의 콘텍스트 내에서만 지원되는 기능 또는 방법에 대한 호출을 포함한다. 예를 들어, "readHDDContents()"가 개인 엔진에 의해 미리 결정된 자원 상에서만 지원된다고 가정하면, 파일 내의 진술문 "readHDDContents"의 발생은 개인 엔진 내의 파일의 추가 실행을 수행할 필요성을 암시적으로 시그널링한다.
본 발명의 다른 실시예들은 데이터 프로세싱 시스템에 관한 것이다. 이 실시예들은 세트-제작자들, PC 제조회사들, 셋탑 박스 제조회사들 등과 상업적으로 관련된다.
본 발명의 다른 실시예는 그와 같은 데이터 프로세싱 시스템에서 이용하기 위한 스크립팅 엔진 수단을 갖는 런타임 환경에 관한 것이다. 런타임 환경은, 예를 들어 브라우저, 운영 시스템 또는 자바 가상 머신을 포함한다. 그와 같은 실시예는 소프트웨어 공급자들과 상업적으로 관련된다.
본 발명의 다른 실시예는 실행 시에, 데이터 프로세싱 시스템의 동작 이용 동안 런타임 환경을 구현하도록 배열되어 있는 컴퓨터 실행-가능 명령들을 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 소프트웨어는 반도체 메모리(예를 들어 USB 스틱), 또는 광디스크 상에 공급될 수 있다. 소프트웨어는 또한 인터넷을 통한 다운로드로 공급될 수 있다.
본 발명의 또 다른 실시예는 상술한 데이터 프로세싱 시스템에서 실행되는 스크립트를 나타내는 데이터 구조에 관한 것이다. 공지되어 있는 바와 같이, 데이터 구조는 특정한 데이터 프로세싱 기능을 지원하도록 설계된, 데이터 요소들 사이의 물리적 또는 논리적 관계를 표시한다. 이러한 관점에서 본 발명의 스크립트는 데이터 구조를 나타낸다. 본 발명의 데이터 구조는 스크립트를 실행하기 위해 공중 스크립팅 엔진 및 개인 스크립팅 엔진 사이에서의 선택을 인에이블하기 위해 실행 제어 표시를 포함한다. 상술한 바와 같이, 실행 제어 표시는 예를 들어 스크립트의 파일명 확장자, 개인 스크립팅 엔진에서 실행될 스크립트가 임베딩된 다른 실행 가능 파일 내의 명시적 진술문, 또는 개인 스크립팅 엔진 내에 임베딩되거나 참조되는 스크립트를 실행할 필요성을 암시적으로 시그널링하는 다른 실행 가능 파일 내의 진술문에 포함된다. 이 실시예는 데이터 프로세싱 시스템에서의 프라이버시-민감 자원들에 액세스해야 하는 그와 같은 스크립트들의 공급자들과 상업적으로 관련된다.
도 1은 본 발명에서의 시스템의 블록도.
본 발명은 예를 참조하고 첨부 도면을 참조하여 더욱 자세하게 설명된다.
웹 브라우저는 전형적으로 HTML 포맷의 전자 문서를 렌더링하는데 이용되지만, 많은 특수-목적 언어들이 HTML 페이지 내에 임베딩된 실행 가능 콘텐츠를 통해 브라우저의 동작을 제어하도록 개발되었다. 실행 가능 콘텐츠는 예를 들어 상호 작용 및 자동화를 브라우저에 추가한다. 이 특수-목적용 언어들의 예는: ECMA스크립트, 다용도 절차 스크립팅 언어와 피상적으로 유사한 자바; 스타일 메타데이터가 콘텐츠로부터 요약되는 것을 인에이블하는 캐스케이딩 스타일 시트(CSS)들; HTML에 대한 대안으로, 스타일 메타데이터와 함께 콘텐츠에 이용될 수 있는, XML; 및 XML 콘텐츠를 새로운 형태로 변환하는 프레젠테이션 언어 XLST이다. XML 및 자바스크립트 스크립팅의 결합을 포함하는 기술들이 발전하여 이용자의 응답의 주관적인 인상을 개선하였다. 문서 객체 모델 표준은 모든 브라우저들이 예측 가능한 방식으로 동일한 자바스크립트에 응답하는 것을 보장한다(출처: Wikipedia). 따라서, 웹 브라우저는 웹 애플리케이션들에 그리고 예를 들어 서버로부터 다운로드된 전자 문서 내에 임베딩된 실행 스크립트들에 클라이언트-측 런타임 환경을 제공한다. 스크립팅에 대한 더 많은 배경지식을 위해, 또한 상술한 WO 2006/106414를 참조하라.
HTML 문서에 임베딩된 스크립트는 문서 제공자에 의해 남용되어 상기 문서가 다운로드된 시스템이 조작되고 시스템의 이용자에 대한 프라이버시 민감 정보가 획득될 수 있다.
도 1은 본 발명에서의 시스템(100)의 블록도이다. 시스템(100)은 본원에서, 클라이언트(102)로 추가로 칭해지는 데이터 프로세싱 시스템(102)을 포함하고, 상기 시스템(102)은 데이터 네트워크(108)를 통한 서버(106)와의 데이터 통신을 위하여 네트워크 인터페이스(104)를 갖는다. 클라이언트(102)는 예를 들어, 개인용 컴퓨터, 셋-탑 박스, 홈 네트워크 등이다. 클라이언트(102)는 런타임 환경(110), 예를 들어 브라우저, 운영 시스템 또는 자바 가상 머신을 포함한다. 런타임 환경(110)은 스크립트를 실행하기 위한 스크립팅 엔진 수단을 갖는다. 예를 들어, 런타임 환경(110)은 브라우저를 포함하고 스크립트는 서버(106)에 의해 공급되거나 USB 스틱을 통해 또는 PC를 통해 공급되는 전자 HTML 문서에서 수신된다. 스크립팅 엔진 수단은 공중 스크립팅 엔진(112) 및 개인 스크립팅 엔진(114)을 구현한다. 런타임 환경(110)은 스크립트가 클라이언트(102)에 있는 미리 결정된 자원, 예를 들어 하드 디스크 드라이브(HDD)(124) 상의 정상 (브라우저) 샌드박스의 범위 외부의 또는 UPnP 홈 네트워크 상의 데이터로의 액세스를 요구하지 않으면 상기 스크립트가 공중 스크립팅 엔진(112)에 의해 실행되도록 구성된다. 런타임 환경(110)은 스크립트가 미리 결정된 자원(124 또는 126)으로의 액세스를 요구하면 상기 스크립트가 개인 스크립팅 엔진(114)에 의해 실행되도록 구성된다.
추가로 후술되는 바와 같이 이 선택적인 실행을 구현하는 여러 방식들이 존재하지만, 당분간은 런타임 환경(110)이 이렇게 구성되는 것을 가정한다.
스크립트가 정상의 (브라우저) 샌드박스의 범위 외부에 있는 HDD(124) 상의 데이터 또는 UPnP 홈 네트워크(126) 상의 데이터로의 액세스를 요구하지 않으면, 스크립트는 스크립팅 엔진(112)에 의해 실행된다. 예를 들어, 브라우저에서 렌더링된 웹 페이지에서의 웹 자원의 애니메이션(animation)을 지정하는 스크립트는 이 목적을 위해 HDD(124) 또는 UPnP 홈 네트워크로의 액세스를 요구하지 않는다.
스크립트가 정상의 (브라우저) 샌드박스의 범위 외부에 있는 HDD(124) 상의 데이터 또는 UPnP 홈 네트워크(126) 상의 데이터로의 액세스를 요구하면, 스크립트는 개인 스크립팅 엔진(114)에 의해 실행된다. 예를 들어, 스크립트는 홈 네트워크 내의 UPnP 미디어서버에 저장된 멀티미디어 콘텐츠를 스캔(scan)하고 관리한다.
공중 스크립팅 엔진(112)은 HDD(124) 상의 정상 브라우저 샌드박스의 범위 외부의 데이터와 상호 작용하는 소프트웨어 애플리케이션(122) 또는 UPnP 홈 네트워크(126)와 상호 작용하는 UPnP 제어 포인트(128)로의 인터페이스, 예를 들어 스크립팅 애플리케이션 프로그램 인터페이스(API)를 가지지 않는다. 한편, 개인 스크립팅 엔진(114)은 HDD(124)에 액세스할 수 있는 소프트웨어 애플리케이션(122)으로의 스크립팅 API(120) 및 UPnP 홈 네트워크(126)에 액세스할 수 있는 스크립팅 API(130)를 갖는다. 개인 스크립팅 엔진(114)은 서버(106)로의 통신이 승인되지 않는 한 서버(106)와의 데이터 통신을 방지하고, 반면에 공중 스크립팅 엔진은 이 구분을 행하지 않는 통신 인터페이스(도시되지 않음)를 갖는다.
홈 네트워크 외부에 있는 서버들과의 통신의 승인은, 이용자에 의한 이벤트 당 승인 및/또는 이용자 및/또는 런타임 환경의 개발자/사용자에 의한 사전 승인(예를 들어 서버당, 도메인-당 등)에 기초하여 발생할 수 있다. 사전 승인은 런타임 환경의 구성에 의해 획득되거나(예를 들어, 개인 스크립팅 엔진으로부터의 데이터 통신에 대한 제한으로부터 면제되는 서버들 또는 서버 도메인들의 로컬 또는 원격 저장 목록을 유지함으로써) 또는 보안 프로파일들 또는 이용자, 외부 서버, 및/또는 스크립트가 획득되었던 데이터 소스와 연관되는 인증서들로부터 간접적으로 도출될 수 있다.
도 1의 도면은 공중 스크립팅 엔진(112) 및 개인 스크립팅 엔진(114)이 별개의 스크립팅 엔진으로 구현되는 시나리오를 도시한다. 예를 들어, 개인 스크립팅 엔진(114)은 예를 들어 XHTML 및 CSS를 지원하는 브라우저로의 플러그-인, 및 외부 서버(106)로의 승인되지 않은 데이터 통신을 방지하고 데이터를 쿠키들과 같은 공유된 저장소들, 또는 공중 스크립팅 엔진(112)으로 통신하는 임의의 인터페이스들이 결여된 특수한 개인 ECMA스크립트 엔진 인스턴스로 구현될 수 있다. 브라우저의 ECMA스크립트 엔진은 공중 스크립팅 엔진(112)으로 기능할 수 있다. 공지되어 있는 바와 같이, 플러그-인은 기존 소프트웨어에 API를 추가하는데 이용될 수 있다. 완벽을 위해, 쿠키들은 동일한 도메인으로부터 기원하는 서비스들에 대한 (브라우저) 샌드박스의 범위내에서 지속적인 공유 저장소로 고려된다.
본 발명의 실시예에서, 런타임 환경(110)에 의해 수신되는 스크립트는, 런타임 환경이 예를 들어 스크립트의 파일명 확장자에 의해 또는 스크립트의 분석에 의해 스크립트를 실행하는데 이용될 스크립팅 엔진들(112 및 114) 중 적절한 것을 결정될 수 있는 경우를 제외하고, 실행되기 위하여 디폴트(default)에 의해 공중 스크립팅 엔진(112)으로 라우팅(routing)된다. 공중 스크립팅 엔진(112)은, 예를 들어 스크립트가 개인 스크립팅 엔진(114)에서의 실행을 요청하는 명시적 진술문을 포함하는 경우, 상기 스크립트를 개인 스크립팅 엔진(114)으로 조건에 따라 전송하도록 구성된다. 런타임 환경(110)은 파일명 확장자를 해석하고 이에 기초하여 어떤 스크립팅 엔진들(112 및 114)에서 스크립트가 실행되어야 하는지를 결정한다.
예를 들어, 스크립트는 스크립트의 파일명 확장자를 포함하는 자신의 경로에 의해 HTML 파일 내에서 참조된다. 스크립트가 자바스크립트인 경우, 이는 파일명 확장자 ".js" 또는 ".xjs"를 가질 것이다. 파일명 확장자가 ".js"인 경우, 런타임 환경(110)은 공중 스크립팅 엔진(112)이 이 스크립트를 실행하는 엔진이라고 결정한다. 파일명 확장자가 ".xjs"인 경우, 런타임 환경(140)은 이것을, 개인 스크립팅 엔진(114)이 스크립트를 실행하는 것으로 해석하고 스크립트를 실행될 개인 스크립팅 엔진(114)에 전송한다. 런타임 환경(110)은 이를 트리거(trigger)로 이용하여 모드들을 전환할 수 있어서, HTML 파일(이전에 다운로드되었던 .js 파일들을 포함하는)에 의해 포함되거나 참조되는 모든 스크립트들은 공중 스크립팅 엔진(112) 대신, 개인 스크립팅 엔진(114)에서 실행될 것이다.
다른 예로서, 스크립트는 개인 스크립팅 엔진이 임베딩된 스크립트를 실행하기 위해 인보킹되는 것임을 지정하는 명시적 진술문을 갖는 다른 스크립트에 임베딩된다. 공중 스크립팅 엔진(112)은 다른 스크립트를 실행하고 이내 명시적 진술문에 도달한다. 공중 스크립팅 엔진(112)은 엔진들(112 및 114) 사이의 일방향 인터페이스(도시되지 않음)를 통해 명시적 진술문을 실행하자마자, 상기에 참조된 일방향 인터페이스를 통해 임베딩된 스크립트를 개인 스크립팅 엔진(114)에 전송하도록 구성된다. 즉, 개인 스크립팅 엔진은 데이터를 개인 스크립팅 엔진(114)으로 통신하도록 인에이블되지만, 개인 스크립팅 엔진(114)은 데이터를 공중 스크립팅 엔진(114)으로 통신하도록 인에이블된다. 데이터 통신 방법들은 공중 스크립팅 엔진(112)에서 실행되는 스크립트가 데이터를 플러그-인에 송신하도록 하므로 스크립팅 엔진들(112 및 114) 사이의 일방향 데이터 통신 인터페이스는 플러그-인 인터페이스를 확장함으로써 구현될 수 있다.
또 다른 예로서, 스크립트를 나타내는 객체(객체-지향 프로그래밍 콘텍스트에서의)는 자신의 유형 또는 클래스에 의해 지정된다. 스크립트에서 선언된 유형은 스크립트가 HDD(124) 또는 UPnP 홈 네트워크(126)을 이용하고 있는지를 표시한다. 상기 유형이 스크립트가 UPnP 홈 네트워크(126) 상에서 실행되거나, 또는 UPnP 홈네트워크(126)로의 API(130)를 이용할 애플리케이션임을 나타내는 경우, 공중 스크립팅 엔진(112)은, 스크립트가 실행되도록 하기 위해, 스크립트를 일방향 인터페이스를 통해 개인 스크립팅 엔진(114)으로 전송한다. 이것은 유형 또는 클래스가 프라이버시에 민감하도록 미리 결정되거나 미리 구성되고, 따라서 임베딩되거나 참조되는 스크립트를 실행하기 위해 개인 스크립팅 엔진(114)의 인보킹을 암시적으로 요구한다. 이 진술문은 예를 들어 미리 결정된 자원과 연관되는 MIME 유형을 지정하는 HTML 객체 요소일 수 있다. 예를 들어, UPnP 홈 네트워크의 제어와 연관되는 런타임 환경 플러그-인이 MIME 유형 "application/upnpcontrol"에 의해 식별되는 것을 가정하면, 이 MIME 유형의 HTML <객체> 요소를 포함하는 실행 가능 파일은 임베딩되거나 참조되는 스크립트가 개인 스크립팅 엔진(114)에서 실행됨을 암시적으로 지정한다. 개인 스크립팅 엔진(114)을 인보킹할 필요성을 암시적으로 지정하는 다른 유형의 진술문은 개인 스크립팅 엔진(114)의 콘텍스트 내에서만 지원되는 기능 또는 방법에 대한 호출을 포함한다. 예를 들어, "readHDDContents()"가 개인 엔진(114)에 의해 미리 결정된 자원 상에서만 지원된다고 가정하면, 파일 내의 진술문 "readHDDContents"의 발생은 개인 스크립팅 엔진(114) 내의 파일의 추가 실행을 수행할 필요성을 암시적으로 시그널링한다.
따라서, 스크립팅 엔진들(112 및 114)의 데이터 통신 케이퍼빌리티(capability)들의 지정으로 인해, 그와 같은 통신이 승인되지 않는 한, 클라이언트(102)의 자원들(124 또는 126)에 상주하는 프라이버시 민감 데이터는 예를 들어 외부 공급자에 의해 서버(106)로부터 검색되고 브라우저(110)에서 렌더링되는 전자 html 문서 내에 제공되는 스크립트를 통해 서버(106)가 이용 가능하게 될 수 없다. 스크립트가 엔진(112)에 의해 실행되는 경우, 미리 결정된 자원들(124 및 126)로의 액세스는 존재하지 않는다. 스크립트가 엔진(114)에 의해 실행되는 경우, 스크립트는 미리 결정된 자원들(124 및 126)에 액세스한다. 그러나, 이 목적을 위한 인터페이스가 단지 승인된 서버들로의 통신들을 제한하는 사실로 인해, 그와 같은 통신이 승인되지 않는 한, 자원들(124 및 126)로부터 검색된 데이터를 서버(106)로 통신할 방법이 존재하지 않는다.
상기 예에서, 스크립팅 엔진들(112 및 114)은 두 별개의 엔진들로 구현되었다. 대안으로, 스크립팅 엔진들(112 및 114)은 두 동작 모드들: 공중 모드 및 개인 모드 중 하나로 선택적으로 구성 가능한 단일 스크립팅 엔진에 의해 구현된다. 공중 모드에서, 스크립팅 엔진은 공중 스크립팅 엔진(112)인 것처럼 동작하고, 개인 모드에서 스크립팅 엔진은 개인 스크립팅 엔진(114)인 것처럼 동작한다. 제 2 대안은 공중 및 개인 스크립팅 엔진들(112 및 114)을 동일한 스크립팅 엔진의 논리적인 별개의 인스턴스들로 구현하는 것이다. 예로서, 메인스트림 브라우저를 상이한 도메인들로부터 기원하는 스크립트들에 상이한 허용들을 수여하는 것을 지원하는 보안 시스템을 갖는 런타임 환경(110)으로서 이용하는 것을 가정한다. 그리고나서, 공중 스크립팅 엔진(112)은 개인 스크립팅 엔진(114)으로의 일방향 통신 인터페이스가 추가된, 브라우저의 정상 스크립팅 엔진으로 구현될 수 있다. 브라우저의 스크립팅 엔진을 구성하여 개인 스크립팅 엔진(114)에서 실행되도록 요구되는 스크립트들이 외부 스크립트가 기원했던 도메인과는 관계없이, 실제로 특정 도메인의 콘텍스트 내에서 실행되도록 함으로써 개인 스크립팅 엔진(114)이 구현될 수 있다. 이 도메인 내에서 실행되는 스크립트에는 브라우저 플러그-인을 통해 미리 결정된 자원이 제어하도록 특권이 수여되지만, 그와 같은 통신이 승인되지 않는 한 상기 스크립트들이 데이터를 공중 스크립팅 엔진(112)으로, 또는 서버(106)와 같은 데이터 프로세싱 시스템(102) 외부의 서버로 통신하는 것이 방지된다.
100 : 시스템 102 : 클라이언트
Claims (7)
- 스크립트(script)를 실행하기 위한 스크립팅 엔진 수단(scripting engine means)을 갖는 런타임 환경(110)을 포함하는 데이터 프로세싱 시스템(102)에 있어서:
상기 스크립팅 엔진 수단은 공중 스크립팅 엔진(112) 및 개인 스크립팅 엔진(114)을 구현하고;
상기 런타임 환경은 상기 스크립트의 선택적인 실행을 위하여: 상기 스크립트가 상기 시스템에 있는 미리 결정된 자원(124; 126)으로의 액세스를 요구하지 않는 경우 상기 스크립트가 상기 공중 스크립팅 엔진에 의해 실행되거나 상기 스크립트가 상기 미리 결정된 자원으로의 액세스를 요구하는 경우 상기 스크립트가 개인 스크립팅 엔진에 의해 실행되도록 함으로써 구성되고;
상기 스크립트가 상기 미리 결정된 자원에 액세스하는 것을 인에이블(enable)하기 위해서 상기 개인 스크립팅 엔진만이 인터페이스(120; 130)를 갖고;
상기 스크립팅 엔진 수단은, 상기 개인 스크립팅 엔진이 데이터를 상기 공중 스크립팅 엔진 또는 상기 데이터 프로세싱 시스템 외부의 서버(106)로 통신을 하지 못하게 하도록 구성되어, 스크립트가 상기 미리 결정된 자원(124; 126)으로의 액세스를 얻을 때, 상기 개인 스크립팅 엔진은 상기 공중 스크립팅 엔진 또는 상기 데이터 프로세싱 시스템 외부의 서버(106)와 더 이상 통신을 할 수 없는, 데이터 프로세싱 시스템. - 제 1 항에 있어서, 상기 스크립팅 엔진 수단은 상기 공중 스크립팅 엔진으로 동작하는 제 1 스크립팅 엔진, 및 상기 개인 스크립팅 엔진으로 동작하는 제 2 스크립팅 엔진을 포함하는, 데이터 프로세싱 시스템.
- 제 1 항에 있어서, 상기 스크립팅 엔진 수단은 제 1 모드로 구성될 때 상기 공중 스크립팅 엔진으로 동작하도록, 그리고 제 2 모드로 구성될 때 상기 개인 스크립팅 엔진으로 동작하도록 구성 가능 스크립팅 엔진을 포함하는, 데이터 프로세싱 시스템.
- 제 1 항에 있어서, 상기 런타임 환경은: 브라우저, 자바 가상 머신, 및 운영 시스템 중 적어도 하나를 포함하는, 데이터 프로세싱 시스템.
- 데이터 프로세싱 시스템에 있어서:
개인 자원;
공중 네트워크와의 접속; 및
(i) 운영 시스템 환경을 처리하고 (ii) 상기 운영 시스템 환경내의 공중 스크립트 인스턴스와 별개의 개인 스크립트 인스턴스를 갖는 스크립팅 엔진을 실행하고 (iii) 개인 자원들 및 상기 공중 네트워크에의 액세스를 제공하도록 구성된 하드웨어 처리기를 포함하고,
상기 운영 시스템 환경은 (i) 상기 스크립팅 엔진의 상기 공중 스크립트 인스턴스가 상기 개인 자원들에의 액세스를 요구하지 않을 때 상기 공중 네트워크에의 액세스를 허용하는 것을 포함하는 상기 스크립팅 엔진의 상기 공중 스크립트 인스턴스 및 (ii) 상기 공중 네트워크에의 액세스가 거부되었을 때 상기 개인 자원들에의 액세스를 허용하는 것을 포함하는, 상기 개인 자원들에의 액세스를 요구하는 상기 스크립팅 엔진의 상기 개인 스크립트 인스턴스의 실행을 가능하게 하도록 구성되고,
상기 운영 시스템은 데이터 통신 인터페이스를 이용하여 상기 스크립팅 엔진의 상기 공중 스크립트 인스턴스로부터 상기 스크립팅 엔진의 상기 개인 스크립트 인스턴스로의 통신을 가능하게 하고, 상기 스크립팅 엔진의 상기 개인 스크립트 인스턴스로부터 상기 스크립팅 엔진의 상기 공중 스크립트 인스턴스로의 통신을 방지하도록 구성되어, 개인 스크립트 인스턴스가 상기 개인 자원들에의 액세스를 얻을 때 상기 개인 스크립트 인스턴스는 상기 스크립팅 엔진의 상기 공중 스크립트 인스턴스 또는 상기 데이터 프로세싱 시스템 외부의 서버와 더 이상 통신을 할 수 없도록 구성되고,
상기 스크립팅 엔진의 상기 개인 스크립트 인스턴스만이 상기 개인 자원에의 액세스를 가능하게 하도록 구성된 스크립팅 API를 포함하는, 데이터 프로세싱 시스템. - 데이터 프로세싱 시스템의 동작 이용 동안 제 1 항의 런타임 환경을 구현하도록 구성되고 실행되는 컴퓨터 실행-가능 명령들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
- 제 1 항의 데이터 프로세싱 시스템에서 실행되는 스크립트를 나타내는 데이터 구조를 기록한 컴퓨터 판독가능한 기록 매체에 있어서, 상기 데이터 구조는 상기 스크립트를 실행하기 위하여 상기 공중 스크립팅 엔진 및 상기 개인 스크립팅 엔진 사이에서의 선택을 인에이블하도록 실행 제어 표시를 포함하는, 컴퓨터 판독가능한 기록 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14564609P | 2009-01-19 | 2009-01-19 | |
US61/145,646 | 2009-01-19 | ||
US17280109P | 2009-04-27 | 2009-04-27 | |
US61/172,801 | 2009-04-27 | ||
PCT/IB2010/050127 WO2010082161A1 (en) | 2009-01-19 | 2010-01-13 | Browser with dual scripting engine for privacy protection |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110117171A KR20110117171A (ko) | 2011-10-26 |
KR101786060B1 true KR101786060B1 (ko) | 2017-10-16 |
Family
ID=42027806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117019165A KR101786060B1 (ko) | 2009-01-19 | 2010-01-13 | 프라이버시 보호를 위한 이중 스크립팅 엔진을 구비한 브라우저 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9258136B2 (ko) |
EP (1) | EP2387765B1 (ko) |
JP (1) | JP5676477B2 (ko) |
KR (1) | KR101786060B1 (ko) |
CN (1) | CN102282565B (ko) |
BR (1) | BRPI1004942B1 (ko) |
RU (1) | RU2556338C2 (ko) |
WO (1) | WO2010082161A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225061B2 (en) * | 2009-07-02 | 2012-07-17 | Apple Inc. | Method and apparatus for protected content data processing |
US8689181B2 (en) | 2010-11-23 | 2014-04-01 | Axeda Corporation | Scripting web services |
US8464350B2 (en) * | 2011-03-14 | 2013-06-11 | International Business Machines Corporation | System and method for in-private browsing |
US10466989B2 (en) | 2011-09-02 | 2019-11-05 | Microsoft Technology Licensing, Llc. | Fast presentation of markup content having script code |
US9015851B2 (en) * | 2012-04-23 | 2015-04-21 | Google Inc. | Electronic book content protection |
CN102842006A (zh) * | 2012-07-09 | 2012-12-26 | 华为软件技术有限公司 | 扩展脚本对象的访问控制方法及其访问控制系统和终端 |
US20140053064A1 (en) | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Predicting the usage of document resources |
US9898445B2 (en) * | 2012-08-16 | 2018-02-20 | Qualcomm Incorporated | Resource prefetching via sandboxed execution |
US9589149B2 (en) * | 2012-11-30 | 2017-03-07 | Microsoft Technology Licensing, Llc | Combining personalization and privacy locally on devices |
CN103268442B (zh) * | 2013-05-14 | 2015-12-23 | 北京奇虎科技有限公司 | 一种实现安全访问视频网站的方法和装置 |
CN104239752A (zh) * | 2013-06-09 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 使用浏览器保护隐私信息的方法和装置 |
RU2584507C1 (ru) * | 2014-12-19 | 2016-05-20 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обеспечения безопасного выполнения файла сценария |
US10671760B2 (en) * | 2015-02-27 | 2020-06-02 | Arash Esmailzadeh | Secure and private data storage |
US10572691B2 (en) | 2015-04-28 | 2020-02-25 | Microsoft Technology Licensing, Llc | Operating system privacy mode |
CN105893863A (zh) * | 2015-11-30 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种隐私信息保护方法及装置 |
US10462145B2 (en) | 2016-07-15 | 2019-10-29 | The Directv Group, Inc. | Method and apparatus for controlling access to custom browser functionality |
US10476900B2 (en) * | 2016-09-30 | 2019-11-12 | McAFEE, LLC. | Safe sharing of sensitive data |
US10481876B2 (en) | 2017-01-11 | 2019-11-19 | Microsoft Technology Licensing, Llc | Methods and systems for application rendering |
US10394584B2 (en) * | 2017-12-18 | 2019-08-27 | Atlassian Pty Ltd | Native execution bridge for sandboxed scripting languages |
US12026249B2 (en) * | 2021-02-19 | 2024-07-02 | Capital One Services, Llc | Methods, media, and systems for screening malicious content from a web browser |
US11972000B2 (en) | 2021-08-06 | 2024-04-30 | Arash Esmailzadeh | Information dispersal for secure data storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172646A (ja) | 1998-12-04 | 2000-06-23 | Toshiba Corp | アプリケーション機能指定装置及び記憶媒体 |
JP2005148977A (ja) | 2003-11-13 | 2005-06-09 | Canon Software Inc | プログラム実行環境設定システムおよびプログラム提供サーバ装置およびクライアント装置および呼制御サーバ装置およびプログラム実行環境設定方法およびプログラムおよび記録媒体 |
US20070226773A1 (en) | 2006-03-21 | 2007-09-27 | Novell, Inc. | System and method for using sandboxes in a managed shell |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317742B1 (en) * | 1997-01-09 | 2001-11-13 | Sun Microsystems, Inc. | Method and apparatus for controlling software access to system resources |
US6308275B1 (en) * | 1998-07-10 | 2001-10-23 | At Home Corporation | Web host providing for secure execution of CGI programs and method of doing the same |
US6608634B1 (en) | 1999-12-23 | 2003-08-19 | Qwest Communications International, Inc. | System and method for demonstration of dynamic web sites with integrated database without connecting to a network |
US6931546B1 (en) * | 2000-01-28 | 2005-08-16 | Network Associates, Inc. | System and method for providing application services with controlled access into privileged processes |
US7051119B2 (en) * | 2001-07-12 | 2006-05-23 | Yahoo! Inc. | Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network |
US6978445B2 (en) * | 2001-09-28 | 2005-12-20 | Siebel Systems, Inc. | Method and system for supporting user navigation in a browser environment |
US7401235B2 (en) * | 2002-05-10 | 2008-07-15 | Microsoft Corporation | Persistent authorization context based on external authentication |
US7987491B2 (en) * | 2002-05-10 | 2011-07-26 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
US7343626B1 (en) * | 2002-11-12 | 2008-03-11 | Microsoft Corporation | Automated detection of cross site scripting vulnerabilities |
GB0227993D0 (en) | 2002-12-02 | 2003-01-08 | Ncr Int Inc | A system and method for enabling communication between a web browser and a software agent infrastructure |
JP4685004B2 (ja) | 2003-06-30 | 2011-05-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | URIへのUPnPAVメディアサーバ・オブジェクトIDの埋め込み |
WO2005031568A1 (en) | 2003-09-26 | 2005-04-07 | Opera Software Asa | Presenting remote and local information in a web browser |
US7676560B2 (en) * | 2003-10-24 | 2010-03-09 | Microsoft Corporation | Using URI's to identify multiple instances with a common schema |
US7444678B2 (en) * | 2003-10-28 | 2008-10-28 | Aol Llc | Securing resources from untrusted scripts behind firewalls |
US7401230B2 (en) * | 2004-03-31 | 2008-07-15 | Intel Corporation | Secure virtual machine monitor to tear down a secure execution environment |
WO2005109184A1 (en) * | 2004-05-08 | 2005-11-17 | Intel Corporation | Firmware interface runtime environment protection field |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
KR100618375B1 (ko) * | 2004-08-30 | 2006-08-31 | 삼성전자주식회사 | 웹서비스가 가능한 디지털 영상/음향 처리장치, 그의웹서비스 제공방법 및 웹서비스 시스템 |
US7831995B2 (en) * | 2004-10-29 | 2010-11-09 | CORE, SDI, Inc. | Establishing and enforcing security and privacy policies in web-based applications |
US7593980B2 (en) * | 2004-11-30 | 2009-09-22 | Cisco Technology, Inc. | Application server system and method |
US20060248537A1 (en) | 2005-04-06 | 2006-11-02 | Nokia Corporation | System and method for domain security with script objects |
US8078740B2 (en) * | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US7707635B1 (en) * | 2005-10-06 | 2010-04-27 | Trend Micro Incorporated | Script-based pattern for detecting computer viruses |
US7836303B2 (en) * | 2005-12-09 | 2010-11-16 | University Of Washington | Web browser operating system |
KR101282117B1 (ko) * | 2006-07-25 | 2013-07-03 | 삼성전자주식회사 | 공유 네트워크 환경에서 범용 플러그 앤 플레이 서비스를위한 장치 및 방법 |
US8353031B1 (en) * | 2006-09-25 | 2013-01-08 | Symantec Corporation | Virtual security appliance |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8490117B1 (en) * | 2006-10-23 | 2013-07-16 | Adobe Systems Incorporated | Bridging script engines |
WO2008073618A2 (en) * | 2006-11-06 | 2008-06-19 | Devicevm, Inc. | Instant on platform |
US20080133722A1 (en) * | 2006-12-04 | 2008-06-05 | Infosys Technologies Ltd. | Parallel dynamic web page section processing |
US20080148298A1 (en) * | 2006-12-18 | 2008-06-19 | Palm, Inc. | System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications |
US8484742B2 (en) * | 2007-01-19 | 2013-07-09 | Microsoft Corporation | Rendered image collection of potentially malicious web pages |
US20080189767A1 (en) * | 2007-02-01 | 2008-08-07 | Microsoft Corporation | Accessing file resources outside a security boundary |
WO2008098174A1 (en) * | 2007-02-09 | 2008-08-14 | Novarra, Inc. | Method and apparatus for providing information content for display on a client device |
EP1975830A1 (en) * | 2007-03-30 | 2008-10-01 | British Telecommunications Public Limited Company | Distributed computer system |
US8024790B2 (en) * | 2007-04-11 | 2011-09-20 | Trend Micro Incorporated | Portable secured computing environment for performing online confidential transactions in untrusted computers |
US8001551B2 (en) * | 2007-04-24 | 2011-08-16 | Microsoft Corporation | Providing localized resources for client-side script execution |
US8763115B2 (en) * | 2007-08-08 | 2014-06-24 | Vmware, Inc. | Impeding progress of malicious guest software |
US7748609B2 (en) * | 2007-08-31 | 2010-07-06 | Gemalto Inc. | System and method for browser based access to smart cards |
US8160247B2 (en) * | 2007-09-27 | 2012-04-17 | Adobe Systems Incorporated | Providing local storage service to applications that run in an application execution environment |
US8307443B2 (en) * | 2007-09-28 | 2012-11-06 | Microsoft Corporation | Securing anti-virus software with virtualization |
US7979909B2 (en) * | 2007-12-03 | 2011-07-12 | Wells Fargo Bank | Application controlled encryption of web browser data |
US8635701B2 (en) * | 2008-03-02 | 2014-01-21 | Yahoo! Inc. | Secure browser-based applications |
US8272059B2 (en) * | 2008-05-28 | 2012-09-18 | International Business Machines Corporation | System and method for identification and blocking of malicious code for web browser script engines |
US8108912B2 (en) * | 2008-05-29 | 2012-01-31 | Red Hat, Inc. | Systems and methods for management of secure data in cloud-based network |
US8250666B2 (en) * | 2008-07-03 | 2012-08-21 | Sap Ag | Method and apparatus for improving security in an application level virtual machine environment |
US8136158B1 (en) * | 2008-07-21 | 2012-03-13 | Google Inc. | User-level segmentation mechanism that facilitates safely executing untrusted native code |
US8413139B2 (en) * | 2009-03-11 | 2013-04-02 | Microsoft Corporation | Programming model for application and data access and synchronization within virtual environments |
US8505084B2 (en) * | 2009-04-06 | 2013-08-06 | Microsoft Corporation | Data access programming model for occasionally connected applications |
US8839138B1 (en) * | 2009-12-21 | 2014-09-16 | Symantec Corporation | Systems and methods for transitioning between user interface environments |
-
2010
- 2010-01-13 US US13/143,573 patent/US9258136B2/en active Active
- 2010-01-13 RU RU2011134494/08A patent/RU2556338C2/ru active
- 2010-01-13 WO PCT/IB2010/050127 patent/WO2010082161A1/en active Application Filing
- 2010-01-13 JP JP2011545822A patent/JP5676477B2/ja active Active
- 2010-01-13 KR KR1020117019165A patent/KR101786060B1/ko active IP Right Grant
- 2010-01-13 CN CN201080004895.6A patent/CN102282565B/zh active Active
- 2010-01-13 BR BRPI1004942A patent/BRPI1004942B1/pt active IP Right Grant
- 2010-01-13 EP EP10702348.3A patent/EP2387765B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172646A (ja) | 1998-12-04 | 2000-06-23 | Toshiba Corp | アプリケーション機能指定装置及び記憶媒体 |
JP2005148977A (ja) | 2003-11-13 | 2005-06-09 | Canon Software Inc | プログラム実行環境設定システムおよびプログラム提供サーバ装置およびクライアント装置および呼制御サーバ装置およびプログラム実行環境設定方法およびプログラムおよび記録媒体 |
US20070226773A1 (en) | 2006-03-21 | 2007-09-27 | Novell, Inc. | System and method for using sandboxes in a managed shell |
Also Published As
Publication number | Publication date |
---|---|
EP2387765B1 (en) | 2018-05-23 |
JP2012515390A (ja) | 2012-07-05 |
BRPI1004942A8 (pt) | 2017-10-03 |
RU2011134494A (ru) | 2013-03-10 |
RU2556338C2 (ru) | 2015-07-10 |
BRPI1004942A2 (ko) | 2017-08-08 |
BRPI1004942B1 (pt) | 2020-04-07 |
US9258136B2 (en) | 2016-02-09 |
KR20110117171A (ko) | 2011-10-26 |
JP5676477B2 (ja) | 2015-02-25 |
EP2387765A1 (en) | 2011-11-23 |
CN102282565B (zh) | 2016-08-03 |
CN102282565A (zh) | 2011-12-14 |
WO2010082161A1 (en) | 2010-07-22 |
US20110283363A1 (en) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101786060B1 (ko) | 프라이버시 보호를 위한 이중 스크립팅 엔진을 구비한 브라우저 | |
US10178097B2 (en) | System and method for embedding first party widgets in third-party applications | |
US8291475B2 (en) | Secure cross-domain communication for web mashups | |
US10798127B2 (en) | Enhanced document and event mirroring for accessing internet content | |
US9848002B2 (en) | Allowing first module of computer code to make use of service provided by second module while ensuring security of system | |
Jackson et al. | Subspace: secure cross-domain communication for web mashups | |
US9165139B2 (en) | System and method for creating secure applications | |
Nauman et al. | Apex: extending android permission model and enforcement with user-defined runtime constraints | |
US8458765B2 (en) | Browser security standards via access control | |
US9391961B2 (en) | Information operating device, information output device, and information processing method | |
US9473479B2 (en) | Automating authentication with multi-channel media distributors | |
GB2503070A (en) | Dynamic rendering of a Document Object Model (DOM) | |
Zhou et al. | Protecting private web content from embedded scripts | |
Felt et al. | Talking to strangers without taking their candy: isolating proxied content | |
KR20140068940A (ko) | 애플리케이션용 콘텐츠 핸들링 기법 | |
Zuzak et al. | A classification framework for web browser cross-context communication | |
US20210044657A1 (en) | Information processing apparatus, access control system, and non-transitory computer-readable storage medium for storing access control program | |
Decat et al. | Towards building secure web mashups | |
US20210336999A1 (en) | System and method for workspace sharing | |
EP3432244A1 (en) | Anti adblock solution vpaid | |
Giordano et al. | A system for user friendly pervasive computing management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |