(Final proposal, please reply to dev-weba...@lists.mozilla.org by COB
Jun 04)
Only change here was to change trusted apps from explicit to implicit,
acknowledging that trusted and certified apps will now have separate
profile based resources (cookie jars, localstorage, app-cache etc)
Name of API: Browser API
References:
https://wiki.mozilla.org/WebAPI/EmbeddedBrowserAPI
popup windows in b2g: https://bugzilla.mozilla.org/show_bug.cgi?id=716664
window.open in iframe mozbrowser:
https://bugzilla.mozilla.org/show_bug.cgi?id=742944
window.open in iframe mozapp:
https://bugzilla.mozilla.org/show_bug.cgi?id=744451
Brief purpose of API: Provide an iframe that acts as a web browser
General Use Cases: A browser app.
Inherent threats:
* browser can see all data from all websites, and perform all actions
* can steal passwords (user-entered; enumerate all saved passwords)
* can steal cookies (by enumerating websites)
* NOT a use case: OAuth or other app-content or content-content interactions
Threat severity: high per https://wiki.mozilla.org/Security_Severity_Ratings
== Regular web content (unauthenticated) ==
Use cases for unauthenticated code: None
Authorization model for normal content: None
Authorization model for installed content:None
Potential mitigations:
== Trusted (authenticated by publisher) ==
Use cases for authenticated code: Implement a 3rd party browser application
Authorization model: Implicit
Potential mitigations: Each app has separate cookie and password stores
from other apps (including system browser app)
== Certified (vouched for by trusted 3rd party) ==
Use cases for certified code: Replacement Browser
Authorization model: Implicit
Potential mitigations:
On 5/5/12 11:28 AM, Lucas Adamski wrote:
On May 2, 2012, at 3:45 AM, Ben Francis wrote:
This also isn't a requirement, yet. This is definitely a tricky feature to
implement and we've discussed it before but I would prefer to focus on the
confirmed use cases first to make sure we don't build something that isn't
needed (this could turn out to be part of the platform rather than the
responsibility of any app for example, as many apps could benefit from this
feature).
Not allowing the container to have access to the content inside the browser
definitely reduces the risk tremendously but also limits a lot of potential use
cases. Find is one of them but also typical browser features like adblocking,
content blocking, content augmentation, etc. Basically means no add-ons for
3rd party browsers. I'm ok with that, but I suspect we'll come under a lot of
pressure to permit this. Happy to keep this out of 1.0 though.
My understanding of Open Web Apps is that anyone should be able to host their own app,
without the involvement of a third party, the user can simply grant trust to the origin
the app is being served from. Given that anyone can run their own app directory or app
store, requiring that a "trusted" app be installed via a directory or store
doesn't seem to add any extra protection in terms of security, just added complication
for independent app developers.
Trusted apps are different in a number of respects as documented in the "types of
applications thread" (I'm also going to post this to the wiki to capture this more
thoroughly). Trusted apps have an explicit list of assets that is code reviewed and
approved by an app store. Only code enumerated in the manifest has access to granted
privileges, etc. Untrusted and trusted apps differ significantly beyond whether they
went though an app store or not.
A third party app store can "vouch" for an app, or provide an indication of
quality through user ratings which can help users to make a decision, but ultimately the
user is expressing trust in the origin the app is served from, right?
Or in the app store and review process. That said I think you can still build
very rich apps with untrusted apps, so I don't think we should frame this as an
app store being required to build a great app.
Lucas.
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security