Live data from Hacker News

Charles Proxy now available on iOS

charlesproxy.com

81–90 of 113 posts

Re: Charles Proxy now available on iOS

#81
post #34

Genuine question here: How is it not absolutely terrifying that an iOS App Store app can man in the middle HTTPS communications made by other apps? Is there some way in which this isn’t poking a hole in exactly the sort of security sandbox that iOS tends to be good at? (And yes there probably is some part of what’s going on that I don’t understand, that’s why I’m asking the question)

Can't say much about the security, but I suspect it's working by pretending to be a VPN provider and then proxying the traffic. It's then able to install a CA root to generate any certs it needs to MITM traffic. Cert pinning will prevent this from working, but that's the only thing that will.

Do iOS apps not require cert pinning by default for their respective APIs/whitelisted https domains?

Re: Charles Proxy now available on iOS

#82
post #60

I'm trying to get it to work but whenever I have the VPN enabled all network traffic fails (HTTP and HTTPS). Anyone else have this issue? The website isn't giving me much insight :( edit: I'm on the latest iOS beta. Could that be why? funny that I'm troubleshooting an app which is largely meant for troubleshooting apps...

I found that it didn't work on WiFi networks that block client-to-client connections, if that gives you any pointers.

Damn I didn't even try disabling wifi.

Yeah it works once I disable it, kind of an important pointer the app could alert users to...

I was originally thinking that maybe the MITM VPN IP clashes with my LAN subnet.

Re: Charles Proxy now available on iOS

#83

Earlier quoted context omitted.

Can't say much about the security, but I suspect it's working by pretending to be a VPN provider and then proxying the traffic. It's then able to install a CA root to generate any certs it needs to MITM traffic. Cert pinning will prevent this from working, but that's the only thing that will.

Do iOS apps not require cert pinning by default for their respective APIs/whitelisted https domains?

Whitelisted domains? What? Never heard of that in iOS.

Re: Charles Proxy now available on iOS

#84
post #38

Earlier quoted context omitted.

Can't say much about the security, but I suspect it's working by pretending to be a VPN provider and then proxying the traffic. It's then able to install a CA root to generate any certs it needs to MITM traffic. Cert pinning will prevent this from working, but that's the only thing that will.

Supposed sandboxing against malicious apps is precisely why I run iOS rather than Android. I get that Charles isn’t malicious, but what’s keeping any random free game app from doing the same thing? (Again, intended as a real question not a rhetorical one)

1. You have to turn on VPN in the system settings.

2. You have to trust the Charlesproxy root certificate; again, in the system settings.

Re: Charles Proxy now available on iOS

#85
post #38

Earlier quoted context omitted.

Can't say much about the security, but I suspect it's working by pretending to be a VPN provider and then proxying the traffic. It's then able to install a CA root to generate any certs it needs to MITM traffic. Cert pinning will prevent this from working, but that's the only thing that will.

Supposed sandboxing against malicious apps is precisely why I run iOS rather than Android. I get that Charles isn’t malicious, but what’s keeping any random free game app from doing the same thing? (Again, intended as a real question not a rhetorical one)

How is that different from Android?

Re: Charles Proxy now available on iOS

#86
post #62

How widespread is certificate pinning nowadays in iOS apps? Does anybody have any experiences?

I'm working at a European bank in their iOS team. We use cert pinning for all of our apps, but I have never heard or seen teams using it outside of this project.

I guess it's mostly used if the application is doing something critical like money transactions etc.

Re: Charles Proxy now available on iOS

#87
post #24

This is awesome! The first thing I discovered was how much network noise crashlytics.com was causing. Used AdBlock's[0] DNS proxy feature to black-hole the offending domain (they even mention blocking crashlytics.com in their FAQ[1]). Note that both AdBlock and Charlex rely on iOS's VPN feature, and only one can be enabled at a time. [0] https://itunes.apple.com/us/app/adblock/id691121579?mt=8http... [1] https://www.…

Could be that Charles itself uses the crashlytics? How to tell which app is it?

Re: Charles Proxy now available on iOS

#88
post #84
post #38

Earlier quoted context omitted.

Supposed sandboxing against malicious apps is precisely why I run iOS rather than Android. I get that Charles isn’t malicious, but what’s keeping any random free game app from doing the same thing? (Again, intended as a real question not a rhetorical one)

1. You have to turn on VPN in the system settings. 2. You have to trust the Charlesproxy root certificate; again, in the system settings.

1a. This requires your passcode, and any time a system is asking for your permission to do something is worth questioning. Even my least technosavvy friends and family have learned that if something is asking for your password and you don't know why, abort.

Re: Charles Proxy now available on iOS

#89
post #36

Earlier quoted context omitted.

And the desktop version allows to intercept the traffic of the machine it runs on. Mitmproxy cannot do that afaik.

What do you mean? This has been working since way before 1.0.

Ok, I need to clarify, I had macOS in mind and this note in the mitmproxy documentation:

  > Note that the rdr rules in the pf.conf given above
  > only apply to inbound traffic. This means that
  > they will NOT redirect traffic coming from the box
  > running pf itself. We can’t distinguish between an
  > outbound connection from a non-mitmproxy app, and
  > an outbound connection from mitmproxy itself - if
  > you want to intercept your OSX traffic, you should
  > use an external host to run mitmproxy. Nonetheless,
  > pf is flexible to cater for a range of creative
  > possibilities, like intercepting traffic emanating
  > from VMs. See the pf.conf man page for more.
That's for transparent mode only though, maybe that had me confused.

Re: Charles Proxy now available on iOS

#90
post #83

Earlier quoted context omitted.

Do iOS apps not require cert pinning by default for their respective APIs/whitelisted https domains?

Whitelisted domains? What? Never heard of that in iOS.

Apple introduced App Transport Security[1] with iOS 9. The setting is configured in your app's Info.plist[2].

[1] https://developer.apple.com/library/content/releasenotes/Gen...

[2] https://stackoverflow.com/a/48089038/2044952

Post reply on HN