177
edits
(5 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
# The development of applications by any developer must not interfere with or compromise the security measures or the distribution of applications through stores. | # The development of applications by any developer must not interfere with or compromise the security measures or the distribution of applications through stores. | ||
# A developer's application should not, through any technical measure, technical limitation or design flaw in the security model, be restricted to sole and exclusive distribution through any one given and specific store. | # A developer's application should not, through any technical measure, technical limitation or design flaw in the security model, be restricted to sole and exclusive distribution through any one given and specific store. | ||
# Distribution of commonly-used libraries (B2G UI libraries/widget-sets, jquery, prototype, node.js) needs to be controlled and managed | |||
** multiple versions of the same library need to be permitted, but only one copy of each version of that library permitted | |||
** there needs to be a way to express dependencies | |||
** reference counting needs to be added so that when packages are removed, its dependencies are also removed if they are also no longer required. | |||
== Proposals == | == Proposals == | ||
Line 30: | Line 34: | ||
* [[http://www.w3.org/TR/widgets-digsig/#author-signature Authors digitally-sign]] the package | * [[http://www.w3.org/TR/widgets-digsig/#author-signature Authors digitally-sign]] the package | ||
* [[http://www.w3.org/TR/widgets-digsig/#distributor-signature Distributors digitally-sign]] the package ''and'' the author's signature. | * [[http://www.w3.org/TR/widgets-digsig/#distributor-signature Distributors digitally-sign]] the package ''and'' the author's signature. | ||
"Stores" correspond to the W3C's definition of "Distributors"; authors correspond to the B2G concept of "app developer". | |||
The only problem with the W3C XML Widget Digital Signature Standard is that, compared to the infrastructure behind GNU/Linux Distributions, which have been deploying Chained-Signing for some considerable time and have a decades-long complete architecture, the W3C's standard was only ratified in late 2011. However, here are some implementations: | |||
* [http://docs.oracle.com/javase/6/docs/technotes/guides/security/xmldsig/XMLDigitalSignature.html Java javax.xml.crypto.dsig package]: this appears to solely implement the Cryptographic portions of the API: it does ''not'' implement a complete store, nor any infrastructure for validating the packages, nor any infrastructure for downloading or distribution of packages. | |||
* There is a GSoC project to implement it in Apache Wookie, which already has student interest. There is therefore a strong possibility that an open source implementation will exist by the end of Summmer 2012. | |||
On the commercial side, the W3C XML Widget Digital Sigature has been implemented by Opera, Nokia, Vodafone, Samsung, Obigo, RIM and a bunch of web TV platforms as its part of a lot of other spec stacks in the mobile and TV space such as WAC, MPEG-U, HbbTV, CMX (etc). | |||
There have been some packaging and signing tools supporting the specs issued as part of SDKs, e.g. the Vodafone widget packager and the WAC SDK (possibly written by Samsung/Limo). The Blackberry webapps signing tools may also uses widgets-digsig as Blackberry Widgets are W3C Widgets. RIM may have RIM open-sourced most of their Widgets code last year so that may be another lead. | |||
=== Trusted store with permissions delegation === | === Trusted store with permissions delegation === | ||
Line 152: | Line 167: | ||
It is worth emphasising that '''AT NO TIME''' is there '''any''' mention of a GNU/Linux Distribution which makes sole and exclusive use of SSL as the method for distribution of applications. | It is worth emphasising that '''AT NO TIME''' is there '''any''' mention of a GNU/Linux Distribution which makes sole and exclusive use of SSL as the method for distribution of applications. | ||
=== Package Management: Dependencies (libraries) === | |||
Apt and Yum have the capability to store not just applications but also libraries, including version numbers. An application may specify that it is dependent on a particular library including the version number (as a range). | |||
The use of such version control and dependencies will help dramatically cut the duplication of UI libraries which are inevitably going to be deployed, even amongst B2G Team Members let alone application developers. | |||
The context here is that B2G could potentially expand to having 100,000+ applications in stores: devices simply do not have unlimited bandwidth or storage capacity to keep on downloading hundreds of copies, identical or otherwise, of jquery or any other javascript library. | |||
=== SSL as a host-orientated App Distribution System === | === SSL as a host-orientated App Distribution System === |
edits