Spisu treści:
- Uprawnienia - z góry i osobiste w Android Market
- Aplikacje poza Android Market
- Po stronie programisty … i jak konsumenci muszą robić swoje
- I ostatnia rzecz …
Ostatnio pojawiło się wiele wiadomości o braku bezpieczeństwa lub osądu - oba, naprawdę - w Apple, który pozwala aplikacjom iOS pożyczyć twoje dane kontaktowe i wysłać je do nieznanych części bez Twojej zgody. Apple zwrócił się z tą kwestią do członków Kongresu USA i podejmie kroki w celu zapewnienia ściślejszej kontroli w przyszłej aktualizacji systemu iOS. To dobra wiadomość i cieszymy się, że tak się dzieje.
Ale co z Androidem? Podczas całego tego skupienia się na aplikacjach wykonujących czynności bez wyraźnego pozwolenia użytkownika, widzisz osoby odwołujące się do modelu uprawnień Androida. Zrobimy to dla ciebie. Nie jest idealny, ale działa całkiem dobrze - i na pewno jest lepszy niż żaden system uprawnień.
Omówimy uprawnienia na Androida i dowiedz się, jak się rozstać.
Z założenia żadna aplikacja na Androida nie ma uprawnień do wykonywania jakichkolwiek operacji, które „miałyby niekorzystny wpływ na inne aplikacje, system operacyjny lub użytkownika”. Aby aplikacja miała dostęp do takich danych, jak prywatne dane kontaktowe, dane innej aplikacji, dostęp do sieci, a nawet coś tak przyziemnego, jak zapisywanie własnych danych w pamięci urządzenia, aplikacja musi zadeklarować, że będzie miała do tego uprawnienia, a następnie musisz zaakceptować to pozwolenie, aby móc zainstalować aplikację. Podczas instalowania aplikacji wyświetlana jest lista uprawnień, które deklaruje ta aplikacja.
I zauważ, że mówimy, że aplikacje „deklarują” uprawnienia, a niekoniecznie „żądają” ich. Semantyka, jak przypuszczamy, ale nie ma pola z napisem „Hej, Jerry! Jestem aplikacją i chciałbym, abyś pozwolił mi spojrzeć na dane kontaktowe. W porządku?” Zamiast tego aplikacje na Androida są bardziej bezpośrednie, mówiąc: „Cześć, Jerry. Jestem aplikacją. Oto lista tego, co mogę zrobić, po prostu o tym wiesz. Weź to lub zostaw.”
Aplikacje na Androida deklarują, do których uprawnień mają dostęp, a tym samym do których piaskownic mogą grać. Możesz albo zaakceptować je i zainstalować aplikację, albo nie. Ma sens?
Uprawnienia - z góry i osobiste w Android Market
Oto jak to wygląda, jeśli zainstalujesz, powiedzmy, ścieżkę. Otrzymasz listę makr uprawnień, które deklaruje Path. Stuknij jeden, a wyjaśnienie to pozwolenie zostanie nieco bardziej szczegółowo.
Tak to wygląda, jeśli zainstalujesz dowolną aplikację z Android Market. Musisz przewinąć listę, aby zobaczyć je wszystkie. Trochę w dół jest ten, który dostał Path (i inne) w różnego rodzaju problemach na iOS. W formularzu Androida wyraźnie widać, że Path deklaruje zgodę na „Twoje dane osobowe - czytaj dane kontaktowe”. Stuknij to uprawnienie, aby uzyskać więcej szczegółów:
„Zezwala aplikacji na odczyt wszystkich danych kontaktowych (adresowych) przechowywanych w telefonie. Złośliwe aplikacje mogą to wykorzystać do przesłania danych innym osobom”.
Więc Path powiedział ci, że ma dostęp do twoich danych kontaktowych. Niekoniecznie mówi ci, co z tym zrobi (gdybyśmy go nie wychowali, czy naprawdę chcesz wiedzieć?), Ale mówi ci, że może to przeczytać.
Aplikacje poza Android Market
Ale co jeśli załadujesz aplikację na bok? Lub skorzystać z Amazon Appstore? Aplikacje powinny nadal deklarować, których uprawnień używają, a ta lista uprawnień jest wyświetlana podczas instalowania aplikacji. (Pamiętaj, że Amazon Appstore odsuwa aplikacje, więc to, co widzisz, jest dokładnie takie samo, jakbyś zainstalował aplikację z wiadomości e-mail lub pobierał.)
Oto jak wyglądałoby ładowanie Gmaila z boku. Jedyną prawdziwą różnicą między bocznym ładowaniem a instalacją z Android Market, o ile uprawnienia idą, jest to, że podczas bocznego ładowania nie otrzymujesz bardziej szczegółowych opisów uprawnień.
Po co to wszystko? Aplikacje na Androida są „w piaskownicy” - grają we własnej przestrzeni i mają własne pliki danych w tej piaskownicy. Mogą udostępniać grę tylko w piaskownicy innej osoby po wyraźnym zapytaniu o zgodę, a dzieje się to za pośrednictwem ekranów, które widzisz powyżej. Akceptując te uprawnienia i instalując aplikację, zezwalasz tej aplikacji na odtwarzanie w piaskownicach, w których aplikacja chce grać.
Po stronie programisty … i jak konsumenci muszą robić swoje
Za kulisami twórcy aplikacji deklarują te uprawnienia w pliku AndroidManifest.xml, który jest wymaganą częścią kodu źródłowego aplikacji na Androida. Te deklaracje są statyczne i każda z nich jest prezentowana użytkownikowi, jak widzieliśmy powyżej. Android nie ma możliwości dynamicznego nadawania uprawnień w czasie wykonywania, ponieważ według twórców systemu operacyjnego Android „komplikuje wrażenia użytkownika ze szkodą dla bezpieczeństwa”. Zmuszanie aplikacji do mówienia, co chce robić, z góry i bez możliwości zmiany - to najwyższy model bezpieczeństwa.
Druga strona? Jest to również najłatwiejsze do zignorowania przez użytkowników.
Wiemy wszystko o tym, co się stało z Path na iOS. Podobnie jak wiele innych aplikacji na iOS, używał kontaktu bez pozwolenia. Nie do nikczemnych celów, ale mimo to bez uprzedniej zgody i bez pytania później. Ścieżka dla Androida wysyła wszelkiego rodzaju dane na swoje serwery, tak jak to miało miejsce w iOS. Ale jak pokazaliśmy w tym poście, w Androidzie Path musi najpierw wyrazić zgodę. Lub, ściślej, deklaruje zgodę, a ty ją akceptujesz lub odrzucasz.
Problem polega na tym, że kiedy instalujesz aplikację, najprawdopodobniej przejdziesz tuż obok sekcji uprawnień. Naprawdę nie powinieneś, ale wszyscy to robimy. Fakt, że uprawnienia nie są napisane prostym językiem, stanowi część problemu. Ale nawet gdyby tak było, większość z nas i tak kliknęłaby w przeszłość. Tak to jest, na każdej platformie. Z drugiej strony są tacy, którzy wariują na temat uprawnień, ponieważ ich nie rozumieją. Ponownie pomógłby tu język bardziej przyjazny dla użytkownika.
Jedną z alternatyw tego rozwiązania jest poproszenie aplikacji o zezwolenie w czasie wykonywania, gdy chce zrobić coś, czego normalnie nie może zrobić. Czytaliśmy już, że zespół Androida uważa, że jest to niewygodne i niepewne, więc prawdopodobnie tak się nie stanie.
Inną alternatywą jest zezwolenie na wybrane uprawnienia, podobnie jak RIM robi z BlackBerry. Skończysz z aplikacjami, które działają tylko w połowie, ponieważ odmawiasz uprawnień, tak jak BlackBerry. Nie ma żadnej niezawodnej metody, oprócz przeczytania wszystkiego podczas instalowania tej aplikacji i próbowania zrozumienia, o co ją proszą i dlaczego.
Właśnie tam wszyscy wchodzimy. Niektórzy z nas rozumieją uprawnienia aplikacji bardziej niż inni, a kiedy aplikacja robi coś, czego nie powinna robić, słyszysz oburzenie. Przeczytaj uprawnienia. Przeczytaj komentarze na rynku. Przeczytaj Android Central. Kiedy coś pójdzie nie tak, usłyszysz o tym.
I ostatnia rzecz …
W tym miejscu należy zwrócić szczególną uwagę na luki w zabezpieczeniach. Każdy program komputerowy - a to oznacza także każdy mobilny system operacyjny - jest ich pełen. Gdy zostanie odkryta podatność, która pozwala aplikacji ominąć model bezpieczeństwa, Google szybko go załatać. Tak się dzieje i zawsze tak będzie. Szybkość wdrożenia tej aktualizacji zależy od osób, które wykonały telefon. Zasługują na uznanie, gdy robią to we właściwy sposób, a pogardę, gdy trwają zbyt długo i robią to źle. To nie jest coś, co wkrótce zniknie, a my jesteśmy z tobą, aby wezwać OEM, który nie zapewnia rzeczy tak bezpiecznych, jak powinny.
Jeśli chcesz zagłębić się jeszcze bardziej w uprawnienia Androida, sprawdź na nich stronę programisty Google.