Comment fonctionne le système Firefox OS ?
Une présentation de Stéphanie Ouillon, ingénieur sécurité pour Firefox OS, sur la sécurité du système d'exploitation mobile Firefox OS, nous en apprend un peu plus sur le fonctionnement de ce système.
Firefox OS s'appuie sur des technologies Web natives, comme notamment HTLM, CSS et JavaScript. Par conséquent, Firefox OS utilise le même moteur de rendu que le navigateur Firefox, à savoir Gecko. Pour l'accès à la carte SD, à la géolocalisation, à la caméra... Des APIs web en JavaScript sont utilisées.
Firefox OS repose sur différents éléments, un périphérique mobile bien entendu, mais aussi Gaia, qui est en charge de l'interface utilisateur entièrement écrite en HTML/CSS/JS, des applications utilisateurs et système (appels, SMS, e-mails).
La présentation rappelle également que l'accès à une fonctionnalité matérielle passe toujours par une API, cet appel d'API étant autorisé ou non. L'autorisation s'effectue soit implicitement, ou par l'utilisateur, mais dépend aussi de si l'application est installée ou non.
Comme je le disais précédemment, Gecko est le moteur de rendu utilisé par Firefox OS (mais aussi Firefox et Thunderbird). Il prend le contenu au format HTML ou XML et le formate en appliquant les feuilles de styles CSS, et bien sûr au final il affiche ce contenu à l'écran.
L’élément Gonk est au plus près du périphérique mobile puisqu'il représente la couche bas niveau. Il se base sur un noyau Linux simplifié et embarque de nombreuses librairies (OEM, Android, Open Source...).
Différents points de sécurité sont abordés, notamment l'exécution dans une sandbox de chaque application, les mises à jour système...
Les mises à jour peuvent être déployées par le Mozilla System Update Utility (MSU) qui est le même processus de déploiement que pour Firefox. Pour les mises à jour des drivers, firmware, sécurité, ou encore de Gaia et Gecko, il s'agit de mise à jour système OTA (Over The Air).
L'ouverture de chaque application en mode sandbox implique que les données soient stockées par application (cookie, données, indexedDB...), et qu'une application ne peut pas ouvrir une autre application. L'avantage c'est que ce mode de fonctionne évite les attaques inter-apps, de la stabilité et que les données soient privées. A l'inverse, cela nécessite de dupliquer certaines données et de se reconnecter sur un même service plusieurs fois.
Pour en apprendre encore plus sur Firefox OS : Accès à la présentation (cliquez sur une slide et naviguez avec les flèches du clavier)