Wenn Sie Antworten bereits über einen vertrauenswürdigen Server prüfen, ist es sinnvoll, SafetyNet Attestation API Die Play Integrity API ist unkompliziert. Die Die Play Integrity API kann auch als Ersatz für App-Kampagnen verwendet werden. Lizenzierungsprüfungen, die direkt mit dem Play Store-App über AIDL, wie die von der Verification Library (LVL) Die meisten erforderlichen Änderungen erfolgen auf der vertrauenswürdigen Serverseite, die Play Integrity-Antworttoken lesen und analysieren. Während der Migration müssen sowohl die Anwendung als auch der Server beide APIs gleichzeitig unterstützen, um unterstützen ältere Clients, die noch nicht aktualisiert wurden.
Wenn Ihrer Anwendung höhere Kontingentlimits für die SafetyNet-Zertifizierung gewährt wurden API verwenden, sollten Sie die zugewiesene Nutzungsstufe für die Play Integrity- API und bei Bedarf eine Anfrage zum Verschieben erhöht.
Die folgenden Änderungen sind zur Unterstützung der Play Integrity API erforderlich:
Android-Client:
- Achten Sie darauf, dass der Code die korrekt formatierte Nonce an die
IntegrityTokenRequest
-Builder: <ph type="x-smartling-placeholder">- </ph>
String
(anstelle eines Byte-Arrays)- URL-sicher
- Als Base64 codiert und nicht verpackt
- Mindestens 16 Zeichen
- Maximal 500 Zeichen
- Wiederholungslogik prüfen und dafür sorgen, dass die Anwendung Fehler verarbeitet angemessen.
- Achten Sie darauf, dass die an den vertrauenswürdigen Server gesendeten Antwortdaten eine Unterscheidung ermöglichen zwischen den Antworten der SafetyNet Attestation API und der Play Integrity API Antworten.
Vertrauenswürdiger Server:
- Prüfen Sie die Logik zur Nonce-Generierung und achten Sie darauf, dass sie der Play Integrity API entspricht Anforderungen.
- Achten Sie darauf, dass der Servercode zwischen der SafetyNet Attestation API unterscheiden kann und Play Integrity API-Antworten. Stellen Sie sicher, dass der Code und validiert diese Antworten.
- Logik zum Validieren und Parsen hinzufügen Play Integrity API-Antworten.
- Da die neue Play Integrity API-Antwort zusätzliche Details enthält, die notwendig sein können, um die Logik der Entscheidungsfindung und das Feedback die an die Clientgeräte zurückgesendet werden. Weitere Informationen finden Sie in der API Abschnitt "Antwortzuordnung" in diesem Thema.
Nonce-Codierung
Eine integritätsbezogene Nonce muss als
Base64-codiert,
URL-sicher und
nicht umschlossen String
. Dieses Format
unterscheidet sich von der SafetyNet Attestation API, für die byte[]
erforderlich ist.
- „URL-sicher“ bedeutet, dass Sie die URL- und Dateinamenssicherheit verwenden. Base64-Variante (siehe RFC 4648, Abschnitt 5), wobei „-“ und „_“ werden anstelle von "+" und „/“. Weitere Informationen zur Base64-Codierung finden Sie unter RFC 4648 zurückgegeben wird.
- „no-wrap“ (ohne Textumbruch) dass alle Zeilenabschlusszeichen weggelassen werden. Das bedeutet, dass die Ausgabe eine einzelne lange Zeile.
.setNonce(Base64.encodeToString(NONCE_BYTES,
Base64.URL_SAFE | Base64.NO_WRAP))
Achte außerdem darauf, dass die Nonce-Generierung mit den Richtlinien von Play Integrity API-Richtlinien.
API-Antwortzuordnung
In der folgenden Tabelle sind die Felder der SafetyNet Attestation API ihrer Play- Entsprechungen der Integrity API.
<ph type="x-smartling-placeholder"></ph> SafetyNet Attestierungs-API | <ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> Play Integrity API | Notes | |
timestampMs |
requestDetails.timestampMillis
|
||
nonce |
requestDetails.nonce |
||
apkPackageName |
appIntegrity.packageName
|
||
apkCertificateDigestSha256
|
appIntegrity.certificateSha256Digest
|
Achten Sie darauf,
appRecognitionVerdict ist festgelegt auf
PLAY_RECOGNIZED
|
|
ctsProfileMatch |
Zusammengeführt zu
deviceIntegrity.deviceRecognitionVerdict
|
||
basicIntegrity |
Zusammengeführt zu
deviceIntegrity.deviceRecognitionVerdict
|
||
evaluationType |
Zusammengeführt zu
deviceIntegrity.deviceRecognitionVerdict
|
||
advice |
Not available |
||
error
|
Not available
|
Liste der Labels für die Geräteintegrität ist leer. |
Zuordnung des Geräteintegritätsergebnisses
SafetyNet Attestation API | Play Integrity API | ||
ctsProfileMatch
|
basicIntegrity
|
evaluationType
|
deviceRecognitionVerdict
|
FALSE |
FALSE |
Keine Labels | |
FALSE |
TRUE |
MEETS_BASIC_INTEGRITY |
|
TRUE |
FALSE |
Keine Labels | |
TRUE |
TRUE |
BASIC
|
MEETS_DEVICE_INTEGRITY, MEETS_BASIC_INTEGRITY
|
TRUE |
TRUE |
HARDWARE_BACKED |
MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY,
MEETS_BASIC_INTEGRITY
|
Möglicherweise müssen Sie den Satz der Geräteintegrität Antworten, wenn Ihre Anwendung nutzt eine komplexe Erzwingungsstrategie und benötigt alle möglichen Werte.
Wiederholungslogik der Play Integrity API
Bei bestimmten Fehlercodes sollte eine App API-Aufrufe wiederholen. Sie benötigen alle Fehler überprüft Codes und achten Sie darauf, die die Anwendung bei Bedarf mit exponentiellem Backoff wiederholt. Bitte Die Mindestverzögerung muss mindestens 5 Sekunden betragen und exponentiell ansteigen (5 s, 10 s, 20 s, 40 s usw.), damit der API genügend Zeit zur Bewertung des Geräts und Anwendungsintegrität.
Optionaler Ersatz für das App Licensing API
Wenn Sie das App-Lizenzierungs-API verwenden, können Sie optional eine Migration zur Verwendung der Die Play Integrity API enthält als Play Integrity API-Token die Lizenzierungsinformationen. Wie bei der Migration der SafetyNet Attestation API sollte auf einigen Geräten eine ältere Version der App beibehalten werden. Ihr vertrauenswürdiger Server sollte in der Lage sein, sowohl das App-Lizenzierungs-API als auch Play Integrity API-Antworten.
Antworten bis zur vollständigen Einstellung erhalten
Wenn Sie noch nicht zur Play Integrity API migriert sind oder SafetyNet noch nicht entfernt haben Bestätigung bis zum Migrationstermin (31. Januar 2024) – Sie können dieses Formular ausfüllen. Formular um eine Fristverlängerung zu beantragen. Wenn eine Verlängerung genehmigt wird, wird Ihre App fortgesetzt Antworten von SafetyNet Attestation bis zur vollständigen Deaktivierungsfrist erhalten (31. Januar 2025).