[Public] Euer Endpoint geht nicht in der Android App

Marvin W hacksaar at larma.de
Mo Apr 28 15:02:03 CEST 2014


Man muss dazu sagen, dass Android zwei Möglichkeiten bietet, HTTP(S) zu benutzen: die Java API (java.net.UrlConnection, vergleichbar mit Pythons urllib) und Apache HttpComponents.

Die Java API unterstützt SNI problemlos, ist aber für manche Sachen deutlich aufwendiger zu benutzen (komplexe HTTP PUT requests zum Beispiel). 

HttpComponents ist in Android offiziell deprecated [1], wird aber von manchen Leuten trotzdem benutzt - auch in der Spaceapi App. Die intern in Android benutzte Version von HttpComponents wird seit 2008 nicht geupdated. Als Vergleich: In OpenSSL ist SNI erst seit 2009 standardmäßig aktiv.

Das läuft so auf Android >= 2.3 (deshalb der reflection kram in der Mitte), das sind etwa 99% der Geräte

[1] http://android-developers.blogspot.de/2011/09/androids-http-clients.html
On 28 Apr 14, at 14:07, Ralf Jung <post at ralfj.de> wrote:

> Hi,
> 
> omg, wieso muss man da als Client überhaupt wissen, was SNI ist? Das
> sollte die API doch verstecken können.
> 
> $ python -c "import urllib; print
> urllib.urlopen('http://spaceapi.hacksaar.de/status.json').read()"
> (geht natürlich auch mit https:// )
> 
> On 28/04/14 00:04, Marvin W wrote:
>> Mit https://github.com/fixme-lausanne/MyHackerspace/pull/21 läuft alles wunderbar. Es gibt keinen Grund unsere Server unsicher zu machen :)
> 
> Danke :D
> Verstehe ich dich richtig dass dein Patch das Problem nur für Clients,
> die auf Android >= 4.2 laufen, löst?
> 
> Viele Grüße,
> Ralf
> 
>> 
>> On 27 Apr 14, at 23:18, Marvin W <hacksaar at larma.de> wrote:
>> 
>>> Der Redirect ist gar nicht das Problem, sondern SNI. Android kann das erst seit 2.3 und per API erst seit 4.2 - weshalb es in der App anscheinend gar nicht aktiv ist.
>>> 
>>> Ich glaub ich werde die App nachher mal fixen :P
>>> 
>>> On 27 Apr 14, at 22:43, Ralf Jung <post at ralfj.de> wrote:
>>> 
>>>> Hi Romain,
>>>> 
>>>>> ... das liegt ziemlich sicher am http -> https Redirect.
>>>>> 
>>>>> @Ralph, muss das unbedingt geforced werden? Updaten kann man immer noch
>>>>> ueber https,
>>>> 
>>>> Wenn man da keinen Redirect macht, nutzt es keiner. Ich würde persönlich
>>>> unverschlüsselte Kommunikation am liebsten ganz ausschalten, aber das
>>>> ist wohl erst mit HTTP2 realistisch.
>>>> HTTP und SMTP sind die einzigen beiden Legacy-Protokolle, die der Server
>>>> überhaupt noch unverschlüsselt spricht (aber natürlich werden
>>>> verschlüsselte Versionen angeboten). Das ist nichts, was man fördern
>>>> sollte - ganz im Gegensatz.
>>>> [Hm okay ich bin gerade bei Jabber server-2-server nicht sicher, ob SSL
>>>> erzwungen wird... muss ich mal nachschauen]
>>>> 
>>>>> das Konsumieren des Endpoints via http ist jedoch
>>>>> app-freundlicher.
>>>> 
>>>> Kannst du nicht den Link in der DB auf
>>>> <https://spaceapi.hacksaar.de/status.json> ändern? Dann braucht die App
>>>> nicht einem 302-Redirect folgen, um die Datei zu finden.
>>>> Wobei es keinen Grund gibt, solchen Redirects nicht zu folgen...
>>>> Ich verstehe auch nicht, wieso das App-freundlicher sein soll. Ich habe
>>>> jetzt noch nie für Android programmiert, aber von Web-Zugangs-APIs auf
>>>> meinem Desktop erwarte ich, dass sie URI-Schemata können. Sowohl in Qt
>>>> als auch in Python rufe ich einfach eine URL ab, und ob die jetzt mit
>>>> http:// oder https:// beginnt und ob die noch 3mal via 302-Response
>>>> weitergeleitet wird, ist doch egal. Ich kann mir kaum vorstellen, dass
>>>> die Android-API so umständlich ist, dass es das nicht gibt.
>>>> 
>>>> tl;dr: M.E. ist das ein Bug in der Android-App - ich bin mir ziemlich
>>>> sicher, dass wir völlig RFC-konform vorgehen. Wir haben sogar offiziell
>>>> beglaubigte Zertifikate. Wenn es einen einfachen Work-Around gäbe, der
>>>> nicht die Sicherheit & Privatsphäre unserer Nutzer unnötig schwächt,
>>>> würde ich ihn anwenden, aber das trifft auf die von dir vorgeschlagene
>>>> Lösung nicht zu.
>>>> 
>>>> Viele Grüße,
>>>> Ralf (mit f)
>>>> _______________________________________________
>>>> Public mailing list
>>>> Public at lists.hacksaar.de
>>>> https://lists.hacksaar.de/listinfo/public
>>> 
>>> _______________________________________________
>>> Public mailing list
>>> Public at lists.hacksaar.de
>>> https://lists.hacksaar.de/listinfo/public
>> 
>> _______________________________________________
>> Public mailing list
>> Public at lists.hacksaar.de
>> https://lists.hacksaar.de/listinfo/public
>> 
> _______________________________________________
> Public mailing list
> Public at lists.hacksaar.de
> https://lists.hacksaar.de/listinfo/public



Mehr Informationen über die Mailingliste Public