セキュリティ

鍵を安全に管理し、ファイルと sharedpreference を暗号化します。

androidx.security グループ内のすべてのアーティファクトのリストを以下に示します。

アーティファクト 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
security-crypto 1.0.0 - - 1.1.0-alpha06
security-app-authenticator - - 1.0.0-beta01 -
security-identity-credential - - - 1.0.0-alpha03
このライブラリの最終更新日: 2024 年 3 月 6 日

依存関係の宣言

Security への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

Security-App-Authenticator-Testing バージョン 1.0

バージョン 1.0.0-beta01

2024 年 3 月 6 日

androidx.security:security-app-authenticator:1.0.0-beta01androidx.security:security-app-authenticator-testing:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。

バージョン 1.0.0-alpha02

2023 年 12 月 13 日

androidx.security:security-app-authenticator-testing:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。

バグの修正

  • [check|enforce]CallingAppIdentity API に提供されない場合に Binder#getCalling[Uid|Pid] を想定しなくなる新しい API 動作のテストを更新しました。(I1851b

バージョン 1.0.0-alpha01

2021 年 6 月 2 日

androidx.security:security-app-authenticator-testing:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

このテスト ライブラリには、テストの要件を満たす挿入可能な AppAuthenticator の構成に使用できるビルダーが用意されています。このライブラリでは、AppAuthenticator を構成するいくつかの方法がサポートされています。

  • 構成で宣言されたすべてのパッケージの署名の一致を報告するように、一般的なテストポリシーを指定できます。
  • 一致を報告しない他のすべてのパッケージとの署名の一致を返すように、個々のパッケージを指定できます。
  • 各パッケージに明示的な署名 ID を設定できます。生成される AppAuthenticator は、提供された ID が構成ファイルの宣言と一致する場合にのみ、署名の一致を報告します。
  • パッケージは、インストールされていないもの、または明示的な UID が指定されているものとして扱うこともできます。

Security-App-Authenticator バージョン 1.0.0

バージョン 1.0.0-alpha03

2023 年 12 月 13 日

androidx.security:security-app-authenticator:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

API の変更

  • 検証するパッケージの UID / PID が利用できないユースケースのサポートを追加しました。API は、startActivityForResult などのケースや、呼び出し元アプリの ID が [Activity|Broadcast]Options#setShareIdentityEnabled を介して共有されるアクティビティ / レシーバをサポートするようになりました。
  • これらの新しいユースケースをサポートするため、[check|enforce]CallingAppIdentity(String, String) の動作が更新されました。これらのメソッドではデフォルトで Binder#getCalling[Uid|Pid] が使用されなくなります。代わりに、呼び出し元パッケージの UID が明示的に指定されていない場合は、その UID の確認はスキップされます。(I1851b

バージョン 1.0.0-alpha02

2021 年 6 月 2 日

androidx.security:security-app-authenticator:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • Android 12 で導入された新しい knownSigner 権限保護フラグをサポートする準備として、構成内で digestAlgorithm 属性を指定できなくなりました。代わりに、SHA-256 を使用してすべての証明書ダイジェストを計算する必要があります。

バグの修正

  • 構成で提供されるすべての証明書ダイジェストが正規化され、実行時にダイジェストが計算されたときと、テスト ライブラリの使用時に明示的な署名 ID が定義されたときに、署名の一致が報告されるようになりました。

バージョン 1.0.0-alpha01

2021 年 5 月 5 日

androidx.security:security-app-authenticator:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

AppAuthenticator は、署名 ID に基づいたアプリの信頼の検証を簡素化することを目的とした新しいライブラリです。アプリでは、信頼できるアプリのパッケージ名と署名 ID を含む XML 構成ファイルを指定するだけで済みます。ライブラリが実行時にアプリの署名 ID の検証を行います。

バージョン 1.1.0

バージョン 1.1.0-alpha06

2023 年 4 月 19 日

androidx.security:security-crypto:1.1.0-alpha06androidx.security:security-crypto-ktx:1.1.0-alpha06 がリリースされました。バージョン 1.1.0-alpha06 に含まれる commit については、こちらをご覧ください

新機能

  • Tink の依存関係を 1.8.0 に更新しました。

バージョン 1.1.0-alpha05

2023 年 2 月 22 日

