Odpowiednik HTTPS'owej kłódki w aplikacji mobilnej

1

Używam strony internetowej, mogę sobie w dowolnej przeglądarce sprawdzić czy używane jest HTTPS (widać w tzw. pasku adresu, a całą komunikację mogę podejrzeć w przeglądarce) i jak sprawa wygląda z certyfikatami X.509 (kto jaki kiedy) itp. Nazwałbym to podstawami bezpiecznego używania aplikacji internetowych.

Ale temat się komplikuje gdy chce użyć aplikacji mobilnej. Nie ma tam żadnej kłódki, apka teoretycznie może pobierać po HTTP niezabezpieczonym niczym skąd chce a ja nawet nie jestem w stanie tego stwierdzić.

Jedyne co mi przychodzi do głowy to fakt że mogę sprawdzić czy apka została zainstalowana z oficjalnego sklepu. I to sklep jest potwierdzeniem że apka nie robi niczego głupiego.

Czy zatem jest jakiś odpowiednik HTTPS'owej kłódki w aplikacji mobilnej?

0

Co nazywasz aplikacją mobilną?
Bo mówisz jakby to był starter do strony internetowej - ja rozumiem inaczej

0

Nie wiem co masz na myśli mówiąc starter strony internetowej ale przez aplikację mobilną mam na myśli natywną aplikację. Dla przykładu dla Androida będzie to binarka (plik APK) uruchomiona w maszynie wirtualnej (kiedyś DVM, teraz ART).

0
Roman Mokrzan napisał(a):

Nie wiem co masz na myśli mówiąc starter strony internetowej ale przez aplikację mobilną mam na myśli natywną aplikację. Dla przykładu dla Androida będzie to binarka (plik APK) uruchomiona w maszynie wirtualnej (kiedyś DVM, teraz ART).

No tak ... binarka APK
Nie wiem, czy zwróciłeś uwagę, że ani ćwierć słowa nie napisałeś czy aplikacja z czymś się łączy, w jaki sposób (bo niby dlaczego się ograniczać do HHTP), jaką biblioteką i kto jest jej autorem.

A np notes albo kółko i krzyżyk nie łączy się z niczym.

0

Myślę że tak to się nie da. Bo aplikacje na ART nie mają tego paska. I kłódka nie ma gdzie się wyświetlić. Trzeba by zgłosić do Google żeby dodał taki odpowiednik do maszyny ART żeby umiała pokazać kłódkę bez paska.

2

Wg mnie troszkę kiepskie rozwiązanie z tą ikonką, bo:

  • jeśli mam uruchomione 3 appki i każda z nich wykonuje po 20 requestów skąd miałbym wiedzieć której appki dotyczy ikonka? Zwłaszcza, że appki mogą działac w tle.

  • jeśli jedna appka wykonuje 20 róznych połączeń i jedno z nich leci po http, a reszta po https - to skąd miałbym wiedzieć które? Czy wtedy kłódka znikałaby na chwilkę przy nieszyfrowanym połączeniu? Jeśli tak, to skąd user miałby wiedzieć o co tu w ogole chodzi?

  • a co jeśli dany endpoint nie potrzebuje żadnego szyfrowania http [GET] /api/jokes/getRandom ?

0

https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic , z tego wynika, że nie możesz być pewny, że aplikacja nie robi coś złośliwego z wysyłaniem gołych requestów HTTP bez szyfrowania. Z drugiej strony wynika też, że trzeba się postarać i domyślnie nie powinno to mieć miejsca

0

Ale moi drodzy, źle się zrozumieliśmy.

Ja pytam z perspektywy użytkownika przejętego swoją prywatnością/bezpieczeństwem.

Więc ja nie chcę zrobić apki która będzie na siłę wrzucać "HTTPS'ową kłódkę" (bez sensu, antywzorzec interfejsu graficznego) tylko zastanawiam się w ogólności jak natywne aplikacje ten problem rozwiązują w ogólności.

I stąd porównanie aplikację przeglądarkowe vs. natywne, gdzie wygrywają chyba przeglądarkowe w tym temacie.

2
Roman Mokrzan napisał(a):

Ale moi drodzy, źle się zrozumieliśmy.

Zdecydowanie.

Fundamentalną różnicą przeglądarki a apki dedykowanej jest to, ze przeglądarka służy do stronek jaki-se-chcesz, a dedykowana się łączy z serwisami jakie producent wybrał. Używasz na zasadzie zaufania do aplikacji / producenta. Nawiasem mówiąc przeglądarki używasz też na zasadzie zaufania (do producenta / poparte ilością współ-uzytkowników). Czy to trudne wziąć (dla chcącego jakis szwindel przygotować) z githuba kernel np firefoxa, obudować w swój main() i wyświetlac fałszywą śliczną zieloną kłódkę ? Wyprmowac to jakoś itd... ?

Ja pytam z perspektywy użytkownika przejętego swoją prywatnością/bezpieczeństwem.

Wiesz, po czym poznac spanikowanego żołnierza ? Bo ma hełm wywrócony na lewą stronę.

O czym świadczy certyfikat? Że ktoś wysupłał kilka/set USD, i miał tożsamość na tyle wyglądającą prawdziwie, aby zawrzeć umowę. I że w danej chwili kanał komunikacyjny jest wstępnie zabezpieczony
Nie świadczy o uczciwym biznesie sklepu, że dostaniesz towar za przelaną kasę, że admim nie przehandluje danych osobowych, że robi administrację bezpiecznie, że piszący treści są uczciwi, że inwestycja finansowa nie jest wydmuszką, profile na sex-portalu są prawdziwe itd ...

Padłeś ofiara marketingu firm sprzedajacych certyfikaty. To TYLKO bezpieczna rura do komunikacji, bez silnej gwarancji z kim i i żadnej jak co do treści się komunikujesz.

1
Roman Mokrzan napisał(a):

Więc ja nie chcę zrobić apki która będzie na siłę wrzucać "HTTPS'ową kłódkę" (bez sensu, antywzorzec interfejsu graficznego) tylko zastanawiam się w ogólności jak natywne aplikacje ten problem rozwiązują w ogólności.

W Androidzie, począwszy od API Level 28 (Android 9) musisz mieć jawnie powiedziane w manifeście aplikacji android:usesCleartextTraffic="true", bo inaczej w ogóle twoja aplikacja nie będzie mogła korzystać z nieszyfrowanego HTTP. Ale chyba nie powoduje to niczego widocznego z punktu widzenia użytkownika.

0

Tak, raczej nie daje to nic co zwykły użytkownik mógłby zobaczyć. Bo niezwykły użytkownik mógłby przeczytać manifest.

Ale nawet używanie HTTPS nie gwarantuje niczego bo przecież można używać self signed certyfikatu i wtedy też w przeglądarce widać a w natywnej apce nie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1