Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
MemorizingTrustManager — Un « plugin » pour Android Java permettant d'interroger l'utilisateur au sujet des certificats SSL. | Kitploit
Outils/GitHubGitHub/ge0rg/memorizingtrustmanager
Sécurité AndroidOutils DéfensifsSécurité RéseauCryptographieSécurité MobileAuthentification
GitHubge0rg/memorizingtrustmanager

MemorizingTrustManager

Un « plugin » pour Android Java permettant d'interroger l'utilisateur au sujet des certificats SSL.

Voir le dépôt
18189il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

MemorizingTrustManager - Prise en charge du cloud privé pour votre application

MemorizingTrustManager (MTM) est un projet visant à permettre une utilisation plus intelligente et plus sûre de SSL sur Android. S'il rencontre un certificat SSL inconnu, il demande à l'utilisateur d'accepter le certificat une fois, de manière permanente ou d'interrompre la connexion. Il s'agit d'une étape dans la prévention des attaques de l'homme du milieu, en évitant d'accepter aveuglément tout certificat invalide, auto-signé et/ou expiré.

MTM vise à fournir une intégration transparente dans votre application Android, et le code source est disponible sous licence MIT.

Captures d'écran

MemorizingTrustManager dialog MemorizingTrustManager notification MemorizingTrustManager server name dialog

Statut

MemorizingTrustManager est utilisé en production dans le client XMPP yaxim. Il est utilisable et facile à intégrer, même s'il ne prend pas encore en charge la validation du nom d'hôte (l'API Java rend son intégration difficile).

Intégration

MTM est facile à intégrer dans votre propre application. Suivez ces étapes ou jetez un œil à l'application de démonstration dans le répertoire example.

1. Ajouter MTM à votre projet

Téléchargez le code source de MTM depuis GitHub ou ajoutez-le comme sous-module git :

root@kitploit:~
# plain download:
git clone https://github.com/ge0rg/MemorizingTrustManager
# submodule:
git submodule add https://github.com/ge0rg/MemorizingTrustManager

Ajoutez ensuite une dépendance de projet de bibliothèque à default.properties :

root@kitploit:~
android.library.reference.1=MemorizingTrustManager

2. Ajouter l'activité MTM (popup) à votre manifeste

Modifiez votre AndroidManifest.xml et ajoutez l'élément d'activité MTM juste avant la fin de votre balise </application> fermante.

root@kitploit:~
		...
		<activity android:name="de.duenndns.ssl.MemorizingActivity"
			android:theme="@android:style/Theme.Translucent.NoTitleBar"
			/>
	</application>
</manifest>

3. Brancher MTM comme TrustManager par défaut pour votre type de connexion

Brancher MemorizingTrustManager dans les connexions HTTPS :

root@kitploit:~
// register MemorizingTrustManager for HTTPS
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(
	mtm.wrapHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier()));

Pour SSLSocket, vous devez procéder comme suit :

root@kitploit:~
// register MemorizingTrustManager for all SSLSockets
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
HostnameVerifier hv = mtm.wrapHostnameVerifier(new org.apache.http.conn.ssl.StrictHostnameVerifier());
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
SSLContext.setDefault(sc);

// connect a socket
SSLSocket s = ...;
s.startHandshake();
if (!hv.verify(your_domain_name, sslSocket.getSession())) {
    throw new CertificateException("Server failed to authenticate as " + your_domain_name);
}

Ou, pour Smack, vous pouvez utiliser setCustomSSLContext() :

root@kitploit:~
org.jivesoftware.smack.ConnectionConfiguration connectionConfiguration = …
SSLContext sc = SSLContext.getInstance("TLS");
MemorizingTrustManager mtm = new MemorizingTrustManager(this);
sc.init(null, new X509TrustManager[] { mtm }, new java.security.SecureRandom());
connectionConfiguration.setCustomSSLContext(sc);
connectionConfiguration.setHostnameVerifier(
	mtm.wrapHostnameVerifier(new org.apache.http.conn.ssl.StrictHostnameVerifier()));

Par défaut, MTM revient au TrustManager système avant de demander à l'utilisateur. Si vous ne faites pas confiance à l'établissement, vous pouvez imposer une boîte de dialogue pour chaque nouvelle connexion en fournissant un paramètre defaultTrustManager = null au constructeur :

root@kitploit:~
MemorizingTrustManager mtm = new MemorizingTrustManager(this, null);

Si vous souhaitez utiliser un TrustManager sous-jacent différent, comme AndroidPinning, fournissez-le simplement au constructeur de MTM :

root@kitploit:~
X509TrustManager pinning = new PinningTrustManager(SystemKeyStore.getInstance(),
	new String[] {"f30012bbc18c231ac1a44b788e410ce754182513"}, 0);
MemorizingTrustManager mtm = new MemorizingTrustManager(this, pinning);

4. Profitez-en !

Journalisation

MTM utilise java.util.logging (JUL) à des fins de journalisation. Si vous n'avez pas configuré de Handler pour JUL, Android journalisera par défaut tous les messages de niveau INFO ou supérieur. Pour obtenir également les messages de journalisation de débogage (ceux de niveau FINE ou inférieur), vous devez configurer un Handler en conséquence. Le projet d'exemple MTM contient de.duenndns.mtmexample.JULHandler, qui permet d'activer et de désactiver la journalisation de débogage à l'exécution.

Alternatives

MemorizingTrustManager n'est pas le seul outil existant.

NetCipher est une bibliothèque Android créée par le Guardian Project pour améliorer la sécurité réseau des applications mobiles. Elle est livrée avec un StrongTrustManager pour effectuer des vérifications de certificats plus approfondies, un magasin de CA racines indépendant et du code pour acheminer facilement votre trafic via le réseau Tor en utilisant Orbot.

AndroidPinning est une autre bibliothèque Android, écrite par Moxie Marlinspike pour permettre l'épinglage des certificats de serveurs, améliorant ainsi la sécurité contre les attaques MitM à l'échelle gouvernementale. Utilisez-la si votre application est conçue pour communiquer avec un serveur spécifique !

Contribuer

Merci d'aider à traduire MTM dans davantage de langues !

Télécharger l’outil