web-dev-qa-db-fra.com

L'application de capture de paquets une fois lancée n'a plus de connectivité Internet pour les autres applications

J'ai installé la capture de paquets sur mon Android - Samsung Galaxy S7 Edge fonctionnant Android version 8.0. Il n'est pas enraciné

J'ai suivi toutes les étapes et j'ai également installé le certificat SSL.

Voici l'application lien

Lorsque je clique sur le bouton Démarrer pour capturer le trafic, la connectivité Internet pour les applications ne fonctionne pas. Chrome fonctionne cependant sur le téléphone.

Les applications que j'ai essayées et qui ont perdu l'accès à Internet étaient Amazon, Owl Cam, Arlo

Une idée du paramètre ou des changements qui me manquent?

Recherche une question similaire sur stackoverflow sans aucune réponse

1) Question1

6

Réponse courte:

Il n'y a pas de solution complète à votre problème. Et il est impossible de le résoudre. La raison pour laquelle ce problème se produit est l'existence de "épinglage de certificat". Même un enracinement simple ne peut pas résoudre votre problème.

Il existe toujours une solution partielle. Turn off 'SSL Capture'. Ensuite, toutes les applications commenceront à fonctionner. Mais vous ne pourrez pas décrypter le contenu des paquets envoyés via une connexion SSL. Mais vous pourrez toujours voir la source et l'adresse de destination des paquets. Si votre application de reniflage de paquets n'a pas d'option pour désactiver le reniflage de paquets SSL, dans ce cas, désinstallez l'application, supprimez tout certificat d'autorité de certification personnalisé installé, puis réinstallez l'application.

Réponse longue:

Fonctionnement d'un renifleur de paquets normal (qui ne nécessite pas de root) sur Android.

Android permet à une application d'agir comme une "application de passerelle VPN". Lorsqu'une application indique à Android qu'elle souhaite fournir une connexion VPN, Android transfère tous les paquets IP destinés à Internet à partir de toutes les autres applications vers l'application VPN). L'application VPN crypte ensuite généralement ces paquets et les envoie au serveur VPN, d'où les paquets iraient à leur destination d'origine.

Les paquets Packet Sniffer utilisent la fonctionnalité mentionnée ci-dessus. Ils apparaissent comme une application VPN pour Android. Ainsi, une fois activé, Android enverra tout le trafic IP à cette application. Mais pour les transférer vers un serveur VPN, l'application Packet Sniffer les enverrait simplement à leur destination d'origine. façon dont les applications Packet Sniffer agissent simplement comme un proxy transparent. L'application est capable de gérer tout le trafic entrant et sortant. Ces applications agissent essentiellement comme un "homme du milieu".

TSL/SLL et autorité de certification

SSL (et HTTPS) est construit presque entièrement dans le but d'empêcher tout type d'attaque "d'homme au milieu". SSL fonctionne sur une connexion normale TCP. Ce qu'il fait, c'est qu'il crypte tout le trafic qui est envoyé entre un client et un serveur avec une clé secrète qui n'est connue que du client et du serveur. Vous pouvez lire des informations plus détaillées et précises sur le fonctionnement de SSL ici

Lors de la configuration d'une connexion TLS/SSL, un appareil client demandera au serveur de montrer son certificat de signature numérique (certificat SSL AKA) prouvant que le serveur est bien celui qu'il prétend être. C'est quand Amazon App essaie de se connecter à Amazon.com, il demandera au serveur de produire un certificat de signature numérique prouvant que le serveur est en fait Amazon.com. Lorsque le serveur renvoie le certificat, l'application demande Android Système d'exploitation si le certificat est signé numériquement par une personne Android
fiducies. Si le certificat est en fait signé par une autorité de certification (CA) que le système d'exploitation Android) approuve, la connexion se poursuit. Sinon, l'application affichera une erreur indiquant qu'elle ne peut pas se connecter.

Comment les applications Packet Sniffing sont-elles normalement capables de renifler les paquets TLS/SSL?

Les applications Packet Sniffer demanderont à l'utilisateur d'installer un certificat CA personnalisé sur le système sur Android. Ce certificat CA (autorité de certification) fera en sorte que l'application Packet Sniffer soit traitée en tant qu'autorité émettrice de certificat TSL/SSL légitime et approuvée sur cet appareil.

Désormais, toutes les applications par défaut acceptent un certificat TSL/SSL signé par l'application Packet Sniffer. Donc, si une application comme Amazon App tente d'établir une connexion SSL/TLS/HTTPS pendant que l'application Packet Sniffer est en cours d'exécution, l'application PacketSniffer établira des connexions TLS/SSL/HTTPS - une entre Amazon App et Packet Sniffer, une autre entre le Packet Sniffer et le serveur Amazon.com. Le Packet Sniffer affichera un faux certificat SSL affirmant qu'il s'agit en fait du serveur Amazon.com. Étant donné que Android fait maintenant confiance à tout certificat SSL signé par l'application Packet Sniffer, la connexion continue à tromper l'application Amazon.

De cette façon, une application Packet Sniffer pourrait normalement capturer et décrypter même les paquets envoyés via une connexion SSL.

Épinglage de certificat

Si une application de détection de paquets comme celle décrite ci-dessus peut décrypter les informations envoyées via une connexion SSL, la même chose peut également être effectuée par une personne malveillante. Tout ce qu'il doit faire est de convaincre l'utilisateur d'installer son certificat CA sur Android. Ensuite, il sera en mesure de lire tous les messages WhatsApp, les mots de passe bancaires des applications bancaires, les informations de carte de crédit que l'application Amazon envoie à Amazon.com ... et ce qui ne l'est pas.

Les créateurs de certaines applications, en particulier celles qui gèrent des données hautement confidentielles comme les détails de carte de crédit, ont décidé qu'ils ne pouvaient plus faire confiance à Android OS (ou iOS, Ubuntu et Windows) pour déterminer si l'application est en fait connecté ou non au serveur légitime.

Ils ont donc commencé à suivre la pratique de certificate pinning.

Ce que les fabricants de ces applications font, c'est qu'ils peuvent soit incorporer une copie du certificat SSL du serveur lui-même dans l'application, soit incorporer une copie du certificat SSL d'une autorité de certification qu'ils utilisent.

Ces applications compareraient alors tout certificat produit par le serveur avec les certificats intégrés à l'application. S'ils ne correspondent pas, les applications refuseront simplement de se connecter. Ces applications ne font pas confiance au système d'exploitation. Par conséquent, le certificat d'autorité de certification personnalisé que l'application Packet Sniffer a installé n'aurait aucun effet sur ces applications.

Il n'y a aucun moyen connu de contourner facilement l'épinglage de certificat (autre que la décompilation de chaque application et le remplacement du certificat intégré, cela aussi sur un appareil rooté). L'épinglage de certificats existe uniquement dans le but d'empêcher exactement ce que vous essayez de réaliser. Si vous activez le reniflement SSL sur votre application Packet Sniffer, toutes les applications qui utilisent l'épinglage de certificat cesseront de fonctionner.

Solution

Éteindre SSL Capture. Si votre application de reniflage de paquets n'a pas d'option pour désactiver le reniflage de paquets SSL, dans ce cas, désinstallez l'application, supprimez tout certificat d'autorité de certification personnalisé installé, puis réinstallez l'application.

8
Vishnuprasad R