Month: May 2016

Tadaaa, Trusty débarque dans vos téléphones…

cadenas_pont_des_arts

TL;DR. Trusty débarque dans vos téléphones, c’est un framework d’execution sécurisé, c’est cool, vos données ou les opérations sensibles de vos appli mobiles en bénéficieront. Et je vous explique ici comment, avec des mots simples – pour les gens qui ne sont pas des geeks de la sécu.

Votre mobile et la sécurité (mise en jambe du sujet). Les téléphones mobiles accueillent de plus en plus de données sensibles, relatives à notre vie personnelle, sociale et professionnelle. Si l’on a longtemps considéré que les attaques les plus courantes et coûteuses se passaient sur des systèmes informatiques centralisés, tels que des serveurs ou des systèmes IT, force est de constater que l’attention se porte maintenant, aussi, sur les téléphones mobiles. Des applications chargées sur un téléphone peuvent embarquer du code silencieux et effectuer quelques opérations inappropriées sans l’accord de l’utilisateur. La plupart des applications officielles, disponibles sur les portails d’application populaires, subissent une vérification de code. Mais il se peut que le code d’une application malveillante exploite des vulnérabilités non-encore déclarées du téléphone. Bref. Ce renforcement des attaques logicielles sur les environnements embarqués, en plus grand nombre et plus pointues a forcé les concepteurs des environnements d’exécution, tels que Apple, Google, Microsoft à renforcer encore les outils pour protéger leurs produits des attaques logicielles. Ce sont ces outils que nous vous proposons de passer en revue dans cet article.

La sécurité intrinsèque des mobiles (pour ceux qui avaient un doute). Les environnements d’exécution comportent des mécanismes qui permettent de les protéger d’un chargement trop facile d’application malicieuse. Les applications officielles sont en général signées par le fournisseur de service et/ou par fabriquant de téléphone, cette signature inclut la vérification des permissions de l’application, à savoir les librairies auxquelles cette application pourra accéder pendant son exécution. Il arrive aussi fréquemment que avant même que l’OS du téléphone boote, l’OS vérifie la légitimité de chacun de ses constituants, driver de périphérique, middleware, librairie applicative. C’est le principe du secure boot.

Les fonctions de sécurité applicative. On trouve également dans les environnements iOS, android, WindowsPhone et BlackBerry OS des fonctions, mises à disposition des développeurs d’applications, qui leur permettent de renforcer leur application. On trouve ainsi dans la dernière version de android Marshmallow, des packages tels que android.hardware.fingerprint pour gérer les empreintes digitales, android.security.keystore pour générer des clés et effectuer des opérations cryptographiques. Il s’agit donc de mettre à disposition des développeurs des outils permettant de construire un modèle de sécurité plus robuste au sein même de leurs applications. On pourra donc rajouter une authentification de l’utilisateur par la vérification d’une empreinte digitale et la transmission de contenu entre le serveur et le client, chiffré ou signé pour en assurer la confidentialité ou l’intégrité (ou pourquoi pas les deux).

Le Trusted Execution Environement (nous y voilà). Les applications mobiles, intégrant les barrières de sécurité traditionnelles peuvent être soumises à des attaques de logiciel malveillants, résidant dans le téléphone, ou à proximité. Heureusement, l’art de sécuriser les environnements embarqués et ouverts, comme les téléphones, évolue et s’adapte. Ainsi, une nouvelle sorte de technologie a fait discrètement son apparition dans la planète mobile. Il s’agit du Trusted Execution Environment (environnement d’exécution de confiance, ou TEE). Penchons-nous quelques instants sur la définition de cette technologie. Quels en sont les mérites et les spécificités ? Le TEE est une technologie qui permet de garantir qu’un code d’application soit exécuté de manière sécurisé. Plus précisément, le TEE garantit que le code et les données d’une application ne soient pas modifiables ou lisibles par une application malveillante. Ainsi, l’intégrité et la confidentialité seront respectées pour une application, stockée dans le TEE. Cette technologie est définie par un organisme de normalisation nommé GlobalPlatform. Cette organisation regroupe des entreprises et industries provenant d’horizons différents, du fabriquant de composant pour téléphone, aux assembleurs de téléphone, en passant par les fournisseurs d’application bancaire ou les opérateurs téléphoniques. Les normes techniques du TEE décrivent donc les états possibles d’une application stockée dedans, le comportement en cas de détection de problème, les différentes librairies mises à disposition pour développer des applications. GlobalPlatform définit également des tests fonctionnels, permettant de démontrer une conformité fonctionnelle. Il existe également une méthodologie pour certifier la robustesse sécuritaire des produits embarquant cette technologie. Bref, le TEE est donc un objet technologique normé et certifiable.

