您的个人领地:Librem 5手机上的智能卡读卡器

2020-05-15 16:20:18

首席安全官PGP ID:0xB9EF770D6EFE360F指纹:0DFE 2A03 7FEF B6BF C56F73C5 B9EF 770D 6EFE 360F Librem Social。

与其他智能手机相比,Librem5有许多独特的功能,使其脱颖而出。易于接近的硬件杀戮开关具有锁定模式、可拆卸WiFi和蜂窝模块,而且它使用与我们笔记本电脑相同的PureOS操作系统这一事实最受关注。这些都是很好的例子,说明了普利主义如何以不同于大多数科技公司的方式进行创新。我们支持开放标准,并构建让用户(而不是我们)控制的解决方案。虽然这通常意味着我们必须避免专有的现成解决方案,而自己动手做事情,但在其他情况下,这意味着以一种新的方式使用现有的可靠的开放技术,如OpenPGP智能卡读卡器-作为完全由用户控制的安全飞地。

我们最近在Librem 5 Dogwood Batch上安装了智能卡读卡器,我意识到我们对智能卡读卡器的讨论还不多。在这篇文章中,我将讨论为什么我们决定在我们的手机上添加OpenPGP智能卡读卡器,以及我们打算如何使用它。

智能卡是无处不在的技术。从现代信用卡到像我们的Librem Key这样的USB安全令牌,你可以在任何东西中找到它们。智能卡背后的想法是拥有一个离散的、防篡改的芯片,它可以安全地存储机密,并使用这些机密执行一组密码操作,而不必将机密暴露在智能卡之外。数据进入,智能卡使用其秘密来处理该数据,而修改后的数据则传出。

在OpenPGP智能卡的情况下,您存储的秘密是私有的GPG子密钥,就像您可能用来加密或解密电子邮件或文件,或者对您正在贡献的代码进行签名一样。虽然您可以将GPG密钥存储在本地硬盘上(很多人都是这样做的),但是将它们存储在OpenPGP智能卡上(例如存储在像Librem密钥这样的USB安全令牌上)会增加几层额外的安全性。

智能卡增加的第一层安全性是防止密钥被复制。一旦将私钥复制到智能卡上,就再也无法将其复制回智能卡。如果攻击者要危害您的计算机,他们可以在自己的计算机上复制您的~/.gnupg目录中的GPG私钥,并试图暴力破解密码。如果他们能够猜到您用来保护这些密钥的密码,他们就可以使用这些密钥在他们自己的计算机上代表您对内容进行签名和解密。然而,如果这些密钥在智能卡上,并且智能卡是插入的,那么他们最多只能在他们可以访问计算机的情况下代表你签名和加密/解密-而且只有在他们能猜到你的PIN的情况下才能做到这一点。他们不能复制密钥并在其他地方使用,一旦你从计算机中取出密钥,他们就不再有访问权。

智能卡增加的第二层安全性是,它使用您的密钥在智能卡本身上执行加密操作。您的私钥永远不会复制到系统RAM中,即使是临时的。

最后,智能卡成为一种身份验证因素,称为“您拥有的东西”,就像物理密钥或身份证(密码是“您知道的东西”)。智能卡的便携特性意味着你可以随身携带它们,而且由于它们一次只能出现在一个地方,它们可以证明用户拥有真实的秘密。

虽然台式机和笔记本电脑有时会有智能卡读卡器,而且有许多专门的手持设备用于销售点和其他包含智能卡读卡器的功能,但据我们所知,Librem 5是唯一有智能卡读卡器的智能手机。当我们开发用于笔记本电脑的Librem密钥时,我们认识到智能卡在安全存储机密方面的价值。由于一个人的手机可以说比他们的电脑存储了更多的敏感信息,我们认为有某种方法在一个防篡改的芯片上用强大的秘密来保护这些信息是很重要的。

手机需要一种方法来保护自己不受攻击者的攻击,攻击者可能会扎根设备,并从RAM和今天的许多手机中提取密码机密,这些手机使用一种名为安全飞地的离散芯片来解决这个问题。芯片在许多方面都像智能卡一样,因为它存储秘密,并有一组可以执行的密码操作,但这些芯片是永久焊接在PCB上的。

与任何用户机密一起,安全飞地也倾向于存储由供应商提供的证书。这是因为除了安全地处理您的秘密之外,它们还强制执行供应商的安全引导和软件验证系统。通过将这些证书存储在安全飞地中,他们可以确保您只能运行授权的固件、软件,甚至只能将授权的第三方硬件附加到设备。你在现代智能手机上看到安全Enclave芯片的原因更多的是为了加强供应商对硬件和软件的控制,而不是为了保护你自己的秘密。

当我们着手解决Librem 5上的秘密存储问题时,我们决定不使用永久安全的Enclave芯片,而是使用智能卡读卡器,原因如下:

虽然也有例外,但许多安全Enclave实现都是运行专有固件的封闭硬件。

我们认为用户应该拥有自己的硬件,所以我们对有可能剥夺用户控制权的技术不感兴趣。

智能卡可由所有者随时拆卸和更换,并且更换成本相对较低。

因此,您可以想象一张可拆卸的智能卡,就像您自己的个人安全飞地一样,完全在您的控制之下。

Librem5中集成了智能卡读卡器,带来了各种可能性。以下是我们已经在为Librem5工作的几个用例。

