Co aplikacja może zrobić z uprawnieniem „KORZYSTANIE Z KONTA NA URZĄDZENIU”?

28

Czy taka aplikacja może swobodnie czytać moje e-maile / kalendarz / wiadomość / dokumenty / itp.?

Zezwolenie „WYKORZYSTAJ KONTA NA URZĄDZENIU” jest również znane programistom jako android.permission.USE_CREDENTIALS .

Przykład takich aplikacji: WhatsApp , MightyText .

AlikElzin-kilaka
źródło
1
Znalazłem przykład interfejsu API Androida, co można zrobić za pomocą tego uprawnienia: goo.gl/gjkJB . Z mojego rozumienia jako programisty oznacza to dostęp do WSZYSTKIEGO . Gdy użytkownik ma token konta, może uzyskać dostęp do wszystkich ofert kont usług: strumień Facebooka, e-maile Google - WSZYSTKO .
AlikElzin-kilaka
2
Miałem na myśli z perspektywy użytkownika. Myślę, że użytkownicy nie są świadomi ingerowania w to pozwolenie.
AlikElzin-kilaka
1
@ t0mm13b - Nadawanie określonych uprawnień (OAuth) na przykład do czytania wiadomości jest znacznie mniej uciążliwe niż dawanie pełnego dostępu do konta.
AlikElzin-kilaka
8
Myślę, że to rozsądne pytanie dla tej witryny. Z pewnością chciałbym wiedzieć dokładnie, do czego tak naprawdę każde z dostępnych uprawnień daje dostęp.
ale

Odpowiedzi:

35

Android ma scentralizowany system zarządzania danymi uwierzytelniającymi do usług online (takich jak konto Google). Jeden składnik nazywa się AccountManager. Niektóre aplikacje mogą „ działać jako uwierzytelniacz konta ”. Oznacza to, że rozumieją, jak zalogować się do określonej usługi online i mogą zalogować się do tej usługi w celu AccountManager. Inne aplikacje chcą korzystać z tych danych logowania, aby Cię zidentyfikować lub wykonać czynności w Twoim imieniu, bez konieczności podawania hasła za każdym razem.

Przykład: logowanie do Google

Twój telefon ma wbudowaną aplikację, która „działa jako uwierzytelniacz konta” dla Twojego konta Google. Wie, jak zalogować się do Google, a także adres e-mail i hasło, które podałeś podczas konfigurowania telefonu. Istnieje również aplikacja YouTube, która chce się zalogować, aby wyświetlić ulubione filmy i umożliwić komentowanie, ale bez konieczności ponownego wprowadzania adresu e-mail i hasła.

Ta aplikacja YouTube rozmawia z AccountManageri pyta, czy ma dane uwierzytelniające do konta Google. Zadanie tego pytania wymaga uprawnienia „znajdź konta na urządzeniu”. AccountManagerMa listę uwierzytelniających zainstalowanych w telefonie, który konsultuje się odpowiedzieć na to pytanie. Jeśli ma jakieś dane uwierzytelniające, aplikacja zapyta o tak zwany „ authtoken” dla konta Google. To żądanie wymaga uprawnienia „ Użyj kont na urządzeniu ”.

AccountManagerNastępnie zapyta, czy chcesz wnioskujące aplikacji (YouTube), aby móc korzystać z konta (wymagane konto Google). Może to być okno dialogowe wyświetlane nad aplikacją lub powiadomienie. Alternatywnie, aplikacja może nic nie robić, jeśli nie odpowiedzieliście „tak” na to pytanie: może chcieć zapytać później w dogodniejszym czasie. Ten krok zapewnia, że ​​aplikacja z uprawnieniem „Użyj kont na urządzeniu” nie będzie mogła natychmiast użyć każdego konta bez pytania.

Jeśli powiesz tak, AccountManagerprzekaże żądanie do wystawcy uwierzytelnienia (wbudowanej aplikacji Google). To, co stanie się potem, zależy od wystawcy uwierzytelnienia i konkretnej usługi, do której się logujesz. Może być konieczne zalogowanie się, jeśli wcześniej tego nie zrobiłeś, a zalogowanie może wymagać nazwy użytkownika i hasła, zdjęcia, SMS-a lub czegoś innego. Cokolwiek zrobi wystawca uwierzytelnienia, może się nie powieść lub zwrócić tokenowi aplikacji.

