L'histoire de la séparation de l'authentification asynchrone et synchrone

Je ne parle pas de technologie ici, je pense juste

Le certificat gratuit remplace les cookies du navigateur

Le cookie de navigateur est un mécanisme de session utilisé pour maintenir une connexion courte entre le client et le serveur dans les années 1990, mais dans la 18e année de ce siècle, le cookie s'est retiré du stade de l'historique. Si vous ne me croyez pas, consultez la méthode de requête http actuelle par défaut. Avec cookie, comme indiqué ci-dessous:

Le cookie fait ici référence au mécanisme de cookie fourni avec le navigateur, qui est un concept étroit. Les cookies du navigateur ont été éliminés et remplacés par des informations d'identification de session personnalisées telles que JWT.

La première utilisation de cookies sur Internet (applications hors laboratoire) consiste à déterminer si l'utilisateur visite ce site pour la première fois sur le site Web de Netscape.

La raison pour laquelle les cookies sont éliminés est simple: les cookies sont en service pour les principaux navigateurs depuis 24 ans et finissent par devenir gonflés. Pour faire simple, le mécanisme des cookies n'est pas assez flexible, il est obligatoire d'envoyer / recevoir et ne peut pas être personnalisé à la demande. Plus tard, pour des raisons de compatibilité descendante, une étrange fonction http uniquement a été introduite. L'expansion compliquée a intensifié l'expansion des cookies, et le lourd fardeau historique a finalement été supprimé. Avec les cookies cassés, les développeurs modernes sont plus enclins à créer leurs propres informations d'identification de session, à envoyer / recevoir / stocker les informations d'identification à la demande, et également à traverser les domaines. JWT est une spécification de format de certificat gratuit, et elle est très simple, donc la plupart des «abonnés aux certificats gratuits» sont prêts à utiliser JWT, moi y compris.

 

Authentification unique, pas d'authentification de session (monde imaginaire sans authentification synchrone)

L'authentification et la rétention de session sont deux concepts. L'authentification est unique. Après la première authentification, une session permanente est formée grâce aux informations d'identification (un certain nombre aléatoire) enregistrées par le client. Il s'agit du système d'authentification standard actuel. Quel genre de monde serait-ce si l'authentification et la session n'étaient pas séparées?

Rappelons la logique de base de l'authentification: supposons qu'il y ait un site Web de forum, le serveur doit authentifier chaque demande d'utilisateur, pour déterminer qui est le demandeur, et les informations "qui" sont généralement stockées dans la base de données. Pour se rendre compte que les utilisateurs peuvent librement publier et lire des messages, la méthode la plus simple et la plus violente consiste à transporter un nom d'utilisateur et un mot de passe dans le package http à chaque fois qu'ils le demandent (quels que soient les problèmes de sécurité du réseau ou utilisent https), et le serveur doit vous traiter à chaque fois Effectuer l'authentification (faire correspondre le nom d'utilisateur et le mot de passe dans la base de données).

C'est un peu comme le charme du tigre utilisé pour envoyer des troupes et des généraux dans la Chine ancienne. Un jeton en forme de tigre est en bronze ou en or et divisé en deux moitiés. Une moitié est donnée au général et l'autre moitié est conservée par l'empereur. Seuls deux breloques tigre peuvent être utilisées en même temps pour envoyer des troupes. Tiger Symbol est un peu comme le bouclier USB qui vous est donné par Hyundai Bank (certains appelés K Bao, 囧), de toute façon, c'est un petit token USB, qui équivaut à un certificat qui vous est délivré par la banque.

Mais ce modèle a un défaut fatal, il ignore la complexité de l'authentification.

 

L'authentification doit être un processus chronophage (authentification asynchrone)

De nos jours, il est rare de voir des sites Web qui peuvent se connecter en entrant un nom d'utilisateur et un mot de passe. Les sites Web avec un peu de sensibilisation à la sécurité utiliseront diverses méthodes comme les systèmes Tencent et Ali (connexion WeChat, vérification par SMS mobile, nouveau Interception de connexion de l'appareil, code de vérification d'image, reconnaissance faciale ...) pour vous authentifier et vous assurer que vous vous connectez avec succès. Ces processus d'authentification vous consomment au moins 10 secondes (un peu comme une tâche asynchrone).

L'ancienneté de la «connexion en un clic avec nom d'utilisateur et mot de passe» est révolue. La correspondance entre le nom d'utilisateur et le mot de passe dans la base de données se fait en millisecondes (un peu comme une tâche de synchronisation). Cet ancien système d'authentification n'est pas sûr.

 

Séparation de l'authentification et de la maintenance de session (séparation de l'authentification asynchrone et synchrone)

Ainsi, à l'ère d'Internet, le concept de «session (y compris de nombreux synonymes: connexion longue, avec état…)» a émergé. Pour faciliter la compréhension, pardonnez-moi d'avoir inventé deux nouveaux concepts: l'authentification asynchrone et l'authentification synchrone. L'authentification asynchrone fait référence à l'authentification qui prend du temps avant l'établissement d'une longue connexion. Par exemple, vous pouvez prendre une gorgée de café et faire d'autres choses en attendant quelques secondes tout en scannant le code sur votre téléphone mobile pour vous connecter, c'est donc appelé asynchrone. L'authentification synchrone fait référence à l'achèvement de l'authentification asynchrone et à l'enregistrement des informations d'identification (JWT ou cookie). Le serveur vérifie les informations d'identification à une vitesse de quelques millisecondes. Pendant cette période, vous n'avez aucune chance de faire autre chose, c'est donc appelé synchronisation.

Contrairement aux temps anciens, toutes les authentifications sur Internet, y compris Internet d'origine, sont asynchrones. Le modèle d'authentification Internet actuel est essentiellement le processus suivant: effectuez d'abord une authentification asynchrone, entrez un mot de passe ou des données biométriques, puis le serveur génère des informations d'identification aléatoires que vous seuls connaissez. , Pendant la période de validité du certificat, vous n'avez pas besoin d'effectuer une authentification asynchrone, mais plutôt une simple authentification synchrone. Une fois les informations d'identification expirées, vous et le serveur supprimerez les amis (supprimez les informations d'identification expirées), la session se termine et attendez la prochaine authentification asynchrone.

Bien sûr, beaucoup de gens connaissent ce principe simple, je viens de décrire l'ensemble du processus dans un autre style.

merde, j'avais initialement prévu d'écrire un tutoriel d'introduction à JWT. Je ne m'attendais pas à écrire plus de 1000 mots pour présenter les connaissances de base. Ensuite, le titre de cet article a simplement été changé.

Oh oui, bonne année!

(Terminer)

Je suppose que tu aimes

Origine blog.csdn.net/github_38885296/article/details/103798025
conseillé
Classement