使用Yubikey进行双重身份验证,用于使用LUKS进行硬盘加密
由Yubico
yubikey是一个很酷的设备,周围有一段时间,我们几个人知道它,并喜欢它。 它是一种识别为USB HID设备的设备,可以在按钮上发出一次密码。
相当一段时间,yubikey支持挑战响应模式,计算机可以向yubikey发送挑战,yubikey将以响应回答,这是使用HMAC-SHA1计算的。
在这里我将会展示如何使用yubikey来保护您的加密硬盘,从而将双重身份验证添加到您的预引导身份验证中。
用户输入密码,该密码作为挑战发送给yubikey,并且回复该回复。 LUKS密钥槽保存响应,因此在LUKS方面,响应用作槽口密码。
得到它所有togeather
这个解决方案是基于我的github项目yubikey-luks 。 您可以在源文件中获取该项目,也可以在启动平台上使用存储库,在Ubuntu 14.04LTS上传了一个可用的软件包。 该解决方案适用于Ubuntu 14.04,但也可以在其他类似debian的发行版上运行。 我假设你正在运行Ubuntu 14.04。
将存储库添加到系统中:
add-apt-repository ppa:privacyidea/privacyidea
Rrefresh包信息并安装工具:
apt-get update
apt-get install yubikey-luks
注册Yubikey
插入你的yubikey并运行命令:
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Yubikey有两个socket。 我们使用socket2,以便您可以使用socket1进行“正常”OTP使用。
添加到LUKS
要将yubikey分配到LUKSsocket,请使用命令yubikey-luks-enroll 。 / usr / bin / yubikey-luks-enroll中的脚本假定您的LUKS分区是/ dev / sda5。 如果是另一个,请将脚本复制到您的目标,并适应行:
DISK="/dev/sda5"
Yubikey响应将写入LUKSsocket7.请确保在其他socket中有一个正常密码availbale。 您可以查看:
cryptsetup luksDump
插入yubikey并运行yubikey-luks-enroll脚本。 该脚本要求一个新密码,这是密码,现在发送到yubikey生成代理服务器,您将在启动时使用。
完成
活着!
启动屏幕欢迎您的提示,插入yubikey。 你也可以使用旧的密码
数据从Yubikey检索。
成功!
结论
引导钩子被修改,以便您可以使用通常的密码登录,也可以使用Yubikey登录新的密码,从而增加不受信任环境的安全性。
这两个因素的身份验证管理系统privacyIDEA提供了管理几个yubikeys并将这些Yubikeys分配给不同的客户机器的方法。 敬请关注!