EESTEL participe au séminaire sur la « sécurisation des systèmes électroniques »

EESTEL participe au séminaire sur la « sécurisation des systèmes électroniques »

EESTEL participe au séminaire sur la « sécurisation des systèmes électroniques »

L’association EESTEL s’associe au séminaire sur la « sécurisation des systèmes électroniques » qui aura lieu le 20 juin prochain au LAB’O à Orléans. Cette rencontre gratuite et ouverte à tous est organisée par le Cresitt (Centre Régional en Electronique et Systèmes pour l’Innovation par les Transferts de Technologie dans l’industrie). En partenariat avec Cap’Tronic et le pôle S2E2, ce séminaire a pour objet de présenter un ensemble de règles de bonnes pratiques ainsi que des méthodes et des techniques qui peuvent être intégrées dans les processus de développement.

L’association EESTEL est particulièrement impliquée dans la sécurisation numérique. La participation à cet évènement est l’occasion pour ses membres de se tenir informés des dernières innovations mais également de pouvoir entendre des témoignages précieux. Notamment ceux de laboratoires ou d’entreprises spécialisés dans le développement de produits ou de logiciels sécurisés.

1 – Qu’est-ce que le Cresitt ?

Le Centre Régional en Electronique et Systèmes pour l’Innovation par les Transferts de Technologie dans l’industrie est une association labellisée Centre de Ressources Techniques (CRT). Elle a pour objectif d’épauler les industriels et laboratoires dans leurs développements en électronique embarquée communicante et dans le domaine de l’instrumentation.

Le Cresitt endosse un triple rôle :

W

Faire de la veille ciblée et spécialisée : S’informer des nouvelles technologies développées de par le monde entier.

W

Partager avec les industriels : Grâce à des séminaires, des ateliers, des formations, des conseils, etc.

W

Faire du transfert de technologie : En mobilisant les industriels pour qu’ils intègrent des nouvelles technologies issues de la recherche privée ou publique.

2 – La sécurisation des systèmes électroniques

2.1 – L’internet des objets

La sécurité doit être au coeur du développement de ces nouveaux objets dès leur phase de conception. Elle doit être prise en compte le plus tôt possible afin que les produits respectent les règles de sécurité demandées par les clients. Concernant l’électronique connectée, les consommateurs sont de plus en plus soucieux de la préservation et du respect de leur vie privée ou de leurs données personnelles.

2.2 – Le développement d’applications professionnelles spécifiques

Dès les phases de conception et de réflexion sur l’architecture du système applicatif, il est important que les normes de sécurité soient connues et étudiées afin de pouvoir correctement les intégrer. Il est, en effet, toujours très difficile d’intervenir a posteriori. Cela peut nécessiter plus de temps et plus de ressources que d’en tenir compte dès le départ.

2.3 – L’industrie du futur

La cybersécurité est un enjeu majeur pour les systèmes interconnectés. Cette connectivité grandissante entre les machines qui vise à améliorer la production est un point sensible à protéger.

3 – La programme du séminaire

13H30 : Accueil

14H00 :

Introduction “Panorama des enjeux et règles de bonnes pratiques”, par Samuel Rouxel & Elisabeth Patouillard, CRT CRESITT (45)

14H30 :

“Conception de logiciel sécurisé”, par Emmanuel Poitier, ENMAN (41)

14H55 :

“Secure element pour stocker les clés de cryptage”, par David Balland, LEDGER (18)

15H20 :

Pause-café / Échanges / Stands

16H05 :

“Systèmes sécurisés et biométrie”, par Hervé Mongin, GL-Industrie (45)

16H30 :

“Présentation des laboratoires régionaux / Sécurisation des données remontées par des capteurs à l’aide de la blockchain”, par Jérémy Briffaut, INSA Bourges – LIFO/SDS (18)

17H00 :

Nouvelles techniques de cryptographie, CEA-TECH (91)

17H30 :

Échanges / Stands / Pot de clôture

Eestel invite tous ses membres à venir participer à ce séminaire entièrement gratuit. Pour des raisons évidentes d’organisation, il est toutefois nécessaire de s’inscrire via le site http://www.cresitt.com/

Nous serons heureux de vous recevoir sur notre stand pendant les moments de pauses. A très bientôt.

The 2018 Mobile World Congress in hindsight

The 2018 Mobile World Congress in hindsight

The 2018 Mobile World Congress in hindsigh

The Mobile World Congress, largest and most important event for the mobile industry, was held a few weeks ago in Barcelona. The event focused on many subject matters and their implications for the mobile communications industry and society at large.

