Visão geral sobre segurança


Este documento mostra uma visão geral sobre o framework de segurança do Mozilla Firefox OS, do qual é desenhado para proteger dispositivos móveis das ameaças para a plataforma, apps e dados pessoais. No Firefox OS a fundação Mozilla implementou uma arquitetura bem simplificada, segurança , de várias camadas que traz maior segurança aos donos de dispositivos móveis.

Segurança da plataforma

A segurança do Firefox OS é baseado em vários modelos de camadas, tais camadas de segurança é desenhada para bloquear qualquer tentativa de falha. As medidas de combate da linha de frente é combinada com uma forte estratégia que provê total proteção para qualquer ameaça.

Arquitetura segura

O Firefox OS conecta-se as aplicações web através de sua arquitetura simplificada de hardware, combinando com suas camadas de proteção, cada camada corresponde a um nível de abstração que o protege de qualquer risco, como todas são integradas, esse é o esquema de níveis de cada uma delas:

O dispositivo móvel representa um aparelho inteligente rodando o Firefox OS. Gonk consiste basicamente de um kernel do Linux, bibliotecas, firmwares e drivers do dispositivo como a camera, microfone, etc.

Gecko é a camada de execução de suas aplicações, onde tudo é rodado, desde o navegador até suas apps, assim como acesso as APIs Web, que usam a API para deixar você acessar a Camera, Microfone, Acelerometro.

Gaia é uma suite de apps web que  trás até você a experiência do usuário (UX), que consiste basicamente de HTML5,CSS,Javascript, images. Digamos que é a versão da Mozilla para o Twitter Bootstrap.

Gecko é o segurança da plataforma, ele é quem decide o que pode e o que não pode rodar, baseado no esquema de política de segurança aplicada ao Firefox OS, garantindo sempre o bom uso da plataforma tanto para os usuários quanto para desenvolvedores, afastando os usos indevidos da platforma. A camada do Gecko comporta-se como um intermediador entre uma App(Gaia) e o Firefox OS.
Por exemplo se sua App requer acesso a camera, o Gaia requisita, o Gecko verifica se existe permissão, aprovando a permissão ele repassa a informação ao Gonk que entrega o acesso direto ao Gecko.

Todas as funções de hardware do dispositivo são só entregues pelo acesso as APIs Web, não existe jeitinho para tal ou  "porta dos fundos". Isso garante segurança ao usuário que irá utilizar sua App.

Implantação de um sistema seguro

Firefox OS já vem instalado em um telefone inteligente (smartphones). A imagem original mais conhecida como ROM é gerada por uma fonte conhecida e segura que possui parcerias de OEM com a Mozilla. Os distribuidores dos smartphones OEM, geralmente eles montam o dispositivo, criam, testam e assinam digitalmente o pacote de distribuição.

As medidas de segurança são usadas em todos os níveis de tecnologia. Privilégios de sistema de arquivo são aplicadas por listas de controle de acesso do Linux (ACLs). Aplicativos do sistema são instalados em um volume que é somente leitura (exceto durante as atualizações, quando é temporariamente leitura e escrita). Apenas as áreas que contenham conteúdo do usuário pode ser de leitura e escrita. Vários componentes do hardware do dispositivo têm embutido proteções que são implementados por padrão como uma prática padrão da indústria. Fabricantes de chipsets, por exemplo, utilizar técnicas de endurecimento para reduzir vulnerabilidades. A plataforma central (Gecko e Gonk) é endurecida para reforçar a sua defesa contra ameaças potenciais, e as características de endurecimento do compilador são usadas quando aplicável. Para mais detalhes, consulte Runtime security.

Secure System Updates

Subsequent upgrades and patches to the Firefox OS platform are deployed using a secure Mozilla process that ensures the ongoing integrity of the system image on the mobile phone. The update is created by a known, trusted source – usually the device OEM – that is responsible for assembling, building, testing, and digitally signing the update package.



A built-in update service – which may be provided by the OEM – on the mobile phone periodically checks for system updates. Once a system package becomes available and is detected by the update service, the user is prompted to confirm installation. Before updates are installed on the mobile device, the device storage is checked for sufficient space to apply the update, and the distribution is verified for:

  • update origin (verify the source location protocol:domain:port of the system update and manifest)
  • file integrity (SHA-256 hash check)
  • code signature (certificate check against a trusted root)

Os procedimentos de segurança abaixo são usados no processo de atualizar:

  • Strong cryptographic verification is required before installing a firmware package.
  • The system must be in a secure state when the update process starts, with no Web apps running.


App Security


In Firefox OS, all applications are web apps – programs written using HTML5, JavaScript, CSS, media, and other open Web technologies (pages running within the browser are not referred to as Web apps in this context). Because there are no binary ("native") applications installed by the user, all system access is mediated strictly through the Web APIs. Even access to the file system is only through Web APIs and a back-end SQLite database – there is no direct access from apps to files stored on the SD card.

