YubiKey1:个人安全与YubiKey

个人网络安全之重要性 在这个数字化时代,网络安全变得日益重要,各种信息极其容易被窃取(比如说斯诺登事件)。因此加密和认证就显得极其重要,而 YubiKey 就是这样一个简易的设备(支持 OTP、公钥加密签名、U2F 协议)。 关于 YubiKey 据 Wikipedia 描述:YubiKey 是由 Yubico 生产的身份认证设备,支持一次性密码(OTP)、公钥加密和身份认证,以及由 FIDO 联盟(FIDO U2F)开发的通用第二因素(U2F)协议。它让用户可以透过提交一次性密码或是使用设备产生的公开/私密金钥来安全地登录自己的帐户。针对不支持一次性密码的网站,YubiKey 也可以存储静态密码。Facebook 使用 YubiKey 作为员工凭证;Google 同时为雇员和用户提供支持。还有一些密码管理器也支持 YubiKey。 作为键盘设备(HID) 这是它主要介绍的功能,能够模拟键盘设备向电脑输入一串生成的密码,兼容性最好。其中还包含多种模式:OTP、Static、Challenge-Response、HTOP, OTP:KEY_ID + AES(AES_KEY, SECRET, COUNT++)即生成的密码包含明文的 KEY_ID 和对称加密的( SECRET 和计数器)。第一次使用前需要把 KEY_ID,AES_KEY,SECRET 提交至验证服务器(Yubico 提供或者自己搭建),之后应用程序每次通过服务器验证密码的可靠性(解码后 SECRET 对应、COUNT 增大(防止重放攻击))。 Static:静态密码。顾名思义,每次生成固定的一串密码(并没有什么用)。 Challenge-Response:HMAC(SECRET, INPUT)即可以通过 HID 接口给定一个输入,输出 HMAC 的计算结果。输入需要本地代码实现。 HOTP:HMAC(SECRET, COUNTER++)算法与 Challenge-Response 类似,然而使用累加计数器代替了输入,并且 HOTP 是一个标准协议,许多网站和设备都兼容该标准。 在 YubiKey 中包含两个配置插槽,每一个插槽可以单独配置以上模式中的其中一种,分别通过短触和长触来选择输入。 不过需要注意的是:以上都是基于对称加密的算法,也就是说,只要服务器端(验证服务器)的密文被泄漏,所有的信息理论上都可以进行伪造。 U2F U2F 是一个开源的认证标准协议,使用非对称加密算法,在每次需要认证是设备可以对 challenge 信息使用私钥进行签名来完成认证。作为一个开源的标准协议,Google、Dropbox 等网站都支持这种协议的两步验证,然而现阶段浏览器端仅有 Chrome 支持。 OpenPGP Smart Card YubiKey 还可以作为标准的 OpenPGP Smart Card 使用,用来存储 PGP 私钥(设备中私钥是可写不可读的,解密/签名操作在设备上完成)。...

September 30, 2018

YubiKey2:配置和gnupg

设置 yubikey 讲完了安全模型,就可以开始设置 YubiKey 了 需要设置的有这些: 次重要密码导入 slot1 yubikey 的 pin(Masterpin) 管理员 8 位 pin(特殊 pin) GPGkey(因为需要备份,我们从外部导入) PIV(Masterpin) U2F 从简单的开始 初始化 下载 yubikey manager,然后打开所有功能。在 OTP 里设置 slot1 和 slot2 U2F 在支持的网站里双重验证下添加 key,然后按一下 yubikey 就行了 PIV 下载 yubikey PIV manager,按照提示设置就行了。 GPG 这个比较复杂,单独出来说。 安装 gnupg 这是个专门用于 gpg 的软件,设置可以参考我 mac 设置那篇文章。 生成要最终导入 yubikey 的密钥 虽然有些 yubikey(比如说我的 4-NEO)不支持 4096 位密码,但主密钥还是可以生成 4096 的,最后只要把子密钥导入就行了。 gpg --full-generate-key Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?...

September 30, 2018