Mooltipass

来自 ArchWiki

Mooltipass 是一个开放硬件和开放软件的硬件密码管理器,用户可以在其中存储其凭据,以便针对 Web 应用程序、PAM 会话和受密码保护的应用程序进行身份验证。

该设备可以与任何支持 HID 类设备的 USB 兼容系统一起使用。

作为日常用户,可以通过使用可点击的滚轮直接与设备交互,或者自由使用可用的浏览器扩展程序/应用程序之一。

简介

Mooltipass 团队面临着基于密码的身份验证的巨大复杂性,这需要包括以下严格策略:

  • 每次使用都使用唯一的密码;
  • 难以猜测的密码;

为了结合这种策略的安全性和可用性,人们开发了像 KeePass 这样的软件密码管理器。不幸的是,这种解决方案意味着所有凭据都保留在计算机内存中,因此最终可能会被恶意软件盗取。

Mooltipass 是一个外部设备,凭据存储在设备上,使用 AES-CTR 和存储在 PIN 锁定的智能卡上的 256 位密钥进行加密。插入后,Mooltipass 模拟 HID 设备,并将像键盘一样将您的凭据信息发送到目标应用程序。即使攻击者能够在某个时候嗅探到设备和主机之间的通信,他们也可能无法收集所有凭据,也无法注入他们自己的数据。

密码存储

先前介绍的智能卡用于识别用户。请注意,多个用户必须拥有不同的智能卡,但可以使用相同的 mooltipass。

凭据存储在设备闪存中,包含以下信息:域名、用户名、密码、备注。

注意: 在所有这些字段中,只有密码是加密存储的(并加盐)。

以下列表限制了存储能力

  • 闪存为 8Mb;
  • 一个密码最多可以有 32 个字符长;
警告: 错误输入 PIN 码 4 次将锁定并销毁智能卡。

固件升级

固件升级是通过签名捆绑包进行的。每个设备都由主开发人员将专用的 AES 密钥熔入电路板中。

附加功能

此外,mooltipass 受益于 ATMega32u4,并公开了一个自定义随机数生成器,用于生成随机密码。

Udev 规则

mooltipass-udevAUR 提供了 udev 规则,允许每个普通用户从会话或使用 libusb 访问设备。

用法

Mooltipass 的设计宗旨是易于所有人使用。与之交互的主要方式是通过浏览器应用程序和/或扩展程序。

Chromium

Chromium 是 Mooltipass 的首要目标,该团队创建了一个扩展程序(可从 Web Store 获得),该扩展程序可以检测网页上的登录表单,并在设备上为您选择正确的凭据。用户只需在 Mooltipass 屏幕上检查请求是否合法,并使用硬件滚轮批准/拒绝。

有关 Webauthn 支持,请参阅 Chromium/Tips and tricks#U2F authentication。

Firefox

与 Chromium 类似,Firefox 用户可以使用 Mooltipass 扩展程序,以便在网站和设备上存储的凭据之间轻松交互。

注意: Firefox 目前不支持 Webauthn [1]

Moolticute

moolticuteAUR 旨在构建一个可以与浏览器外部的 mooltipass 交互的跨平台应用程序。该应用程序基于 C++/Qt,并提供一个守护程序(将处理与设备的每个操作)和一个 GUI 应用程序(可以替代 chrome 应用程序)。

注意: 守护程序公开了一个 web socket 接口,因此任何人都可以根据自己的需要构建工具。

mc-cli

为了脚本编写的目的,有 mc-cliAUR,它允许人们通过命令行从 moolticuted 与 Mooltipass 交互。

mc-agent

mc-agentAUR 受益于 Mooltipass 的文件系统支持,因此用户能够存储他们(未加密的)SSH 密钥。mc-agent 实现了 SSH 代理,允许从设备加载密钥。

Mooltipy

最后一个客户端实现是 mooltipy,它实现了 CLI 工具和可用于脚本编写的 Python 模块。

参见