Le TEE dans les téléphones, un mythe ? Non. Il a fait une discrète apparition dans les environnements de téléphone depuis quelques années, pour des fonctions internes au téléphone. Ainsi iOS mentionnait depuis quelques temps déjà une technologie appelée Secure Enclave, dont les vertus ressemblaient au TEE. Samsung indiquait que sa gamme de produit Knock dédiée dans un premier temps aux applications de production ou de gestion à distance de flotte de téléphone, reposait sur une technologie de type TEE. Récemment, c’est la plateforme android qui a clarifié l’usage de cette technologie. Ainsi, au début de l’année 2016, l’environnement android marshmallow met à disposition des développeurs un accès à la technologie TEE. Cette fonctionnalité est appelée Trusty TEE. Alors, en quoi consiste cette technologie ?

Trusty TEE, qu’est ce que c’est ? Tusty TEE, apparu dans Android 6.0  est une couche logicielle offrant les services d’un TEE. Trusty est composé de trois éléments : (1) un environnement d’exécution appelé le Trusty OS, (2) des librairies internes permettant d’accéder depuis le Trusty OS aux ressources linux, de manière sécurisée et de développer ainsi des applications sécurisées, et (3) une librairie permettant depuis l’environnement dit normal, d’accéder aux applications hébergées dans le Trusty OS. Il s’agit donc d’un environnement séparé du reste du téléphone, qui abritera des applications, dites sécurisées, pouvant être accédées par  des applications du monde normal, les traditionnelles applications android.

Quels sont les cas d’usage ? En théorie, un environnement d’exécution, privilégié, protégé contre les attaques logicielles comme l’est le TEE est très attractif pour protéger des applications sensibles. Plus exactement, puisque tout ne peut pas être exécuté dans un TEE, faute de ressource, on privilégiera d’utiliser le TEE pour l’exécution de fonctions sensibles. Par exemple, une comparaison de secret, une opération cryptographique comme la génération d’une signature, le stockage de secret, … La documentation d’android fournit une liste d’exemples pertinents, que sont les applications bancaires, les applications d’authentification, de DRM (oui, pardon..) …

