“기기의 계정 사용”권한으로 앱이 무엇을 할 수 있습니까?


28

그러한 앱이 내 이메일 / 캘린더 / 메시지 / 문서 / 등을 자유롭게 읽을 수 있습니까?

"장치의 계정 사용"권한은 개발자에게 android.permission.USE_CREDENTIALS 로도 알려져 있습니다.

: 이러한 응용 프로그램의 예 WhatsApp에 , MightyText .


1
이 권한을 사용하여 수행 할 수있는 Android API의 예를 찾았습니다 : goo.gl/gjkJB . 개발자로서의 이해에서 이것은 모든 것에 대한 액세스를 의미합니다 . 사용자가 계정의 토큰을 가지고 있으면 Facebook의 스트림, Google의 이메일- 모든 서비스 계정 제공 서비스에 액세스 할 수 있습니다 .
AlikElzin-kilaka

2
나는 사용자 관점에서 의미했다. 사용자는 해당 권한의 영향을 잘 모르고 있다고 생각합니다.
AlikElzin-kilaka

1
@ t0mm13b-예를 들어, 메시지를 읽을 수있는 특정 권한 (OAuth)을 부여하면 계정에 대한 전체 액세스 권한을 부여하는 것보다 훨씬 덜 방해가됩니다.
AlikElzin-kilaka

8
이것이이 사이트에 대한 합리적인 질문이라고 생각합니다. 사용 가능한 각 권한이 실제로 무엇 을 액세스하고 있는지 정확히 알고 싶습니다 .
ale

답변:


35

Android에는 온라인 서비스 (예 : Google 계정)의 자격 증명을 관리하기위한 중앙 집중식 시스템이 있습니다. 한 구성 요소를이라고합니다 AccountManager. 일부 앱은 " 계정 인증 자 역할을 할 수 있습니다 ". 이는 특정 온라인 서비스에 로그인하는 방법을 이해하고 해당 서비스에 로그인 할 수 있음을 의미합니다 AccountManager. 다른 앱은 매번 비밀번호를 입력하지 않아도 해당 로그인 정보를 사용하여 사용자를 식별하거나 사용자를 대신하여 작업을 수행하려고합니다.

예 : Google에 로그인

휴대 전화에는 Google 계정의 '계정 인증 자 역할을하는'내장 앱이 있습니다. Google에 로그인하는 방법을 알고 있으며 전화를 설정할 때 입력 한 이메일과 비밀번호가 있습니다. 즐겨 찾는 비디오를 표시하고 댓글을 달 수 있도록 로그인하고 이메일과 비밀번호를 다시 입력하지 않아도되는 YouTube 앱도 있습니다.

이 YouTube 앱은와 대화 AccountManager하고 Google 계정에 대한 자격 증명이 있는지 묻습니다. 이 질문을하려면 "장치에서 계정 찾기"권한이 필요합니다. 이 AccountManager전화기에는 인증 자 목록이 설치되어 있으며이 질문에 대답하기 위해 참조합니다. 그것은 어떤 자격 증명이없는 경우, 응용 프로그램은 다음과 같이 알려져 있는지를 요청합니다 authToken에 구글 계정. 이 요청에는 " 기기의 계정 사용 "권한 이 필요합니다 .

그런 AccountManager다음 요청하는 앱 (YouTube)이 요청한 계정 (Google 계정)을 사용할 수 있는지 묻습니다. 앱 위에 나타나는 대화 상자 나 알림에있을 수 있습니다. 또는이 질문에 아직 대답하지 않은 경우 앱에서 아무 작업도 수행하지 않도록 선택할 수 있습니다. 나중에 더 편리한 시간에 물어볼 수 있습니다. 이 단계는 "기기의 계정 사용"권한이있는 앱이 요청없이 모든 계정을 즉시 사용할 수 없도록합니다.

