Une nouvelle fonctionnalité pour Newspipe

Newspipe propose une nouvelle fonctionnalité: la gestion de marque-pages. J’utilise depuis des années l’excellent service Pinboard pour gérer mes marque-pages. Aujourd’hui je ne prétends surtout pas le remplacer, mais je pense que cette fonctionnalité a bien sa place dans Newspipe.

Comme vous pouvez le constater sur la capture ci-dessous, tous les marque-pages que je conserve depuis des années sur Pinboard sont maintenant sur Newspipe. Il est en effet possible d’importer un fichier d’export JSON de Pinboard. Pratiquement toutes les données sont récupérées (je me suis inspiré de ce schéma de données).

Newspipe - bookmarks

Un bookmarklet est également disponible afin de rapidement marquer une page Web.

Il sera également bientôt possible de marquer une page Web provenant d’un article récupéré via un flux RSS/ATOM. Cette fonctionnalité fera un peu doublon avec le fait d’ajouter un article aux favoris. Mais la gestion des marque-pages va au-delà de la gestion des flux RSS/ATOM.

Une histoire d’arithmétique modulaire

Bob était amoureux d’Alice. Il voulait lui envoyer une déclaration d’amour. Mais Bob avait peur que cette déclaration puisse tomber dans les mains d’une autre personne. Par exemple le méchant Oscar. Par chance Alice qui aimait bien les maths connaissait RSA. Elle disposait tout naturellement d’une clé publique (b, n) et d’une clé privé (a, n).
Bob utilisa donc la clé publique d’Alice pour protéger son message:
        secret = message˄b mod n
Une fois le message réceptionné par Alice (IP par transporteurs aviaires), elle utilisa la clé privée afin de découvrir le message:
        message = secret˄a mod n

Mais comment a fait Alice pour avoir de telles clés?

Une des premières choses à faire était de trouver (à la main et avec le test de primalité de Miller-Rabin) deux très grands nombres premiers p et q tels que:

        (1)   Φ(n) = (p - 1) * (q - 1), l’indicateur d’Euler
        (2)   n = p * q

n, le modulus, est donc le produit de deux grands nombres premiers.

Nous avons également:
        (3)   a = b˄-1 mod Φ(n)
(Si tu veux comprendre un peu plus en détail: 1 et 2. Et si vraiment Euler ne te dis plus rien, tu peux aussi réviser ton arithmétique modulaire de terminale. Le bon vieux temps.)

Ensuite nous devons trouver un entier b tel que:
        pgcd(b, Φ) = 1
Et finalement l’exposant privé a sera l’inverse de b mod Φ. (Pareil, revoir les cours de terminale. Désolé.)

Mais au bout de tout ça, quelles données sont utiles à Alice ? Et bien uniquement l’exposant public b, l’exposant privé a et le modulus n. C’est tout. p et q ne sont plus utiles puisque nous connaissons n.
De même pour Φ, il ne faut pas le garder car il permet de retrouver p et q. (J’aimais bien faire ça, en seconde…)

Bref attaquer RSA n’est pas plus facile que de factoriser le modulus.

Si Oscar avait connu p et q il aurait facilement pu calculer Φ (avec 1). Puis l’exposant privé a (avec 3) qui est donc l’inverse modulaire de b et Φ. Un cauchemar pour Bob. Une chance pour les victimes de WannaCry.

Identité contextuelle avec Firefox

Vous connaissez peut-être Firefox Test Pilot. Le programme qui permet de tester des fonctionnalités expérimentales dans Firefox via une extension. Et bien je viens seulement de découvrir (sur Mastodon) les conteneurs. L’objectif est de contextualiser votre identité en fonction de l’activité que vous avez, sur un tel ou un autre site Web. Typiquement vous aurez un conteneur pour le travail, un conteneur pour les achats en ligne (Amazon, etc.), un conteneur pour le Web social (Twitter, etc.) et un conteneur pour le surf de manière générale.

Pour moi l’usage le plus intéressant est la séparation des activités d’achats en ligne et des activités liées au Web social. Bien que je suis déjà assez protégé de ce côté. Pour nombre de personne, il peut être assez difficile de complètement séparer l’identité privée et l’identité professionnelle. Pour ma part cela a même très peu d’intérêt.

Des tentatives dans cette direction avaient déjà été réalisées chez Mozilla, comme avec les Tab groups ou avec différentes extensions (priv8). Les containers sont une alternative plus ambitieuse puisqu’il ne s’agit pas simplement de faire des groupes d’onglets mais bien de séparer les états de chaque conteneur (cookies, localStorage, indexedDB, HTTP data cache, etc.). Ainsi, vous pourriez donc vous connecter à un compte Google personnel et à un compte Google professionnel en même temps avec le même navigateur. Je trouve que cette solution est un bon compromis par rapport à des solutions existantes, allant de l’isolation de VM (avec Qubes OS) à de l’isolation de processus du navigateur. C’est aussi assez simple d’usage pour l’utilisateur l’ambda, à condition qu’il comprenne bien pourquoi contextualiser son identité.

En retard

Newspipe main UI

Voilà ce que cela donne en général lorsque je ne lis plus assidûment les nouvelles (et encore là j’ai déjà réalisé un premier trie très grossier). Bien fait pour moi. C’est toujours l’occasion de faire quelques filtres avec des regex et de tester encore un algorithme de clustering.

Stegano 0.7

Une nouvelle version de Stegano vient de pointer son nez. La principale nouveauté est le support d’unicode. Donc la possibilité de cacher des caractères avec un encodage UTF-8 (8 bits ou plus). Voici un exemple avec un encodage UTF-32 LE. Cela me donne envie de tester avec une option pour utiliser UTF-32 BE.

La seconde nouveauté, un peu moins importante, est l’introduction des type hints. J’y travail depuis quelques temps. Ce n’est qu’un début. Vous pouvez voir ce que ça donne ici.

Liquidambar styraciflua – 4 jours après

Liquidambar styraciflua

Les feuilles reviennent bien plus doucement que celles de l’arbre présenté précédemment. Mais une fois que ça commence, ça devient vraiment intéressant à observer. Je vais poster sur ce blog des photos jusqu’à l’automne. Vous comprendrez pourquoi c’est mon préféré.

Heptacodium miconioides

Heptacodium miconioides

Lui, il est vraiment pressé. Il est comme ça depuis deux bonnes semaines. Les feuilles sont revenues tôt et avec une croissance super rapide.

Déploiement de Newspipe

J’ai récemment fait quelques efforts pour faciliter le déploiement de Newspipe. Vous pouvez utiliser le bouton disponible à cette page pour le déploiement sur Heroku. C’est la méthode la plus facile. Pour les personnes qui ne souhaitent pas utiliser Heroku, l’installation via Vagrant est également simple. Pour le moment, l’instance principale n’accepte plus la création de nouveaux comptes (je paye…). Cette page fournit plus de détails à propos du déploiement.

Python 3.6 sera utilisé par défaut sur une installation Heroku ou Vagrant. Cette version de Python est aussi conseillée pour «l’installation manuelle». Une nouvelle page permet de vérifier la version de Python utilisée.