Replicant : appareils mobiles, logiciels libres et vie priv´ ee Paul Kocialkowski paulk@replicant.us Samedi 2 Juin 2016
Composants, probl´ ematiques et libert´ es
Composants et impl´ ementations Composants (num´ eriques) d’un appareil mobile : • Processeurs • Processeur principal • Processeurs auxiliaires de calcul • Processeur de communication • Contrˆ oleurs • P´ eriph´ eriques Impl´ ementations : • Design mat´ eriel • Logiciels
Situation actuelle, probl´ ematiques Situation et ´ evolutions : • Nombre de composants programm´ es • D´ elocalisation du traitement • Acc` es aux communications et aux donn´ ees Probl´ ematiques : • Confiance en la technologie • Contrˆ ole des appareils • Connaissance du fonctionnement, pr´ eservation Degr´ e de complexit´ e
Libert´ es fondamentales et impl´ ementations Garanties : libert´ es fondamentales 0. Utilisation pour tous les usages 1. ´ Etude et modification 2. Redistribution 3. Redistribution des modifications Impl´ ementations pour les appareils mobiles : • Design mat´ eriel libre • Logiciel libre
Appareils mobiles et libert´ e
Appareils mobiles et libert´ e Design mat´ eriel libre
Design mat´ eriel libre Technologies : • Circuits imprim´ es • Circuits int´ egr´ es Lib´ erer le mat´ eriel : • Modifications, code source et design • Formats et chaˆ ınes d’outils • Coˆ uts et dimensions • Infrastructure et confiance
Design mat´ eriel libre Situation actuelle: • Possible ` a certains niveaux • Exemples de designs de circuits int´ egr´ es libres : OpenRISC, OpenSPARC, LEON, LM32, lowRISC, etc • Exemples de designs de circuits imprim´ es libres : Arduino, Freeduino, USB armory, Novena, etc • Documentation mat´ erielle, confusion ”OpenHardware” • Rapport aux appareils mobiles Jamais aussi simple que: $ ./configure $ make # make install
Appareils mobiles et libert´ e Lib´ eration du logiciel et limitations
Lib´ eration du logiciel Lib´ eration du logiciel : • Positions des fabricants • Int´ erˆ et ´ economique • Droits d’auteur (blocs), brevets • Gauche d’auteur ( copyleft ) • Qualit´ e, maintenabilit´ e (r´ ef´ erence) • Travail d’ing´ enierie inverse • Temps et ressources n´ ecessaires • Possibilit´ e technique, limitations r´ ecurrentes • Int´ erˆ et ` a long terme et obsolescence
Limitations techniques ` a la lib´ eration du logiciel Limitations r´ ecurrentes : • Documentation du mat´ eriel, sch´ emas, etc • Connaissances techniques et outils adapt´ es • Contraintes l´ egales (ing´ enierie inverse) • Possibilit´ e de remplacer le logiciel : M´ emoires en lecture seule, interfaces secr` etes, acc` es ”externe” • Possibilit´ e d’ex´ ecuter son propre code : v´ erifications • Possibilit´ e de d´ eboguer le code Une fois le logiciel lib´ er´ e fonctionnel : • Facilit´ e d’installation pour l’utilisateur • Risque de rendre le tout inop´ erant
Logiciels sur diff´ erents composants Diff´ erents composants ex´ ecutant des logiciels : • Processeurs (principal, auxiliaires, communication) • Contrˆ oleurs • P´ eriph´ eriques Diff´ erents types de logiciels: • Micrologiciels • Logiciels de d´ emarrage • Environnements logiciels de confiance • Syst` emes d’exploitation
Appareils mobiles et libert´ e Micrologiciels
Micrologiciels et libert´ e Mat´ eriel associ´ e : • Processeurs auxiliaires • Contrˆ oleurs et p´ eriph´ eriques Prise en charge du logiciel libre : • Mat´ eriel sp´ ecifique (Arduino, BusPirate, FX2LA) • P´ eriph´ eriques Wi-Fi (ath9k htc, AR9170, OpenFWWF) Appareils mobiles : • Micrologiciels propri´ etaires , rarement v´ erifi´ es • Pre-install´ es ou charg´ es • Wi-Fi, bluetooth, GPS, multimedia, cam´ eras, . . . Pas de micrologiciels libres pour les appareils mobiles
Appareils mobiles et libert´ e Processeur de communication (modem)
Processeur de communication (modem) et libert´ e Processeur de communication (modem) : • Processeur puissant • Syst` eme d’exploitation complet • Interfaces R/F Logiciels pour le modem : • Syst` emes propri´ etaires (appareils modernes) • Remplacer le syst` eme, v´ erifications Prise en charge du logiciel libre : • Pile GSM libre : OsmocomBB • Limites : utilisation, prise en charge, certification ´ Enorme probl` eme pour la libert´ e et la vie priv´ ee/s´ ecurit´ e
Isolation du processeur de communication (modem) Enjeux de vie priv´ ee/s´ ecurit´ e : • Acc` es au mat´ eriel • Capacit´ e d’espionner l’utilisateur • Capacit´ e de compromettre le processeur principal? Isolation du modem : • Contournement, autres moyens d’espionner • V´ erification pratique et confiance : preuve de mauvaise situation, modem int´ egr´ e, sch´ emas, mat´ eriel libre • Probl` emes de libert´ es ? Solution pragmatique et jamais enti` erement fiable
Appareils mobiles et libert´ e Processeur principal
Logiciels sur le processeur principal Diff´ erentes couches logicielles : • Logiciels de d´ emarrage • Environnement logiciel de confiance • Syst` eme d’exploitation : • Noyau (Linux) • Couches d’abstraction mat´ erielle • Frameworks • Applications
Logiciels de d´ emarrage et libert´ e Logiciels de d´ emarrage : • Bootrom : privateur , m´ emoire non-r´ einscriptible (hardware) • V´ erifications de signatures , chargement en chaˆ ıne sp´ ecifique ` a la plateforme, variante • Logiciels de d´ emarrage libres : U-Boot, Coreboot • Exemples de bonnes plateformes : i.MX, Allwinner, OMAP (GP), Tegra (non-ODM), Rockchip • Quels appareils mobiles ? Logiciels de d´ emarrage libres pour quelques appareils mobiles
Environnement logiciel de confiance Besoin de logiciels de confiance : • Syst` eme d’exploitation imparfait • Op´ erations privil´ egi´ ees, acc` es mat´ eriel • Op´ erations sensibles (vie priv´ ee/s´ ecurit´ e) Impl´ ementation d’un environnement logiciel de confiance: • Coop´ eration avec la puce ( TrustZone ) • Mis en place rapidement (logiciel de d´ emarrage) • Mode privil´ egi´ e, Secure Monitor Call (SMC)
Environnement logiciel de confiance et libert´ e Cons´ equences pour la libert´ e : • Pas bon ou mauvais per-se • Privil` eges • Implications pour la vie priv´ ee/s´ ecurit´ e • Impl´ ementations libres • D´ ependance au logiciel de d´ emarrage • Impl´ ementations propri´ etaires et v´ erifi´ ees (appareils r´ ecents) • Bons exemples connus : USB armory avec i.MX53, Rockchip Souvent probl´ ematique pour les appareils r´ ecents mais pourrait respecter la libert´ e
Syst` eme d’exploitation et libert´ e Crucial pour la vie priv´ ee/s´ ecurit´ e : • Acc` es aux contrˆ oleurs et p´ eriph´ eriques • Acc` es aux donn´ ees de l’utilisateur • Acc` es aux communications de l’utilisateur • Samsung Galaxy back-door Au premier plan du logiciel libre : • Interaction directe • Compr´ ehension, modifications • Nouvelles versions, mises ` a jour
Syst` eme d’exploitation et libert´ e Couches des syst` emes d’exploitation : • Noyau : Linux, libre , versions modifi´ ees, drivers passoires • Couches d’abstraction mat´ erielle : privateur en majorit´ e • Frameworks : syst` emes plutˆ ot libres Android, FirefoxOS, Ubuntu Touch, OpenWebOS, etc • Applications : diverses libres D´ epˆ ots d’applications (F-Droid)
Couches d’abstraction mat´ erielle et libert´ e Aspects g´ en´ eralement probl´ ematiques : • Acc´ el´ eration graphique, GPU • GPS Selon les plateformes : • Cam´ eras (d´ ependance au GPU) • Audio Projets d´ edi´ es lib´ eration des aspects complexes (GPUs) : • Freedreno (GPUs Adreno) • Nouveau (GPUs nVidia) • Lima (GPUs Mali) Couches privatrices : n´ ecessit´ e, privil` eges, acc` es, savoir
Bilan et rem´ ediations possibles
Bilan, approches pragmatiques Apr` es une vue d’ensemble des appareils mobiles : • Situation imparfaite • Appareils peuvent ˆ etre compromis (donn´ ees, communications) • ´ Evaluation des enjeux, niveaux de confiance • Limites du possible ` a court terme • Besoin fort de d´ eveloppeurs Approches ` a court et moyen terme : • Lib´ erer le syst` eme du processeur principal • Pr´ ef´ erer de bonnes plateformes • Int´ erˆ et pour l’isolation du modem • Production d’appareils mobiles
Bilan et rem´ ediations possibles Syst` eme libre : Replicant
Replicant : syst` eme libre pour appareils mobiles Projet bas´ e sur des id´ ees et valeurs : • Syst` eme mobile enti` erement libre, bas´ e sur Android • Distribution et recommandation de logiciel libre exclusivement (GNU FSDG) • Accent sur la vie priv´ ee/s´ ecurit´ e • Fonctionnel et utilisable • Information et documentation
Recommend
More recommend