An underlying theme was the Internet of Things (IoT) as it brings together connected objects and technology. In its infancy, the IoT has been slow in developing: the forecasted billions and even trillions of devices are not yet happening. At the same time, everyone considers there is a need for better security when deploying the IoT and every stakeholder pretends they have the best solution for IoT security. The various solutions put forward address different stages in the IoT value chain such as data extraction, communication standards (LoRa, NB-IoT, Sigfox, …), data encryption, etc. Many examples of progress were examined but consensus on a standardized way forward has yet to be reached.

As the deployment of 4G is well advanced, 5G is in the mind of the mobile communication industry. Its implementation raises many questions around user identification technology: the SIM has been the standard for decades but with the advent of 5G, the eSIM (embedded SIM) or iSIM (internet SIM) could become the new norm. If we take a closer look at the eSIM and shift our focus to what is behind its components, we realize that its added value lays in its management opportunities. For instance, the eSIM orchestration technology requires the management of the entire life cycle of the eSIM:

provisioning to activation, subscription management… Also, a new subscription management discovery service solutions enable end users to activate their devices without having first to choose their operator. The eSIM makes things a lot simpler for the end users while providing companies with the option to offer profitable subscription solutions to their clients.

The advent of Mobile Money was also discussed as its financial and client-retention potential wages a war between Mobile Network Operators (MNOs) and Over-the-Top (OTT) players:

The advent of Mobile Money was also discussed as its financial and client-retention potential wages a war between Mobile Network Operators (MNOs) and Over-the-Top (OTT) players: https://www.smartinsights.net/single-post/2018/02/22/Mobile-Money-OTTs-vs-MNOs.

Another topic addressed was Augmented Reality, its application in our everyday life and its need for data security: https://www.smartinsights.net/single-post/2018/02/26/Augmented-reality-enterprise-or-consumer-technology

Thierry Spanjaard, Consultant, Intelling

Comprendre le système bitcoin : la crypto-monnaie décryptée

Comprendre le système bitcoin : la crypto-monnaie décryptée

Comprendre le système bitcoin : la crypto-monnaie décryptée

Depuis la crise des subprimes en 2009, qui a mis à mal la confiance des usagers dans les monnaies classiques, un certain nombre de nouvelles initiatives sont nées. Parmi elles, l’invention et le développement des crypto-monnaies. D’abord marginales et élitistes, elles se sont peu à peu imposées comme de nouvelles variables sur les marchés financiers mondiaux. Non régies par des autorités nationales ou internationales, elles sont également sources de questionnements voire d’inquiétudes pour les investisseurs. En virtualisant la monnaie (plus d’émission de pièces ou de billets), elles ont révolutionné le monde des transactions monétaires. Impossible aujourd’hui de passer à côté du bitcoin pour ne parler que de la plus célèbre.

L’association EESTEL s’est penchée sur ces nouveaux processus de paiements numériques. Grâce à nos experts en crypto-monnaies nous apportons un éclairage sur les principes d’émission et de vérification de ces monnaies. Notre approche assez pointue du codage informatique pratiqué dans le système bitcoin s’adresse principalement à des spécialistes et des initiés en transactions numériques. Néanmoins, elle aborde également les aspects économiques ou démocratiques de ces nouveaux systèmes monétaires virtuels.

1 – Historique des crypto-monnaies

Les crypto-monnaies ont débuté en 2009 avec l’apparition du système bitcoin.

D’autres (Ethereum, etc.) ont suivi, basées sur des principes voisins, avec des succès variables, et une importance financière bien moindre. Fin 2017 la valorisation des 14 millions de bitcoins (BTC) émis représente 163,31 milliards d’euros (cours de fin 2017, 1 BTC = 11 665€). On s’intéresse ci-dessous principalement à bitcoin.

