These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Aura for Android Broken

Author
Johnny Bloomington
The Scope
Gallente Federation
#1 - 2012-10-20 00:50:57 UTC  |  Edited by: Johnny Bloomington
API Migration to HTTPS has broke Aura for older Android phones.

From the dev of Aura app:

"CCP Games decided to get a SSL certificate from Certificate Authority (CA) that isn't well known. What this means is that anyone with a older version of Android (I believe <3.0) will not be able to connect to the new API. Next week I will have a fix out that just accepts the SSL connection regardless of who is on the other side (are you ready for some man-in-the-middle-attacks?).

Why didn't this fail before? I had code in there before to gracefully fall back to a http connection if the https connection didn't work. As it turns out it was always using the http code path so the https one was never tested. Even though it is taking the http code path, it is properly redirecting to https and this is why newer devices that have the cert installed on them are working.

Why does Chrome work and not Android? Chrome, from what I can tell, is not using the system SSL certs and that is why it is working. Unfortunately there is no way for users to install custom SSL CA's.

What can I do to help? "

CCP wish list: show damage on ships and open that door!

Cyerus
University of Caille
Gallente Federation
#2 - 2012-10-20 02:26:03 UTC  |  Edited by: Cyerus
Johnny Bloomington wrote:
API Migration to HTTPS has broke Aura for older Android phones.

From the dev of Aura app:

"CCP Games decided to get a SSL certificate from Certificate Authority (CA) that isn't well known. What this means is that anyone with a older version of Android (I believe <3.0) will not be able to connect to the new API. Next week I will have a fix out that just accepts the SSL connection regardless of who is on the other side (are you ready for some man-in-the-middle-attacks?).

Why didn't this fail before? I had code in there before to gracefully fall back to a http connection if the https connection didn't work. As it turns out it was always using the http code path so the https one was never tested. Even though it is taking the http code path, it is properly redirecting to https and this is why newer devices that have the cert installed on them are working.

Why does Chrome work and not Android? Chrome, from what I can tell, is not using the system SSL certs and that is why it is working. Unfortunately there is no way for users to install custom SSL CA's.

What can I do to help? "


Simplest thing to do is find a way to include the needed certificate yourself.

On the mod for phpBB I've been coding for the last years, I had somewhat similar problems.
I'm using cURL (as a PHP extension) which requires a valid certificate to gather data over SSL connections.
Some providers seem not to have installed them, or at least not correctly.
After a few hours of searching, I managed to find a workaround which allows me to use the certificate I'm supplying with the package, after having it extracted from Firefox.

I'm not sure why you would be saying that Android doesn't allow the installation of CA certificates, since the first hit on Google when searching for Android install CA certificate redirects me towards the official Android support wiki, explaining in detail on how to manually install any certificate.
http://support.google.com/android/bin/answer.py?hl=en&answer=1649774

Question is whether or not that can be automated using Aura's installer.


