dimanche 27 mai 2012

tgv-pro.mobi cassé

Je ne m'en sers jamais, mais on dirait que le site tgv-pro.mobi est cassé.

C'est quoi ?

C'est un site minimaliste qui sert à échanger les e-billets TGV. Il ne marche que pour les réservations en PRO/Fréquence/Forfait première classe. Il est prévu pour fonctionner sur les téléphones portables connectés, et bénéficie en ce moment d'une campagne de promotion par les ASCT dans les espaces PRO première des TGV.

Normalement, on entre son numéro de dossier, son nom, et ça conduit à une petite interface où l'on peut échanger ses billets rapidement.

Sauf qu'il est cassé, pour deux raisons idiotes.

Cassé en http

Normalement, ça ne devrait pas se produire. Pour un site web ouvert, il est courant d'être accessible en http (quitte à rediriger sur du https tout de suite). Là ça répond la fameuse erreur 404. Bof.

Je me suis dit que c'était peut-être une erreur due à mon navigateur. J'essaye avec un outil plus bas niveau :

quentin@terre:/tmp$ wget 'http://tgv-pro.mobi'
--2012-05-27 00:28:56--  http://tgv-pro.mobi/
Resolving tgv-pro.mobi (tgv-pro.mobi)... 217.108.85.57
Connecting to tgv-pro.mobi (tgv-pro.mobi)|217.108.85.57|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2012-05-27 00:28:56 ERROR 404: Not Found.

quentin@terre:/tmp$ 
Rien à faire, c'est cassé.

Cassé en https

Bizarrement le site marche plus ou moins en https. Cependant, il est inutilisable pour quiconque utilise firefox. Si on essaie benoîtement, ça donne ça :

L'erreur est que le site ne fournit pas entièrement sa chaîne de certificats. Explication avec un exemple sur un outil plus bas niveau (il a fallu que je mette --insecure pour avoir des détails, sinon ça s'arrête tout de suite) :

quentin@terre:/tmp$ gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt --insecure -p 443 tgv-pro.mobi
Processed 152 CA certificate(s).
Resolving 'tgv-pro.mobi'...
Connecting to '217.108.85.57:443'...
*** Verifying server certificate failed...
- Session ID: B5:E6:9C:20:25:8D:69:22:DD:EB:5F:81:E1:CE:30:19:06:10:92:AC:ED:F5:A5:C0:E9:40:AB:24:2F:15:61:56
- Certificate type: X.509
 - Got a certificate list of 1 certificates.
 - Certificate[0] info:
  - subject `CN=VSC TECHNOLOGIES,CN=tgvpro.mobi,CN=tgv-pro.vsct.fr,CN=tgv-pro.mobi,CN=mpb.vsct.fr,C=FR,postalCode=92053,ST=Hauts de Seine,L=PARIS LA DEFENSE CEDEX,STREET=BP 440,STREET=2 PL DE LA DEFENSE,STREET=CNIT 1,O=VSC TECHNOLOGIES,OU=Exploitation Applicative,CN=VSC TECHNOLOGIES', issuer `C=FR,ST=Calvados,L=Caen,O=TBS INTERNET,OU=Terms and Conditions: http://www.tbs-internet.com/CA/repository,OU=TBS INTERNET CA,CN=TBS X509 CA pro hosting', RSA key 2048 bits, signed using RSA-SHA1, activated `2012-02-08 00:00:00 UTC', expires `2013-05-26 23:59:59 UTC', SHA-1 fingerprint `f6f4c57f68ef6f0ffabdebacca6598eaf3e72be9'
- The hostname in the certificate matches 'tgv-pro.mobi'.
- Peer's certificate issuer is unknown
- Peer's certificate is NOT trusted
- Version: TLS1.0
- Key Exchange: RSA
- Cipher: ARCFOUR-128
- MAC: SHA1
- Compression: NULL
- Handshake was completed

- Simple Client Mode:

