Avant Android KitKat, vous devez rooter votre appareil pour installer de nouveaux certificats.
De Android KitKat (4.0) à Nougat (7.0) c'est possible et facile. J'ai pu installer le Charles Web Debbuging Proxy cert sur mon appareil non rooté et renifler avec succès le trafic SSL.
Extrait de http://wiki.cacert.org/FAQ/ImportRootCert
Avant la version 4.0 d'Android, avec les versions Gingerbread et Froyo, il existait un seul fichier en lecture seule ( /system/etc/security/cacerts.bks ) contenant le magasin de confiance avec tous les certificats de l'autorité de certification ("système") reconnus par défaut sur Android. Les applications système et toutes les applications développées avec le SDK Android l'utilisent. Utilisez ces instructions pour installer les certificats CAcert sur Android Gingerbread, Froyo, ...
Depuis Android 4.0 (Android ICS/'Ice Cream Sandwich', Android 4.3 'Jelly Bean' et Android 4.4 'KitKat'), les certificats de confiance du système se trouvent sur la partition système (en lecture seule) dans le dossier '/system/etc/security/' sous forme de fichiers individuels. Cependant, les utilisateurs peuvent maintenant facilement ajouter leurs propres certificats "utilisateur" qui seront stockés dans "/data/misc/keychain/certs-added".
Les certificats installés par le système peuvent être gérés sur l'appareil Android dans Paramètres -> Sécurité -> Certificats -> section "Système", tandis que les certificats de confiance de l'utilisateur sont gérés dans la section "Utilisateur". Lorsqu'il utilise des certificats approuvés par l'utilisateur, Android oblige l'utilisateur de l'appareil Android à mettre en œuvre des mesures de sécurité supplémentaires : l'utilisation d'un code PIN, d'un verrouillage par motif ou d'un mot de passe pour déverrouiller l'appareil est obligatoire lorsque des certificats fournis par l'utilisateur sont utilisés.
Il est très facile d'installer des certificats CAcert en tant que certificats de confiance pour l'utilisateur. L'installation de nouveaux certificats en tant que certificats "system trusted" demande plus de travail (et nécessite un accès Root), mais elle a l'avantage d'éviter l'exigence de l'écran de verrouillage Android.
À partir d'Android N cela devient un peu plus difficile, voir cet extrait de la Site web de la procuration Charles :
A partir d'Android N, vous devez ajouter une configuration à votre application afin de qu'elle fasse confiance aux certificats SSL générés par Charles SSL Proxying. Cela signifie que vous pouvez uniquement utiliser le proxy SSL avec les applications que vous contrôlez.
Afin de configurer votre application pour qu'elle fasse confiance à Charles, vous devez ajouter un fichier de configuration de la sécurité réseau à votre application. Ce fichier peut remplacer la valeur par défaut du système, permettant ainsi à votre application de faire installés par l'utilisateur (par exemple, le certificat racine de Charles). Vous pouvez spécifier que cela ne s'applique qu'aux constructions de débogage de votre application, de sorte que les versions de production utilisent le profil de confiance par défaut.
Ajoutez un fichier res/xml/network_security_config.xml à votre application :
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Ajoutez ensuite une référence à ce fichier dans le manifeste de votre application, comme suit :
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
0 votes
Vous pouvez supposer que vous avez un téléphone rooté ici :)