Contenu Premium

Dans ce numéro...


L’apprentissage de la cryptographie n’est pas toujours évident lorsqu’on souhaite le faire par la pratique. Lorsque l’on débute, il existe cependant des challenges accessibles qui permettent de découvrir ce monde passionnant sans avoir de connaissances mathématiques approfondies en la matière. C’est le cas de picoCTF, qui propose une série d’épreuves en cryptographie avec une difficulté progressive et à destination des débutants !
Lorsque vous créez un programme Python, vous vous demandez toujours comment gérer la configuration de ses paramètres ? Allez-vous utiliser un passage de paramètres en ligne, des variables d'environnements, un fichier ini ? Et si finalement la solution tenait dans un seul module ?
« Briquer » une carte, un module ou un smartphone est un terme que je trouve absolument pertinent. Cela désigne le fait d'arriver à un stade, après maintes bidouilles ou erreurs, où le matériel est dans un tel sale état de configuration qu'il n'est plus possible de s'en sortir par des moyens logiciels courants et standards. L'objet se transforme littéralement en brique, juste bon à servir de presse-papier high-tech. Cela m'est précisément arrivé avec une carte Arduino MKR Vidor 4000. Mais à cœur vaillant (et obstiné) rien d'impossible et voici donc la solution pour vous sortir du même pétrin.
Comme je l'avais évoqué dans un précédent article, les FPGA sont des circuits logiques programmables de plus en plus populaires et accessibles en dehors du milieu très fermé de l'industrie. Ces circuits intégrés composés de réseaux logiques reconfigurables et modifiables permettent toute une gamme de créations qu'il n'est pas possible d'envisager avec un microcontrôleur ou un processeur. Malheureusement, la plupart des FPGA existants ne disposent pas d'outils open source et le développeur doit alors utiliser les logiciels lourds provenant des fondeurs de circuits. Mais ça, c'était avant l'arrivée du trio YOSYS/Nextpnr/IceStorm...
Parfois, on achète des bricoles sur eBay et on ne fait pas attention aux détails tant le prix est étonnamment faible. C'est ainsi qu'on peut avoir quelques surprises à la livraison et, tantôt, ces surprises peuvent être bonnes... Voilà comment, en pensant acheter des clones d'Arduino Nano à bas coût, je me suis finalement retrouvé avec des clones d'ATmega328 à bas coût ! Les cartes étaient en effet équipées d'un microcontrôleur MassDuino MD-328D, vendues par INHAOS Technology et ne se contentant pas d'être simplement compatibles avec les AVR d'Atmel/Microchip...
Les caméras à base d'ESP32, quels que soient leurs modèles, sont des plateformes très amusantes, mais ceci le devient encore davantage lorsqu'on commence à chercher à les modifier. Le très faible coût, à la fois de la plateforme elle-même et de la caméra qui y est connectée, nous permet de procéder à des manipulations qui, dans un contexte différent seraient sans doute jugées trop risquées. Ici, pas de problème, si nous cassons quelque chose cela ne nous coûtera qu'entre 2 et 5 euros et le temps passé à expérimenter...
Ces dernières années, les programmes de bug bounty et la recherche de vulnérabilités libre ont augmenté notablement le nombre de failles trouvées sur les services en ligne. Une fois la vulnérabilité trouvée, le chercheur en sécurité essaie en général de contacter l'équipe sécurité du service en ligne pour lui signaler le problème. Et là, cela peut devenir un véritable casse-tête, car rien n'était jusqu'à maintenant normalisé et documenté. Voyons comment la proposition du fichier security.txt a amélioré la situation et ce qu'il faut mettre en place de votre côté pour bien traiter ces remontées.
Les vieilles maisons c'est très bien, les vieilles maisons avec un jardin c'est encore mieux. En revanche, ce qui est un peu moins agréable avec ce type d'environnement, c'est la difficulté de propager un signal Wifi au travers de murs faits de matériaux divers mais, semble-t-il, toujours denses et bourrés d'oxyde de fer. Obtenir une connectivité Wifi acceptable en extérieur, tout en traversant 3 ou 4 murs devient un vrai défi, qui ne peut être relevé qu'à condition de modifier son architecture réseau.
i2c, SPI, JTAG, série, CAN, DMX, MIDI... sont autant de bus et protocoles, normalisés et standardisés, qu'on utilise régulièrement pour divers projets. Pour cela, on fait généralement usage de bibliothèques, d'environnements et autres frameworks parfaitement connus et stables, si bien qu'il n'est généralement pas nécessaire d'aller voir ce qui se passe au niveau le plus bas, électriquement, sur le bus. Mais parfois, tout ne se déroule pas comme on le souhaiterait, les résultats et les comportements des composants ne sont pas ceux espérés et il faut alors observer physiquement ce qui se passe. C'est là qu'intervient l'analyseur logique.
Si vous vous souvenez bien du moment où le modèle 4B a été annoncé, les choses ne se sont pas tout à fait passées calmement. De nombreux problèmes se sont fait jour et beaucoup d'utilisateurs constataient que la consommation électrique de la bête était pour le moins inquiétante, et étrangement proportionnelle aux problèmes de dissipation thermique qui étaient la principale critique du moment. En d'autres termes, même si la puissance de calcul était bien là, ce nouveau modèle avait tout du chauffage d'appoint intelligent. Ce problème a néanmoins été réglé depuis et a été l'occasion de mettre en avant une particularité intéressante de cette carte...
Il y a des jours où il nous arrive des idées saugrenues mais où, plutôt que de les chasser rapidement de notre esprit, on fonce tête baissée pour les mettre en œuvre. Le jour où je me suis mis en tête de connecter un Commodore 64 à une carte Arduino pour les faire communiquer était un de ceux-là. Pire encore, hors de question de faire cela en BASIC. Si c'est du C côté Arduino, ce sera aussi du C côté Commodore 64 !
Les fonctions printf() sont parmi les premières utilisées lorsqu'on découvre le C et sans doute celles qu'on retrouve systématiquement dans tout code du plus simple au plus massif et complexe. C'est aussi la solution la plus basique de mise au point d'un programme en le rendant le plus verbeux possible. En fonction du projet sur lequel vous travaillez cependant, il arrive que ces fonctions ne disposent pas de la forme d'affichage qui vous conviendrait le mieux. Mais avec la glibc, ce n'est pas un problème : il suffit d'ajouter vous-même ce qui manque...
Imaginez avoir sous les yeux un écran de résolution « moderne » et devoir dans cette masse importante d'informations y trouver un ou plusieurs éléments spécifiques de l'image. Voilà une tâche bien indigne d'un humain qui se respecte, si ce n'est pour l'aspect ludique qui devient rapidement lassant. En bon programmeur, le réflexe premier devant une telle tâche, parfois même avant de tenter une première fois l'approche « manuelle », est de se dire « mais je peux écrire un programme pour ça ! ». Ce qui va suivre est l'implémentation d'un tel réflexe...
Lorsque l’on commence à s’intéresser à la sécurité informatique, on est vite confronté à la complexité actuelle des systèmes, et l’apprentissage dans un contexte réaliste peut apparaître d’autant plus difficile. Il existe cependant une manière simple et ludique d’apprendre par la pratique grâce à des compétitions techniques aux niveaux variés, les CTF (Capture The Flag). Cet article propose, pour les débutants, un premier pas dans cet univers.
J'ai déjà parlé d'obfuscation [1], mais il s'agissait alors d'obscurcir l'un de nos programmes. Je vous propose ici une vision plus artistique en décortiquant un code Python très intéressant générant une image de l'ensemble de Mandelbrot.
De nombreuses commandes Linux sont installées par défaut pour pouvoir gérer le réseau : obtention d'informations, téléchargement de données, etc. Nous présenterons dans cet article les commandes de base indispensables pour tout utilisateur de Linux, WSL ou macOS.
Les fonctionnalités de mises à jour OTA disponibles avec les ESP8266 apportent une grande souplesse dans le développement et surtout l'évolution de vos projets. Inutile dès lors de devoir désinstaller un matériel déjà confortablement en place pour le connecter en USB, puisque tout se passe, in situ, au travers de la connexion wifi. Mais contrairement à une liaison USB nécessitant un accès physique, l'OTA constitue un risque en termes de sécurité : quiconque trouve, espionne ou devine le mot de passe est en mesure de remplacer votre code par le sien. Mais le support ESP8266 pour Arduino propose une solution à cette faiblesse...
Il y a quelque temps déjà, je vous avais présenté un montage basé sur ESP8266 permettant de démarrer à distance un ordinateur en simulant l'utilisation de son bouton de mise en fonction. Depuis lors, ce projet relativement simple a été utilisé régulièrement et intensivement. Il est maintenant temps de tirer les leçons ainsi acquises et de faire évoluer la réalisation...
Web, VPN, IMAP, SMTP, accès distant, stockage, messagerie instantanée... Quels que soient le domaine, la technologie ou le protocole, l'authentification renforcée et le chiffrement représentent aujourd'hui le comportement par défaut. Et ce, au point que les protocoles historiques, en clair, sont désormais considérés, à juste titre, comme obsolètes et ne représentent plus qu'une utilisation marginale sur Internet. À la base de ce nouveau paradigme se trouve généralement TLS, le protocole de sécurisation des échanges et l'outil le plus basique vous permettant de gérer votre sécurité : openssl.
UniFi est le nom commercial d'une famille de périphériques réseau fabriqués par la société Ubiquiti. Le concept derrière cette gamme est initialement de disposer d'une infrastructure complète (points d'accès, routeurs, switch, équipements domotiques, etc.) formant un ensemble homogène et gérable/configurable facilement via un applicatif de gestion nommé « UniFi Network Controller ». Le problème est qu'en jetant son dévolu sur un périphérique de la gamme en raison de ses caractéristiques séduisantes, le contrôleur est le seul moyen de procéder à sa configuration. Fort heureusement, il est possible de s'éviter un investissement supplémentaire en transformant une simple carte Raspberry Pi en contrôleur UniFi.
Vous en avez assez de proposer à vos utilisateurs des messages sans relief ou des interfaces CLI monotones ? Vous aimeriez pouvoir ajouter un peu de fantaisie et de fun à vos sorties console ? Ne cherchez plus, voici le module qu’il vous faut !
Chaque écosystème, qu'il s'agisse d'Arduino, Mbed ou même d'Android, comprend généralement un environnement de développement qui lui est propre. Les habitudes s'ancrent rapidement et facilement, et plus le temps passe, plus la connaissance de l'outil assure un certain confort d'utilisation et une certaine routine très rassurante. On perd ainsi facilement de vue que des alternatives existent ou, plus précisément, on perd l'envie (ou le courage) d'investir un peu de son temps pour s'ouvrir de nouveaux horizons. Cassons donc la routine et voyons ensemble une autre dimension du développement pour nos plateformes chéries et Arduino en particulier...
La carte Pico de Raspberry Pi est appréciable à bien des égards. Ses ressources, son prix, ses deux cœurs ARM... Mais ce morceau de silicium qu'est le RP2040 renferme une fonctionnalité unique : des blocs PIO permettant de créer librement des périphériques supplémentaires qu'il s'agisse d'éléments standardisés comme SPI, UART ou i2c, ou des choses totalement exotiques et très spécifiques à un projet ou un environnement donné. Voyons ensemble comment prendre en main cette ressource et explorer le monde fantastique des huit machines à états de la Pico !
Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.
Vous les utilisez tout le temps sans en avoir nécessairement conscience... mais comment fonctionnent les namespaces en Python ? Je vous propose dans cet article de les expérimenter au travers de différents exemples.
Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.
On le voit de plus en plus, les outils en ligne de commandes s'étoffent peu à peu d'éléments graphiques sous la forme d'émojis UTF8. Plus qu'une simple décoration, cette pointe de « graphisme » dans un monde de texte apporte réellement un plus en termes d'expérience utilisateur et véhicule, de façon condensée, des informations utiles. Pour autant, cette façon de sortir du cadre purement textuel d'un terminal n'est en rien une nouveauté. Pour preuve, fin des années 80 DEC introduisait le VT340 supportant des graphismes en couleurs, et cette compatibilité existe toujours...
Créer une API REST, c’est bien, mais la sécuriser, c’est mieux. Dans cet article, nous allons aborder le problème de la sécurisation des requêtes au sein d’une API REST élaborée à l’aide du framework Flask RESTful.
Avoir des informations précises et détaillées sur ce qu’il se passe dans une infrastructure, et sur les applications qu'elle héberge est un enjeu critique pour votre business. Cependant, ça demande du temps, temps qu'on préfère parfois se réserver pour d'autres tâches jugées plus prioritaires. Mais qu'un système plante, qu'une application perde les pédales ou qu'une faille de sécurité soit découverte et c'est la panique à bord ! Alors je vous le demande, qui voudrait rester aveugle quand l'observabilité a tout à vous offrir ?
Être en mesure de surveiller la consommation énergétique de nos applications est une idée attrayante, qui n'est que trop souvent mise à la marge aujourd'hui. C'est d'ailleurs paradoxal, quand on pense que de plus en plus de voitures permettent de connaître la consommation instantanée et la consommation moyenne du véhicule, mais que nos chers ordinateurs, fleurons de la technologie, ne le permettent pas pour nos applications... Mais c'est aussi une tendance qui s'affirme petit à petit et à laquelle à terme, il devrait être difficile d'échapper. Car même si ce n'est qu'un effet de bord, elle nous amène à créer des programmes plus efficaces, qui sont également moins chers à exécuter.
Depuis les révélations d’Edward Snowden sur l’espionnage de masse des communications sur Internet par la NSA, un effort massif a été fait pour protéger la vie en ligne des internautes. Cet effort s’est principalement concentré sur les outils de communication avec la généralisation de l’usage du chiffrement sur le web (désormais, plus de 90 % des échanges se font en HTTPS) et l’adoption en masse des messageries utilisant des protocoles de chiffrement de bout en bout. Cependant, toutes ces communications, bien que chiffrées, utilisent un protocole qui, lui, n’est pas chiffré par défaut, loin de là : le DNS. Voyons ensemble quels sont les risques que cela induit pour les internautes et comment nous pouvons améliorer la situation.
Si vous utilisez LaTeX pour vos documents, vous connaissez vraisemblablement Overleaf qui vous permet de rédiger de manière collaborative depuis n’importe quel poste informatique connecté à Internet. Cependant, la version gratuite en ligne souffre de quelques limitations et le stockage de vos projets est externalisé chez l’éditeur du logiciel. Si vous désirez maîtriser vos données et avoir une installation locale de ce bel outil, cet article est fait pour vous.
Sommes-nous proches de la singularité technologique ? Peu probable. Même si l’intelligence artificielle a fait un bond ces dernières années (elle est étudiée depuis des dizaines d’années), nous sommes loin d’en perdre le contrôle. Et pourtant, une partie de l’utilisation de l’intelligence artificielle échappe aux analystes. Eh oui ! Comme tout système, elle est utilisée par des acteurs malveillants essayant d’en tirer profit pécuniairement. Cet article met en exergue quelques-unes des applications de l’intelligence artificielle par des acteurs malveillants et décrit succinctement comment parer à leurs attaques.
Malgré l’évolution des technologies, concevoir une application web reste un travail complexe qui nécessite de nombreuses connaissances dans de multiples domaines. Heureusement, de nouvelles approches émergent actuellement et c’est justement le cas avec SQLPage.
Imaginez un monde où nos données seraient aussi insaisissables que le célèbre chat de Schrödinger : à la fois sécurisées et non sécurisées jusqu'à ce qu'un cryptographe quantique décide d’y jeter un œil. Cet article nous emmène dans les méandres de la cryptographie quantique, où la physique quantique n'est pas seulement une affaire de laboratoires, mais la clé d'un futur numérique très sécurisé. Entre principes quantiques mystérieux, défis techniques, et applications pratiques, nous allons découvrir comment cette technologie s'apprête à encoder nos données dans une dimension où même les meilleurs cryptographes n’y pourraient rien faire.
Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.
Distribuer du contenu Ansible réutilisable (rôle, playbooks) par l’intermédiaire d’une collection est devenu le standard dans l’écosystème de l’outil d’automatisation. Pour éviter tout conflit de noms, ces collections sont caractérisées par un nom unique, formé d’une espace de nom, qui peut-être employé par plusieurs collections (tel qu'ansible ou community) et d’un nom plus spécifique à la fonction de la collection en elle-même. Cependant, il arrive parfois qu’il faille migrer une collection d’un espace de noms à un autre, par exemple une collection personnelle ou communautaire qui passe à un espace de noms plus connus ou certifiés. De même, le nom même de la collection peut être amené à changer, si elle dépasse son périmètre d’origine ou que le produit qu’elle concerne est lui-même renommé.
Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.
Automatiser entièrement le déploiement d’un cluster Red Hat AMQ Streams est possible… en utilisant Ansible et sa collection dédiée au produit. Démonstration par l’exemple.

Les derniers articles Premiums

Les derniers articles Premium

Bénéficiez de statistiques de fréquentations web légères et respectueuses avec Plausible Analytics

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.

Quarkus : applications Java pour conteneurs

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.

De la scytale au bit quantique : l’avenir de la cryptographie

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Imaginez un monde où nos données seraient aussi insaisissables que le célèbre chat de Schrödinger : à la fois sécurisées et non sécurisées jusqu'à ce qu'un cryptographe quantique décide d’y jeter un œil. Cet article nous emmène dans les méandres de la cryptographie quantique, où la physique quantique n'est pas seulement une affaire de laboratoires, mais la clé d'un futur numérique très sécurisé. Entre principes quantiques mystérieux, défis techniques, et applications pratiques, nous allons découvrir comment cette technologie s'apprête à encoder nos données dans une dimension où même les meilleurs cryptographes n’y pourraient rien faire.

Body