Firefox OS limits and enforces the scope of resources that can be accessed or used by an app, while also supporting a wide range of apps with varying permission levels. Mozilla implemented tight controls over what type of applications can access which APIs. For example, only certified apps (shipped with the phone) can have access to the Telephony API. The Dialer app has privileges to access the Telephony API in order to make phone calls, but not all certified apps can access this API. This prevents a scenario, for example, in which an arbitrary third-party app gets installed, dials a pay-per-use phone number (900 and 910), and racks up a large cell phone bill. However, other OEM apps might be selectively given access to the Telephony API. For example, an Operator might provide a systems management application that allows a customer to manage their account, including the ability to phone the Operator’s billing or support office directly.

Apps confiáveis e não confiáveis

Firefox OS organiza os apps em categorias de a acordo com os seguintes tipos:


Nível de confiança



Altamente confiável





Web (everything else)

Não confiável

Regular web content. Includes both installed apps (stored the mobile phone) and hosted apps (stored remotely, with only an app manifest stored on the mobile phone). The manifest for hosted apps can be obtained through a Marketplace.


  • Certified apps have permissions to most Web API operations.
  • Untrusted apps have permissions to a subset of the Web API operations accessible to Privileged apps. These are only those Web APIs that contain sufficient security mitigations to be exposed to untrusted web content.


Princípio de poucas permissões


Processo de revisão para Apps privilegiadas no Marketplace



Apps empacotadas e Hospedadas


Apps empacotadas






Apps hospedadas



Manifesto da App ( App Manifest)


Exemplo de manifesto
















  "name": "My App",

  "description": "My elevator pitch goes here",

  "launch_path": "/",

  "icons": {



  "developer": {

    "name": "Your name or organization",

    "url": ""


  "default_locale": "en"


Configuraçòes de segurança no manifesto da App






  • description - A string specifying the intent behind requesting use of this API. Required.


Origin of the app. Array of origins (scheme+unique hostname) that are allowed to trigger installation of this app. Allows app providers to restrict installs from only an authorized Marketplace (such as





Type of application (web, privileged, or certified).

Firefox OS requires that the manifest be served with a specific mime-type ("application/x-web-app-manifest+json") and from the same fully-qualified host name (origin) from which the app is served. This restriction is relaxed when the manifest app (and thus the app manifest) is same-origin with the page that requested the app to be installed. This mechanism is used to ensure that it's not possible to trick a website into hosting an application manifest.

Execução na caixinha de areia

This section describes application and execution sandboxes.

Aplicativo na caixinha de areia


The following figure provides an overview of this security model.

By isolating each app, its impact is contained within its own worker space. It cannot interfere with anything (such as other apps or their data) outside of that worker space.

Caixinha de areia para execução

B2G (Gecko) runs in a highly-privileged system process that has access to hardware features in the mobile phone. At run-time, each app runs inside an execution environment that is a child process of the B2G system process. Each child process has a restricted set of OS privileges – for example, a child process cannot directly read or write arbitrary files on the file system. Privileged access is provided through Web APIs, which are mediated by the parent B2G process. The parent ensures that, when a child process requests a privileged API, it has the necessary permission to perform this action.

Apps communicate only with the B2G core process, not with other processes or apps. Apps do not run independently of B2G, nor can apps open each other. The only “communication” between apps is indirect (for example, when a listener process detects an event generated by some other process), and is mediated through the B2G process.

Hardware só é acesso pelas APIs Web


Infra estrutura de segurança

The following figure shows the components of this security framework:

  • Credential Validation: Authentication of apps/users.

Gerenciamento de permissões e reforços



  • permissions associated with calling app (as specified in the manifest and based on the app type)
  • permissions required to execute the requested operation (Web API call)


Requisitando permissão do usuário


Processo seguro de atualização da App


  • update origin (verify the source location protocol:domain:port of the update and manifest)
  • file integrity (SHA-256 hash check)
  • code signature (certificate check against a trusted root)


Segurança do dispositivo (Hardware)


Segurança de dados


Código de bloqueio e expiração das telas


Sandboxed Data

As described earlier, apps are sandboxed at run time. This prevents apps from accessing data that belongs to other apps unless that data is explicitly shared, and the app has sufficient permissions to access it.

Serialized Data

Web apps do not have direct read and write access to the file system. Instead, all access to storage occurs only through Web APIs. Web APIs read from, and write to, storage via a an intermediary SQLite database. There is no direct I/O access. Each app has its own data store, which is serialized to disk by the database.

Data Destruction

When a user uninstalls an app, all of the data (cookies, localStorage, Indexeddb, and so on) associated with that application is deleted.


Mozilla is committed to protecting user privacy and user data according to its privacy principles (, which stem from the Mozilla Manifesto ( The Mozilla Firefox Privacy Policy describes how Mozilla collects and uses information about users of the Mozilla Firefox web browser, including what Firefox sends to websites, what Mozilla does to secure data, Mozilla data practices, and so on. For more information, see:


  • Do Not Track option
  • ability to disable Firefox browser cookies
  • ability to delete the Firefox OS browsing history


Arquivo Tamanho Data Anexado por
Platform Overview
25010 bytes 2013-03-04 18:37:54 ptheriault
Sandbox diagram
127469 bytes 2013-03-04 18:39:08 ptheriault
FirefoxOS Security Framework
133208 bytes 2013-03-04 18:39:22 ptheriault
Update Process
20031 bytes 2013-03-04 18:39:31 ptheriault

Document Tags and Contributors

Contributors to this page: morvanabonin, igorcosta
Last updated by: morvanabonin,