文章摘要
Typage是一个基于TypeScript实现的age文件加密格式工具,支持Node.js、Deno、Bun和浏览器环境。它实现了原生age接收者、密码加密、ASCII编码,并支持自定义接收者接口。自0.2.3版本起,Typage支持使用passkeys和其他WebAuthn凭证进行对称加密,并通过age CLI插件在浏览器外使用硬件FIDO2安全密钥。Passkeys是一种基于WebAuthn的防钓鱼认证机制,可存储在平台认证器中,如iCloud钥匙串。
文章总结
文章《使用Passkeys和age加密文件》详细介绍了如何利用Passkeys和age工具进行文件加密,并探讨了其实现细节。以下是文章的主要内容总结:
Typage工具介绍:
- Typage是一个TypeScript实现的age文件加密格式工具,支持Node.js、Deno、Bun和浏览器环境。
- 它支持原生age接收者、密码加密、ASCII编码,并允许自定义接收者接口。
- 从0.2.3版本开始,Typage支持通过Passkeys和其他WebAuthn凭证进行对称加密,并提供了一个age CLI插件,允许在浏览器外使用硬件FIDO2安全密钥。
Passkeys加密机制:
- Passkeys是同步的、可发现的WebAuthn凭证,提供基于标准的防钓鱼认证机制。
- 支持PRF(伪随机函数)扩展的凭证可以在登录时计算PRF,用于对称加密。
- PRF扩展需要用户验证(如PIN或生物识别),并且每个凭证断言可以计算两个PRF,用于密钥轮换。
fido2prf age格式:
- 定义了如何将随机文件密钥加密并编码到age文件的头部。
- 使用PRF输出作为包装密钥,对文件密钥进行加密,确保每个文件都有其独特的PRF输入,增强了安全性。
- 该格式具有每文件硬件绑定和不可链接性两个重要特性。
WebAuthn与Typage集成:
- Typage 0.2.3版本实现了WebAuthn API,支持Passkeys加密。
- 通过
age.webauthn.createCredential创建新Passkey,并使用age.webauthn.WebAuthnRecipient和age.webauthn.WebAuthnIdentity进行加密和解密操作。
安全密钥与age-plugin-fido2prf:
- 支持在FIDO2硬件令牌上存储Passkeys,并通过
age-plugin-fido2prf插件在CLI中使用这些密钥。 - 插件与Typage安全密钥身份字符串互操作,支持对称加密。
- 支持在FIDO2硬件令牌上存储Passkeys,并通过
图片展示:
Geomys组织:
- Geomys是一个Go开源维护组织,由Smallstep、Ava Labs、Teleport、Tailscale和Sentry资助,确保开源项目的可持续性和可靠性。
文章通过详细的技术描述和代码示例,展示了如何利用Passkeys和age工具进行文件加密,并强调了其在安全性和易用性方面的优势。
评论总结
对Filippo的贡献的认可
- 评论1:作者defraudbah赞扬Filippo在加密和Golang社区的杰出贡献,认为他推动了Golang在加密领域的普及。
引用:
"If it wasn't for you who knows, maybe golang wasn't that popular in the fields where cryptography matters."
“如果不是你,谁知道Golang在加密领域是否还会如此流行。”
- 评论1:作者defraudbah赞扬Filippo在加密和Golang社区的杰出贡献,认为他推动了Golang在加密领域的普及。
关于Passkey和身份验证的讨论
- 评论2:andrewmcwatters提出在没有访客登录功能的情况下,如何通过Passkey或魔法邮件链接共享登录信息的疑问。
引用:
"How do you do it without the service implementing guest sign in as a feature?"
“如果服务没有实现访客登录功能,你该怎么做?” - 评论3:mkw5053指出WebAuthn的PRF功能可以简化文件加密,但泄露的Passkey会导致大量文件需要重新加密,适用于备份但不适合生产环境。
引用:
"leaked passkeys mean full rotation and bulk re-encryption of files."
“泄露的Passkey意味着需要完全轮换和批量重新加密文件。”
- 评论2:andrewmcwatters提出在没有访客登录功能的情况下,如何通过Passkey或魔法邮件链接共享登录信息的疑问。
对Safari不支持PRF的批评
- 评论5:dariosalvi78表示期待PRF功能已久,但Safari不支持,影响了端到端加密的应用。
引用:
"as usual, Safari doesn't support it."
“一如既往,Safari不支持它。”
- 评论5:dariosalvi78表示期待PRF功能已久,但Safari不支持,影响了端到端加密的应用。
Passkey在文件加密中的应用
- 评论7:9dev认为Passkey可以用于客户端加密敏感文件,方便存储且无法窥探内容。
引用:
"all with the convenience of passkeys!"
“所有这一切都得益于Passkey的便利性!” - 评论8:wkat4242探讨Passkey是否可以作为“pass”工具的PGP后端替代方案,特别是在多平台支持方面。
引用:
"I wonder if this can replace the PGP backend from 'pass'."
“我想知道这是否可以替代‘pass’的PGP后端。”
- 评论7:9dev认为Passkey可以用于客户端加密敏感文件,方便存储且无法窥探内容。
对Linux包签名工具的期待
- 评论9:phoronixrly希望看到除GnuPG之外的Linux包签名工具。
引用:
"Now do one for signing Linux packages with..."
“现在为Linux包签名做一个工具吧,只要不是GnuPG就行……”
- 评论9:phoronixrly希望看到除GnuPG之外的Linux包签名工具。



