OAuth 2.0 est un protocole d'autorisation d'accès à des données. Il s'incrit dans la mouvance RESTful où c'est la sécurisation des données qui compte et où l'idéologie dominante est que la donnée doit être fluide dans les SI.
Selon moi c'est incomplet et cela fait partie des saletés poussées par les GAFAM qui vivent de la récolte et de l'échange des données, tels des vampires.
En complément, cela me semble être très mal indiqué dans le monde industriel "classique" où il figure plusieurs niveaux de sécurité.
Je m'explique :
-
L'identification
On déclare qui on est et c'est tout. -
L'authentification
On prouve que l'on est bien celui que l'on prétend être (par un mot de passe ou un challenge cryptographique par exemple). -
L'autorisation (d'accéder aux données)
On peut récupérer les données sensibles ou personnelles qui sont entreposées pour nous dans un système. -
L'habilitation (à effectuer des modifications sur les données)
On peut créer ou modifier des données sensibles ou personnelles qui sont entreposées pour nous dans un système. -
L'accréditation (permettant de lancer certains traitements)
On peut déclencher des actions sur le serveur qui vont impacter les données. Par exemple supprimer une donnée, lancer un calcul complexe s'exerçant sur les données, ou plus modestement, passer une commande ou signer un document, etc.
OAuth 2.0 répond uniquement au point (3), ce qui représente une usine à gaz pour peu de choses au final. Mais vous permettez aux GAFAM de s'interfacer facilement avec votre SI.
De plus, le protocole part du principe que dès qu'une autorisation est octroyée, alors aussitôt tous les traitements sont permis, comme si certaines actions n'étaient pas réservées qu'aux admins, aux commerciaux, à la direction, à l'ingénierie, etc.
Bref mon sentiment à l'égard d'OAuth 2.0 se cristallise autour d'un "mouais".
@Doudou il faut que nous en discutions.
@Sebsauvage écoute tout pareil ! Et sans même avoir eu besoin de te lire. Hier un collègue me proposait de quitter Silence et Signal pour Olvid et ma première question a été de lui demander si son téléphone n'avait pas été piraté 😝
Des messages qui passent par des serveurs à sources fermées, juste non. Car même si le chiffrement était bel et bien de bout en bout, ce dont je doute, l'évolution des puissances de calcul et des capacités de stockage font que l'on peut backuper ce qui s'échange en chiffré aujourd'hui pour le casser plus tard.
Et c'est d'autant plus facile quand on choisit les algos de chiffrement et que l'on a codé leurs implémentations dans une App' "sexy" kissapélerio Olvid (qui phonétiquement est l'anagrame de Devil #FrancMaçonnerie #GrandComplot 🤪)
Rappelons la raison de pourquoi nous devrions tous chiffrer nos communications : pour nous protéger de l'État car lui seul à le pouvoir d'anéantir notre vie à l'aide de fausses preuves.
Donc quoi qu'il arrive, il ne faut JA-MAIS faire confiance à l'État. Ses dirigeants sont actuellement des traitres et les pires restent à élire 🤮
Je partage l'avis du titre mais en partie seulement. L'IA menace les salaires dans un premier temps et l'emploi à terme.
Dans l'IT par exemple, la baisse supposée, de mémoire selon le Gartner, serait de 50% à 70% d'ici à 2030 si les LLM ne se heurtent pas à un mûr technologique avant...
Mais quelque part c'est une bonne chose. Les IA étant des moyens de production privés, leurs bénéfices ne seront jamais socialisés, ou au mieux jamais totalement.
Ce faisant, la classe moyenne supérieure qui se prend pour la bourgeoisie, mais qui n'est rien, devra enfin se ranger dans le camp du prolétariat pour défendre ses intérêts.
Si les troupes de l'ordre par la force sont débordées, alors une révolution anticapitaliste sera enfin possible.
Ah je peux rêver...
À la rentrée, je travaillerai sur l'architecture d'un service de sécurité. Voici une liste des protocoles standards qui gèrent la chose.
Je découvre un nouveau serveur web pour Rust. Bien plus rapide qu'Actix, son interfaçage avec le code est le même.
Je vais le tester et voir si cela vaut la peine de l'utiliser dans les nouveaux projets.
Je lisais vendredi dernier que la France interdisait les clefs de chiffrement à plus de 128 bits et immédiatement je me suis dit que c'était faux. Et en vrai, c'est bien faux !
On peut chiffrer à l'aide de clefs plus grandes que 128 bits mais l'état demande à ce qu'on lui fournisse les clefs utilisées.
Ce que l'état ne comprends pas, c'est que si nous chiffrons nos communications et nos données, c'est pour nous protéger de lui ! Donc peu de gens vont lui donner ouvertement leurs clefs \O/
Kotlin progresse encore pour atteindre 1,18% de part de marché.
J'ai mis à jour ce post afin de montrer l'évolution. 14 places en 1 an c'est beaucoup. Je pense que Kotlin est en train de manger les parts de Java et le phénomène s'accélère.
Par contre qu'arrivera-t-il à la JVM lorsque Java ne sera plus utilisé et que Kotlin l'aura remplacé ?
Pour moi, la JVM devrait se transformer en moteur d'exécution et plusieurs langages tourneront dessus.
D'ailleurs c'est le projet d'Oracle avec GraalVM qui est déjà polyglotte et marche très bien.
Oubliez les tutos.
Sauf la webcam, tout marche nickel en installant la dernière LMDE 6 (et surtout pas la version de Mint basée sur Ubuntu).
La communauté Debian a toujours fait un travail formidable. La Linux Mint basée sur Debian est de loin ma distribution préférée.
Je viens de m'apercevoir que ma Surface tournait en mono thread alors que c'est une 2 cœurs / 4 threads. Le tuto aide bien.
Le temps de démarrage dépasse les 2 min 20
Le temps de démarrage est d'environ ~15 sec, on est donc à 2 min de trop. Après investigation cela vient du service systemd-udev-settle.service
qui est bloquant et qui part en timeout après 120 seconds quand il ne parvient pas à recevoir des notifications des autres services au démarrage qui quant à eux sont en mode non-bloquant.
Que faire ?
Saisir la commande suivante :
sudo systemctl mask systemd-udev-settle.service
La tablette ne s'arrête plus et reste bloquée sur une ligne de log du type "kvm: ..."
Cela vient du fait que la méthode d'arrêt de l'EFI de Microsoft ne supporte pas l'ACPI.
Que faire ?
1) Ouvrir le fichier /etc/default/grub
sudo nano /etc/default/grub
2) Modifier la ligne
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
En ceci
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"
Puis exécuter la commande suivante pour mettre à jour Grub
sudo update-grub
L'installation de Mint a écrasé l'entrée Linpus dans l'UEFI donc il devient impossible de booter sur clef USB
Ce problème interviendra lorsqu'on voudra reformater la tablette. Il va donc falloir préparer le terrain pour l'avenir.
1) Réafficher les options de démarrage de GRUD
C'est aussi dans le fichier /etc/default/grub
. Il faut affecter ces valeurs aux variables suivantes :
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=3
Puis exécuter la commande suivante pour mettre à jour Grub
sudo update-grub
Cela permettra d'avoir un menu de 3 secondes au démarrage pour accéder à l'EFI de la tablette.
2) Changer l'ordre de boot via l'efibootmgr
J'ai ceci
$ sudo efibootmgr
BootCurrent: 001
Timeout: 0 seconds
BootOrder: 0001,2001,2002
Boot0001* Linut Mint
Boot2001* EFI USB Device
Boot2002* EFI Network
Je veux donc mettre 2001 avant 0001 ce qui se fait via la commande
sudo efibootmgr -o 2001,0001,2002
En substance, je souhaite mettre à jour le Linux de ma Surface Go 2 qui a maintenant plus 3 ans.
Quel est le problème ?
Microsoft... J'aurai pu m'arrêter car à celle seule, la firme de Redmond est un problème.. Dans l'idée, l'accès à l'UEFI ne permet pas de choisir l'USB comme périphérique bootable. Il faut donc trouver autre chose
Solution
Depuis une console vous aller lister toutes les périphériques accessible via UEFI
$ sudo efibootmgr
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0000,0001,2002,2001
Boot0000* Linux Mint
Boot0001* Linpus
Boot2001* EFI USB Device
Boot2002* EFI Network
Ensuite il faut choisir le numéro associé à Linpus pour les Surface Go 2 de Microsoft et dire à efibootmgr
de booter dessus, si une clef USB est branchée, lors du prochain démarrage.
sudo efibootmgr --bootnext 0001
sudo systemctl reboot
A noter que seul l'ID de l'entrée compte donc pour Boot0001 on utilise que 0001.
@Sebsauvage je ne pense pas que le problème soit la quantité mais l'intégrabilité des personnes.
Prenons deux exemples pour comprendre
1) Paris accueille du jour au lendemain 1 000 000 de Japonais. Immédiatement les rues seront plus propres mais les jeunes-filles devront faire attention aux caméras sous leurs jupes. Les ventes de manga hentaï, de baguettes et de poisson cru vont exploser mais globalement le taux de criminalité et d'incivilité aura fortement baissé.
2) Paris accueille du jour au lendemain 1 000 000 d'Afghans. Immédiatement les femmes non-voilées se feront agressées dans les lieux où les Afghans seront majoritaires. Les homosexuels devront se cacher et les athées subiront des menaces qui les pousseront à fuir ou se convertir de force (et ça n'est pas une blague les Talibans ne veulent vivre qu'entre fanatiques).
Pourtant c'est bien la même quantité de personnes qui aura été importée. La différence vient de la culture de ces personnes. En effet, l'une des deux est profondément incompatible avec l'ouverture traditionnelle française, l'autre ne l'est pas.
Pour avoir suivi quelques débats avec la droite nationaliste (à ne pas confondre avec l'extrême-droite), la question migratoire ne porte jamais sur le nombre d'immigrés mais sur le filtrage des immigrés.
Le thème de la quantité est un fantasme de gens de gauches qui "établissent que tout ce qui est à droite du centre est l'extrême droite, et qui ne débattent pas avec l'extrême droite, mais qui prétendent que l'ouverture et la tolérance aux autres sont leurs valeurs fondamentales"...
En substance voici les arguments
1) Ceux qui immigrent de manière illégale prennent la place de ceux qui respectent nos Lois et passent par la procédure normale. Il faut donc expulser les fraudeurs et privilégier les gens respectueux et honnêtes.
Il faut aussi comprendre que les vagues migratoires sont des armes de déstabilisation que les pays utilisent entre-eux dans leurs affrontements quotidiens. Cf. l'histoire de l’Île Lampedusa et où les ONG ont encore une fois servi de façades à ces offensives (offensive ici financée par l'Allemagne apparemment, car l'UE c'est la paix).
2) Il faut sélectionner les candidats. Si l'on n'invite pas n'importe qui à séjourner à son domicile personnel pourquoi le ferait-on au niveau national ? A contrario notre pays connaît ses besoins et ses lacunes et pourra prioriser ceux qui le compléteront et l'enrichiront vraiment. Ça ne sert à rien d'accepter quelqu'un qui finira sans travail et devra vivre une vie de crime pour survivre.
3) Dans la sélection, il faut avant-tout identifier les personnes dangereuses, car profondément incompatibles la structure nationale (par exemple le respect des femmes, des homosexuels, etc) et qui seraient prêts à commettre des crimes ou des attentats pour y mettre un terme.
4) La France a beau être un pays riche, elle vit à crédit d'une part et ne peux accepter toute la misère du monde d'autre part.
Donc arrive forcément un temps où il faut choisir entre nos enfants et ceux des autres. Bienvenue dans la réalité, ce monde est cruel et nous avons beau avoir l'un des plus beaux cerveaux de la création, in fine, ça reste manger ou être mangé.
OH LA VACHE ! LA CLAQUE !!
Les paroles, l'air, la voix, tout. Un merveilleux appel de lutte des classes qui vient droit du fond des USA. MER-CI Oliver Anthony <3
J'espère que le salut viendra de ces méprisés que ces connards de bourgeois appellent des rednecks. Tout ce qu'Oliver décrit est précisément ce dont NOUS souffrons !
Et encore je dis nous mais je devrais dire les pauvres. Je viens d'un milieu ouvrier mais je fais aujourd'hui partie de la petite bourgeoisie uniquement parce que j'ai eu de la chance, énormément de chance.
C'est peut-être du masochisme ou de la bêtise mais je n'ai qu'un seul grand rêve dans cette vie, c'est de voir le capitalisme s'effondrer et de pouvoir observer avec une infinie délectation la mise à mort des hyper-bourgeois dans la plus violente des vindictes populaires.
Les paroles
[Verse 1]
I've been sellin' my soul, workin' all day
Overtime hours for bullshit pay
So I can sit out here and waste my life away
Drag back home and drown my troubles away
[Pre-Chorus]
It's a damn shame what the world's gotten to
For people like me and people like you
Wish I could just wake up and it not be true
But it is, oh, it is
[Chorus]
Livin' in the new world
With an old soul
These rich men north of Richmond
Lord knows they all just wanna have total control
Wanna know what you think, wanna know what you do
And they don't think you know, but I know that you do
'Cause your dollar ain't shit and it's taxed to no end
'Cause of rich men north of Richmond
[Verse 2]
I wish politicians would look out for miners
And not just minors on an island somewhere
Lord, we got folks in the street, ain't got nothin' to eat
And the obese milkin' welfare
Well, God, if you're five-foot-three and you're three-hundred pounds
Taxes ought not to pay for your bags of Fudge Rounds
Young men are puttin' themselves six feet in the ground
'Cause all this damn country does is keep on kickin' them down
[Pre-Chorus]
Lord, it's a damn shame what the world's gotten to
For people like me and people like you
Wish I could just wake up and it not be true
But it is, oh, it is
[Chorus]
Livin' in the new world
With an old soul
These rich men north of Richmond
Lord knows they all just wanna have total control
Wanna know what you think, wanna know what you do
And they don't think you know, but I know that you do
'Cause your dollar ain't shit and it's taxed to no end
'Cause of rich men north of Richmond
[Outro]
I've been sellin' my soul, workin' all day
Overtime hours for bullshit pay
Cette vidéo résume bien ce que je pense depuis plusieurs années :
-
Les Russes ont été longtemps des alliés de la France au point de nous fournir de l'énergie à pas cher et d'investir dans des infrastructures partagées. Et si la Russie n'est plus notre alliée c'est à cause de la trahison ordonnée par l''UE et acceptée par les agents américains au pouvoir.
-
Les États-Unis d'Amérique quant à eux sont les alliés d'eux-mêmes et de personne d'autre. On pourrait même dire qu'ils sont les ennemis de la France depuis plusieurs années.
Mais bon, les faits vs la propagande Hollywoodienne, c'est compliqué...
Mon /
est blindé il faut donc que je fasse de la place ailleurs, par exemple sur ma partition /home
. Puisque j'ai récupéré tout un tas d'images depuis des mois, j'ai mis au point une solution abrupte mais qui fonctionne :P
Comment ai-je fait ?
- Arrêter le démon Docker.
- Déplacer le contenu du dossier
/var/lib/docker
dans/home/docker
. - Supprimer
/var/lib/docker
. - Créer à la place un lien symbolique qui pointe vers
/home/docker
. - Redémarrer le démon Docker.
Je travaille en ce moment sur deux projets, un en Java/Kotlin pour des clients, un second en Rust pour des besoins internes, et j'ai réalisé la chose suivante :
- En Java/Kotlin, le langage est fait pour vous aider mais vous allez vous battre contre les frameworks.
- En Rust, les frameworks sont faits pour vous aider mais vous allez vous battre contre le langage.
C'est incroyable à quel point le borrow checker vous pousse à écrire du code procédurale et mécaniquement intestable. Dès l'instant où l'on souhaite passer par des traits tout devient ultra compliqué. Dernièrement je me suis faite avoir en utilisant des Rc
et des RcCell
sur un code qui allait devenir multi-thread #Horreur
Pour moi, casser le couplage entre deux composants via une interface/trait est IN-DIS-PEN-SABLE mais Rust pousse à définir des structures comme contrat d'interfaçage principal entre deux pans de code.
Forcément, le langage se transforme en enfer dès l'instant où l'on souhaite dépendre d'un trait et non d'une structure (c'est pourtant le 'I' de SOLID, dépendre des Interfaces mais pas des Implémentations).
En même temps je l'avais déjà dit par le passé, le paradigme fonctionnel pur est un cancer métastasé car l'expressivité de la syntaxe donne le sentiment que des tests ne sont pas nécessaires or c'est toujours faux.
Et j'ai suffisamment souffert de Java dans ma vie pour haïr le fait de devoir mocker/instancier/déclarer quarante-douze-mille trucs avant de pouvoir tester une simple fonction.
Bref, deux ans sur Rust à temps partiel et je me vois retourner dans le RustBook tous les 4 mois pour y chercher un truc #Pénible alors qu'en Kotlin ça ne m'arrive jamais.
Pour faire simple :
-
Le plus sécurisé est
/dev/random
mais si l'entropie du système n'est pas suffisante, il bloque la génération de nombres jusqu'à atteindre un seuil convenable. -
Le moins sécurisé est
/dev/urandom
qui est non-bloquant et donc aussi le plus rapide. -
Entre les deux précédents se trouve
/dev/arandom
.
Pour de la sécurité pure utilisée en cryptographique par exemple, /dev/random
est le seul qu'il faut utiliser. Pour générer un sel pour des mots de passe /dev/urandom
peut tout à fait convenir.
@Kysofer tu cherchais une implémentation de Twig en Rust mais Twig est inspiré de Jinja2 donc Tera qui est une implémentation de Jinja2 en Rust est compatible avec tes composants Twig écrits pour Pebble 😋 #Cadeau
Du coup nous avons la stack
- Kotlin + Pebble + Jooby + H2DB/PostreSQL pour les projets en clientèle.
- Rust + Tera + Actix + SQLite pour les projets internes.
@Sebsauvage souviens-toi du slogan de cette pub en 2009
Il y a internet et internet par Orange...
Ils nous avaient pourtant prévenu que leur service n'était pas comme les autres...
Je reprends officiellement ton terme "merdification" qui est particulièrement bien trouvé.
Le site Adoptium.net n'est pas pratique car c'est un lien généré par JavaScript qui indique où se trouve le binaire à récupérer.
Lorsque l'on doit automatiser la récupération des mises à jour d'une JRE/d'un JDK, il vaut mieux passer par le répo GitHub dans lequel l'emplacement des fichiers est normalisé car cela rend la récupération scriptable.
Les deux URL sont :