위젯이란?

06/04/2010

위젯이란 용어가 여기저기 사용하면서 부터, 실제로 W3C/BONDI/JIL, 나아가 WAC에서 말하는 위젯에 대해서 정리가 필요한 것 같아서 아래와 같이 적어보았습니다.

우선 제가 예전에 정리해둔 자료입니다. (해당 Spec의 내용을 그대로 옮겨온 것 입니다.)

*BONDI

A Widget is understood to be an interactive single purpose application for displaying and/or updating local data or data on the Web, packaged in a way to allow a single download and Installation on a user’s machine, mobile phone, or mobile Internet Terminal

Web Application

An Application authored using web formats that makes use of Scriptable APIs, e.g. an installed Widget, web based Application or hybrid.

*JIL

A JIL Widget is a composition of HTML, JavaScript, and CSS combined as a package that can be deployed on a JIL compatible mobile handset. The widget package is self-contained; the package includes all of the support files that are needed by the widget. With this approach, the widget can become a standalone application that does not require any external resources. Any external access issues in running a widget can be safely handled or even avoided.

*W3C http://www.w3.org/TR/widgets/

Widgets are full-fledged client-side applications that are authored using Web standards and packaged for distribution. They are typically downloaded and installed on a client machine or device where they run as stand-alone applications, but they can also be embedded into Web pages and run in a Web browser. Examples range from simple clocks, stock tickers, news casters, games and weather forecasters, to complex applications that pull data from multiple sources to be “mashed-up” and presented to a user in some interesting and useful way (see [Widgets-Landscape] for more information).

*W3C http://www.w3.org/TR/widgets-land/

A widget is an end-user’s conceptualization of an interactive single purpose application for displaying and/or updating local data or data on the Web, packaged in a way to allow a single download and installation on a user’s machine or mobile device. A widget may run as a stand alone application (meaning it can run outside of a Web browser), or may be embedded into a Web document. In this document, the runtime environment on which a widget is run is referred to as a widget user agent and a running widget is referred to as an instantiated widget. Prior to instantiation, a widget exists as a widget resource.

그리고, BONDI_Architecture_and_Security_v1.1 나오는 내용입니다.

Web ApplicationThe term used generically to refer to an application delivered using web technology, whether as a Website or a Widget.

WidgetAn interactive application for displaying and/or updating local data or data on the Web, packaged in a way to allow a single download and installation on a user’s machine or mobile device.

끝으로, 보시는 바와 같이 Web Application 이 Widget을 포괄하는 것을 확인할 수 있습니다.


Device API Access Control – attribute of subject element

03/10/2010

1. Introduction

이번에는  device API에 접근을 위해 접근을 요청한 widget이 API에
접근이 가능한 widget인지를 확인에 이용되는 subject element와
attribute 에 대해서 알아보도록 하겠습니다.

이 subject element 는 API에 접근이 가능한 widget 혹은 접근이
불가능한 widget을 구분하여 API에 접근하는 것을 제어할 수
있습니다. 일반 휴대전화에도 있는 white list/black list 라고
생각하면 더 이해하기 쉬울 것 같습니다.

그럼 이제부터 subject element 에 대해서 알아보도록 하겠습니다.

2. Subject element

이 subject element 는 BONDI에서 정의한 XML format 에 포함되는
element 로 widget 하나 혹은 여러 widget을 묶음으로 관리하기 위한
element 입니다.  이 element 는 subject-match라는 child element 를
가지고 있고, subject-match에 widget을 분류하는 attribute 들이
있습니다. 그럼 widget을 분류 하기위한 attribute가 어떠한 것이
있는지 알아보도록 하겠습니다.

ATTRIBUTE TYPE VALUE
class String 요청을 한 App이 widget 인지 website 인지 구분
install-uri  URI  해당 widget을 설치한 URI
id  URI  config.xml 에 정의 되어 잇는 widget id
version  string  widget 의 version
distributor-key-cn  string  widget 공급자 서명을 위한 인증서의 common name
distributor-key -fingerprint string  widget 공급자 서명을 위한 인증서의 지문정보
distributor-key-root-cn  string  widget 공급자 서명을 위한 root 인증서의 common name
distributor-key-root-fingerprint  string  widget 공급자 서명을 위한 root 인증서의 지문정보
author-key-cn  string  widget 저자 서명을 위한 인증서의 common name
author-key -fingerprint  string  widget 저자 서명을 위한 인증서의 지문정보
author-key-root-cn  string  widget 저자 서명을 위한 root 인증서의 common name
author-key-root-fingerprint string widget 저자 서명을 위한 root 인증서의 지문정보
widget-attr:name   config.xml 에 정의 되어 잇는 widget name

 위의 표와 같이 여러가지의 attribute 들이 정의 되어 있습니다.
각 subject-match는 위의 attribute 를 하나씩 포함을 하고 있으며
여러개의 subject-match를 포함하고 있는 subject element 는
포함된 subject-match의 value 가 모두 TRUE 이어야만
subject 가 TRUE가 됩니다.

이렇게 하여 사업자, 제조사 그리고 사용자가 원하는 widget에게
필요한 만큼만 resource 를 open 함으로 악의적의 공격으로 부터
device 를 보호할 수 있게 됩니다.

3. Opinion

이번에는 subject에 관련된 것들을 알아보았습니다. 이 보안은
몇 번을 강조해도 지나치지 않다고 생각하는데요. 특히, widget
website에서도 device 의 resource 에 접근이 가능해지면서
보안은 더 중요시 되고 있는 것 같습니다. PC에도 중요한 정보가
많이 있겠지만 mobile device 의 경우는 많은 사람의 연락처 등
PC 못지 않게 혹은 PC보다 더 중요하고 많은 개인정보를 담고
있습니다. 보안 관련 솔루션을 개발하는 개발자들이 아무리
잘만들더라도 개인이 소홀이 할 경우 중요한 개인 정보는
해커들의 손에 넘어가게 되어 있습니다. 언제나 보안을 신경쓰는
습관을 들이는 것이 최고의 보안이 아닐까 생각합니다.
그럼 다음에 또 뵙겠습니다.

Reference

http://bondi.omtp.org/1.1/security/BONDI_Architecture_and_Security_Appendices_v1.1.pdf


팔로우

모든 새 글을 수신함으로 전달 받으세요.