Mit der Play Integrity API können Sie prüfen, ob Interaktionen und Serveranfragen von Ihrem echten App-Binärprogramm stammen, das auf einem echten Android-Gerät ausgeführt wird. Wenn potenziell riskante und betrügerische Interaktionen erkannt werden, z. B. von manipulierten App-Versionen und nicht vertrauenswürdigen Umgebungen, kann der Backend-Server Ihrer App mit geeigneten Aktionen reagieren, um Angriffe zu verhindern und Missbrauch zu reduzieren.
Wenn Ihre App oder Ihr Spiel auf einem Android-Gerät mit dem Google Play Store und den Google Play-Diensten verwendet wird, gibt die Play Integrity API eine Antwort zurück, mit der Sie feststellen können, ob Sie mit Folgendem interagieren:
- Echtes App-Binärprogramm:Prüfen Sie, ob Sie mit Ihrem unveränderten Binärprogramm in der Form interagieren, die Google Play bekannt ist.
- Echte Play-Installation:Prüfen Sie, ob das aktuelle Nutzerkonto lizenziert ist, was bedeutet, dass der Nutzer Ihre App oder Ihr Spiel bei Google Play installiert oder gekauft hat.
- Echtes Android-Gerät:Prüfen Sie, ob Ihre App auf einem echten Android-Gerät mit Google Play-Diensten (oder einer echten Instanz von Google Play Spiele für PC) ausgeführt wird.
Sie können auch festlegen, dass Sie in Ihrer Play Integrity API-Antwort Informationen zur Umgebung erhalten, darunter:
- Risiko von App-Zugriffen:Es wird geprüft, ob Apps ausgeführt werden, die möglicherweise den Bildschirm aufnehmen, Overlays einblenden oder das Gerät steuern.
- Risiko durch bekannte Malware:Prüfen Sie, ob Google Play Protect aktiviert ist und ob auf dem Gerät installierte Apps gefunden wurden, die als riskant oder gefährlich eingestuft werden.
Übersicht
Wenn ein Nutzer eine Aktion in Ihrer App ausführt, können Sie die Play Integrity API aufrufen, um zu prüfen, ob die Aktion in Ihrem echten App-Binärprogramm stattgefunden hat, das von Google Play installiert wurde und auf einem echten Android-Gerät ausgeführt wird. Sie können auch zusätzliche Informationen in der Antwort aktivieren, darunter die Anzahl der Anfragen, die ein Gerät in letzter Zeit gestellt hat, und Signale zur Umgebung, einschließlich des Risikobewertungsergebnisses für den App-Zugriff und des Play Protect-Ergebnisses. Wenn etwas mit den Ergebnissen nicht stimmt, kann der Backend-Server Ihrer App entscheiden, welche Maßnahme zum Schutz vor Problemen wie Missbrauch und Betrug, nicht autorisiertem Zugriff und Angriffen als Nächstes ausgeführt werden soll.
Sicherheitsaspekte
Die Play Integrity API bringt für Ihre App den größten Nutzen, wenn Sie den folgenden Best Practices folgen:
Eine Strategie zur Missbrauchsprävention haben
Die Play Integrity API funktioniert am besten, wenn sie zusammen mit anderen Signalen als Teil Ihrer allgemeinen Strategie zur Missbrauchsbekämpfung und nicht als alleiniger Mechanismus zur Missbrauchsbekämpfung verwendet wird. Verwenden Sie diese API in Verbindung mit anderen geeigneten Sicherheitsbest Practices für Ihre App. Standardmäßig kann Ihre App pro Tag insgesamt bis zu 10.000 Anfragen für alle Installationen senden. Sie können eine Erhöhung des Tageslimits beantragen.
Telemetriedaten erfassen und Zielgruppen analysieren, bevor Sie Maßnahmen ergreifen
Bevor Sie das Verhalten Ihrer App basierend auf den Ergebnissen der Play Integrity API ändern, können Sie die aktuelle Situation mit Ihren bestehenden Nutzern nachvollziehen, indem Sie die API ohne Erzwingung implementieren. Sobald Sie wissen, welche Entscheidungen für Ihre aktuelle Installationsbasis getroffen werden, können Sie die Auswirkungen der geplanten Maßnahmen abschätzen und Ihre Strategie zum Schutz vor Missbrauch entsprechend anpassen.
Entscheiden Sie, wie Sie Integritätsergebnisse anfordern
Die Play Integrity API bietet zwei Optionen zum Anfordern und Empfangen von Integritätsergebnissen. Unabhängig davon, ob Sie Standardanfragen, klassische Anfragen oder eine Kombination aus beiden Anfragetypen senden, wird die Antwort mit dem Integritätsurteil im selben Format zurückgegeben.
Standard-API-Anfragen eignen sich für jede App oder jedes Spiel und können auf Anfrage gestellt werden, um zu prüfen, ob eine Nutzeraktion oder Serveranfrage echt ist. Standardanfragen haben die niedrigste Latenz (durchschnittlich einige hundert Millisekunden) und eine hohe Wahrscheinlichkeit, ein brauchbares Urteil zu erhalten. Bei Standardanfragen wird intelligentes On-Device-Caching verwendet und der Schutz vor bestimmten Arten von Angriffen an Google Play delegiert.
Klassische API-Anfragen, die ursprüngliche Möglichkeit, Integritätsergebnisse anzufordern, sind ebenfalls weiterhin verfügbar. Klassische Anfragen haben eine höhere Latenz (durchschnittlich einige Sekunden) und Sie sind dafür verantwortlich, das Risiko bestimmter Arten von Angriffen zu minimieren. Klassische Anfragen beanspruchen mehr Daten und Akku des Nutzers als Standardanfragen, da sie eine neue Bewertung initiieren. Daher sollten sie nur selten und einmalig gesendet werden, um zu prüfen, ob eine hochsensible oder wertvolle Aktion echt ist. Wenn Sie eine klassische Anfrage stellen und sie für später im Cache speichern möchten, sollten Sie stattdessen eine Standardanfrage stellen, um das Risiko von Angriffen zu verringern.
In der folgenden Tabelle sind einige wichtige Unterschiede zwischen den beiden Arten von Anfragen aufgeführt:
Standard-API-Anfrage | Klassische API-Anfrage | |
---|---|---|
Erforderliche Mindestversion des Android SDK | Android 5.0 (API-Level 21) oder höher | Android 4.4 (API-Level 19) oder höher |
API-Vorwärmung erforderlich | ✔️ (einige Sekunden) | ❌ |
Typische Anfragelatenz | Einige hundert Millisekunden | Einige Sekunden |
Mögliche Anfragehäufigkeit | Häufig (auf Anfrage nach Aktionen oder Anfragen suchen) | Selten (einmalige Prüfung auf Aktionen mit dem höchsten Wert oder die sensibelsten Anfragen) |
Schutz vor Replay- und ähnlichen Angriffen | Automatische Risikominderung durch Google Play | Feld nonce mit serverseitiger Logik verwenden |
Eine Tabelle mit weiteren Unterschieden finden Sie unter Hinweise zu klassischen Anfragen.
Integritätsurteil zum richtigen Zeitpunkt anfordern
Sie sollten ein Urteil zum Risiko des App-Zugriffs so nah wie möglich an der Zeit der Aktion oder Serveranfrage anfordern, die Sie vor dem Zugriff schützen möchten, um zu verhindern, dass Betrüger die von Ihrer App durchgeführte Integritätsprüfung umgehen.
API-Anfragen schwer zu reproduzieren machen
Standard-API-Anfragen haben ein Feld namens requestHash
, das zum Schutz vor Manipulation und ähnlichen Angriffen dient. Geben Sie in diesem Feld einen Digest aller relevanten Werte aus der Anfrage Ihrer App an. Folgen Sie der Anleitung zur Verwendung der Inhaltsbindung, um die Standardanfragen Ihrer App zu schützen.
Klassische API-Anfragen haben ein Feld namens nonce
(kurz für „number once“), das zum Schutz vor bestimmten Arten von Angriffen wie Replay- und Manipulationsangriffen verwendet wird. Folgen Sie der Anleitung zum Generieren von Nonces, um die klassischen Anfragen Ihrer App zu schützen.
Integritätsbewertungen nicht im Cache speichern
Durch das Caching von Integritätsbefunden erhöht sich das Risiko von Proxying. Dabei handelt es sich um einen Angriff, bei dem ein böswilliger Akteur ein Urteil von einem vertrauenswürdigen Gerät zu missbräuchlichen Zwecken in einer anderen Umgebung wiederverwendet. Anstatt Antworten im Cache zu speichern, können Sie eine Standard-API-Anfrage stellen, um bei Bedarf ein Urteil zu erhalten.
Stufenweise Durchsetzungsstrategie
Das Integritätsergebnis der Play Integrity API kann verschiedene Antworten liefern, die eine mehrstufige Strategie ermöglichen. Dazu können Sie den Backend-Server Ihrer App so konfigurieren, dass er sich je nach möglicher Antwort oder Gruppe von Antworten unterschiedlich verhält.
Sie können Ihre Durchsetzungsstrategie auch basierend auf der Vertrauenswürdigkeit von Geräten stufenweise einrichten. Dazu müssen Sie in der Play Console aktivieren, dass Sie zusätzliche Gerätelabels in Ihrer API-Antwort erhalten. Für jedes Gerät werden alle Labels zurückgegeben, deren Kriterien erfüllt sind. Nachdem Sie beispielsweise die Option aktiviert haben, alle Gerätelabels zu erhalten, können Sie einem Gerät, das MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
und MEETS_BASIC_INTEGRITY
zurückgibt, mehr vertrauen als einem Gerät, das nur MEETS_BASIC_INTEGRITY
zurückgibt. Sie können in jedem Szenario anders als der Server reagieren.
Eine Reihe von Antworten von Ihrem Server an Ihre App senden
Eine Reihe von Entscheidungsergebnissen ist schwieriger zu replizieren als das Senden einer binären Antwort vom Typ „Zulassen/Verweigern“ vom Server zurück an die App für jede Antwort. Sie können beispielsweise eine Reihe ähnlicher Antworten verwenden, z. B. „Zulassen“, „Zulassen mit Einschränkungen“, „Zulassen mit Einschränkungen nach Abschluss des CAPTCHAs“ und „Ablehnen“.
Großangelegte Missbrauchsfälle anhand der letzten Geräteaktivitäten erkennen
Mit der Funktion Letzte Geräteaktivitäten in der Play Integrity API können Sie Geräte finden, die eine große Anzahl von Integritäts-Tokens anfordern. Angreifer mit hoher Aktivität generieren häufig gültige Attestierungsergebnisse von echten Geräten und stellen sie Bots zur Verfügung, um Angriffe auf gerootete Geräte und Emulatoren zu automatisieren. Mit dem Level „Letzte Geräteaktivitäten“ können Sie prüfen, wie viele Attestationen in der letzten Stunde von Ihrer App auf diesem Gerät generiert wurden.
Umsetzbare Fehlermeldungen anzeigen
Falls möglich, sollten Sie Nutzern informative Fehlermeldungen zur Problembehebung bereitstellen. Sie können sie beispielsweise bitten, es noch einmal zu versuchen, ihre Internetverbindung zu aktivieren oder zu prüfen, ob die Play Store App auf dem neuesten Stand ist.
Einen Plan für unerwartete Probleme oder Ausfälle haben
Das Google Play-Status-Dashboard enthält Informationen zum Dienststatus der Play Integrity API sowie zu Unterbrechungen und Ausfällen. Sie sollten im Voraus planen, wie sich Ihr Backend-Server im unwahrscheinlichen Fall eines groß angelegten Ausfalls der Play Integrity API verhalten soll. Ihr Backend-Server sollte auch dann funktionieren, wenn gerätespezifische Schlüssel für die Android-Plattform-Schlüsselattestierung entzogen werden.
End-to-End-Lösungen für Betrug im Unternehmen in Betracht ziehen
Unternehmen, die eine umfassende Lösung zur Betrugs- und Bot-Verwaltung suchen, können reCAPTCHA Enterprise für Mobilgeräte erwerben. Diese Lösung umfasst SDKs für Android, die Entwicklern Betrugsrisikobewertungen liefern. reCAPTCHA Enterprise enthält automatisch Play Integrity API-Signale und kombiniert sie mit reCAPTCHA-Netzwerk- und Anwendungssignalen für Kunden. So erhalten Sie eine nahtlose, unsichtbare Lösung zur Betrugsverwaltung, die sofort einsatzbereit ist. Sie kann auch Android-Apps schützen, für die die Play Integrity API nicht verfügbar ist.
Risikobehafteten Traffic beim Zugriff auf wertvolle oder sensible Funktionen anzweifeln
Sie können wertvolle oder vertrauliche Aktionen in Ihrer App oder Ihrem Spiel identifizieren, die mit der Play Integrity API geschützt werden sollen, anstatt den Zugriff vollständig zu verweigern. Prüfen Sie riskante Zugriffe nach Möglichkeit, bevor Sie Aktionen mit hohem Wert zulassen. Wenn das Risiko von App-Zugriffen beispielsweise anzeigt, dass eine App ausgeführt wird, die den Bildschirm aufzeichnen kann, bitten Sie den Nutzer, Apps zu deaktivieren oder zu deinstallieren, die den Bildschirm aufzeichnen können, bevor er die Funktion nutzen kann, die Sie schützen möchten.
Nutzungsbedingungen und Datensicherheit
Wenn Sie auf die Play Integrity API zugreifen oder sie verwenden, stimmen Sie den Nutzungsbedingungen für die Play Integrity API zu. Bitte lesen Sie sich alle anwendbaren Nutzungsbedingungen und Richtlinien durch, bevor Sie auf die API zugreifen.
In Google Play gibt es einen Abschnitt zur Datensicherheit, in dem Entwickler offenlegen können, wie in ihren Apps Daten erhoben, weitergegeben und geschützt werden, um Nutzer zu informieren. Weitere Informationen zum Ausfüllen des Datenformulars finden Sie unter Datenverwaltung durch die Play Integrity API.