Dalsze kontrole

Uwierzytelniający i usługa online mogą również kontrolować, jakie działania może wykonać aplikacja żądająca. Na przykład po podłączeniu aplikacji do konta Google Google wymienia uprawnienia, których potrzebuje aplikacja (takie jak „przesyłanie filmów wideo do YouTube”). Dlatego aplikacja może wykonywać tylko wymienione działania. Jednak niektóre usługi mogą nie mieć czegoś takiego; w przypadku takiej usługi, gdy zezwolisz aplikacji na korzystanie z poświadczeń, może ona podjąć dowolne działanie w Twoim imieniu.

Gdy aplikacja żądająca uzyska authtoken, może nadal używać go do wykonywania działań w Twoim imieniu bez dalszej interakcji z Tobą. Oznacza to, że po ustaleniu, że klient Twittera Dana może publikować posty na Twoim kanale Twitter, może on działać w tle i publikować kolejne tweety bez Twojej wiedzy. Powinieneś przyznać aplikacji dostęp do swoich danych uwierzytelniających tylko wtedy, gdy ufasz, że tego nie zrobisz.

Podsumowanie

Aplikacja z uprawnieniem „ Użyj kont na urządzeniu ” może po zainstalowaniu poprosić o dostęp do usługi online (takiej jak Google, Facebook lub Twitter) w Twoim imieniu. Możesz zezwolić mu na dostęp do usługi lub nie. Jeśli zezwolisz mu na dostęp do usługi, działania, które może podjąć w Twoim imieniu, mogą być ograniczone przez usługę (to zależy od usługi), a usługa może pozwolić ci później odwołać to uprawnienie (zwykle za pośrednictwem listy „połączonych aplikacji” „na stronie serwisu).

Dan Hulme
źródło
0

Znalazłem ten przykład w interfejsie API Androida, co można zrobić za pomocą tego uprawnienia.

Z mojego rozumienia jako programisty oznacza to dostęp do prawie WSZYSTKICH zapewnionych przez konto, z wyjątkiem zmiany hasła.

Gdy użytkownik ma token konta, może uzyskać dostęp do wszystkich usług, które oferuje konto: publikuj posty na swojej ścianie na Facebooku, czytaj Gmaila - prawie WSZYSTKO .

AlikElzin-kilaka
źródło
Nie jestem w 100% pewien, ale wydaje mi się, że zanim aplikacja będzie mogła uzyskać dostęp do tokena uwierzytelniającego, pojawi się ekran „Wybierz konto”. Samo uprawnienie nie wystarczy uzyskać dostęp do konta użytkowników.
Flow
2
Niezupełnie - dodaj przed nim słowo „prawie”. Jak sugeruje nazwa uprawnienia: może korzystać z informacji o koncie, ale go nie zmieniać . Według mojej wiedzy może on „uwierzytelniać się w imieniu użytkownika”, ale bez konieczności poznawania samych danych uwierzytelniających. Więc tak: może odczytać twoją pocztę, a może nawet opublikować ją na Facebooku. Ale nie mógł szpiegować twojego hasła. Jest to jednak poufny przywilej.
Izzy
Ta odpowiedź jest nieprawidłowa, ponieważ nie można zmienić hasła do konta za pomocą tego rodzaju dostępu, przez co nie masz dostępu do „wszystkiego”.
pzkpfw
@pzkpfw: Zaktualizowałem odpowiedź, aby uwzględnić świat „prawie”, ponieważ w wielu przypadkach złośliwego użycia atakujący nie chciałby zmienić hasła, a raczej cicho niewłaściwie używał konta.
Dan Dascalescu
-1

Aplikacja nie będzie mieć dostępu do żadnego konta usług. Niektóre aplikacje potrzebują tego uprawnienia, ponieważ muszą otworzyć nowe konto ze swojej aplikacji.

Kasian Mwagike
źródło