Kryptonite - 用手机 App 来管理你的 SSH Private Key

2017-05-02 15:05:18 +08:00
 Livid
https://krypt.co/
6978 次点击
所在节点    DevOps
26 条回复
ryd994
2017-05-02 15:11:26 +08:00
手机 app 其实安全性和 U 盘存文件也没差了……
还是 USB 智能卡靠谱……
cppgohan
2017-05-02 15:24:02 +08:00
有趣的应用. 不知道备份容易吗, 不然手机丢掉就又要折腾一波了. (他这个方案是 public 的, 感觉应该已经有现成的了)

另外 1password 感觉也有可能做到这样的功能, 如果他们想的话. (但是缺点就是他的存储不能被完全 trust)

@ryd994 usb 智能卡有现成做到的产品吗? 分享个链接?

另外把 ssh private key 放在 keybase 的 filesystem 不知道是否够安全? https://keybase.io/docs/kbfs/understanding_kbfs
fds
2017-05-02 15:27:49 +08:00
不错。之前放在同步盘里也不安全。试试看。
Had
2017-05-02 15:34:24 +08:00
@ryd994 智能卡就怕丢,但是也安全,因为私钥自己都拿不到...
fds
2017-05-02 15:34:44 +08:00
o 好吧 原来不是管理旧秘钥而是生成个新的然后加到各个地方……
新私钥也不能导出呢,形式上还是比较安全的。
sampeng
2017-05-02 15:35:46 +08:00
1password 已经够了。。。反正也能保存文件和文字。。。这不是自己折腾自己么。。
cppgohan
2017-05-02 15:56:27 +08:00
@sampeng 如果现在你用 1password, 登录用 private key 的话, 还是需要把 private key 放在文件系统啊
@Had 智能卡是指 Yubikey? 还有其他选择吗?
ryd994
2017-05-02 18:03:58 +08:00
@Had 备份啊………
密钥进智能卡之前还是可以备份的

@cppgohan PGP 智能卡都能用
ryd994
2017-05-02 18:09:41 +08:00
@cppgohan 很明显不一样,举个例子
如果恶意用户伪造界面中间人,你怎么看得出来?

这里的好处是,相比电脑,手机环境更加可控,所以更安全一点。对很多情况也算得上是 trusted platform 了

智能卡纯硬件,除非有硬件 bug,否则应该很靠谱。
sampeng
2017-05-02 18:16:32 +08:00
@cppgohan 多一步而已。可以接受。。感觉还是没有解决特别的痛点。。。
况且跨设备登陆。。。无论怎么搞都不安全。还不如 ssh 到一台跳板机集中跳转。
ryd994
2017-05-02 18:25:48 +08:00
看了他们技术说明,我觉得他们这样做是有问题的。他们试图构建一个安全的文件系统,每次读取要求用户授权,然而文件系统里存的还是普通的 key 文件。那要是 ssh 客户端恶意,完全可以私下保存一份,根本无从控制。
智能卡的优点在于,除了一开始那次 key to card,后面密钥从不被任何卡以外的地方知晓。这是智能卡协议所保证的。要签名的随机数据进,签名过的数据出。只需要保证最初 key to card 的平台可信就好。
而且对安全性要求高的,可以让卡直接内部生成,缺点就是万一丢了,不可能恢复密钥。
lslqtz
2017-05-02 18:28:29 +08:00
还是 usb key 加密文件靠谱。。
Lentin
2017-05-02 19:30:27 +08:00
不论安全性这玩意真方便啊,弄个试试~
Had
2017-05-02 20:23:27 +08:00
@ryd994 当然是直接让智能卡生成啊 导入就有流出的风险
honeycomb
2017-05-02 20:50:13 +08:00
@ryd994

智能卡在硬件上能保证私钥写进去以后就读不出来。
Android 在稍微新一些的版本里提供了一个基于硬件的 keystore 接口,但是看上去 Kryptonite 没有使用它

https://source.android.com/security/keystore/features
https://developer.android.com/training/articles/keystore.html
https://source.android.com/compatibility/android-cdd#9.11. Keys and Credentials
atempcode
2017-05-02 21:14:34 +08:00
@honeycomb 就是用的 keystore:

How is the SSH private key stored on my phone?
On iOS, Kryptonite generates a 4096-bit RSA key pair using the Apple iOS Security framework or optionally an Ed25519 key pair using libsodium. Kryptonite stores the private key in the iOS Keychain with accessibility level “ kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly ”. To learn more about the security of Apple cryptography libaries and the Apple iOS Keychain see: https://www.apple.com/business/docs/iOS_Security_Guide.pdf.

On Android, Kryptonite generates a 3072-bit RSA key pair (because of the long secure hardware key generation time). The private key is stored in secure hardware called the Android Keystore and cannot be extracted, even by Kryptonite. The Android Keystore performs private key operations as a black box.
Tink
2017-05-02 21:26:09 +08:00
这个和 authy-ssh 差不多?
LukeXuan
2017-05-02 21:29:55 +08:00
@ryd994 他们的做法应该是把手机表现成智能卡一样的接口的
honeycomb
2017-05-02 21:41:21 +08:00
@atempcode
谢谢!

那就没有问题了

@LukeXuan
它们就是这么做的
AlexaZhou
2017-05-02 21:56:08 +08:00
太棒了。

很久之前我构思过这样的 app,但当时不确定能实现出来,就没有继续下去,现在居然有人把这个做出来了,666。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX