Je souhaite utiliser le protocole HTTPS pour sécuriser la communication entre mon client et le serveur. La première communication cryptée sera utilisée pour authentifier l'utilisateur - c'est-à-dire vérifier son nom d'utilisateur et son mot de passe. Après que les informations d'identification de l'utilisateur seront vérifiées avec succès par le serveur, je voudrais commencer à obtenir des données dans les demandes suivantes. MAIS comment le serveur déterminera que la requête suivante est envoyée par l'utilisateur, dont les informations d'identification ont déjà été vérifiées? Comme la connexion TCP peut être fermée entre la connexion et les requêtes HTTPS suivantes, cela signifie que le contexte SSL doit être libéré par le serveur, donc avec la nouvelle requête GET, la nouvelle connexion TCP doit être établie et la nouvelle négociation SSL (TLS) doit être faite (ie nouveau mot de passe partagé pour le cryptage doit être échangé par les deux côtés, etc.)Utilisation de HTTPS pour la communication client-serveur
Pour cela je pense que le serveur doit renvoyer au client en 200 réponse OK pour le l'authentification initiale demande un nonce généré aléatoirement (qui est valide pour un certain temps), que j'inclurai dans chaque requête suivante, afin que le serveur puisse détecter, sur la base de ce nonce généré aléatoirement, quel nom d'utilisateur est derrière la requête et vérifiez que cet utilisateur est déjà connecté. s ma compréhension est-elle correcte?
Merci beaucoup pour la réponse BR Sten
Salut, merci beaucoup pour votre commentaire! Toutes les communications passent par HTTPS - sans exception. Je pensais la même chose - soit envoyer un nom d'utilisateur/mot de passe dans chaque requête ou laisser le serveur répondre à la première requête avec un peu de magie, que j'utiliserai alors dans chaque requête au lieu de répéter le nom d'utilisateur/passe (mon client n'est pas un navigateur , mais application personnalisée.).Je pense que les deux approches sont plus ou moins la même chose, tandis que la deuxième a besoin de plus de travail à faire sur le serveur. Puis-je vous demander quelle est la norme de l'industrie? L'application HTTPS est-elle conçue de telle sorte qu'elle renvoie le nom d'utilisateur/mot de passe dans chaque requête? Merci, BR STeN – STeN
@STeN: Il existe plusieurs «standards de l'industrie», selon vos besoins réels. J'ai énuméré deux ci-dessus qui sont tous deux très communs et qui ont des modes d'utilisation communs quelque peu différents. Il y en a d'autres (par exemple, les certificats clients au niveau SSL), mais ils sont moins courants et vous avez plus de chances de rencontrer des problèmes pour obtenir des implémentations portables ou de bons déploiements. –
Merci - vos conseils sont vraiment bons! – STeN