Proxy Flutter Apps - Understanding HTTPS & SSL Certificates

  Рет қаралды 17,855

Fun with Flutter

Fun with Flutter

4 жыл бұрын

In this video I demonstrate how you can proxy your Flutter application in an easy and secure way. But before you do it's important to understand some core concepts about HTTPS and SSL Certificates.
Companion Blog Post:
blog.funwith.app/posts/proxy-...
Support the channel:
/ funwithflutter

Пікірлер: 30
@maaf2401
@maaf2401 3 жыл бұрын
This really helped me with my self-signed certificate. All the answers I found suggested I should accept all certs, which I didn't want. Thanks for the video!
@mohanavijaypalanivel9099
@mohanavijaypalanivel9099 4 жыл бұрын
Thank you for the quality content.
@pathakvivek7865
@pathakvivek7865 4 жыл бұрын
yes, we want more flutter security related videos.
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
Will do! Thanks for watching.
@moazahmed5388
@moazahmed5388 3 жыл бұрын
I was wondering if i can tunnel the whole device into a certain proxy with port number so i can make the mobile connects to my wifi , without manually set the proxy in the Network Settings
@jasonwei6722
@jasonwei6722 4 жыл бұрын
Nice one. One question: Does that mean if we use websocket in the project, we should implement the handshake(what https does) ourselves?
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
Hey, technically yes, but the bulk of the logic is normally handled by the framework. In Flutter the pub.dev/packages/web_socket_channel package does that for you. Server side you will need to define the logic that will upgrade a request. And this will be dependent on the server language that you are using, but again most of that logic will be wrapped in whatever package you are using or whatever libraries are available for that language. In this video I used GoLang for the server and used the github.com/gorilla/websocket library.
@tujyyujio591
@tujyyujio591 2 жыл бұрын
Hello ,can i connect brup suite with a local database and the database dose not has an internet connection Please can you answer
@RakaFS
@RakaFS 4 жыл бұрын
How about mistakes like this ??, what's wrong? SecurityContext.setTrustedCertificatesBytes fails with BAD_PKCS12_DATA
@g-tensolution8527
@g-tensolution8527 4 жыл бұрын
I am still confused if its only for debug mode or also works for production apps. we are a payment gateway service providing company and developing our apps in flutter, now very much confused on if using proxy is same as ssl pinning? If its so then do we have to buy trusted self assigned certificate or is it okay to use from burfsuite , like you used them.
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
I strongly recommend you read the companion article, or take a look at the other links that I posted that explains HTTPS (some make it much easier to understand). As you seem to have misunderstood the difference between SSL pinning, HTTPS and a proxy. I also strongly recommend that you seek professional guidance from a security company if you are a payment gateway service provider. I do not want to be held liable for what I say in a KZbin comment :) But to clear up some confusion. Burp is a tool used my "hackers" to intercept the traffic between a application and the end network it is communicating with. Burp is a proxy tool, to intercept the traffic. SSL pinning is a security technique where you hardcode your app to only accept certain SSL certificates (your endpoint or API's cert, for example). If SSL pinning is done correctly then Burp will not be able to intercept the traffic, as the application will not recognise the certificate that burp presents. The only reason I generated certificates using Burp in the video was in order to Proxy the application (not to provide SSL pinning), and to show how to proxy. Note that I typed this on a phone, so excuse any mistakes. But I suggest read up more on SSL/HTTPS and then SSL pinning. Or seek professional advice. Good luck
@g-tensolution8527
@g-tensolution8527 4 жыл бұрын
@@FunwithFlutter Thank You so much for this valuable suggestion.
@g-tensolution8527
@g-tensolution8527 4 жыл бұрын
I just recently found different issues on ssl pinning for flutter based on self signed and trusted CA certificate. Although we can use self certificate for development test. I was suggested to use trusted CA, and also I learned through your articles which has reflected clear concepts of CA. You will probably want to create video on this If i once implement this and share you my study. Right now there is an issue with badCertificateCallBack returning only root CA certificate of trusted CA issuer rather than the whole chain (parent, leaf, intermediate) of my server certificate provided to my server, this was already issued in flutter github.
@MatthiasSchicker
@MatthiasSchicker Жыл бұрын
FYI: The link to the companion blog seems to no longer work.
@Mangesh20
@Mangesh20 4 жыл бұрын
can you also post video explaining certificate pinning or public key pinning in flutter app ?
@noobmaster6939
@noobmaster6939 4 жыл бұрын
Yes ill second that, also plz cover oauth 2.0 authentication point
@noobmaster6939
@noobmaster6939 4 жыл бұрын
@Fun with Flutter Hi can u plz share your code . Also can u explain how to make web socket ?
@saurabhshani3536
@saurabhshani3536 2 жыл бұрын
SSL Pinning is not the default behavior. So you don't need to disable it if it had not already been enabled. Is this statement correct or not?
@FunwithFlutter
@FunwithFlutter 2 жыл бұрын
Correct. I also don't recommend doing SSL pinning at all in 2022
@shubhamtippe887
@shubhamtippe887 2 жыл бұрын
This is charles proxy?
@minakshisaini8354
@minakshisaini8354 4 жыл бұрын
Could we use crt file or not. Please let me know.
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
stackoverflow.com/questions/54104685/flutter-add-self-signed-certificate-from-asset-folder
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
But self-signed certificates should only be used for testing purposes.
@smttartu
@smttartu 4 жыл бұрын
Thanks, but couldn't make it. Then tried this one that you dont suggest. But Can you implement your method to this one as well ? Thanks a lot. class MyHttpOverrides extends HttpOverrides { @override HttpClient createHttpClient(SecurityContext context) { return super.createHttpClient(context) ..badCertificateCallback = (X509Certificate cert, String host, int port) => true; } }
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
Thanks for the question. I don't remember if I mention it in the video, but this is basically the exact opposite of what you want. This is telling your app to trust ALL certificates. It's basically removing the "identity" security that SSL certificates provide, meaning anyone can Man-in-the-Middle the app's traffic, by presenting ANY certificate. A no-no. Check out the blog post, at the end of the post there's a section called "Considering Security" - there I go into more detail. Blog post: blog.funwith.app/posts/proxy-flutter-apps/
@smttartu
@smttartu 4 жыл бұрын
@@FunwithFlutter Thank you for your answer. Actually I implemented what you have written in that section, but it didn't work out. Then I tried to implement that code to HttpOverride that I mentioned above. I couldn't make it run. Maybe I missed something. Because this HttpOverride method is not async and you use " await rootBundle ". Then It has to return HttpClient which I couldn't handle. Because of I couldn't implement your code to this HttpOverride, I have asked you to can you extend this HttpOverride method with yours. Thanks again.
@cristhianaguilarverduguez1698
@cristhianaguilarverduguez1698 4 жыл бұрын
Please, Add subtitles for all your followers from different countries =)
@FunwithFlutter
@FunwithFlutter 4 жыл бұрын
Hi! KZbin should do this automatically. In the video screen at the bottom right (toolbar) there is a button call CC. Make sure that is highlighted and it should give subtitles in English. If you want a different language you can hit the settings button (the one next to CC) and you will now see an option for subtitles, click that and from there you can select a language. KZbin will automatically translate it. I cannot promise how good that will be but you can give it a shot :)
HTTPS, SSL, TLS & Certificate Authority Explained
43:29
Laith Academy
Рет қаралды 85 М.
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
16:19
Philipp Lackner
Рет қаралды 39 М.
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 205 МЛН
Little girl's dream of a giant teddy bear is about to come true #shorts
00:32
Certificates from Scratch - X.509 Certificates explained
21:50
OneMarcFifty
Рет қаралды 100 М.
Improve your Flutter Apps performance with a RepaintBoundary
31:31
Fun with Flutter
Рет қаралды 14 М.
Bypass SSL Pinning for Flutter apps using Frida
31:24
FatalSec
Рет қаралды 9 М.
Transport Layer Security (TLS) - Computerphile
15:33
Computerphile
Рет қаралды 474 М.
Secure your #flutter app - FreeRASP
1:03:59
Majid Hajian
Рет қаралды 3,1 М.
The moment we stopped understanding AI [AlexNet]
17:38
Welch Labs
Рет қаралды 845 М.
Flutter for iOS developers
13:43
Flutter
Рет қаралды 107 М.
Hacking/Reverse Engineering a PRIVATE api
6:35
chriscodes
Рет қаралды 105 М.
The Story of Next.js
12:13
uidotdev
Рет қаралды 559 М.