From f9bcc1b0fd8b5ea966eb3e3a769927adc76c8dea Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 30 Aug 2023 16:36:03 +1000 Subject: [PATCH] android: Added hardcoded SSL cert to secure connection to HNSProxy --- .../8.0/executionHistory/executionHistory.bin | Bin 5729685 -> 6752154 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.0/fileHashes/fileHashes.bin | Bin 126183 -> 126533 bytes .gradle/8.0/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.0/fileHashes/resourceHashesCache.bin | Bin 20061 -> 20299 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 95075 -> 95777 bytes .../com/woodburn/hnsbrowser/WebActivity.java | 41 ++++++++++++++++-- 8 files changed, 38 insertions(+), 3 deletions(-) diff --git a/.gradle/8.0/executionHistory/executionHistory.bin b/.gradle/8.0/executionHistory/executionHistory.bin index 9cfabc2b04166e141f00bbb7d9674116cb9849d7..17b7e1345d83e247ba9cdc436c8b97d72747c58a 100644 GIT binary patch delta 27236 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 N2qo&FyYN%~e*l%pxWWJc delta 12858 zcmZu%2|QKL7k|%^5?Nk&9>cBB>NAgi2A` zXr)a>k``pif9}2G^Z9?&d_HEb_dVY;bI#11Id|S`eaZFl8P|DrI(2D{2K^0xjf!G2 zH#HEjg;1?)MpxyXqKemKyws-FynW@#RkQ2EZQh!VKQ?kut3kqX>WA9+6I4xVjot5U zG^yV&WGZ#)E({)hsN0?(T=bSgp(Y!|MLnPpMf5nh%R{y0F^G%iBtPLb0@B)4nsK(G zwNZCijZMJ#1B0!AcSSN#lR~xsEo`-e>x%G)mt_>kR zTcpvsp@y3sk;4)DpKn$8_6q4UAPAK3wY7?is612?sYG^tz}E02*1T=nYSl_hB$h*p z%{%+I;+*=|UJhav_9Inqn-;u!7=##=fXN33y72bq2bBuF_potMbK7Qtg9v4j`q*#( zt*`W`yM0=Oo$Rx3BjuHOiYpMKkYsS52ZMZ61F7u8|ENI?DL)oTwUbgR z=Ycst)t18`j>!NO{Lr0Zd%8+FB4ut@yen~TUhvxw$q$29{M2Zvyf1g^?XDlaYn^kF zFH=lv9*HtVac$I1KIgFvD_U)u0JVZws;?+OTrh13Tgt~_OYsBGcnMLX)JLX%o z0@4aphRK$%9#6hbuXWj!_r@gDc5N3z?~vV!)c>vT;$y21=}eQQ{BO(n7!r95#L&ZB zcQNSp7OZA<#g)$=eLuiyk6rzSz#yVCdiwIm?_bxCx<55*6z8{2KDy zajPwx@cZSb-6j#b8i@S|9c_8*j_)FB!pkTvHr4kg;tLSE5t!m=iq`yr?JJJz_rDAN zdMV|3AVSvwCXNOVXgc@NRoEh}4LJ!AsWp05N%|oBN(*0x*c#r_K_8VEB^;R)<@JtMQudtmhm927m4mNcqA@6Z^elYdQIU>W34wr1HlF* z$W6YwY72jeU(BWTLww5fIGquCfzkQ!D?Om9O$2OS6RW*( zow)I&oXN%{GC~>U8~{4Y;0Rxj<|MCmnDP1Z{q=wxTiO()(ckGQd1QT<8Q+oyLLZfxN zdM<999hf7~#a&vfu}gfUqedppzWY_>Ye_+*_Z%@D%nCz;h(P<3N-A~*PdPOcP9PNS zKD^NJYR;~EpeJB*;nuj?VCDOXQYa!XVKs-bHDJ)cLvx9Ns{EVtXY@N3 zA%+)}#0;E8=Vi~e5G&@Hp#_Yc^GxVvGw+M>RAe5Ri%wdMftD zrdXb{x^56QA$)HLp@~?%6@#v#yjetOuf{I#(DH_35uL*bTuJttAm726y-tyj%XZhu z*E-59YCxhl$69~uS=+yREf(ZFPiiC)aW|4N=UtR9o6wh;=OqcL$x|(cAqdqX;+4rb zkBj#&HD+PpcQ3Kii6>tpG?Sb*ky_Z!ndn`vrhmkP2A*CpoxH`dZ`tg$#o`_?X~ra! z6~>bo4>wfbEYaGfkJM?9>K1^%)mcV!7d9=i8a5NA@3gX&zknF(AW99cVacTl$rHbe zQrKS81TGlvp537_;2e&A&Pn97HE6B5a78O%>Mms#%>unR>RBP%F=E5g|J7h&f4KJZ z?BQ_^Um;Sm)MpLbQ{~qjG_ee_yWT^lAx1gY$nMWrU_Q;5E&Q~dq+D*T`o8}4BA2_- z&^(dM_}|8OYc1y-rG=I+iT$4BuxLR8VwB;L$|OtD{`%-9r`*AsqUtkA*|V_&L+alB zt*(1jVfO3asr?^)L$+TvzxxoWt0bpgJ+1Y1TfgTrWuMUD;wg))y^z36}CGAwB zTtq#I26_|A*h^!&oS_D+K4Tl7xwv-aOC4n-a~jF~W4nJkc7jbQ^w+%`-F%+9(!R5S z+LmN2+VHpeA>8qY!t#ZLcDMB~?VoSIiuzcGGccO7Fr8mdYWIilUw>Ds`}}y2c`On87!rZ D%rUcJtU=f7fP4UHzocNmJVfPY-U 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 Z)HY}IU9B9@LF6ft7i{SRRb)$9NO diff --git a/.gradle/8.0/fileHashes/fileHashes.lock b/.gradle/8.0/fileHashes/fileHashes.lock index 69b2594211b22f3525fddb2e61e1527353e3f218..38ae0260601210011a485efce9544f13abe037b6 100644 GIT binary patch literal 17 VcmZSfJ9?c>FVH560StH+0{|$W1GoSH literal 17 UcmZSfJ9?c>FVH560Sve*0Vr_;i~s-t diff --git a/.gradle/8.0/fileHashes/resourceHashesCache.bin b/.gradle/8.0/fileHashes/resourceHashesCache.bin index 701eea90459b04e6c683e27766ce987da7882064..737c9b975810681a2c4f53b94a4abb98bd3c271b 100644 GIT binary patch delta 390 zcmcaRhw=10#tkMChNcZ^k#_>udp=_T1HXm;p`i1_^Nh0(p8tc2KZS{JHkD9h!&qBRmM(UDy<+85s=HV?&K+$h4qv7N?&4P<=m+FLwuuwfbeEV4;i+4W1tpEAQl8+ zfwb!%W3oHem?io?lYMdGV?Iz&4pqg{yj-?bDa8u1yT4AGcKp2=rV8WvLVR0OB+fn7 zEqv1Y^*}VHihD9E{R2W1S6oIN;cG9oho8|VAp}@qbH;F1g>DJSliqk WboSrwDf~Srj%mKzd1Z2~j~W1w2Yki= delta 53 zcmV-50LuT%o&nvQ0kAX}0WPy;7$E_Zo*D0xr5a$f9UBP&lRg|5lWiQz0t8{PA@~=u LFt`)5K}Z}12`CbN diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 30754551df43274cd05622fbd8466645522ec123..9242e006f29e0bd4dee4e0f2ef9d812cb0f8d185 100644 GIT binary patch literal 17 VcmZQ(V!k!&?pHP=1~A}Q4gf3X1U3Kw literal 17 VcmZQ(V!k!&?pHP=1~A}Y0{|;V1C;;( diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 844891245355e91fa1a3b337e72e7da690e20592..df22d8cb0d6d262b0cf72d76daebc93e944cb222 100644 GIT binary patch delta 997 zcmXxjdq`7J9KdmZcP}m1xu(^qKi0OU*~`+x!n9dYs0Eo(sYt6V(iLdijA2;IN-6^F zlov_yg;`qYI?8S6Y`)TA_QFVs9_z{IVOIDEtrqw6`|I+#-+MURd+ys0lFHAL#+3@N zkX4Fy5!%sr$n`U*+~?nbd5C{5Wh}5ae>FLNM~rS4)L2jY!v-0)(Iwm5IP>l%swJc>JkyuaWRQ}m zXL=|i*`?dWEc4SCe@p>78o9B(!iLcB=9|bc9lD(C$MXcYK>aPdlB} zv@9a7`gRFw(2k{@I6E$&@dvTm#zkz%<<+|Mn7Iiw)spPyEHN84nmZUMtLmcKOor?e zQdCstkdcKCC`MwJb3LQIQ7ncjZk7ZTWKpMkFuM}*sCX>%n{u95JRtum&>6<%4p+ks@`c_`F4=wwtabA zRwh(o-L}KRMdO=7?oql|*m#NGF(04h{@(L+oWp9cpli(T*;IOe-up4S=5u-_$ZzlJ0IW0Q;fkc}ztfjbJpcdz delta 388 zcmV-~0ek+T>;>cI1+X+20duo87{LRx4jiZkv(6&W1+%s&UVbE&T7M4TS&z00000VWXFuGXXiXzB{sD0fw`2oKOUl*`TSj znxWSNlZmByvl^xt1G7r0umQ6Yt55;6daSqwvr4k>1G7=KXauv-y72~++QB&jB%znc z0s&Q*H3I<{mt_M1NVoL^0Z;+662ti`0fw^-@96@w4f2=-lfCvxvmN(v5x1oX0ha`q zR1E7CIRRIw}dGHumrbEE&&e$ zmvb-yNte_x0r0onF#$LMmn<^@sFS`s*tf(q0e}aWTs#55moz;Az>~&8FSk2B0f_>W iMnrhGR6zld1Cw4yV3%A)0pS87NwFcw4Y!|C0mL9bBa{CC diff --git a/app/src/main/java/com/woodburn/hnsbrowser/WebActivity.java b/app/src/main/java/com/woodburn/hnsbrowser/WebActivity.java index 309c5b9..ba6232e 100644 --- a/app/src/main/java/com/woodburn/hnsbrowser/WebActivity.java +++ b/app/src/main/java/com/woodburn/hnsbrowser/WebActivity.java @@ -14,6 +14,7 @@ import android.webkit.WebViewClient; import android.widget.Toast; import java.net.InetAddress; import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.security.cert.Certificate; import java.util.List; import java.util.concurrent.Executor; @@ -46,6 +47,12 @@ public class WebActivity extends AppCompatActivity { // Set proxy to https://proxy.hnsproxy.au WebSettings webSettings = webView.getSettings(); + webSettings.setJavaScriptEnabled(true); + webSettings.setDomStorageEnabled(true); + webSettings.setDatabaseEnabled(true); + webSettings.setMinimumFontSize(1); + webSettings.setMinimumLogicalFontSize(1); + webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm){ @@ -54,8 +61,34 @@ public class WebActivity extends AppCompatActivity { } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - handler.proceed(); // Ignore SSL certificate errors - new Thread(new Runnable() { + try { + Certificate certificate = error.getCertificate().getX509Certificate(); + byte[] publicKeyBytes = certificate.getPublicKey().getEncoded(); + MessageDigest sha256Digest = null; + sha256Digest = MessageDigest.getInstance("SHA-256"); + byte[] sha256Hash = sha256Digest.digest(publicKeyBytes); + // Print the hash in hexadecimal format + StringBuilder hexString = new StringBuilder(); + for (byte b : sha256Hash) { + hexString.append(String.format("%02X", b)); + } + // Get TLSA hash via DIG + String siteHash = hexString.toString(); + // Hard coded HNSHosting TLSA + String HNSHostingHash = "7A98E0BC147DA17025C8BF9647A7BF06D7C8F330E99E7BB8828FA9F8E7344B81"; + if (siteHash.equals(HNSHostingHash)) { + handler.proceed(); // Ignore SSL certificate errors + } else { + Toast.makeText(WebActivity.this, "SSL ERROR: TLSA Mismatch", Toast.LENGTH_SHORT).show(); + } + } catch (NoSuchAlgorithmException e) { + Toast.makeText(WebActivity.this, "SSL ERROR: TLSA check error", Toast.LENGTH_SHORT).show(); + } + + + + /*new Thread(new Runnable() { + @Override public void run() { boolean validSSL = false; @@ -71,6 +104,8 @@ public class WebActivity extends AppCompatActivity { } // Get TLSA hash via DIG String siteHash = hexString.toString(); + + // TLSA lookup for HSD String domain = url.replace("https://", ""); if (domain.contains("/")) { domain = domain.substring(0, domain.indexOf("/")); @@ -124,7 +159,7 @@ public class WebActivity extends AppCompatActivity { }); } } - }).start(); + }).start();*/ } }); setProxy();