예라고 대답 AccountManager하면 요청을 인증 자 (내장 Google 앱)로 전달합니다. 다음에 일어날 일은 인증 자와 로그인하는 특정 서비스에 달려 있습니다. 이전에 로그인하지 않은 경우 로그인해야 할 수 있으며 로그인시 사용자 이름과 비밀번호, 사진, SMS 등이 필요할 수 있습니다. 인증자가 무엇을하든 인증자가 실패하거나 요청한 앱에 인증을 다시 제공 할 수 있습니다.

추가 점검

인증 자와 온라인 서비스는 요청 앱이 수행 할 수있는 작업을 제어 할 수도 있습니다. 예를 들어 앱을 Google 계정에 연결하면 Google은 앱에 필요한 권한 (예 : YouTube의 '동영상 업로드')을 나열합니다. 따라서 앱은 나열된 작업 만 수행 할 수 있습니다. 그러나 일부 서비스에는 이와 같은 내용이 없을 수 있습니다. 이러한 서비스의 경우 앱에서 자격 증명을 사용하도록 허용 한 후에는 사용자 이름으로 모든 작업을 수행 할 수 있습니다 .

요청하는 앱이 인증을 얻은 후에는 더 이상 상호 작용하지 않고 계속 앱을 사용하여 이름으로 작업을 수행 할 수 있습니다. 즉, Dan의 Twitter 클라이언트가 Twitter 피드에 게시 할 수 있다는 데 동의하면 백그라운드에서 실행되어 사용자가 모르게 추가 트윗을 게시 할 수 있습니다. 그렇게하지 않을 것을 신뢰 하는 경우에만 앱에 자격 증명에 대한 액세스 권한을 부여 해야합니다.

개요

" 기기에서 계정 사용 "권한이 있는 앱을 설치 하면 이름으로 온라인 서비스 (예 : Google, Facebook 또는 Twitter)에 액세스 하도록 요청할 수 있습니다 . 서비스 액세스를 허용하도록 선택할 수 있습니다. 서비스에 액세스하도록 허용하면 서비스를 통해 수행 할 수있는 작업이 서비스에 따라 제한 될 수 있으며 서비스에 따라 나중에 해당 권한을 취소 수 있습니다 (일반적으로 "연결된 앱 목록"을 통해) "서비스 웹 사이트).


0

권한을 사용하여 수행 할 수있는 작업 에 대한 Android API 에서이 예제를 찾았습니다 .

개발자로서의 이해에서 이것은 암호 변경을 제외하고 계정에서 제공하는 거의 모든 것에 액세스하는 것을 의미 합니다.

사용자가 계정 토큰을 가지고 있으면 계정에서 제공하는 모든 서비스에 액세스 할 수 있습니다. Facebook 벽에 게시하고 거의 모든 Gmail을 읽을 수 있습니다 .


100 % 확신 할 수는 없지만 앱이 인증 토큰에 액세스하고 사용하기 전에 "계정 선택"화면이 있다고 생각합니다. 권한만으로는 사용자 계정에 액세스 할 수 없습니다.
Flow

2
확실하지 않습니다. "거의"라는 단어를 앞에 추가하십시오. 권한 이름에서 알 수 있듯이 계정 정보 는 사용할 수 있지만 변경할 수는 없습니다 . 내 지식에 관해서는 "사용자 이름으로 인증"할 수 있지만 자격 증명 자체를 알 필요는 없습니다. 예 : 메일을 읽을 수도 있고 Facebook에 게시 할 수도 있습니다. 그러나 비밀번호를 감시 할 수 없습니다. 여전히 이것은 민감한 특권입니다.
Izzy

이런 종류의 액세스 권한을 가진 계정의 비밀번호를 변경할 수 없으므로 "모든 것"에 액세스 할 수 없으므로이 답변은 올바르지 않습니다.
pzkpfw

@pzkpfw : 많은 악의적 인 사용 사례의 경우 공격자가 암호를 변경하지 않고 계정을 조용히 잘못 사용하기 때문에 "거의"세계를 포함하도록 답변을 업데이트했습니다.
Dan Dascalescu

-1

앱은 서비스 계정에 액세스하지 않습니다. 일부 앱은 앱에서 새 계정을 열어야하기 때문에이 권한이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.