As to why Chrome uses a different set of certificates, we can only guess, where the following seems to be most likely.
Knowing that Chrome (for Android) is a seperate browser and does have nothing to do with the default build-in browser, I can only assume that Google was running into the same problems as you are having; Outdated Android having outdated list of certificates, due to phone vendors customizing Android (which takes time) to make their phones unique (which takes time) and thus not using the time to update the phone's Android version every time a new version is released. After a while new phones are introduced and old phone support (read: Android customization and updating) stops, silently encouraging you to buy a new phone.
After having the big problems with SSL vendors (CA's) being hacked (DigiNotar, July 2011) and thus providing very dangerous and unsecure certificates, I can only assume Google choose to use a different set of certificates in Chrome, knowing that it's a seperate application that can be easily updated by the Google Market (now known as Play Store) without having to worry about backwards compatibility on older Android versions.
When certificates are being added (which doesn't happen alot) or certificates being revoked (kinda rare too) you can just release a new version of Chrome (for Android) without having to worry about the complications of having to add / remove the certificate from Android itself.
Vaknar Onzo
Caldari Provisions
Caldari State
#3 - 2012-10-20 11:23:54 UTC
It isn't just Aura, it's any Android app that uses API.
Johnny Bloomington
The Scope
Gallente Federation
#4 - 2012-10-20 16:56:15 UTC
Vaknar Onzo wrote:
It isn't just Aura, it's any Android app that uses API.


But its just older phones.

CCP wish list: show damage on ships and open that door!

Marcel Devereux
Aideron Robotics
Aideron Robotics.
#5 - 2012-10-20 17:57:48 UTC
Johnny Bloomington wrote:
Vaknar Onzo wrote:
It isn't just Aura, it's any Android app that uses API.


But its just older phones.


I also don't think it is appropriate for each app on the platform to maintain a local copy of the cert. If for any reason CCP changes the cert then the app will break. The correct solution is for them to use a well know CA. I am testing the fix right now that just ignores the cert. Every other Android app should just do the same.
Cyerus
University of Caille
Gallente Federation
#6 - 2012-10-20 18:33:21 UTC  |  Edited by: Cyerus
Marcel Devereux wrote:
Johnny Bloomington wrote:
Vaknar Onzo wrote:
It isn't just Aura, it's any Android app that uses API.


But its just older phones.


I also don't think it is appropriate for each app on the platform to maintain a local copy of the cert. If for any reason CCP changes the cert then the app will break. The correct solution is for them to use a well know CA. I am testing the fix right now that just ignores the cert. Every other Android app should just do the same.


Sorry to say, but not verifying any certificate is just stupid. Specially on phones (and some tablets), where most internet connections are being made with 3g (except for WiFi when at home/work), and as we all know those providers are now using DPI (http://en.wikipedia.org/wiki/Deep_packet_inspection).
Now that we (as devs) are forced to use SSL, we might aswell implement it correctly, with verification.

And CCP will not change the certificate per se, since they rent the certificate from RapidSSL, whom in turns rents a license for being a CA from GeoTrust. The only thing they can change is the CA vendor, and that will only require importing another certificate into the user's old Android phone.

Another thing that should be noted is that every program can use any certificate that's installed on Android, meaning that you only have to install the certificate once for all programs to use.

Also, try not to blame these certificate issues on CCP. Even though I agree that the change was sudden, in my opinion without any heads-up, the core of the problem lies with Android.
http://code.google.com/p/android/issues/detail?id=10807
Novacrow
Royal Amarr Institute
Amarr Empire
#7 - 2012-10-22 01:52:57 UTC
This sucks. Any idea when a fix will be inc?
Slaingeal
Republic Military School
Minmatar Republic
#8 - 2012-10-22 07:54:16 UTC
love to see a fix, your app is pritty much indispensable... keep it up
Manhim
Garoun Investment Bank
Gallente Federation
#9 - 2012-10-22 13:25:13 UTC
Quote:
(are you ready for some man-in-the-middle-attacks?)


Is using plain HTTP man-in-the-middle attacks proof?
Cyerus
University of Caille
Gallente Federation
#10 - 2012-10-22 13:41:03 UTC
Manhim wrote:
Quote:
(are you ready for some man-in-the-middle-attacks?)


Is using plain HTTP man-in-the-middle attacks proof?


No it isn't, but SSL is.
Since we are forced to use SSL and implementation of certificates (with verification!!) is easy and fast to do, why not make use of it?
Johnny Bloomington
The Scope
Gallente Federation
#11 - 2012-10-22 18:07:29 UTC
Cyerus wrote:
Manhim wrote:
Quote:
(are you ready for some man-in-the-middle-attacks?)


Is using plain HTTP man-in-the-middle attacks proof?


No it isn't, but SSL is.
Since we are forced to use SSL and implementation of certificates (with verification!!) is easy and fast to do, why not make use of it?


The other app like this called Evanova is working for me now. Does this mean they're using just HTTP? I'd rather have Aura but Evanova is working for me now.

CCP wish list: show damage on ships and open that door!