2012-07-25 3 views
4

배경

내가 던전 매니페스트에서 수신기 알고 (응용 프로그램에서 청구 예를 들어, 모르는 사람들을 위해) 는 권한 요소를 포함하지 않는다 Lint는 나에게 다음과 같이 경고합니다. "내 보낸 수신기에 허가가 필요하지 않습니다 (...)이 없으면 모든 응용 프로그램에서이 수신기"을 사용할 수 있습니다.은 인앱 결제 수신기 권한

만약 내가이 권리를 이해했다면, 응용 프로그램이 위조 된 데이터로 스푸핑 할 수 있으며 (아마 확실하지 않은 시스템에서) 아마도 Play 응용 프로그램을 가장하고 가짜 결제 기록을 제공 할 수 있습니다.

질문

  1. 는 그 거 맞아? 일반 소비자 Android 기기의 의미는 무엇입니까?

  2. 정상적인 동작을 기대하려면 무엇을 써야합니까? 나는 리시버가 합법적 인 Play 앱에서만 브로드 캐스트를 수신 할 수 있도록 허용하고 있습니다. com.android.vending.BILLING이 맞나요? 이 경우 스푸핑 된 시스템이이를 선언 할 수 있다고 생각합니다. 그 결과 3 :

  3. 스푸핑 시스템을 방지하기 위해 잘 알려진 Google 공개 시그니처와 비교해야합니까?

댓글

나는이 중 일부는 일부 너무 많이 보일 수 있습니다 알고, 아직 여기 이론에 대해 생각하고 있어요. :-)

또한 매니페스트 정의 수신기에는 사용할 수 없으므로 신경 쓰지 않았습니다. 그것이 맞다면 안되면 제게 고쳐주세요. 네, 이전에 문서를 읽었습니다.

감사합니다.

답변

1

거래 데이터는 고유 한 키로 서명되며 개발자 계정에 연결됩니다. 그것들을 올바르게 검증한다면 아무도 트랜잭션을 위조 할 수 없습니다.

권한이 정의되지 않은 이유는 Android에서 서명 권한 시스템이 작동하는 방식입니다. '이 브로드 캐스트는 발신자와 동일한 키로 서명 된 앱에서만 수신 할 수 있습니다.'라고 말합니다. 분명히 앱이 Google Play 앱과 다른 키로 서명되었으므로 서명 기반 권한을 사용할 수 없으며 공개해야합니다.

기술적으로 방송을 보내는 사람을 확인하고 해당 UID의 패키지 이름을 알아 내고 알려진 Google Play 패키지와 비교할 수 있습니다. 그것들은 새 버전이 출시 될 때 변경되는 경향이 있으며 일부 장치 (특히 Honeycomb 장치)에서 다르기 때문에이 방법은 너무 잘 확장되지 않으며 잘못된 경고를 줄 수 있습니다.

+0

첫 번째 단락에서 Google은 비공개 암호화를 의미하며 비공개 키를 자체 저장합니다. 그리고 프로세스가 가능한 한 안전하게 수행되는지 확인하십시오 (고유 한 소금 등) ... – davidcesarino

+0

실제로 서명하고 있습니다 - 데이터와 서명을 얻지 만 본질적으로 그렇습니다. –

+0

물론, 확실합니다 ... 도와 줘서 고마워. – davidcesarino