Answers:
Titanium备份有关密码术的常见问题解答指出,您只需要密码即可恢复任何备份。这必须意味着私钥文件与所有备份一起存储,因为它永远无法以任何其他方式工作。该常见问题的最大问题在于,它应明确声明此恕我直言,以便为我们的用户弄清楚。
我偷看了一些备份文件的前几个字节(我在这里谈论的是应用程序数据,因为Titanium Backup不会备份apks周期),您猜我看到了什么?
我在备份文件的第一行中发现了完全相同的ASCII序列:这些文件被命名为“ something”。gz文件,但它们实际上不是 gzip文件(因为已在文件前面放了密钥。Gzip文件以十六进制代码1F 8B 08开头。这些文件不是)。
如果您运行Linux并想将其签出,请在PC上下载两个备份,然后尝试执行以下命令,该命令将显示文件的前四行:
$ head -n 4 cgeo.geocaching-20130919-000250.tar.gz
我的输出是:
TB_ARMOR_V1
0w5AkcCA9rGtSy3Ecrag19p/FYQ=
BNpyGZq/PQYmpDXkXwji2lQGIQY=
MIGfMA0GCSqGSIb3DQEBAQUAA5GNADCBiQKBgQDWLUH3i295TA9XwPgbzwXEk/0eqowW2xcoxbOQo7NYeqGvctC7dNM33CEh+az25Wj2iTo+kzdIpwM7Y6o5vjW+D/yBCv9nDV1+HLNyut3GDQon84yR6BlgbQJT5QoIra5f6FN+wtqF5/ifW88nzuia2fUOv/IqRVQhHxIY7LPkMQIDAQAB
二进制文件很奇怪,不是吗?顺便说一句,是的,我的TB私钥已用我的密码加密。我不愿意分享它,因为您将需要我的备份文件和密码,以获取有用的信息。
现在,如果您在其他备份文件上运行同一命令:
$ head -n 4 com.amazon.kindle-20130919-000004.tar.gz
你猜怎么了?您将得到相同的状态!
TB_ARMOR_V1
0w5AkcCA9rGtSy3Ecrag19p/FYQ=
BNpyGZq/PQYmpDXkXwji2lQGIQY=
MIGfMA0GCSqGSIb3DQEBAQUAA5GNADCBiQKBgQDWLUH3i295TA9XwPgbzwXEk/0eqowW2xcoxbOQo7NYeqGvctC7dNM33CEh+az25Wj2iTo+kzdIpwM7Y6o5vjW+D/yBCv9nDV1+HLNyut3GDQon84yR6BlgbQJT5QoIra5f6FN+wtqF5/ifW88nzuia2fUOv/IqRVQhHxIY7LPkMQIDAQAB
这根本不是巧合。:)从某一点开始,备份文件中的所有内容最终都变成二进制文件。这种行为很有意义,因为这意味着我们只能共享备份文件,而忽略了所有内容-使用密码短语,我们可以在一段时间内恢复备份。
仍然,我确实认为开发人员应该记录有关如何从具有适当加密工具集(阅读:OpenSSL)的任何计算机上恢复我们自己的合法数据(我们知道密码,就是我们!)的过程。
正如@Dakatine提示的那样,主密钥位于文件的前面,然后由加密内容串联在一起。
我不必研究TB_ARMOR_V1文件格式,因为有人已经制作了python命令行工具https://github.com/phyber/TiBUdecrypter