Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/ge0rg/memorizingtrustmanager
Seguridad AndroidHerramientas DefensivasSeguridad de RedesCriptografíaSeguridad MóvilAutenticación
GitHubge0rg/memorizingtrustmanager

MemorizingTrustManager

Un "plugin" para Android Java que permite preguntar al usuario sobre certificados SSL.

Ver Repositorio
181893hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

MemorizingTrustManager - Soporte de nube privada para tu aplicación

MemorizingTrustManager (MTM) es un proyecto para permitir un uso de SSL en Android más inteligente y seguro. Si encuentra un certificado SSL desconocido, pregunta al usuario si desea aceptar el certificado una vez, permanentemente o abortar la conexión. Esto es un paso para prevenir ataques de hombre en el medio al aceptar ciegamente certificados inválidos, autofirmados y/o caducados.

MTM está pensado para proporcionar una integración perfecta en tu aplicación Android, y el código fuente está disponible bajo la licencia MIT.

Capturas de pantalla

Diálogo de MemorizingTrustManager Notificación de MemorizingTrustManager Diálogo de nombre de servidor de MemorizingTrustManager

Estado

MemorizingTrustManager está en uso de producción en el cliente XMPP yaxim. Es utilizable y fácil de integrar, aunque todavía no soporta la validación de nombre de host (la API de Java hace que sea difícil de integrar).

Integración

MTM es fácil de integrar en tu propia aplicación. Sigue estos pasos o echa un vistazo a la aplicación de demostración en el directorio example.

1. Añade MTM a tu proyecto

Descarga el código fuente de MTM desde GitHub, o añádelo como un submódulo de git:

root@kitploit:~
# descarga directa:
git clone https://github.com/ge0rg/MemorizingTrustManager
# submódulo:
git submodule add https://github.com/ge0rg/MemorizingTrustManager

Después añade una dependencia de proyecto de biblioteca a default.properties:

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

2. Añade la Actividad (popup) de MTM a tu manifest

Edita tu AndroidManifest.xml y añade el elemento de actividad de MTM justo antes del final de tu etiqueta de cierre </application>.

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

3. Conecta MTM como el TrustManager predeterminado para tu tipo de conexión

Conectando MemorizingTrustManager en conexiones HTTPS:

root@kitploit:~
// registra MemorizingTrustManager para 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()));

Para SSLSocket deberías hacer lo siguiente:

root@kitploit:~
// registra MemorizingTrustManager para todos los 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);

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

O, para Smack puedes usar 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()));

Por defecto, MTM recurre al TrustManager del sistema antes de preguntar al usuario. Si no confías en el establecimiento, puedes forzar un diálogo en cada nueva conexión proporcionando un parámetro defaultTrustManager = null al constructor:

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

Si quieres usar un TrustManager subyacente diferente, como AndroidPinning, simplemente pásalo al constructor de MTM:

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

4. ¡Benefíciate!

Registro (logging)

MTM usa java.util.logging (JUL) para propósitos de registro. Si no has configurado un Handler para JUL, entonces Android registrará por defecto todos los mensajes de nivel INFO o superior. Para obtener también los mensajes de registro de depuración (aquellos con nivel FINE o inferior) necesitas configurar un Handler en consecuencia. El proyecto de ejemplo de MTM contiene de.duenndns.mtmexample.JULHandler, que permite habilitar y deshabilitar el registro de depuración en tiempo de ejecución.

Alternativas

MemorizingTrustManager no es el único que existe.

NetCipher es una biblioteca de Android creada por el Guardian Project para mejorar la seguridad de red de las aplicaciones móviles. Viene con un StrongTrustManager para realizar comprobaciones de certificados más exhaustivas, un almacén de CA raíz independiente y código para enrutar fácilmente tu tráfico a través de la red Tor usando Orbot.

AndroidPinning es otra biblioteca de Android, escrita por Moxie Marlinspike para permitir la fijación de certificados de servidor, mejorando la seguridad contra ataques MitM a escala gubernamental. ¡Usa esto si tu aplicación está hecha para comunicarse con un servidor específico!

Contribuye

Por favor, ayuda a traducir MTM a más idiomas!

Descargar herramienta