Comment ça marche ? En pratique, pour le moment Trusty ne permet pas le développeur lambda de charger des applications sécurisées. Ceci reste le privilège du fabriquant de téléphone, au moment où il assemble les composants et intègre son code. Ainsi on pourra imaginer des applications permettant de gérer les empreintes digitales (capture, stockage et vérification) ou des applications bancaires pré-chargées. Pour utiliser des services sécurisés par l’environnement Trusty, il faut que chaque application soit déjà chargée dans l’environnement Trusty. Une fois chargée, l’application déclare les services qu’elle offre, grâce à une déclaration de nom (sous forme de domaine inversé, par exemple « com.mabanque.payment». Ce service est alors mis à disposition des applications dites normales, tournant sur l’environnement normal, dit non sécurisé.

Comment utiliser les services offerts dans Trusty (sinon, vous pouvez aussi lire la doc). Il existe une API Client et une API Serveur, qui permettent de mettre en relation une application sécurisée avec une application du monde dit non-sécurisé. A noter qu’il est également possible pour une application sécurisée de mettre ses services à disposition d’une autre application sécurisée. Voici en résumé comment tout cela se passe. Du côté de l’API Serveur, on déclare les ports grâce à port_create(), et on écoute l’arrivée d’événements grâce à une fonction wait(). Du côté de l’API Client, on ouvre une connexion avec un port connu par le biais de la méthode connect(), on se voit attribué un numéro de canal (dit channel). Une fois la connexion acceptée par l’application sécurisée offrant le fameux service, les applications peuvent échanger des messages en utilisant l’API Messenger pour transférer ses données, grâce aux fonctions send_msg() et get_msg().  Il n’existe pas de formatage particulier attendu pour le transfert de ces données puisque elles seront spécifiques aux applications. Néanmoins, au moment de l’ouverture du port et du chanel, on pourra spécifier si on souhaite une communication avec plusieurs buffers, et/ou de manière asynchrone.

En conclusion. La technologie permettant d’exécuter des morceaux de code de manière sécurisée, garantissant confidentialité et intégrité est en expansion. Preuve en est puisqu’elle se retrouve utilisable par des développeurs d’applications mobiles. On attend maintenant avec impatience les premiers services que les fabricants de téléphone mettront à disposition dans cet environnement Trusty.

Quelques références importantes. Oui.

Normes de TEE définies à GlobalPlatform : http://globalplatform.org/specificationsdevice.asp

Documentation Trusty https://source.android.com/security/trusty/

Note :

Picture by “Un savoisien à Paris” (http://savoieinparis.over-blog.com/article-cadenas-du-pont-des-arts-57653780.html)

 

The very story of a ‘No’…

No-red

I recently heard some friends, uncomfortable, blaming themselves for having accepted a task they did not want to do. It was not the first time, they knew they would regret it, but they said yes and – guess what – felt upset about it. The question that came to me, straight, was : what would be the path for a light and illuminated ‘no’  ? A ‘no’ you would be comfortable with and would wear with a smile. Here is my fist take.

What are the conscious reasons why you would say no, in working situation, when you have the choice.

First. You don’t like the task – or you don’t like the person you would have to work with.

Second. You like the proposal, but you have other things to do, more urgent.

Third. You are neutral but don’t get any benefit for doing it.

Whatever. First, second, third. You should not be ashamed for any of those reasons. Cause you have the right to follow your own agenda. Working on things and with people you like, having a personal objective, or wanting to get a benefit from your work. Money, reward, fame, repeat after me, you have the right to expect something from the time you are spending working. So if you have the choice, saying no in one of those scenario, is highly recommended.

Fourth case, where you would say no. Your first intuition yells ‘SAAAAY NOOOOOOO‘ – and you don’t know exactly why. Do you have to decide ‘no’ ? I’d say yes. I mean yes, you should decide that you won’t do that. Because you have to trust your intuition – unless you are in a bear mood and you perfectly know your judgement is altered, in which case, you should defer your decision. But in normal situation, your brain is able to analyze a situation in a heartbeat and give a diagnostic : shitty situation, beware danger, really don’t feel it, never ending story coming, unreachable goal…You usually feel it. Unless the request is coming from an unknown person, on an unknown topic for an unknown deliverable. In that case you should decide either that you are not the right person to do that stuff (which means say no), or you should request additional information, delay your answer, in order to have all those clear and known.

Now that you understand the reason(s) why you want to say no, between you, yourself and your brain, the next question is.

Do you have to tell the people that your final decision is no ?

I guess it depends. I am the kind of person saying no and explaining why. A one sentence answer, with enough details to make sure I am understood (and not hated), and keeping for myself the backstage stuff, the various pro and cons. But I recently had a cool conversation with a friend of mine (@valvert) and he suggested that sometimes, when you are in a specific dynamic, with limited resources and managing important challenges (yes, that guy is organizing e-commerce events and need to deploy a-lot-of-energy), in that special case, stopping a second to tell ‘no’ to someone has some disadvantages : you loose your time and energy, breaking your positive dynamic, and eventually, you loose a chance to have that person subscribing to your own project and vision. That is a story I can understand.

There may have other strategies and I am curious to know yours ! In the end, each of us has to find its own method, depending on its energy, communication skills, ability in conflict management and mood.

Why is it important to understand the very story of a “no” ? Because understanding your decision (I am not going to do that because that guy puts on knees anyone working with him) and identifying what will be your explicit answer (dropping an email saying that you are too busy to spend energy on that project) makes you stronger. Then, you are confident that your decision was not a caprice. You made an explicit choice that will be easier to defend, if required. In addition, if any of the decision making parameters change, you will be able to change your mind with no friction. All benefits for you !

An aside question came to me when I wrote that post : how do we learn in our society to say no ? As a french girl, going at school, I don’t remember when I was taught how to say no. I had some kind parents, taking time to explain me the life, the good, the bad, (well, their version of it, that I later amended). As an adult, I still have the feeling that saying no is an offense. Thus. The real open question to me stands in when are we able to construct our “no” skills. A next post may deal with that…

Note : picture from http://imgarcade.com/1/red-neon-signs-tumblr

La #blockchain expliquée simplement, avec monsieur patate

Cette semaine j’étais à #shake16 – oui, je sais, j’en ai beaucoup parlé sur twitter et sur ce blog. J’étais invitée par les organisateurs Hervé et Jacques pour exposer les enjeux de la blockchain. Un exercice difficile puisque la blockchain: on a tous envie d’en parler, on en mange tous les jours dans nos revues de presse et activité de veille technologique, mais on ne possède pas forcément les clés pour comprendre son potentiel.

J’ai donc fait l’exercice de présenter les principes de la blockchain de manière très simple et accessible. Et il semblerait que l’atelier ait été apprecié !

Je partage donc avec vous le support. Evidemment il vous manquera les explications live, et mon habile jeu de jambes et de mains devant le public, mais les principes sont là. C’est par ici –>  Blockchain for all

S’il vous fallait retenir une seule chose sur la blockchain, ce serait le fait que c’est une technologie qui offre un moyen de modéliser et suivre n’importe quel type de transaction entre deux personnes (ou robots). Et que l’ensemble de ces transactions constitue une chaine, publiée, transparente, distribuée, construite collaborativement.Et ça, c’est le début d’une révolution…

En espérant que ce support vous aidera à engager votre reflexion sur les possibles de la blockchain  🙂

# une chaine de bisous sur vous !

 

 

Speakeuse à #shake16 : une expérience !

TL;DR – cette semaine, j’ai passé deux jours à Aix en Provence à l’occasion de #shake16, et c’était cool.

shake16

La conférence Shake c’est un rendez-vous pour les professionnels du e-commerce. La formule est excellente : un mixte de conférences plénières avec les grands du business sur le web (la Poste, Price Minister, Facebook, nan, mais il y en a trop, regardez la liste); des ateliers pointus avec les pro; des stands pour les éditeurs, asso et gens créatifs; des  podium de startups; et des rendez-vous d’affaire (pas moins de 500, de quoi signer des deals ou nouer de belles relations).

Le thème du e-commerce est évidemment passionnant et propice à se décliner sous différents angles : la transformation numérique, la transformation du travail, le rôle de la technologie dans nos vies, les problèmes de logistique, de magasin physique, virtuel, de cross-canal et omni-client (ou l’inverse). Cette année l’accent était mis sur le Pourquoi (pourquoi est-on entrepreneur, e-commercant …) et la relation client, qui se doit au XXIème siècle, d’être bienveillante, bichonnée, respectueuse, pertinente. Bref, #shake16 était une belle promesse pour les visiteurs et les visiteuses.

Et cette année, j’étais speakeuse. Ouaip, la classe (merci à Hervé Bourdon et Jacques Froissant de m’avoir fait confiance). Mais être speakeuse à Shake cette annnée, c’était pas *que* la classe. C’était aussi une expérience toute particulière. Pourquoi ? Parceque l’esprit de Shake (entre autres choses) et de donner et partager, de rouler sur l’énergie de la communauté. Et la team de Shake a fait le choix de traiter les personnes présentes sur les stands (help sémantique, des standistes ?) et les speakers comme des *utilisateurs* de l’événément. Nous étions donc des accompagnés, avec bienveillance. Et ça a fonctionné du tonnerre.

Pourquoi c’était si spécial ? Parceque les speakers et les standistes, en plus des petit fours et de la salle de repos, avaient accès à un boostcamp d’une demi-journée, organisée par Marie Aurélie, avec l’aide de gentils accompagnateurs avec un programme très enrichissant. Voyez-donc.

Dans un premier temps, assemblés par groupe de 6, nous avons eu la chance de nous détendre avec un escape game taillé sur mesure (le code pour sortir, c’etait 176, sachez-le).

Ensuite nous avons passé du temps avec des professionnels de la relation, de l’entreprise et du corps. L’équipe 5, la mienne, encadrée par la fantastique Delphine Foviaux, a suivi le programme suivant  :

  • un atelier sur le marketing emotionnel avec Patrice Laubignat. Absolument éclairant pour revisiter sa relation à l’autre, le regard que l’on porte sur soi et sur ses interlocuteurs, pour enterrer les peurs qui freinent les échanges libres et fructueux.
  •  une dose d’entreprise libéré avec Nicolas Trossat. Ici, on apprenait les clés pour penser autrement le travail, avec des notions de  responsabilité collective, de transparence et de confiance. Un shoot d’utopie qui permettait de repenser sa relation au travail.
  • et pour finir, avec Daria Kucevalova, nous avons chanté (mal, mais on s’en foutait, c’était harmonieux). On a joué de la voix et du corps. Il s’agissait donc d’un exercice, ancré dans le présent et le sol, et qui permettait indéniablement de libérer quelques tensions.

A la fin de la journée de préparation, nous étions détendus, un peu soudés, un peu amis, et prêts à donner le meilleur de nous même sur les stands et la scène. Voilà, ça n’était pas que de l’amusement. Shake nous a donné les moyens d’être plus à l’aise et meilleur, de tirer profit de notre présence et de participer à l’énergie (déjà impressionnante) de cet événement. C’était sympa et généreux, suffisament rare pour le soulignere, et le faire savoir au reste du monde.

D’année en année, Shake grandit, et on a grande hâte d’assister à la prochaine édition #shake17.

Note : d’autres que moi disent que shake16 était fantastique, visitez donc

  • le blog du coach Will Roy là,
  • ou celui de biz200 pour un rapport business ici ,
  • ou encore chez Patrice Laubignat pour une vue émotionnelle là ,
  • chez Annie Lichtner et My Digital Week pour un point de vu pro du e-commerce
  • ou enfin sur le blog de Shake ou Marie Aurélie partage sa vision du boostcamp
  • du côté de chez Henri Kaufman pour grappiller les bonnes idées en deux épisodes : un, deux
  • la vision de Pierre, qui était aussi dans l’équipe 5, de chez Web et Solution, sponsor de l’événement ici
  • et l’angle de Mélanie Pin, de Primasee, en charge de la mise en scène et des vidéo
  • Marie Aurélie, encore, mais cette fois avec sa casquette de psy, qui explore la question du pourquoi ici
  • le tour photo et impression rapide de Seb
  • et pour vous donner envie d’y aller l’année prochaine, la vidéo sumup de primasee
  • ou encore la story de #shake par ses deux fondateurs

 

W3C Advisory Board : job description !

ab job goup

W3C Advisory Board. What is the job, in the end ?
Well, being an advisor is about advising. The structure of W3C is a “benevolent” dictatorship. The director, Tim Berners-Lee takes any final decision,  taking advice from W3C team (73 people including 13 managers, 1 CEO) and from the W3C AB. It happens that the CEO, Jeff Jaffe, is also chairing the W3C AB, which makes the W3C AB advice landing in the right place.

In the last two years. As an elected W3C AB member, I had the pleasure to work in team on a large range of exciting topics.
– Organizing the conversation with members during the membership meeting, by setting up agenda, making sure important questions are echoed in the AB conversations,
– Helping with formal objection (with more then 400 members, unanimity is scarce) on accessibility strategy, content protection (aka EME, aka smells like DRM but is not DRM), creation of new group on hardware security…
– Process improvement, while the work is handled publicly by the W3C Process CG, AB supports it,
– HTML5 next steps, new features and WHATWG relations,
– New election voting rules with transferable vote (instead of voting for 5 people, you rank them, from your favorite to the less appealing and the magic helps to better balance the bias of champions, see @chaals from Yandex, for long beer conversations about it),
– Improving specification maintenance and good practice for creating new work in w3c (make sure W3C resources are well used for appropriate topics),
– Thinking about merging International Digital Publishing Forum and W3C for the sake of the EPUB format (see today’s announcement),
– Improving security W3C strategy, by supporting a clear security roadmap, with high visibility,
– Chair and editors community maintenance, making sure they get trained and heard, benefiting from modern tooling (aka Github for all, when possible),
– Synchronization with the W3C Technical Architecture Group (such fruitful conversations with the real architects of the web).

People knowing guessed that I put some special efforts on the security, consistency and community aspects. I think that the team progressed well and won, during the two years, ears from the W3C director, and positive feedback from the membership. I enjoyed it. And I believe I have influenced in a fair and objective way AB discussions, helping keeping good spirit and direction in the AB. That is the reason why I am jumping again in this W3C AB election. To get a seat and help the web 🙂

Another W3C Advisory Board mandate ? yes, sure !

IMG_20150606_165130

Here we are. After 2 years enjoying W3C Advisory Board discussions, it is now time to renew or not my seat. And I have decided to follow up on that experience. Dealing with such fantastic topics as W3C governance, priority and conflict resolution was a super experience. I enjoyed sharing with other team members, suggesting directions and finding what would be best for members and the open web platform. And I think we did well with the AB members in the last years…

The ballot is open, there are 6 candidates, for 5 seats. And votes are made by each of the 410 members of W3. The other candidates for that election are Tantek Çelik (Mozilla), Daniel Glazman (Disruptive Innovations), Jay  Kishigami (NTT), David Singer (Apple), Léonie Watson (The Paciello Group). Nominations can be read here https://www.w3.org/2016/05/02-ab-nominations

Oh ! And if you support my presence in the W3C Advisory Board, don’t hesitate to tell your W3C representative !