Andoid 12 密钥库 user_0 缺少 foder

问题描述 投票:0回答:2

我目前正在对 Android 12 API 31 上的应用程序取证进行研究。在这项研究中,我需要使用 Keystore 中的私钥,我在 Android 11 中发现没有问题,该私钥通常位于“/data/misc/keystore” /user_0/”。但在 Android 12 中,找不到“user_0”文件夹,我只能找到一个名为“persistent.sqlite”的 DB 文件。我是否缺少 AOSP 文档中的任何更新,或者也许我错过了对 Keystore permanent.sqlite 文件的理解的概念

Android 12 密钥库文件结构

emulator64_x86_64_arm64:/data/misc/keystore # ls -la
total 156
drwx------  2 keystore keystore   4096 2022-02-14 14:57 .
drwxrwx--t 64 system   misc       4096 2021-12-11 11:35 ..
-rw-------  1 keystore keystore 126976 2022-02-14 14:57 persistent.sqlite
-rw-------  1 keystore keystore      0 2021-12-11 11:37 timestamp
-rw-------  1 keystore keystore  16384 2021-12-11 11:36 vpnprofilestore.sqlite

Android 11 密钥库文件结构

generic_x86:/data/misc/keystore/user_0 # ls -la
total 88
drwx------ 2 keystore keystore 4096 2022-02-13 21:59 .
drwx------ 3 keystore keystore 4096 2022-02-13 21:59 ..
-rw------- 1 keystore keystore  169 2022-02-13 21:50 .10087_chr_USRPKEY_unstable+^825349ac930c2370b39f30e7d789963b+^2
-rw------- 1 keystore keystore  158 2022-02-13 21:50 .10087_chr_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^+]3617777111701302822
-rw------- 1 keystore keystore  158 2022-02-13 21:50 .10087_chr_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^1127810549181744279
-rw------- 1 keystore keystore  158 2022-02-13 21:50 .10087_chr_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^116472976498382090
-rw------- 1 keystore keystore  153 2022-02-13 21:50 .1010_chr_USRPKEY_MacRandSecret
-rw------- 1 keystore keystore  169 2022-02-13 21:59 .10121_chr_USRPKEY_SignalSecret
-rw------- 1 keystore keystore 1331 2022-02-13 21:50 10087_CACERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^+]3617777111701302822
-rw------- 1 keystore keystore 1331 2022-02-13 21:50 10087_CACERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^1127810549181744279
-rw------- 1 keystore keystore 1331 2022-02-13 21:50 10087_CACERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^116472976498382090
-rw------- 1 keystore keystore  310 2022-02-13 21:50 10087_USRCERT_unstable+^825349ac930c2370b39f30e7d789963b+^2
-rw------- 1 keystore keystore  824 2022-02-13 21:50 10087_USRCERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^+]3617777111701302822
-rw------- 1 keystore keystore  824 2022-02-13 21:50 10087_USRCERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^1127810549181744279
-rw------- 1 keystore keystore  825 2022-02-13 21:50 10087_USRCERT_unstable+^c7202ece89390c490b1b94d5b71225e1+^116472976498382090
-rw------- 1 keystore keystore  295 2022-02-13 21:50 10087_USRPKEY_unstable+^825349ac930c2370b39f30e7d789963b+^2
-rw------- 1 keystore keystore  284 2022-02-13 21:50 10087_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^+]3617777111701302822
-rw------- 1 keystore keystore  284 2022-02-13 21:50 10087_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^1127810549181744279
-rw------- 1 keystore keystore  284 2022-02-13 21:50 10087_USRPKEY_unstable+^c7202ece89390c490b1b94d5b71225e1+^116472976498382090
-rw------- 1 keystore keystore  190 2022-02-13 21:50 1010_USRPKEY_MacRandSecret
-rw------- 1 keystore keystore  190 2022-02-13 21:59 10121_USRPKEY_SignalSecret

有人看到可以解释的东西吗?

P.S Tbh 我正在寻找 SignalSecret 私钥:3

android cryptography android-keystore selinux computer-forensics
2个回答
4
投票

编辑:

深入研究 Android 12 中引入的新 KeyStore 的代码后,我发现实际上有一种存储密钥的新方法。现在一切都在

/data/misc/keystore/persistent.sqlite
DB 文件中。将内容存储在
/data/misc/keystore/user_<user-id>/
目录中是一种传统方式,其中的所有内容都会自动迁移到
persistent.sqlite
数据库文件中。

尝试将该数据库文件上传到 SQL Lite 阅读器(例如 https://sqliteonline.com/)并查询

keyentry
表中的所有条目:

SELECT * FROM keyentry

您可以找到您已经熟悉的条目,例如:“MacRandSecret”、“SignalSecret”、“synthetic_password”等)。每个条目还有一个以前是文件的 BLOB。

原文错误答案:

在 Android 12 上,现在有两个密钥库变体:“keystore”和“keystore2”。 `keystore2` 有一个遗留部分,因此很可能您的 ROM 没有使用正确的部分,这就是 `/data/misc/keystore/user_#` 目录为空的原因。

检查 logcat 是否有密钥库错误。

参考:https://android.googlesource.com/platform/system/security/+/refs/heads/android-s-beta-4


0
投票

是否有一种方法可以解析 blobentry 的 blob?我挖出了 AOSP,但我发现它很困难,而且看起来我的设备在 TE 中运行,并且 blob 由可信者解析。

© www.soinside.com 2019 - 2024. All rights reserved.