安全酸洗工具
securepickle的Python项目详细描述
安全泡菜
为什么要用securepickle
而不是pickle?
正如pickle
explains的文档一样,pickle是不安全的。{1}如果有人使用恶意的文件系统}来访问该文件系统,您可能会使用该文件系统存储恶意数据。在
如果您不确定是否需要它,安全起见可能比抱歉好。securepickle
是pickle
的替换,因此您不需要更改任何加载代码。在
为什么我应该使用securepickle
而不是另一个安全的酸洗解决方案?在
securepickle
有0个依赖项。它只使用python标准库,并且支持python2和python3。
securepickle
具有文档化的文件格式,并保证向后兼容。即使securepickle
库或使用的加密原语发生更改,也可以取消数据的绑定。在
如何使用它?在
import securepickle as pickle
# DON'T USE THIS KEY! Make sure to generate your own key randomly
securepickle.set_key("BO4cHKNaJE0GmiShTQ8mL8oSvqBDCx2q5Xdq7iNeCaU")
...
pickle.loads(...)
pickle.load(...)
pickle.dump(...)
pickle.dumps(...)
我应该把钥匙放在哪里
请确保不要将密钥存储在pickled数据的同一位置。还建议不要将密钥存储在源代码中。在
securepickle
可以防止什么类型的攻击
securepickle
防止arbitrary code execution攻击者修改(或直接影响)pickled数据。
例如,如果您的数据库遭到破坏,或者您在文件系统中存储pickled文件而不考虑文件访问权限,就会发生这种情况。在
securepickle
不会NOT阻止随机的人解取pickled数据,即使没有密钥。如果您关心的是这种情况,您应该使用标准的数据库或磁盘加密机制。在
文件格式是什么
securepickle|<version>|<crypto primitive>|<signature>|<pickled data>
支持的加密基元字符串列表:
HMAC(SHA512)
- 项目
标签: