2次发布
0.1.1 | 2021年2月23日 |
---|---|
0.1.0 | 2021年2月23日 |
#1774 in 加密学
24KB
557 行
KeyPlace
- 人性化的密钥派生
- 服务器辅助 + 持久化
- 抗攻击
- 在WASM或任何地方使用它
为什么
所以,你在互联网上使用成对的密钥加密,但你厌倦了愚蠢的人类将他们的私钥写在鸡尾酒杯垫上?真可惜!
如果我告诉你,你的服务器可以帮助管理这些密钥,但不是完全糟糕的方式,你会怎么想?
它切片,它切碎
- 在用户工作站上不进行持久存储的情况下安全地派生私钥!
- 服务器提供帮助,但无法实际看到密钥。如果你的服务器被黑,你仍然会赢!
- 你可以独立地更改你的密钥和密码!
但是等等,还有更多
- 使用一个密码存储多个密钥
- 使用多个密码存储每个密钥
- 你可以实现安全的关键恢复技术
KeyPlace受Keybase密钥派生算法的启发 https://book.keybase.io/docs/crypto
use keyplace::{AgentKey,PassKey};
let agentkey = AgentKey::create(None);
let passkey = PassKey::new("I like turtles");
let custkey = agentkey.custodial_key(passkey);
// the custodial key is safe to send to the server
// Never send the passkey to anyone!!
let passkey2 = PassKey::new("I like turtles");
let agentkey2 = AgentKey::from_custodial_key(custkey, passkey2).unwrap();
依赖项
~5–16MB
~222K SLoC