quentin@terre:/tmp$ 
Ce n'est pas l'endroit pour faire un cours sur le SSL, mais une configuration correcte implique de donner tous les certificats dans l'ordre inverse de signature afin que le client puisse valider la clef publique (avant même de parler de savoir si le client va accepter la chaîne). Ici, le serveur fournit simplement son certificat, au lieu de donner la chaîne complète qui finit normalement avec un certificat auto-signé, comme le montre l'exemple suivant :
 quentin@terre:/tmp$ gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p 443 www.eleves.ens.fr
Processed 152 CA certificate(s).
Resolving 'www.eleves.ens.fr'...
Connecting to '129.199.129.70:443'...
- Successfully sent 0 certificate(s) to server.
- Session ID: 99:A6:9F:74:7D:92:57:86:1B:45:9C:F2:10:81:B9:AA:57:3A:68:97:81:32:39:EC:76:C7:05:29:FA:8B:2B:1F
- Server has requested a certificate.
- Certificate type: X.509
 - Got a certificate list of 4 certificates.
 - Certificate[0] info:
  - subject `C=FR,O=Ecole normale supérieure,OU=Service de Prestations Informatiques,CN=www.eleves.ens.fr', issuer `C=NL,O=TERENA,CN=TERENA SSL CA', RSA key 2048 bits, signed using RSA-SHA1, activated `2011-10-03 00:00:00 UTC', expires `2014-10-02 23:59:59 UTC', SHA-1 fingerprint `3b9bd0a1c2d0552d165a6056a0432afe68d22c88'
 - Certificate[1] info:
  - subject `C=NL,O=TERENA,CN=TERENA SSL CA', issuer `C=US,ST=UT,L=Salt Lake City,O=The USERTRUST Network,OU=http://www.usertrust.com,CN=UTN-USERFirst-Hardware', RSA key 2048 bits, signed using RSA-SHA1, activated `2009-05-18 00:00:00 UTC', expires `2020-05-30 10:48:38 UTC', SHA-1 fingerprint `3a881764472b6441ddb3afdd47c6b8b76ee7ba1d'
 - Certificate[2] info:
  - subject `C=US,ST=UT,L=Salt Lake City,O=The USERTRUST Network,OU=http://www.usertrust.com,CN=UTN-USERFirst-Hardware', issuer `C=SE,O=AddTrust AB,OU=AddTrust External TTP Network,CN=AddTrust External CA Root', RSA key 2048 bits, signed using RSA-SHA1, activated `2005-06-07 08:09:10 UTC', expires `2020-05-30 10:48:38 UTC', SHA-1 fingerprint `3d4b2a4c64317143f50258d7e6fd7d3c021a529e'
 - Certificate[3] info:
  - subject `C=SE,O=AddTrust AB,OU=AddTrust External TTP Network,CN=AddTrust External CA Root', issuer `C=SE,O=AddTrust AB,OU=AddTrust External TTP Network,CN=AddTrust External CA Root', RSA key 2048 bits, signed using RSA-SHA1, activated `2000-05-30 10:48:38 UTC', expires `2020-05-30 10:48:38 UTC', SHA-1 fingerprint `02faf3e291435468607857694df5e45b68851868'
- The hostname in the certificate matches 'www.eleves.ens.fr'.
- Peer's certificate is trusted
- Ephemeral Diffie-Hellman parameters
 - Using prime: 1024 bits
 - Secret key: 1020 bits
 - Peer's public key: 1024 bits
- Version: TLS1.0
- Key Exchange: DHE-RSA
- Cipher: AES-128-CBC
- MAC: SHA1
- Compression: NULL
- Handshake was completed

- Simple Client Mode:

quentin@terre:/tmp$ 
Certes, souvent, le dernier certificat autosigné est omis. Mais dans notre cas, les gens qui ont signé le certificat de tgv-pro.mobi, TBS INTERNET ne sont pas dans la liste des certificats insérés dans firefox, donc il faut compléter la chaîne, ce que l'administrateur système a oublié de faire. Oup's.

Une fois confirmée l'exception de sécurité, on peut enfin accéder au site. Mais sur un smartphone, ce n'est même pas toujours possible.

Aucun commentaire:

Enregistrer un commentaire