Cours au 19/03/2018 : 1 BTC = 6 011,79€
(* ref: https://courscryptomonnaies.com/bitcoin)

2 – Monnaie indépendante – Pas d’autorité de contrôle

Afin de garantir la confiance, les monnaies classiques sont régies par une autorité qui fixe les règles, en surveille l’application, et émet la monnaie. Les crypto-monnaies s’affranchissent du besoin d’en avoir une. Pour bitcoin, la confiance est « basée sur un consensus » autour des règles de fonctionnement fixées par la « bitcoin Foundation », une association basée aux Etats-Unis dont la mission est de « standardiser, protéger et promouvoir l’utilisation de la crypto-monnaie bitcoin pour le bénéfice de tous les utilisateurs dans le monde. »

2.1 – Implications et conséquences

Cette absence d’autorité a des implications fortes :

W
Toutes les données générées par ce fonctionnement sont publiques et vérifiables (respect des règles) par tous les participants,
W
Un Grand Livre (« ledger » en anglais) appelé aussi « blockchain » est utilisé pour consigner toutes les transactions.

2.2 – Techniques de vérification

2.2.1 – Le Hashing (« empreinte digitale » en Français), avec le standard ISO SHA1

Notons qu’ici le bénéficiaire d’un paiement est identifié simplement par sa clé publique. Pour profiter de ce paiement, donc payer, il doit prouver qu’il est bien en possession de la clé secrète correspondante. L’acte de paiement est donc sécurisé par la signature du payeur sur des données telles que la clé publique du payé, le montant, etc. De plus, de façon à renforcer l’anonymat, une nouvelle bi-clé peut être générée par le payé avant chaque paiement qu’il reçoit. Donc rien à voir avec les techniques usuelles où un utilisateur a pour une ou plusieurs application(s) donnée(s) une seule bi-clé, avec certificats X509 et autorités de certification, etc. Notons que bitcoin offre ainsi un bon niveau d’anonymat, quoique imparfait, du fait des possibilités de traçage.

2.2.3 – Le P2P

Pour diffuser un message à tous les utilisateurs d’un réseau, bitcoin utilise le « bouche à oreille viral » au lieu d’un système d’annuaire, qui nécessiterait une autorité, ce qui est exclu par les principes des crypto-monnaies !
Remarques : Rappelons qu’en sécurité informatique, ce concept de signature date d’au moins 40 ans, notamment avec l’invention de l’algorithme RSA, utilisé universellement. Ce concept suit un peu le principe des signatures manuscrites avec une capacité de contrefaçon difficile et une vérification aisée.

En informatique, on parle de bi-clé de signature :

W
l’une secrète et ne devant être divulguée à personne sert à calculer la signature d’un message ou d’un bloc de données quelconque.
W
l’autre publique, pouvant être communiquée à tout le monde, permet de vérifier la signature du message ou bloc.
Notons que toutes ces techniques sont banales en 2017, et s’appuient sur des fonctions offertes par les OS de tous les objets informatiques actuels : PCs, smartphones et tablettes.

3 – La blockchain

3.1 – Grands principes de la blockchain

Dans la blockchain apparaissent donc des transactions (en jaune sur le schéma ci-dessous). Chaque transaction affecte des gains à des dépenses et peut comporter plus de deux utilisateurs. La figure ci-dessous présente un extrait de la blockchain avec des blocs (en bleu sur le schéma) i, j, k.. etc., i

La blockchain est donc un fichier partagé, accessible en lecture à quiconque.

3.2 – Ecriture dans la blockchain

Pour ce qui est de l’écriture dans ce fichier, les points critiques sont les suivants :

  1. Comment valider les nouvelles transactions (et empêcher les doubles dépenses : par exemple empêcher A d’utiliser deux fois le gain provenant de Y de 3 unités) ?
  2. Comment garantir l’intégrité de ce qui a déjà été validé ? (Y pourrait par exemple effacer YA3 pour faire « oublier » sa dépense)
  3. Comment répartir les rôles de façon à ce que n’apparaisse pas une autorité de fait, se chargeant de toutes les vérifications ?
  4. Comment enfin, dans l’hypothèse où la majorité des participants sont honnêtes, parvenir au résultat que le système est sûr et donc que toute malversation est détectée et inopérante ?

Les réponses à ces questions se trouvent dans le processus de contrôle du nouveau bloc prolongeant la blockchain, et de « minage » permettant de constituer un « proof of work » , sorte de sceau démontrant que le bloc a été dûment vérifié et joint à la blockchain, et garantissant son intégrité.

3.3 – Processus de vérification

Les processus de vérification du nouveau bloc (notamment des transactions qu’il contient : cf. question 1) et de scellement suivent donc les règles précises spécifiées par bitcoin. Ils sont réalisables par tous les nœuds du réseau, mais nécessitent une grande puissance de calcul.

3.3.1 – Rémunération et émission

Le premier nœud qui termine le processus ajoute un nouveau bloc à la chaîne et est rémunéré. Actuellement cette rémunération est de 12,5 BTC, et ce procédé constitue le mécanisme d’émission de monnaie BTC. Chaque bloc contient donc une transaction initiale affectant un montant (actuellement 12,5 BTC) à la clé publique du nœud gagnant. Pour des raisons de concurrence possible entre deux chaînes, explicitées ci-dessous, cette transaction initiale n’est utilisable que 100 blocs plus loin.

3.3.2 – Puissance de calcul

Le nombre de BTC créés est divisé par deux tous les quatre ans, ce qui aboutit à un nombre total de BTC émis d’environ 21 millions (série géométrique de raison ½). Toutes les dix minutes, un nouveau bloc est ajouté. Si on fait l’hypothèse qu’il y a plus de puissance de calcul honnête que malhonnête (cf. question 4), le problème d’apparition de versions concurrentes de la blockchain ne peut apparaître de façon durable.

3.3.3 – Principe de la plus longue chaîne

En effet, il est hautement improbable que deux chaînes avancent parallèlement : l’une dépasserait forcément l’autre à un moment donné, du fait de l’imprévisibilité du temps de calcul du sceau, et >deviendrait gagnante car la chaîne la plus longue construite par les nœuds honnêtes est toujours celle qui est intéressante pour les nœuds honnêtes, en termes financiers : elle leur donne une meilleure espérance de rémunération pour les blocs à venir !

3.3.4 – Malversation rendue inopérante

Si une malversation apparaît dans l’une des chaînes, par exemple une double dépense, du fait d’une vérification insuffisante d’un bloc, la version honnête de la chaîne l’emporterait car les nœuds honnêtes la font progresser plus vite puisqu’ils ont plus de puissance de calcul. Enfin, modifier un bloc ancien dans la chaîne (pour enlever par exemple une transaction) impose de recalculer tous les sceaux à partir du bloc modifié, ce qui handicape les mineurs malhonnêtes qui, par hypothèse, mobilisent moins de la moitié de la puissance de calcul, et ne peuvent donc créer la chaîne la plus longue.

3.3.5 – Sceau et minage

Ce seau est en fait simplement le hash d’un ensemble de données : hash du bloc précédent, hash du bloc courant et « nonce ». Ce nonce est un nombre choisi de façon à ce que le sceau ait n bits de poids fort à zéro. Les propriétés de la fonction de hashing font que ces n bits ont un caractère aléatoire, et la probabilité de tomber sur n zéros et donc 1/2n. En d’autres termes, la recherche du nonce nécessite de l’ordre de 2n calculs. Actuellement n vaut 70, et rappelons que 270 ~ 1021 donc mille milliards de milliards de calculs à faire ! On voit que le terme « minage » convient bien à ce processus hautement répétitif ! Le nombre de bits de ce nonce est d’ailleurs adapté automatiquement tous les 100 blocs de façon à maintenir le rythme d’un nouveau bloc toutes les 10 minutes.

Ces processus répondent à la question 2 (intégrité des blocs par le calcul du hash) et 3 (répartition des rôles : imprévisibilité du temps de calcul du sceau) et garantissent un système sûr (principe de la plus longue chaîne). Enfin notons que « respect des règles » veut dire ici simplement que les logiciels suivent les règles de constitution et de vérification des blocs, et que sinon, du fait de ce qui est indiqué plus haut, leurs actions sont rendues inopérantes.

4 – Le phénomène bitcoin

4.1 – Quelques chiffres

W

10 millions d’utilisateurs, c’est-à-dire de personnes ayant téléchargé le logiciel permettant de réaliser des transactions (wallet) sur leur PC ou smartphone,

W

5000 nœuds au sens défini plus haut,

W
Le BTC est subdivisé en 108 unités, appelées « satoshi » ; 1 bitcoin = 100 000 000 satoshis,
W
Les blocs font actuellement 1 Mo, et contiennent en moyenne 1800 transactions, ce qui, avec un bloc toutes les 10 minutes, donne un débit de 3 transactions/s (alors que Visa traite 2000 transactions/s !)
W
Commissions : dans une transaction, si les dépenses sont supérieures au gain, la différence correspond à une commission pour le nœud qui gagne le minage du bloc ; elle est rajoutée par le nœud qui mine le bloc aux 12,5 BTC de la transaction initiale,
W
Pour une prise en compte rapide d’une transaction (donc sa validation puisqu’elle apparaît dans un bloc scellé) une commission non nulle est nécessaire surtout avec un trafic qui est de plus en plus important dans bitcoin.

4.2 – Les logiciels bitcoin ou wallets

Le logiciel « wallet » émis par un « broker » se charge facilement par exemple sur les « play-stores » Apple ou Google, et met en relation l’utilisateur avec un serveur « broker » . Coinbase est le plus connu. Ces logiciels offrent une interface simple à l’utilisateur pour acheter des BTC à partir d’un compte bancaire ou en vendre et recevoir la contrepartie sur le compte bancaire. Ils permettent évidemment de connaître la quantité de BTC détenus et l’historique des transactions. Ils offrent également la possibilité de payer avec des BTC en physique (chez un commerçant) ou en virtuel (sur Internet) : la clé publique du payé est physiquement communiquée par code barre 2D. Notons qu’il existe deux catégories de wallets :

4.2.1 – Ceux qui laissent toute la gestion et la mémorisation des BTC au broker

La liaison utilisateur-broker est une simple et classique relation de commerce électronique qui associe l’utilisateur à un compte. L’utilisation de plusieurs wallets sur différents équipements (par ex. smartphone et PC) associés au même compte ne pose pas de problème. Mais cette solution repose totalement sur la confiance dans le broker, et on a vu récemment en Corée du Sud des attaques contre un broker, Youbit, qui ont permis de voler les BTC (donc les bi-clés) de certains comptes et ont fait chuter le cours du BTC de 30% tout en faisant perdre aux utilisateurs de cette plateforme une grande partie de leurs avoirs !

4.2.2 – Ceux qui laissent à l’utilisateur l’accès à la mécanique bitcoin
et la mémorisation des BTC

A charge à cet utilisateur d’assurer sa sécurité lui-même : faire des sauvegardes et gérer de façon correcte la protection de ses PCs ou smartphones ! La perte ou le vol des bi-clés, comme la perte de pièces ou billets par le détenteur, ne peut être récupérée ! Il convient donc d’utiliser des sauvegardes sûres et multiples ! L’utilisation de plusieurs wallets sur différents équipements est possible à condition d’avoir un moyen de synchronisation pour, par exemple, ne pas utiliser un avoir déjà dépensé avec le wallet 1 de nouveau sur le wallet 2, ce qui reviendrait à une double dépense et serait de toute façon rejeté.

4.3 – L’impact écologique

La puissance de calcul dans le réseau actuel bitcoin, basée sur les processeurs de minage les plus économes en kilowatts, nécessite le calcul d’environ 1021 sceaux (donc 2 hashs) toutes les 10 minutes, ce qui aboutit à 660 mégawatts, donc la moitié d’une tranche de réacteur nucléaire !

4.4 – L’impact démocratique

La question 4 ci-dessus est importante : en fait elle nécessite de faire l’hypothèse supplémentaire que la puissance de calcul est répartie à peu près uniformément entre de nombreux nœuds. Ce qui n’est pas vraiment le cas aujourd’hui, où apparaissent de grands centres de calculs dédiés au minage, et composés de milliers de processeurs travaillant en parallèle. N’y a-t-il pas un risque de mainmise éloignant le système de ces principes démocratiques ?

4.5 – Indépendance bancaire

Les arbres ne montent pas au ciel : les financiers utilisent souvent cette expression pour dire que la spéculation a toujours des limites. Fin 2016, le bitcoin valait 855€ , fin 2017 : 11 665€, et des variations au jour le jour de +/-30% ne sont pas rares. Les institutions bancaires aiment à critiquer le bitcoin, qui pour elles, est une horreur financière basée sur du vent. Il faut sans doute nuancer ces propos corporatistes par le fait que dans une économie ouverte et mondialisée, il y aura toujours des acteurs cherchant à protéger, cacher ou optimiser leurs avoirs financiers, et donc une demande importante.

 De plus, les partisans du bitcoin, apparu lors de la crise des subprimes en 2008, vantent son indépendance vis-à-vis des instabilités financières des systèmes traditionnels. Avec la limitation du nombre de bitcoins à 21 millions, la rareté de la monnaie produite incitera le cours à monter mécaniquement, sauf crise majeure (apparition d’une faiblesse cryptographique), ou problème majeur (broker qui se fait hacker) ou accord international d’interdiction du bitcoin, peu probable !

5 – Les autres processus de calculs

4.1 – Quelques chiffres

Ils diffèrent principalement sur le processus de calcul du « proof of work »et de rémunération des nœuds-mineurs, donc de création de la monnaie. Avec le « proof of stake » , le valideur de blocs est celui qui possède le plus de monnaie, avec des systèmes de signature majoritaires. Les « proof of activity » ,
« proof of burn » , « proof of capacity » sont d’autres techniques. Beaucoup de travaux de recherche académique se font sur ce thème, qui est la pierre angulaire de toute crypto-monnaie.

En conclusion, pour être reconnue et viable, une crypto-monnaie comme le bitcoin doit être considérée comme telle par l’ensemble des participants à son système monétaire. Il faut donc qu’elle soit rare et infalsifiable. Les processus de vérification du système bitcoin que nous avons évoqués garantissent l’absence de doubles dépenses. De même, la limite à 21 millions de bitcoin assure la stabilité de la monnaie et sa reconnaissance sur les marchés. C’est une véritable révolution en marche car le bitcoin est aux transactions financières ce que le courriel est au courrier papier. Même si certains restent inquiets ou sceptiques face à ces monnaies dématérialisées, d’autres ont su trouver dans ce système monétaire virtuel de belles perspectives d’avenir. Chez EESTEL, nous avons des experts en crypto-monnaies prêts à vous accompagner dans votre démarche d’information ou d’accession à un tel système.

A propos de l’auteur : Jean-Claude PAILLES – Ancien consultant chez Orange R&D – Enseignant à l’ENSI Caen, à Supelec Rennes et consultant pour SFR – Expert en sécurité des smartphones.

Sécurité informatique : les attaques MELTDOWN et SPECTRE

Sécurité informatique : les attaques MELTDOWN et SPECTRE

Sécurité informatique : les attaques MELTDOWN et SPECTRE

Le monde numérique est en ébullition depuis quelques semaines suite aux révélations faites au sujet de failles concernant certains processeurs informatiques. Elles sont d’autant plus préoccupantes qu’elles touchent des matériels en service depuis de nombreuses années et des plus répandus sur la planète. Surnommées Meltdown et Spectre, elles sont une porte ouverte à de réelles menaces ayant potentiellement un impact en termes de vol de données mais surtout de sécurité pendant les transactions numériques.

Grâce à l’expertise globale de ses membres, l’association EESTEL possède une vision globale tant sur des aspects hardware que software. Légitime et attentive à des sujets aussi sensibles, l’association apporte aujourd’hui son un éclairage sur le fonctionnement de ces failles et de leurs potentielles dangerosités.

I – Des matériels faillibles sous la menace d’attaques virales

a – Une faille dans le hardware de certains processeurs

Tout d’abord, notons qu’il ne s’agit pas de virus, mais simplement de procédés révélés début 2018 par différentes entités (académiques, industriels) permettant de contourner les mécanismes de sécurité en place dans les processeurs de beaucoup de PCs ou Smartphones actuels. Ces processeurs émanent de fabricants (surtout Intel mais aussi AMD dans le cas de Spectre) ou se conforment à l’architecture ARM. Ces vulnérabilités sont graves car elles proviennent d’insuffisances dans l’architecture et le hardware de ces processeurs, et ne sont que partiellement palliées par des mises à jour logicielles des OS sur ces machines. Malheureusement, le hardware ne se « patche » pas à distance !

Ce n’est pas la première fois que le hard est mis en question : en 1994, le coprocesseur de calcul flottant des Pentiums faisait des erreurs de calcul, et ceci coûta des millions de dollars à Intel. Cette fois-ci, le cours d’Intel a baissé début Janvier de 5%, et l’affaire n’est pas close.

b – Des portes d’entrée aux virus

Ces vulnérabilités pourraient être utilisées par un virus afin d’extraire les secrets (clés, mots de passe) d’une application quelconque. Secrets, qui lors de l’exécution de cette application, seraient gérés par l’OS. Avec Spectre, une application pourrait interférer avec une autre application, ce qui est particulièrement grave dans le cas des serveurs, avec virtualisation ou pas.

c – Aucune attaque virale constatée pour le moment

Pour le moment, nous n’en sommes pas là puisque personne n’a constaté d’attaques virales basées sur les vulnérabilités en question. Attaques qui, d’ailleurs, ne sont pas faciles à mettre en œuvre. Par ailleurs, la diffusion d’un virus exige non seulement de profiter d’une vulnérabilité, mais aussi de développer un moyen de propagation efficace et rapide, ainsi qu’un moyen d’en recueillir les bénéfices : voir par exemple le virus Wannacry !

d – Des gestes qui sauvent

Quoiqu’il en soit, l’application rapide de mises à jour d’OS et la sauvegarde régulière des données utilisateur sont des actions de plus en plus vitales dans ce contexte de menaces de plus en plus fréquentes.

II – Processus de fonctionnement des attaques Spectre et Meltdown

a – Notions d’architecture informatique

Afin d’expliquer les attaques Meltdown ou Spectre, il convient de connaître quelques principes de fonctionnement et d’architecture des microprocesseurs modernes assurant la fonction de CPU : Central Processing Unit (moderne ici est très relatif, car ces architectures existent depuis de nombreuses années).

3 détails de fonctionnement sont concernés :

W

Mémoires cache, ou comment accélérer les échanges d’instructions ou de données entre mémoire externe RAM et le CPU,

W

Protections et Isolation des programmes (OS ou applications) entre eux,

W

Exécution parallèle des instructions, pour accélérer les programmes.

Les CPU du type de ceux que l’on trouve dans nos PCs ou smartphones sont connectés sur la carte mère à des périphériques ou mémoires externes : mémoires de masse, disque ou flash, de quelques dizaines ou centaines de giga-octets, mémoire de travail RAM de quelques giga-octets. Ces mémoires contiennent l’OS et différents programmes applicatifs. Les performances des CPU, nécessitées par des programmes et contenus de plus en plus complexes, dépendent évidemment beaucoup des capacités de calcul de ces CPU ainsi que du temps d’accès CPU-RAM, notamment.

b – Fonctionnement du cache informatique

Les CPU contiennent une antémémoire appelée cache de quelques méga-octets qui contient des copies de petits blocs de la RAM appelés pages, 256 octets par exemple.

L’accès à ce cache interne est beaucoup plus rapide (10 à 100 fois, et prend quelques milliardièmes de secondes avec les rythmes d’horloge interne des CPU de plusieurs gigahertz) que l’accès à la RAM. Les programmes de l’OS ou les applications sont composés d’instructions souvent situées dans des zones contiguës. Cela demande fréquemment l’accès à des données elles-mêmes souvent situées dans des zones contiguës. On comprend donc que l’amélioration des performances puisse être très importante. Les échanges entre RAM et cache sont permanents et dépendent des besoins d’exécution des programmes au fil du temps.

c – Principe d’isolation des données

Comme plusieurs programmes sont actifs en même temps, il convient d’éviter qu’un programme n’aille lire/écrire dans les données d’un autre programme ou celles de l’OS. Les mécanismes utilisés sont variables : par exemple un bit de protection pour chaque mémoire de l’OS, une violation de l’isolation entraînant aussitôt un appel à l’OS qui peut « tuer » le programme fautif.

d – L’exécution des programmes

L’exécution de chaque instruction (se trouvant quelque part dans une page du cache) par le CPU demande la réalisation d’un certain nombre d’étapes : décodage de l’instruction, calcul de l’adresse de chaque opérande, lecture des opérandes avec chargement éventuel des pages concernées, calcul du résultat, réécriture des pages modifiées en RAM, etc. Chaque étape est réalisée dans des « execution units » spécifiques.

Pour écouler le plus rapidement possible le flot d’instructions à traiter, il est important que les unités d’exécution soient constamment occupées, comme dans une usine de voitures où l’on n’attend pas que la millième voiture soit peinte avant de commencer les soudures de la mille et unième. Un certain parallélisme d’exécution des instructions est donc réalisé, même si dans certains cas, les dépendances entre instructions n et n+1, ou des évènements tels que les violations d’isolation impliquent de revenir en arrière. Ce procédé est appelé « speculative execution ». Notons que ce qui est décrit ici ne concerne qu’un seul « core », et le « multicore » présent sur les CPU actuels n’a rien à voir avec ces vulnérabilités.

III – Comment connaître la valeur x d’un octet à une adresse protégée a

a – le principe d’exécution de séquence

Un premier programme P contient un pointeur A, initialisé avec a, un tableau T de 216 octets et deux variables u et v ; on suppose que les pages font 256 octets et que T est aligné sur une frontière de page.

P exécute une séquence d’instruction du type :

u=(A) ; (u en cache est chargé avec l’octet dont l’adresse est dans A : x)

v=T[u*256] ; (v en cache est chargé avec l’octet de T d’index u*256)

Que va provoquer cette séquence ?

Avec l’exécution spéculative, cette séquence de deux instructions sera exécutée en partie, avant qu’une exception ne tue ce programme P qui sort de son espace alloué, et les variables u et v ne seront pas réécrites en RAM. Il n’y a donc pas de divulgation de la valeur x dans la variable u.

Mais l’important est, à cause de la deuxième instruction, le chargement en cache d’une page contenant les octets du tableau à partir de x*256. Un deuxième programme P’ partageant T avec P va alors lire T[i*256] pour i variant de 0 à 255 ; lorsque i sera égal à x, la lecture sera beaucoup plus rapide que pour i#x car dans ce cas, ces plages d’adresse ne seront pas en cache, car non encore lues par P. Le temps de réponse peut être mesuré par P’ avec un « timer» : registre du CPU s’incrémentant au rythme de l’horloge CPU, et accessible en lecture par les programmes.

P’ connaît donc la valeur x de l’octet à l’adresse a.

b – Comment faire un dump de la mémoire protégée

Tout devient simple : il suffit de répéter ce qui précède pour toutes les adresses a « intéressantes » pour l’attaquant ! Les auteurs de ces attaques annoncent une vitesse de lecture de 500kb/s.

IV – Remarques sur les attaques Spectre et Meltdown

La fragilité réelle d’un CPU dépend de détails très fins d’implémentation concernant ces diverses fonctions d’accélération et d’isolation.

Ainsi, Meltdown ne fonctionne pas sur les CPU AMD car il semblerait que la fonction isolation y empêche le chargement de page décrit ci-dessus. Ce n’est pas le cas des CPU INTEL ou ARM pour les smartphones.

Les différences entre Spectre et Meltdown sont du deuxième ordre par rapport à ce papier de vulgarisation. Dans ces 2 attaques, on utilise donc le fait que l’exécution parallèle des instructions peut dans certains cas donner des informations observables (temps d’exécution) et créer un « canal caché » vers un attaquant.

En conclusion, à l’heure où l’économie mondiale est gouvernée par des échanges numériques, il est essentiel de s’assurer que de telles failles informatiques soient rapidement identifiées et résolues. Même si aucune attaque n’a encore été officiellement détectée, il va sans dire que certaines transactions sont aujourd’hui exposées à une divulgation des données sensibles. Créés il y a plus de dix ans, les processus (exécution out-of-order ou spéculative) exploités par Meltdown et Spectre, ont été ajoutés aux processeurs dans le but d’optimiser leurs performances. A l’époque, le gain en performance prévalait sur les aspects sécuritaires et ces techniques d’optimisation ont été exploitées pendant des années sans jamais être réellement remises en cause par les industriels du secteur. Maintenant que ces vulnérabilités ont été mises en lumière, les constructeurs ont déjà réagi en diffusant des patchs logiciels. Des correctifs sont déjà en cours d’élaboration et de déploiement. Mais, en attendant et au-delà des aspects théoriques, que ce soit sur le desktop ou sur les smartphones, l’association EESTEL possède des experts capables d’analyser les impacts et d’apporter des éléments concrets de solutions.

Pour en savoir plus :

A propos de l’auteur : Jean-Claude PAILLES – Ancien consultant chez Orange R&D – Enseignant à l’ENSI Caen, à Supelec Rennes et consultant pour SFR – Expert en sécurité des smartphones.

EESTEL participating in Journées de la Transformation Digitale 2018

EESTEL participating in Journées de la Transformation Digitale 2018

EESTEL participating in Journées de la Transformation Digitale 2018

During the Digital Transformation Days, Wednesday 17 January at 3.30 pm,

François Lecomte-Vagniez,

Lobary partner and EESTEL expert, will animate the round table devoted to the digital transformation by the IOT, in the presence of:

Violette Bouveret,

Research Associate of the IOT Chair of ESCP Europe

Renaud Acas,

CEO of Publithings, the publisher of objetconnecte.net

Xavier Monmarché,

Sales Director, Docapost
After an introduction of Violette Bouveret on the IOT in the Bank and Retail, we will debate on:
W
the uses and value promise of the Internet of Things for the Bank and Insurance,
W
current limits and hurdles
W
and the approaches to position yourself in this promising market in 2018

EESTEL participating in Journées de la Transformation Digitale 2018

EESTEL présente lors des Journées de la Transformation Digitale

EESTEL présente lors des Journées de la Transformation Digitale

Lors des Journées de la Transformation Digitale, mercredi 17 janvier à 15h30,

François Lecomte-Vagniez,

associé de Lobary et expert EESTEL, animera la table ronde consacrée à la transformation digitale par l’IOT, en présence de :

Violette Bouveret,

chercheuse associée de la chaire IOT de l’ESCP Europe

Renaud Acas,

CEO de Publithings, l’éditeur d’objetconnecte.net

Xavier Monmarché,

directeur commercial, Docapost

Après une introduction de Violette Bouveret sur l’IOT dans la Banque et le Retail, nous débattrons sur :

W
les usages et la promesse de valeur de l’Internet des Objets pour la Banque et l’Assurance,
W
les limites et les freins actuels
W
et les approches pour se positionner sur ce marché prometteur en 2018