Maison > développement back-end > Golang > le corps du texte

Obtenir les informations TLS du client

WBOY
Libérer: 2024-02-09 12:27:09
avant
1216 Les gens l'ont consulté

从客户端获取 TLS 信息

l'éditeur php Baicao vous présentera comment obtenir les informations TLS du client. Pendant le processus de développement du site Web, l'obtention des informations TLS du client est très importante pour mettre en œuvre certaines fonctions liées à la sécurité. TLS est un protocole de cryptage utilisé pour sécuriser les communications réseau. En obtenant les informations TLS du client, nous pouvons obtenir les informations de certificat du client, l'algorithme de cryptage, la longueur de la clé et d'autres informations connexes, améliorant ainsi la sécurité du site Web. Dans les articles suivants, nous expliquerons en détail comment obtenir les informations TLS du client et comment appliquer ces informations pour améliorer la sécurité du site Web.

Question content

net/http go package a une requête de type qui définit une sauvegarde ConnectionState 的字段 TLS。不过,描述中的最后一条语句表示它被 HTTP 客户端忽略。我在调试时也检查过,它是 nil.

Je dois obtenir la valeur TLSUnique de cet état de connexion (ou ailleurs) afin de pouvoir l'inclure dans ma demande de certificat (alias CSR) avant de pouvoir l'enregistrer/l'envoyer au serveur.

Le serveur dépasse le cadre de ma question. Ce qui m'importe, c'est le client.

Le serveur reçoit alors la requête et vérifie la signature du CSR ainsi que la valeur unique TLS, prouvant que le client établissant la connexion TLS est le même client qui a signé le CSR.

Ceci provient de la RFC 7030 - Section 3.5 (Protocole EST)

[Ce que j'utilise]

J'expérimente les packages GlobalSign EST Go, mais ils ne semblent pas inclure cette fonctionnalité.

Leur client EST semble créer un client http pour chaque opération EST, j'ai pensé que je pourrais changer ce comportement et avoir un client auquel envoyer toutes les requêtes.

Cependant, puisque le client accepte l'interface RoundTripper, je ne peux pas utiliser les informations de connexion sous-jacentes en dehors de l'implémentation.

Solution de contournement

Une approche nécessite d'apporter quelques petites modifications au package EST de symbole global.

Comme je l'ai déjà dit, l'implémentation actuelle crée un nouveau client http pour chaque opération EST (CACerts, CSRAttrs, Enroll, etc.)

1- Utilisons un client http pour toutes les opérations EST.
2- Dans tous les cas, nous devons appeler pour obtenir le certificat CA avant d'enregistrer le CSR.
3- La réponse http à toute demande client exposera des champs http.Response.TLS.TLSUnique.
4- Demandez au client de l'inclure dans la demande de certificat, de le signer et de l'enregistrer.

Quand je pense au package EST de symbole globalet pourquoi ils choisissent de créer un nouveau client http à chaque fois.
(À moins d'attendre simplement que des exemples soient utilisés selon les souhaits des utilisateurs)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!