Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WFSの認証基盤SDKのセキュリティーに関する取り組み

gree_tech
September 18, 2020

 WFSの認証基盤SDKのセキュリティーに関する取り組み

GREE Tech Conference 2020 で発表された資料です。
https://techcon.gree.jp/2020/session/ShortSession-7

gree_tech

September 18, 2020
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. • WFS自社開発、正式名称はGameLibrary • 課金などに対して共通なAPI機能を提供 • 様々なOS、プラットフォーム、ゲームエンジンをサポート • Android / iOS

    / Windows • GooglePlay / AppStore / AmazonStore / Steam • Cocos2d-x / Unity / UE4 ネイティブゲーム向けの認証、課金、SNS連携などの共通基盤機能を提 供するAPIサービスとSDKの総称 WFS認証基盤とは 4
  2. •コードの解析ツール • Android:APKTOOL、Xposed • iOS:IDA、Cycript •コードの不正改造、Repackaging • Android:APKTOOL、smali • iOS:insert_dylib

    ゲームの解析、改造を目的とするリバースエンジニアリングツールが存在 リバースエンジニアリング 7
  3. getAppSignature API 開発元 証明書 Game APK 改造者 開発証 明書 改造Game

    APK 開発元証 明書 Signature 改造者開 発証明書 Signature ≠ getAppSignature() 一致しない場合、APKが 改造された可能性!
  4. • VerifyDevice API • ROOT化や脱獄の検知 • エミュレータの検知 • Debug状態の検知 •

    インストーラーの検知 ゲームが正常な端末環境中に実行するのか 実行環境を検知 14
  5. •Google SafetyNet Attestation APIを利用 • Google Play Service API •

    正規Android デバイスか、正規のアプリかを評価するAPI • 収集したデバイス、アプリ情報のJSON(JWS)を返却 Root化、エミュレータの検知に一定の信頼性を求める場合 Google SafetyNet APIを使用 SafetyNet Attestation API 17
  6. { "timestampMs": 9860437986543, "nonce": "R2Rra24fVm5xa2Mg", "apkPackageName": "com.package.name.of.requesting.app", "apkCertificateDigestSha256": ["base64 encoded,

    SHA-256 hash of the certificate used to sign requesting app"], "ctsProfileMatch": true, "basicIntegrity": true } SafetyNet Attestation APIの返却JWSのPayload SafetyNetのデータ 18 Google認証された正規Androidデバイスであれば、「ctsProfileMatch」と 「basicIntegrity」の値はともに「true」になる
  7. Gamelib SafetyNet実装の構成 Gamelib Server JWS検証 Gamelib SDK Google Play Service

    Google Server Game Server Game App ②Attestation API With Nonce ①Nonce ③JWS 異常ユーザー 取得API
  8. Gamelib SafetyNet実装の構成 Gamelib Server JWS検証 Gamelib SDK Google Play Service

    Google Server Game Server Game App ②Attestation API With Nonce ①Nonce ③JWS 異常ユーザー 取得API