智能卡的第一个明显的用例是为所有者提供一个安全的地方来存储他们的GPG密钥。虽然您已经可以使用其他一些智能卡做到这一点,但它要求您将密钥存储在具有近场通信(NFC)功能的单独USB安全令牌上。在其他智能手机上,当您想要执行GPG操作时,您必须拿出安全令牌并将其举到手机上。虽然这是一个安全的工作流程,但也有些不方便--特别是如果您经常使用GPG的话。我们的方法结合了将GPG密钥存储在本地文件系统上的便利性和将它们存储在智能卡上的安全性。

我们打算让Librem5为根磁盘提供磁盘加密功能,目前所有标准工具都在那里,就像您在任何Linux计算机上一样。唯一需要开发的是我们可以安装在initrd文件中的软件,这样所有者就可以在触摸屏上输入他们的磁盘解锁密码,因为与普通的linux电脑不同,librem5没有物理键盘。

在我们的笔记本电脑上,我们在PureOS中已经有了允许你用Librem钥匙上的GPG密钥解锁磁盘的机制。配置完成后,引导时会提示您输入GPG PIN,智能卡会解密一个包含Luks磁盘解锁密码的GPG加密文件。在我们完成软件以允许Librem5触摸屏在引导时输入密码短语后,添加使用GPG密钥解锁的功能就很简单了。

GPG提供了三种不同类别的子密钥,您可以将其存储在智能卡上。第一种密钥用于加密,第二种用于签名,第三种用于身份验证。验证子密钥通常不会创建,也不会被广泛使用,但是您可以使用它对SSH等服务进行安全身份验证,并且已经有了允许这种功能的插件。这意味着您可以将SSH身份验证秘密安全地存储在智能卡上,并将SSH从Librem 5安全存储到远程计算机,而不会有您的SSH私钥可能被攻击者复制和重用的风险。

我们还可以利用智能卡提供一种通用方法来保护设备上的其他机密,方法是使用存储在智能卡上的GPG密钥对它们进行加密。您不仅可以使用它来加密本地文件或整个可移动SD卡,还可以使用它来保护本地密码库或其他敏感文件。

鉴于存储在智能卡上的机密可能有如此之多,在智能卡芯片出现故障或丢失的情况下,能够备份和恢复它是很重要的。因为智能卡是可拆卸的,并且它使用标准的GPG密钥,所以您可以使用与笔记本电脑和Librem密钥相同的标准方法来备份和恢复GPG私钥。如果安全的Enclave芯片出现故障,您就不走运了,但由于智能卡不仅可拆卸,而且相对便宜,您可以在首次设置密钥时轻松创建备份智能卡,并将其与包含全套私钥的拇指驱动器一起存储在安全的地方。

在Librem5上使用智能卡时,我最感兴趣的工作流程是用户角色的想法。您可以配置Librem 5,使Librem 5上构成个人唯一身份的所有东西都可以移除:蜂窝调制解调器(IMEI)、蜂窝SIM卡(IMSI)、WiFi卡(MAC地址)、microSD卡(个人文件和设置)和智能卡(用户机密)。

人们使用智能手机的一个常见问题是如何在旅行时处理敏感数据。当你旅行时,你不仅更有可能丢失你的手机或被盗,你还会冒着海关官员在你过境时搜查甚至复制你的数据的风险。虽然有些人想出了精心设计的隐写术或安全字方法来试图跨境走私数据,但最安全的方法是只带着你能承受损失的数据旅行,这样你就可以完全遵守任何海关人员的要求。这就是用户角色发挥作用的地方。

如果您认为用户角色类似于Linux系统上的传统用户,您可以想象这样一种场景:该用户的主目录存储在可移动的microSD卡上,并使用智能卡上的GPG密钥进行保护。然后,您可以为要设置的每个用户角色获得不同的一对microSD卡和智能卡。

例如,您可能有一个“普通”角色,其中包含您的个人联系人列表、个人社交媒体帐户机密、您的个人日历、工作文件和类似信息。所有这些文件、设置和机密都将由智能卡上的GPG密钥保护。要设置新的角色,您可以将所有信息存储(或备份)在microSD卡上,并清除该用户帐户。

对于旅行,您可以创建一个“旅行”角色,其中只包含旅行所需的文件、帐户、联系人和日历条目。这些文件和设置可以使用您存储在单独智能卡上的一组不同的GPG密钥进行保护。然后,如果你的手机丢失或被盗,或者如果海关人员搜查了它,唯一面临风险的文件和设置就是你旅行时明确需要的那些文件和设置。如果您想多做一步,您甚至可以更换蜂窝调制解调器(例如,如果您是前往欧洲旅行的美国公民,您可以将我们的美国版本的蜂窝调制解调器更换为欧盟版本,这样您就可以访问更多的欧洲蜂窝频率)。然后,当你到达时,你可以拿到当地的预付费SIM卡,带着一个完全分隔的旅行角色上路。当您旅行回来后,您可以换回您的个人microSD卡和智能卡,并恢复您的个人形象。

我希望现在您和我一样对Librem 5集成智能卡读卡器为您带来的各种可能性感到兴奋。我们始终致力于平衡您的自由、安全和隐私,并开发出不仅能为您提供强大安全性,还能完全控制您自己的硬件的解决方案。我们觉得Librem5中的OpenPGP智能卡读卡器是另一个强大而开放的安全方法的例子,它把所有的钥匙都放在你的手中。