androidx.security:security-crypto:1.1.0-alpha05androidx.security:security-crypto-ktx:1.1.0-alpha05 がリリースされました。バージョン 1.1.0-alpha05 に含まれる commit については、こちらをご覧ください

バグの修正

  • MasterKeys.getOrCreate での競合状態を修正しました(I3391eb/268572037

バージョン 1.1.0-alpha04

2022 年 11 月 9 日

androidx.security:security-crypto:1.1.0-alpha04androidx.security:security-crypto-ktx:1.1.0-alpha04 がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • アプリの初回起動時に表示される「keyset not found, will generate a new one」というログメッセージを削除しました。(b/185219606
  • Tink の依存関係をバージョン 1.7.0 にアップグレードしました。

API の変更

  • リクエストされたファイルが存在しない場合に、一般的な IOException ではなく FileNotFoundException をスローするように EncryptedFile#openFileInput() を変更しました。(I80e41b/148804719
  • それぞれのメソッドではなく Android M を要求するよう「MasterKeys」クラスを更新しました。(I8b4b8
  • 値の型が定義済みの列挙型バリアントのいずれかと一致しないまれな状況で、SecurityException をスローするように EncryptedSharedPreferences のすべての設定のゲッター(#getString#getInt など)を変更しました。(b/241699427

バグの修正

  • security-crypto-ktx ライブラリの最小 SDK バージョンを v21 に下げて security-crypto と同期しました。(b/193550375
  • 複数の EncryptedFile をビルドする際の同時実行バグを修正しました。(b/136590547

外部からの協力

  • chr.ibbotson@gmail.com から EncryptedSharedPreferences.Editor#remove の修正を受け取りました。(b/224994760b/134197835f44d44d

Security-Crypto-Ktx バージョン 1.1.0-alpha03

2021 年 5 月 18 日

androidx.security:security-crypto-ktx:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください

androidx.security:security-crypto:1.1.0-alpha03 に合わせて更新しました。

バージョン 1.1.0-alpha03

2020 年 12 月 2 日

androidx.security:security-crypto:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • Tink が安定版リリース 1.5.0 に更新されました。

バージョン 1.1.0-alpha02

2020 年 8 月 5 日

androidx.security:security-crypto:1.1.0-alpha02androidx.security:security-crypto-ktx:1.1.0-alpha02 がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • Tink が安定版リリース 1.4.0 に更新されました。

バグの修正

  • Tink が更新されたことで、シェーディングされた Protobuf 依存関係に関する R8 と Proguard の問題が解決します。
  • Tink が更新されたことで、AndroidKeyStore の同時実行エラーが適切に処理されるようになります。

外部からの協力

  • EncryptedSharedPreferences の適用、修正時に mKeysChanged をクリアします。(aosp/1323026

バージョン 1.1.0-alpha01

2020 年 6 月 10 日

androidx.security:security-crypto:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • Lollipop(API レベル 21 以上)がサポートされるようになりました。API 21 と 22 では AndroidKeyStore が使用されない点にご注意ください。(I7c12db/132325342
  • 新しい MasterKey クラスではキーのオプションが増えました。また、KeyGenParamSpec を持たない Android バージョンと新機能をサポートするために、MasterKeys のサポートを終了しました。

Security-Identity-Credential バージョン 1.0.0

バージョン 1.0.0-alpha03

2021 年 9 月 1 日

androidx.security:security-identity-credential:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • Android 12 のハードウェア格納型の ID 認証情報機能に対するサポートを追加しました。

バージョン 1.0.0-alpha02

2021 年 2 月 24 日

androidx.security:security-identity-credential:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。

バグの修正

  • ID 認証情報 API を Android 12 のプランに合わせて更新します(Iff83e

バージョン 1.0.0-alpha01

2020 年 8 月 19 日

androidx.security:security-identity-credential:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

この Jetpack リリースでは、ID 認証情報 API の Jetpack バージョンが Android 11 および API レベル 30 に追加されました。Android 11 を搭載したデバイスでハードウェア格納型の ID 認証情報をサポートしている場合、この Jetpack は単に呼び出しをプラットフォーム API に転送します。それ以外の場合は、Android キーストアに依存する実装が使用されます。Android キーストアに依存する実装で提供されるセキュリティとプライバシーはハードウェア格納型と同じレベルではありませんが、すべてのデータに発行者の署名がある場合は、所有者と発行者の両方にとって十分適切なレベルになります。このライブラリは API レベル 24 以降を必要とします。

ID 認証情報 API は、ユーザー ID ドキュメントに対し、安全なストアへのインターフェースを提供します。これらの API は、意図的にかなり汎用的で抽象的なものになっています。認証情報検証デバイスおよび認証機関(IA)との通信に使用されるメッセージ形式とセマンティクスの仕様は、これらの API のスコープから可能な限り除外されています。API が依存するデータ構造は、まもなくリリースされる「ISO/IEC IS 18013-5 Personal identification - ISO-compliant driving licence - Part 5: Mobile driving licence (mDL)」のアプリケーション規格で規定されるデータ構造と互換性があります。

API の変更

  • ID 認証情報 Jetpack を追加しました。(Icf90b

バージョン 1.0.0

バージョン 1.0.0

2021 年 4 月 21 日

androidx.security:security-crypto:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

注目の機能

  • EncryptedFile: 暗号化された入出力ストリームを提供し、暗号化されたデータをファイルから読み取り、ファイルに書き込みます。
  • EncryptedSharedPreferences: すべてのキーと値を自動的に暗号化 / 復号する SharedPreferences の実装を提供します。
  • MasterKeys を介した簡単なキー生成を提供します。
  • 安定性を高めるため、Tink 1.5.0 を使用します。

バージョン 1.0.0-rc04

2021 年 1 月 13 日

androidx.security:security-crypto:1.0.0-rc04 がリリースされました。バージョン 1.0.0-rc04 に含まれる commit については、こちらをご覧ください。

バグの修正

  • Tink を 1.5.0 にアップグレードし、安定性を向上させました。

バージョン 1.0.0-rc03

2020 年 8 月 5 日

androidx.security:security-crypto:1.0.0-rc03 がリリースされました。バージョン 1.0.0-rc03 に含まれる commit については、こちらをご覧ください

新機能

  • Tink が安定版リリース 1.4.0 に更新されました。

バグの修正

  • Tink が更新されたことで、シェーディングされた Protobuf 依存関係に関する R8 と Proguard の問題が解決します。
  • Tink が更新されたことで、AndroidKeyStore の同時実行エラーが適切に処理されるようになります。

外部からの協力

  • EncryptedSharedPreferences の適用、修正時に mKeysChanged をクリアします。(aosp/1323026

バージョン 1.0.0-rc02

2020 年 5 月 20 日

androidx.security:security-crypto:1.0.0-rc02 がリリースされました。バージョン 1.0.0-rc02 に含まれる commit については、こちらをご覧ください

バグの修正

  • proto buf lite dep をシェーディングする Tink バージョン 1.4.0-rc2 に更新しました。これにより、他の Android SDK との競合という広く報告されている問題が解決されます。(I8a831
  • EncryptedSharedPreferencesapply() を修正しました。(I29069b/154366606

バージョン 1.0.0-rc01

2020 年 4 月 15 日

androidx.security:security-crypto:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • KeyGenParamSpecMasterKeys.getOrCreate に渡され、getUserAuthenticationRequiredtrue を返した場合に getUserAuthenticationValidityDurationSeconds が 0 より大きな値を返すことを確認するチェックを追加しました。(I911f5)(b/152644939

バージョン 1.0.0-beta01

2020 年 3 月 18 日

androidx.security:security-crypto:1.0.0-beta01 がリリースされました。1.0.0-alpha02 からの変更はありません。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください

バージョン 1.0.0-alpha02

2019 年 5 月 23 日

androidx.security:security-crypto:1.0.0-alpha02 がリリースされました。 このバージョンに含まれる commit については、commit ログをご覧ください。

バグの修正

  • getAll() から共有設定に関連付けられた Key-Value を取得する際の問題を修正しました。
  • 制限された設定キーの使用をブロックしました。
  • Javadoc のマイナー アップデート

バージョン 1.0.0-alpha01

2019 年 5 月 7 日

androidx.security:security-crypto:1.0.0-alpha01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能のハイライト

  • EncryptedFile: 暗号化された入出力ストリームを提供し、暗号化されたデータをファイルから読み取り、ファイルに書き込みます。
  • EncryptedSharedPreferences: すべてのキーと値を自動的に暗号化 / 復号する SharedPreferences の実装を提供します。
  • MasterKeys を介した簡単なキー生成を提供します。