« 上一篇下一篇 »

开源加密USB密钥Nitrokey安装及实际使用场景

     越来越多的独立开发人员将他们的应用程序打包为Snap,使他们轻松实现在根据Linux的多种操作系统上的部署,不管是最终用户仍是软件包维护人员。随着Canonical将其通用二进制格局面向Ubuntu生态系统之外的主流GNU/Linux发行版,snap现在越来越受欢迎。下面引起咱们注意的应用程序之一是 Nitrokey-app,由Szczepan创立。 Nitrokey在德国制作,Nitrokey加密和安全的物理USB密匙可保护您的在线帐户,电子邮件,文件,服务器证书和整个磁盘驱动器免受身份盗用,很多监督,间谍活动乃至数据丢掉。它是敞开 源代码,能够满意一切需求和口味。即便Purism运用Nitrokey为其隐私为要点Librem笔记本电脑和行将到来的Linux手机。

以下是如何运用Snap包装置Nitrokey-app 望文生义,该应用程序答应您办理Ubuntu中的Nitrokey开源加密USB密钥以及支撑Snap的其他几个GNU/Linux发行版,包括Debian GNU/Linux,Fedora,Arch Linux,Linux Mint,Gentoo Linux, Solus,OpenSUSE,OpenWrt,Yocto,Raspbian和OpenEmbedded。 它是用Qt编写的,而且供给了一个图形用户界面,可随时从桌面环境的系统托盘区域轻松拜访。它答应您快速办理您的Nitrokey设备,不管您想发送加密的电子邮件,安全登录,仍是只保存最 宝贵的文件和密钥。 运用Szczepan创立的Snap软件包并从Canonical的Snap Store中获取,您能够轻松地将Nitrokey-app装置在您最喜欢的,支撑Snappy的GNU/Linux发行版上。 装置很简单,翻开终端然后输入或 复制/张贴下面的指令。之后,您能够从桌面环境的应用程序菜单中发动

Nitrokey-app。 sudo snap installnitrokey-app

 

简而言之,Nitrokey Pro是一种防止有人做手脚的、用PIN保护的安全密钥存储硬件,采用USB接口。它使用嵌入式智能卡,实现了诸多开放的安全标准,比如OpenPGP协议、S/MIME、HOTP(基于HMAC的一次性密码)和TOTP(基于时间的一次性密码)。因而,一旦你将秘密密钥存储到Nitrokey Pro上,它就能够在硬件本身上面签名、加密、解密和验证,因而你的秘密密钥永远不会泄露给与智能卡相连接的计算机。这样你需要在靠不住(可能有大量恶意软件)的第三方计算机上运行各种安全任务时,就可以高枕无忧了。Nitrokey Pro生成的OATH一次性密码与Gmail、Dropbox、AWS及其他许多网站兼容。Nitrokey Pro还内置了安全密码库,万一你信不过任何软件密码管理工具,就可以将很难记住的登录信息存储到防止有人做手脚的硬件上。
抛开所有这些优点不说,我最喜欢Nitrokey的地方在于其开放性。正如它所说“专有安全”并不安全,这激励着Nitrokey的人员向开源社区同时开放其产品的硬件和软件,所以它们可以接受审计和审查,以查找任何安全漏洞。你可以在其官方Github软件库(https://github.com/Nitrokey/)所有Nitrokey智能卡产品系列的完全开放的PCB硬件设计、固件和软件源代码。
我在下面将介绍如何在Linux计算机上安装Nitrokey Pro,并演示如何在几种实际场景下使用它。
在Linux上安装Nitrokey Pro
想在Linux上安装Nitrokey Pro,先要卡插入到计算机的USB端口上。如果你在运行最新的Linux发行版,它应该可以轻松地为该卡找到必要的USB设备驱动程序。使用lsusb命令,证实Nitrokey Pro在你的系统上可见,这种情况下该卡会显示为“Clay Logic”。
一旦你证实了该USB设备已成功,就要为Nitrokey Pro USB设备创建udev规则,重启udev服务,如下所示。
$ wget https://www.nitrokey.com/sites/default/files/40-nitrokey.rules $ sudo cp 40-nitrokey.rules /etc/udev/rules.d/ $ sudo service udev restart
下一步,下载和安装Nitrokey App(https://www.nitrokey.com/download)果你使用Nitrokey Pro来生成一次性密码,或者将它用作密码管理工具,就需要这个专用的GUI应用程序。不过,在另外大多数情况下,不需要Nitrokey App就可以使用Nitrokey USB密钥。
想把Nitrokey应用程序安装到Linux桌面上:
在基于Debian的系统上:
$ sudo apt-get install gdebi-core
$ sudo gdebi nitrokey-XXXXXX.deb
在基于红帽的系统上:
$ sudo rpm -ivh nitrokey-XXXXXX.rpm
安装好Nitrokey App后,启动该应用程序,如下所示。$ nitrokey-app
如果该应用程序与Nitrokey USB硬件成功对上号,它就会显示“Nitrokey已连接”桌面通知

 

  输出信息列出了与你的密钥ID有关的所有可用子密钥。标为“usage”的最终一列表明了每个子密钥的人物:“S”代表签名,“C”代表证书,“A”代表验证,“E”

在这个比如中,用于验证的子密钥ID是81398BBF。

 

运用gpgkey2ssh指令,凭借验证子密钥ID,生成兼容的authorized_key字符串。

Permission denied (publickey).

最终,查看Nitrokey智能卡刺进到本地计算机的期间,你能够经过SSH拜访长途主机。假如gpg-agent还没有缓存你的秘密密钥,会要求你输入Nitrokey用户PIN。假如你企图在没有Nitrokey卡的情况下完成SSH拜访,就会看到下列错误。

为了测验根据密钥的SSH验证,你应该禁用长途主机的SSH服务器处的暗码验证。

一旦这得到证明,将authorized_keys移到你想完成SSH拜访的长途主机处的~/.ssh/authorized_keys。确保~/.ssh/authorized_keys的答应权限被设成0600。

$ ssh-add -L

证明authorized_keys的内容与下列指令的输出内容相同。

$ gpgkey2ssh 81398BBF > authorized_keys