Tags : https, tls
20 avril 2023
publié par 

Lorsqu'une application télécharge du contenu en HTTPS (appel API REST, webservice SOAP, récupération de pages ou images d'un serveur web…), les données qui transitent sont chiffrées. La "négociation" de la version de TLS utilisée est automatique comme décrit dans un billet précédent.

La version 28 apporte une nouveauté dans le domaine, en permettant de connaître la version de TLS qui a été négociée lors de la récupération d'un contenu.

Deux nouvelles propriétés du type httpRequête sont proposées : VersionSSLChoisie, et CipherChoisi.

 

Voici un exemple d'utilisation :

 

cMaRequête est un httpRequête
cMaRequête.URL = "https://pcsoft.fr"
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)
SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
Trace(cMaRéponse.CodeEtat)
SELON cMaRequête.VersionSSLChoisie
CAS ProtocoleTLS1 : Trace("TLS 1.0")
CAS ProtocoleTLS1_1 : Trace("TLS 1.1")
CAS ProtocoleTLS1_2 : Trace("TLS 1.2")
CAS ProtocoleTLS1_3 : Trace("TLS 1.3")
FIN
Trace("CIPHER "+cMaRequête.CipherChoisi)
FIN


En fonction du domaine métier et du niveau de sécurité attendu, on peut donc tester la version de TLS qui a été retenue, pour donner une information :

SI cMaRequête.VersionSSLChoisie DANS (ProtocoleTLS1_2, ProtocoleTLS1_3) ALORS
Trace("OK")
SINON
Trace("Oups, ce serveur n'est pas assez sûr, demandez sa mise à jour...")
FIN


Bon à savoir : lorsque des appels sont répétés vers une même adresse, il est possible que VersionSSLChoisie, ou CipherChoisi ne retournent pas toujours la même information :

  • Lorsque l'adresse donnée en URL est envoyée par la fonction RESTEnvoie ou HTTPEnvoie, si un seul serveur répond à l'adresse, la version de TLS et le cipher reste toujours le même (tant que la sécurité du serveur n'est pas touchée).
  • Par contre, si les infrastructures contactées sont importantes, il se peut que le domaine appelé dispose de plusieurs frontaux pour répartir la charge des demandes. Dans ce cas, même si l'url reste constante, il se peut que la version de TLS ou le cipher change, si tous les serveurs qui répondent n'ont pas strictement la même configuration de leur sécurité.

< Retour

2 commentaires

Grégory FROGÉ
26/03/2025 - 08:45  - Répondre
Bonjour Comment bénéficier de la propriété VersionSSLChoisie sur un webservice SOAP importé et consommé directement dans Windev sans passer par une variable de type httprequete ? Merci.

Guillaume Bayle
27/03/2025 - 09:55  - Répondre
Bonjour, les propriétés sont pour le type httpRequete dans l'immédiat. L'ajout pour d'autres types a été suggéré à l'équipe développement. En attendant, il est possible de joindre le serveur qui héberge le webservice avec un HTTPEnvoie pour récupérer l'information. N'hésitez pas à contacter notre support en cas de besoin.

Publier un commentaire : 
Votre adresse email ne sera pas publiée