From 4d724fb37d7409c7424de83653283585f94a8094 Mon Sep 17 00:00:00 2001 From: Balint Kovacs Date: Mon, 18 Apr 2011 07:30:03 +0200 Subject: [PATCH] Implemented basics of multiple tunnel handling Also implemented accepting all server certs as my subject server had an expired certificate. Signed-off-by: Balint Kovacs --- bin/SSLDroid.apk | Bin 26689 -> 27200 bytes bin/classes.dex | Bin 16848 -> 17760 bytes src/hu/blint/ssldroid/SSLDroid.java | 15 +++++++++----- .../blint/ssldroid/TcpProxyServerThread.java | 19 ++++++++++++++++-- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/bin/SSLDroid.apk b/bin/SSLDroid.apk index 129c138079da0a2666f6d6dea57b49b1824acb8d..f25cb156f293e2f400b9b2cb24e8a6dc8f04b64c 100644 GIT binary patch delta 9691 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 X{~<`QBSvbmN_=BShpJ)wpWXigFj@bN delta 9181 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 diff --git a/bin/classes.dex b/bin/classes.dex index 1754a52c68df4b8f7204a7e50c9e43417f66b5a2..f0c2b5241b5b354355fd10d95ed1856ca42e8815 100644 GIT binary patch literal 17760 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 literal 16848 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 diff --git a/src/hu/blint/ssldroid/SSLDroid.java b/src/hu/blint/ssldroid/SSLDroid.java index 1f960d1..0e3ff43 100644 --- a/src/hu/blint/ssldroid/SSLDroid.java +++ b/src/hu/blint/ssldroid/SSLDroid.java @@ -12,7 +12,7 @@ public class SSLDroid extends Service { final String TAG = "SSLDroid"; public static final String PREFS_NAME = "MyPrefsFile"; - TcpProxy tp; + TcpProxy tp[]; @Override public void onCreate() { @@ -63,11 +63,14 @@ public class SSLDroid extends Service { //createNotification("test", "This is a test of the emergency broadcast system"); - tp = new TcpProxy(); + tp = new TcpProxy[2]; try { - tp.serve(listenPort, targetHost, targetPort, keyFile, keyPass); + tp[0] = new TcpProxy(); + tp[0].serve(listenPort, targetHost, targetPort, keyFile, keyPass); + tp[1] = new TcpProxy(); + tp[1].serve(9998, "imaps.balabit.hu", 993, keyFile, keyPass); } catch (Exception e) { - Log.d(TAG, "Error" + e.toString()); + Log.d(TAG, "Error:" + e.toString()); } } @@ -84,7 +87,9 @@ public class SSLDroid extends Service { @Override public void onDestroy() { try { - tp.stop(); + for (TcpProxy proxy : tp) { + proxy.stop(); + } removeNotification(0); Log.d(TAG, "SSLDroid Service Stopped"); } catch (Exception e) { diff --git a/src/hu/blint/ssldroid/TcpProxyServerThread.java b/src/hu/blint/ssldroid/TcpProxyServerThread.java index 74d37b4..0bc3690 100644 --- a/src/hu/blint/ssldroid/TcpProxyServerThread.java +++ b/src/hu/blint/ssldroid/TcpProxyServerThread.java @@ -23,6 +23,8 @@ import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import android.util.Log; @@ -53,7 +55,20 @@ public class TcpProxyServerThread extends Thread { } }*/ - + // Create a trust manager that does not validate certificate chains + TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return null; + } + public void checkClientTrusted( + java.security.cert.X509Certificate[] certs, String authType) { + } + public void checkServerTrusted( + java.security.cert.X509Certificate[] certs, String authType) { + } + } + }; private static SSLSocketFactory sslSocketFactory; @@ -66,7 +81,7 @@ public class TcpProxyServerThread extends Thread { keyStore.load(new FileInputStream(pkcsFile), pwd.toCharArray()); keyManagerFactory.init(keyStore, pwd.toCharArray()); SSLContext context = SSLContext.getInstance("TLS"); - context.init(keyManagerFactory.getKeyManagers(), null, + context.init(keyManagerFactory.getKeyManagers(), trustAllCerts, new SecureRandom()); sslSocketFactory = (SSLSocketFactory) context.getSocketFactory();