web-dev-qa-db-fra.com

Si le proxy SSL Charles me montre des données sensibles, ces données sont-elles non sécurisées / exposées?

Aujourd'hui, j'explorais un site Web utilisé pour suivre les notes des élèves et tout ce qui touche à l'école. Fondamentalement, comme un suivi des progrès scolaires pour votre enfant qui est utilisé par 90% des écoles de mon pays.

J'ai lancé le proxy Charles et y ai connecté mon téléphone et j'ai installé le certificat racine de Charles pour pouvoir utiliser https (le site l'utilise). Quoi qu'il en soit, je me suis connecté au site et j'ai vérifié ce que Charles a capturé.

Il a capturé un simple appel ajax avec 4 champs contenant toutes les informations de connexion. Voici une capture d'écran:

enter image description here

Tout est même étiqueté - uporabnik signifie "utilisateur" et geslo signifie "mot de passe" Donc, si je comprends bien (je ne suis vraiment qu'un débutant), tous ceux qui parviennent à capturer cela peuvent le regarder?

Est-ce possible uniquement avec un proxy ou Wireshark, par exemple, peut-il également le faire et simplement capturer des paquets via le wifi?

Mes hypothèses sont-elles vraies et si elles le sont, que dois-je faire?

22
K.Vovk

Vous semblez fondamentalement mal comprendre ce que fait TLS.

TLS prend le trafic HTTP ordinaire ordinaire, le chiffre et ajoute des vérifications d'intégrité. Avec le certificat du serveur, cela garantit

  • Confidentiality: Un attaquant qui capture le trafic réseau ne peut pas lire le contenu de la communication.
  • Integrity: Si un attaquant modifie le trafic réseau, cela entraînerait des erreurs.
  • Authenticité: Vous pouvez être sûr que votre partenaire de communication est le serveur avec lequel vous pensez communiquer. (Nous y arrivons dans une seconde.)

Si vous regardiez la communication HTTP sous-jacente, vous verriez votre nom d'utilisateur et votre mot de passe en texte clair, car c'est ce que vous avez envoyé au serveur.

Que fait le proxy maintenant?

Si vous utilisez un proxy TLS tel que Charles, vous communiquez essentiellement avec le proxy et le proxy communique avec le serveur Web. Alors, qu'est-ce qui empêche un attaquant d'utiliser simplement un proxy TLS? Le certificat!

Lorsque vous avez installé le proxy TLS, le proxy a généré un nouveau certificat CA, que vous avez ensuite importé. Cela signifie que vous avez donné au proxy le pouvoir de créer un certificat pour tout domaine . Dans le but d'être un proxy, c'est très bien.

Un attaquant devrait cependant vous obliger à importer son certificat (ou voler la clé privée de la vôtre!) Afin que vous fassiez confiance aux certificats par leur proxy.

Alors, est-ce un problème maintenant?

Non ce n'est pas. Tout fonctionne comme prévu. À la fin de la journée, lorsque vous envoyez votre nom d'utilisateur et votre mot de passe à un site Web, il doit en quelque sorte atteindre réellement ce site Web.

48
MechMK1

Comment pensez-vous que la plupart des sites Web gèrent la connexion? En envoyant des noms d'utilisateur et des mots de passe dans les données POST et en reconnaissant l'utilisateur connecté avec des cookies de session par la suite. il est tout aussi facile de comprendre que uporabnik ou ugcbuzsq est une variable qui porte des noms d'utilisateur.

C'est pourquoi la connexion est chiffrée à l'aide de TLS, et c'est aussi pourquoi vous n'avez pas pu voir ces informations avant d'installer le certificat racine du proxy Charles.

4
Esa Jokinen