Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
MemorizingTrustManager — Un "plugin" per Android Java per consentire di chiedere all'utente informazioni sui certificati SSL | Kitploit
Strumenti/GitHubGitHub/ge0rg/memorizingtrustmanager
Sicurezza AndroidStrumenti DifensiviSicurezza di ReteCrittografiaSicurezza MobileAutenticazione
GitHubge0rg/memorizingtrustmanager

MemorizingTrustManager

Un "plugin" per Android Java per consentire di chiedere all'utente informazioni sui certificati SSL

Vedi Repository
1818933 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

MemorizingTrustManager - Supporto cloud privato per la tua app

MemorizingTrustManager (MTM) è un progetto per abilitare un uso più intelligente e sicuro di SSL su Android. Se incontra un certificato SSL sconosciuto, chiede all'utente se accettare il certificato una volta, permanentemente, o se interrompere la connessione. Questo è un passo nella prevenzione degli attacchi man-in-the-middle basati sull'accettazione cieca di certificati non validi, autofirmati e/o scaduti.

MTM mira a fornire un'integrazione senza soluzione di continuità nella tua applicazione Android, e il codice sorgente è disponibile sotto licenza MIT.

Screenshot

Finestra di dialogo di MemorizingTrustManager Notifica di MemorizingTrustManager Finestra di dialogo del nome server di MemorizingTrustManager

Stato

MemorizingTrustManager è in uso in produzione nel client XMPP yaxim. È utilizzabile e facile da integrare, anche se non supporta ancora la validazione del nome host (l'API Java rende difficile l'integrazione).

Integrazione

MTM è facile da integrare nella tua applicazione. Segui questi passaggi oppure dai un'occhiata all'applicazione demo nella directory example.

1. Aggiungi MTM al tuo progetto

Scarica il sorgente di MTM da GitHub, oppure aggiungilo come sottomodulo git:

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

Poi aggiungi una dipendenza di progetto libreria a default.properties:

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

2. Aggiungi l'Activity (popup) di MTM al tuo manifest

Modifica il tuo AndroidManifest.xml e aggiungi l'elemento activity di MTM subito prima della fine del tuo tag </application> di chiusura.

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

3. Collega MTM come TrustManager predefinito per il tuo tipo di connessione

Collegamento di MemorizingTrustManager nelle connessioni 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()));

Per SSLSocket dovresti fare quanto segue:

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);
}

Oppure, per Smack puoi usare 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()));

Di default, MTM ripiega sul TrustManager di sistema prima di chiedere all'utente. Se non ti fidi dell'establishment, puoi imporre una finestra di dialogo a ogni nuova connessione fornendo un parametro defaultTrustManager = null al costruttore:

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

Se vuoi usare un TrustManager sottostante diverso, come AndroidPinning, fornisci semplicemente quello al costruttore di MTM:

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

4. Profitto!

Logging

MTM usa java.util.logging (JUL) per scopi di logging. Se non hai configurato un Handler per JUL, Android registrerà di default tutti i messaggi di Level.INFO o superiore. Per ottenere anche i messaggi di log di debug (quelli con Level.FINE o inferiore) devi configurare un Handler di conseguenza. Il progetto di esempio di MTM contiene de.duenndns.mtmexample.JULHandler, che consente di abilitare e disabilitare il logging di debug a runtime.

Alternative

MemorizingTrustManager non è l'unico in circolazione.

NetCipher è una libreria Android realizzata dal Guardian Project per migliorare la sicurezza di rete delle app mobili. Include uno StrongTrustManager per effettuare controlli dei certificati più approfonditi, un archivio di CA root indipendente e codice per instradare facilmente il tuo traffico attraverso la rete Tor usando Orbot.

AndroidPinning è un'altra libreria Android, scritta da Moxie Marlinspike per consentire il pinning dei certificati del server, migliorando la sicurezza contro attacchi MitM su scala governativa. Usala se la tua app è progettata per comunicare con un server specifico!

Contribuisci

Per favore, aiuta a tradurre MTM in più lingue!

Scarica lo strumento