Utiliser l'authentification unique
Récemment, j'ai été occupé par l'apprentissage de l'anglais ainsi que par les devoirs soudains et abondants de l'école. La page d'accueil sera temporairement mise à jour avec du contenu, et les fonctionnalités seront ajoutées ultérieurement si nécessaire.
Voici un historique de mon évolution dans la gestion de compte. Si vous souhaitez uniquement connaître la technologie que j'utilise actuellement, veuillez passer cette section.
Historique
- En 2008, lors de la création de ma première page, je souhaitais déjà implémenter des fonctionnalités de connexion et d'inscription. À l'époque, j'étais en école primaire et le maximum que je pouvais faire était une gestion de compte via Excel.
- Puis, au collège, j'ai découvert VisualBasic, ce qui m'a permis de mettre en place facilement une authentification. Mais j'ai rencontré deux problèmes : primo, les programmes VB étaient facilement décompilables, exposant les mots de passe, et je ne savais pas (ou même écrire côté serveur) comment faire une authentification en ligne. Secundo, un programme exe, surtout celui qui est fréquemment mis à jour, était difficile à présenter à des amis ou à partager (après tout, qui sait si votre programme contient un virus).
- Toujours au collège, j'ai utilisé VisualBasic pour surveiller et gérer plusieurs serveurs Windows et créer des back-ends Web basiques (retournant une simple chaîne de caractères, sans aucune norme ou format JSON). Bien sûr, j'ai aussi mis en place une authentification sur le web : une vérification de mot de passe basée sur l'erreur 404 ne trouvant pas xxx.com/password.html.
- Au lycée, PHP était considéré comme "le meilleur langage du monde". J'ai également implémenté la connexion, mais les mots de passe étaient stockés dans des fichiers. En y repensant, l'utilisation d'une base de données aurait été bien plus simple que ma méthode de stockage basée sur des fichiers, mais j'ai choisi le chemin le plus étrange et difficile parmi les options les plus simples et les plus courantes.
- À l'université, j'ai eu plus de temps libre. Désormais, j'utilise non seulement des bases de données, mais aussi diverses méthodes de bases de données et de cryptage. Voici la dernière mise à jour de mon mécanisme de gestion de compte.
Utilisation de la gestion de compte open-source
Présentation du choix
Actuellement, ma méthode de gestion de compte repose sur le contrôle de domaine combiné à l'authentification unique. Bien que je comprenne la plupart des principes et que j'aie déjà mis en œuvre ces techniques, créer une interface utilisateur complète serait un projet énorme. J'ai donc porté mon attention sur des projets open-source tels que Zitadel. Grâce au SDK de Zitadel, j'ai réussi à intégrer plusieurs plateformes, mais j'ai également rencontré de nombreux obstacles. Je n'entrerai pas dans les détails de l'intégration et du déploiement dans ce blog, j'organiserai ces informations une fois que je serai plus avancé dans ce domaine.
Points d'inquiétude et solutions (tant que je ne regarde pas, tout va bien)
- Ces projets pourraient-ils soudainement exploiter leurs utilisateurs ? Je pense que si cela arrive, il sera temps de construire le mien (ou de trouver un autre).
- Rencontrer un bug que je ne peux pas corriger est problématique ? Étant donné que c'est un projet open-source, il suffit de proposer une PR et de devenir membre de la communauté open-source.
- La divulgation de ma pile technologique pourrait-elle entraîner des attaques ciblées ? Oui, mais c'est inévitable. Même en construisant moi-même, il est difficile d'éviter les vulnérabilités, et cacher intentionnellement ma pile technologique serait compliqué, nécessitant des modifications substantielles au niveau de base ou au cœur du système. Personnellement, pour la plupart de mes projets, je ne choisis pas de cacher sciemment la technologie utilisée. Je me concentre plutôt sur la mise en place de pots de miel, la traçabilité des attaques, les pare-feu et la séparation des services et des données.
- Le système d'authentification pourrait-il subir une attaque par le trafic ? Oui, le passage par un CDN est juste pour accélérer la réponse statique. Les étapes de défense incluent : d'abord une purification par secteur (région, ASN, opérateur), puis une purification globale, suivie d'une traçabilité des attaques et de l'enregistrement des caractéristiques (le reste dépend de la loi). L'intention de l'attaque est également importante, je la divise en trois catégories : accidentelle, inévitable. Pour les attaques aléatoires, si c'est pour le plaisir... pourquoi ne pas me contacter et devenir amis, réduisant ainsi le nombre d'ennemis ? Pour les attaques malveillantes... je vous remercie ?
Attribution de compte
Actuellement, je rends publiques autant de ressources que possible, mais certaines, en raison de leur coût élevé ou pour des raisons de protection (comme le contenu de mon projet de fin d'études), nécessitent une authentification, veuillez me pardonner.
Puis-je avoir un compte ? Pour des raisons de conformité, je ne fournirai pas de canal d'enregistrement d'informations pour le moment. Si vous êtes un enseignant d'une université ou d'un institut de recherche, ou un bon ami, veuillez me contacter par e-mail ou d'autres moyens à jimmy@lzj.ac.cn. Je serai heureux de recevoir votre message.