【OpenSK】开源安全密钥 – 你的下一个Yubikey何必是Yubikey

微信扫一扫,分享到朋友圈

【OpenSK】开源安全密钥 – 你的下一个Yubikey何必是Yubikey
0

关于OpenSK

OpenSK 于2020 年 1 月 30 日由Google发布。它是一个完全开源的 FIDO 安全密钥实现,包括硬件和软件。

OpenSK 的固件是用 Rust 开发的,它同时实现了 FIDO U2F 和 FIDO2规范

硬件选择

咱这次使用的是一块 “Nordic nRF52840 Dongle” 。 (也就是下面演示所使用的)

不过网上的其他人似乎更喜欢”nRF52840 MDK USB Dongle”这款国货之光?! 看上去好看点,并且有自带外壳版本,想整的看看价格合适不合适!

如果你手上的和咱一样是”Nordic nRF52840 Dongle”或者国产类似的版本,欢迎您继续看下去。如果是”nRF52840 MDK USB Dongle”建议参考国内其他博客及官网的教程,不用看咱这边那么麻烦的部署。

然后这一块板子其实挺强大的,除了可以做安全密钥,还有非常非常多的项目可以玩耍。

比如 nRF5 SDKOpenThread(边界路由器)、Web BluetoothiBeaconEddystone 等等很多..

软件部署

本项目提供的脚本已经在 Linux 和 OS X 下测试过。我们没有在 Windows 和其他平台上测试过它们。

OpenSK

然后咱在mac只能成功构建出develop分支,x86 mac没人权 确信)

WSL事先准备(配置USB设备直通)

在Windows中操作:

WSL 本身并不支持连接 USB 设备,因此你需要安装开源 usbipd-win 项目。

  1. 转到 usbipd-win 项目的最新发布页
  2. 选择 .msi 文件,该文件将下载安装程序。 (你可能会收到一条警告,要求你确认你信任此下载)。
  3. 运行下载的 usbipd-win_x.msi 安装程序文件。

或者,也可使用 Windows 程序包管理器程序 (winget) 来安装 usbipd-win 项目。 如果已安装 winget,只需使用命令 winget install --interactive --exact dorssel.usbipd-win 安装 usbipd-win 即可。 如果你省略了 –interactive,winget 可能会立即重启计算机(如果这是安装驱动程序所必需的操作)。

Linux中操作:

进入系统中执行

sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

WSL直通USB设备

在Windows下以管理员身份打开“终端”PowerShell

输入” usbipd wsl list “

会得到一个如上图的list,接下来找到 USB串行设备 (一般是这个,当然你有一堆串口设备就自己找下把w) 记住左边的ID。

接下来输入” usbipd wsl attach –busid 上面看到的ID “

现在设备应该就已经直通到WSL里。

基础环境准备

  • rustup(可以与Rustup一起安装)
  • python3 和 pip(可以python3-pip在 Debian 上随包一起安装)
  • OpenSSL 命令行工具(可以使用 Debian 上的libssl-dev和软件包安装和配置)pkg-config
  • nrfutil(可以使用安装pip3 install nrfutil)如果你想用 DFU 刷新设备
  • uuid-runtime如果您缺少uuidgen命令。

下面就正式开始了(Mac和Linux基本一样)

#Install Rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

#Python3 和 pip (Mac基本自带了,下面是Debian按照命令) 及其他
apt install python3-pip libssl-dev pkg-config

#安装nrfutil
pip3 install nrfutil

开始创建!

建议国内提前配置代理或者镜像(要下载的包挺多的)

git clone https://github.com/google/OpenSK.git
cd OpenSK
./setup.sh

接下来稍等即可w

如果是Linux用户则还需要进行下面的操作(您需要安装一个udev规则文件以允许非 root 用户与 OpenSK 设备进行交互。)

sudo cp rules.d/55-opensk.rules /etc/udev/rules.d/
sudo udevadm control --reload

如果在第二条命令的时候提示”Failed to send reload request: No such file or directory”则先执行一次”sudo udevadm control –reload”再次执行即可解决w

正式创建!

接下来插好你的DIY安全密钥(WSL用户请把设备挂载到WSL主机里,上面的步骤)! 在刚刚的地方继续!

./deploy.py --board=nrf52840_dongle_dfu --opensk --programmer=nordicdfu

敲下这条命令,只需要稍等(会再要求确认一次Enter)下,你的下一代”YubiKey”就完成了!

至此,你的密钥应该就做好啦~,拔下来重新插入,然后到处去玩把!

如何测试

当然w,你也可以跳过这一步,直接就去把这个Key绑在你的各个账户上w 生产环境当测试w

想要试试的可以打开这个网址 https://webauthn.io/ 然后输入个名字 点下即可开始测试w

需要授权的时候,这不比”YubiKey”酷炫多了!

未完成Incomplete….(之后会在此处更新咱的外壳,定了个绿色的w)

参考

https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb

https://github.com/dorssel/usbipd-win

https://feitiantech.github.io/OpenSK_USB/

https://github.com/google/OpenSK

咱很菜的,是个智障。 人设非常容易崩。
上一篇

【Proxmox】PVE配置Watchdog 让虚拟机在系统崩溃时自动重启

下一篇

【FRRouting】BGP网络的Route-Map配置(部分Community支持)

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

相关文章

  1. 暂时没有相关的文章!

返回顶部