GNU: A Heuristic for Bad Cryptography5 months agohttps://soatok.blog/2020/07/08/gnu-a-heuristic-for-bad-cryptography/GNU项目中涉及密码学的设计往往欠佳。GNU名称系统(GNS)采用非标准的ECDSA over Curve25519而非Ed25519,引发安全隐患。GNS在CFB模式下组合使用AES和TwoFish的级联加密,无视IND-CCA2安全模型。GnuPG与GnuTLS历史上多次出现漏洞并存在设计缺陷。推荐替代方案:GPG可用age和minisign替代,TLS/加密需求建议选用s2n、OpenSSL或Libsodium。
A Vulnerability in Libsodium5 months agohttps://00f.net/2025/12/30/libsodium-vulnerability/Libsodium现已诞生13年,其创建初衷是为用户简化密码学操作。该项目专注于提供高级API,避免破坏性变更,并保持稳定性。虽然最初基于NaCl API,但libsodium在演进过程中始终维持向后兼容性。尽管文档中有警告,用户仍开始直接使用底层函数。在`crypto_core_ed25519_is_valid_point()`函数中发现漏洞,该漏洞允许特定子群中的无效点通过验证。修复方案是在点验证中添加对Y = Z条件的缺失检查。多数用户不受影响,因为`crypto_sign_*`等高级API并未使用这个有缺陷的函数。建议:在自定义密码方案中使用Ristretto255以避免与辅因子相关的问题。已发布修复版本,维护者呼吁通过赞助支持项目发展。
WebAssembly as a Python Extension Platform4 months agohttps://nullprogram.com/blog/2026/01/01/当软件复杂度达到一定级别时,通常会包含扩展语言,Lua和JavaScript就是常见范例。WebAssembly(Wasm)允许任何以其为目标的编程语言扩展Wasm宿主应用,相比传统扩展语言提供了更丰富的开发工具。Python现可通过Wasm扩展,实现在Python库中嵌入与架构无关的Wasm模块,且无需原生工具链支持。Wasm能显著加速Python函数性能——若用C重写计算密集型代码并转为Wasm运行,可获得约10倍的性能提升。推荐使用wasmtime-py包在Python中嵌入Wasm,因其包含预编译二进制文件且免装原生工具链,但需注意其体积较大且API变更频繁。Python中使用Wasm的常见陷阱包括:正确处理指针以避免负索引,以及确保完善的内存管理机制。加密库Monocypher可编译为Wasm并在Python中使用,提供AEAD加密/解密等安全密码学操作。通过Wasm为Python嵌入能力(如密码学模块),既能保障操作安全性,又能高效运行且无需直接外部访问。
The PGP Problem (2019)5 months agohttps://www.latacora.com/blog/2019/07/16/the-pgp-problem/#the-answersPGP已过时且存在诸多缺陷,无法满足现代加密需求。PGP设计过于复杂,其基于数据包的结构和多重编码方式导致实现与使用极其繁琐。PGP缺乏前向保密等现代加密特性,采用的加密原语已过时,存在安全攻击风险。PGP用户体验极差,包括复杂的安装流程和笨拙的密钥管理机制。PGP的密钥分发体系(如信任网络和密钥签署派对)效率低下且不切实际。PGP会泄露元数据且不具备前向保密性,严重损害隐私与安全性。针对不同场景推荐替代方案:Signal适用于即时通讯,Magic Wormhole适合文件传输,Signify/Minisign用于软件包签名。现代加密工具(如libsodium和age)在安全性和易用性上全面优于PGP。
Ed25519-CLI – command-line interface for the Ed25519 signature system5 months agohttps://lib25519.cr.yp.to/ed25519-cli.htmled25519-cli 是 Ed25519 签名系统 lib25519 实现的命令行界面工具密钥生成通过 `ed25519-keypair` 实现,该命令会将公钥和私钥输出到指定的文件描述符签名生成由 `ed25519-sign` 完成,该命令使用私钥对标准输入读取的消息进行签名签名验证和消息恢复由 `ed25519-open` 处理,该命令根据公钥验证已签名的消息所有工具在失败时返回非零状态码,成功时返回0,便于在shell脚本中使用`ed25519-open` 返回的退出码100特指无效签名错误
The PGP Problem (2019)4 months agohttps://www.latacora.com/blog/2019/07/16/the-pgp-problem/PGP已过时且存在大量安全漏洞,无法满足现代加密需求。PGP设计过于复杂,其基于数据包的结构和多种编码方式导致实现与使用困难。PGP缺乏前向保密和认证加密等现代加密功能,仍依赖过时且不安全的加密原语。PGP的用户体验极差,即使技术人员也难以正确配置和使用。PGP鼓励使用长期密钥,这会增加密钥泄露风险并降低安全性。PGP的密钥分发机制(如信任网络和密钥服务器)效率低下且常导致元数据泄露。针对不同场景已有PGP替代方案:Signal用于安全通讯、Magic Wormhole传输文件、Signify/Minisign用于软件包签名。由于电子邮件本身的安全缺陷和PGP的漏洞,不建议使用PGP加密邮件。现代加密工具(如libsodium和age)在应用数据与文件加密方面比PGP更安全易用。GnuPG作为PGP的实现存在漏洞历史,其代码库不被视为安全可靠。
Decorative Cryptography4 months agohttps://www.dlp.rip/decorative-cryptography文章讨论了Linux内核中的TCG_TPM2_HMAC特性,该功能旨在防止或检测对TPM通信的总线窃听和中间人攻击。它强调了威胁模型中存在的攻击者可能访问TPM总线的情况,包括被动(窃听)或主动(篡改数据)方式。该特性使用HMAC和加密交易来保护TPM通信,但也存在局限性,例如无法防止对固件或引导加载程序测量的篡改。文章指出,对于PCR扩展和随机数生成等常见操作,使用非对称加密会带来较高的性能开销。一个关键缺陷被指出:内核在没有适当验证的情况下信任Null主密钥,这颠倒了信任链,使其容易受到攻击。作者强调,仅靠应用密码学无法解决安全问题,还需要适当的密钥管理,并警告不要使用提供虚假安全感的'装饰性密码学'。经验教训包括信任链方向的重要性、可解释安全特性的必要性,以及需要像Caliptra这样的集成信任根来防御物理中间人攻击者。
PassSeeds – hijacking Passkeys to unlock new cryptographic use cases4 months agohttps://backalleycoder.com/posts/passseeds-an-experiment-in-hijacking-passkeys-t...Passkeys为网站/应用登录提供安全的加密认证,但其用途仅限于此。PassSeeds是一种创新方案,通过将passkey公钥视为种子材料,重新利用passkey特性来支持更广泛的加密应用场景。PassSeeds可为各类加密应用(包括比特币交易、去中心化社交媒体和零知识证明)实现确定性密钥生成。PassSeed机制包含三个步骤:生成passkey→通过ECDSA密钥恢复从两个签名中提取公钥→转换为BIP-39助记词进行备份。PassSeeds凭借passkey的安全性和同步能力,为用户提供了比传统加密密钥管理更友好的替代方案。该方案提供TypeScript实现方法,包含创建、检索和转换PassSeeds的功能,兼顾安全性与可用性。PassSeeds可作为WebAuthn PRF功能的polyfill,实现在所有浏览器上执行确定性加密操作。现已提供演示程序和NPM包,便于将PassSeeds集成到Web应用中。
Practical Collision Attack Against Long Key IDs in PGP4 months agohttps://soatok.blog/2026/01/07/practical-collision-attack-against-long-key-ids-i...一位Hacker News用户根据实证数据声称64位PGP密钥指纹不存在碰撞概念验证展示了针对OpenPGP和GnuPG使用的64位'长密钥ID'的碰撞攻击该攻击利用生日边界原理,约需2^32次尝试即可达到50%的碰撞概率完整攻击在笔记本电脑上耗时约3天,关键步骤包括生成密钥对、计算密钥ID及排序结果碰撞密钥ID可能让攻击者替换恶意密钥,导致安全漏洞与可否认性风险文章强调在缺乏专业认知时,不应基于经验主义对密码学安全性妄下结论
Verifiable Brute Force Strength4 months agohttps://gist.github.com/atoponce/a7715930ae6eb7d6b487f2f76b57a68d文本详细比较了多个项目的暴力搜索能力,通过比特/秒为单位测量其速度,并估算了穷举128位密钥空间所需的时间。比特币挖矿、RC5-72项目以及多种GPU配置(如448块2080显卡、RTX 4090)参与了基准测试,其中比特币挖矿以69.850比特/秒的速度领先。穷举128位密钥空间的时间差异巨大:比特币挖矿需101.31亿年,而ThinkPad T480s笔记本则需要3.280×10²¹年。性能基准涵盖硬件AES加密、distributed.net的RC5-72挑战赛,以及不同GPU配置下使用Hashcat进行密码破解的测试。文本还分析了2009至2026年间比特币挖矿算力的演变过程,显示出计算能力的指数级增长。专用硬件(如搭载SHA加速器的macOS M3 Pro芯片和配备AES-NI指令集的英特尔CPU)的加密性能同样被纳入基准,突显其在密码学运算中的高效性。
The State of OpenSSL for pyca/cryptography4 months agohttps://cryptography.io/en/latest/statements/state-of-openssl/Python加密库pyca/cryptography依赖OpenSSL实现核心加密算法已有12年OpenSSL的发展历程可分为三个阶段:2014年前维护不足、心脏出血漏洞事件后的改进期、2021年后OpenSSL 3出现的功能倒退OpenSSL 3存在性能倒退、复杂度激增和API设计问题,导致维护者深感挫败性能问题包括证书解析和密钥加载速度显著下降,部分操作比OpenSSL 1.1.1慢三倍pyca/cryptography通过将部分功能迁移至Rust实现性能提升,证明改进可能性存在OpenSSL 3的新API(如OSSL_PARAM)因降低性能、增加复杂度、损害代码可读性而遭批评OpenSSL的测试验证机制存在缺陷,CI系统不稳定且测试覆盖率不足导致漏洞难发现内存安全问题令人担忧,与其他项目不同,OpenSSL未承诺迁移至Rust等内存安全语言pyca/cryptography团队正考虑降低对OpenSSL依赖,可能转向LibreSSL/BoringSSL/AWS-LC等分支版本未来可能彻底放弃OpenSSL支持,探索Graviola等替代加密实现方案
Claude Shannon's randomness-guessing machine4 months agohttps://www.loper-os.org/bad-at-entropy/manmach.html游戏由人与机器预测“零”或“一”组成。人类目标是表现随机性;机器进行预测或选择跳过。机器预测正确得分;预测错误则对人类有利。经过多轮后,机器通常能胜过人类。点击“重置”按钮或按“空格”键可重新开始游戏。该游戏被认为源自约翰·冯·诺伊曼或斯坦尼斯瓦夫·乌拉姆。游戏揭示了人工生成随机数用于密码学的潜在风险。
TPM on Embedded Systems: Pitfalls and Caveats to Watch Out For4 months agohttps://sigma-star.at/blog/2026/01/tpm-on-embedded-systems-pitfalls-and-caveats/可信平台模块(TPM)芯片已应用20余年,2014年发布的TPM 2.0成为现行标准。TPM现已成为PC标准配置,并因欧盟《网络弹性法案》(CRA)等法律要求开始嵌入Linux领域。TPM既可以是独立芯片,也能以固件形式(fTPM)存在,通过UEFI或Arm TrustZone等安全环境模拟实现。TPM典型应用场景包括网络协议加密(TLS)和存储安全(LUKS/dm-crypt、BitLocker)。TPM密钥可与PCR值绑定,确保仅在系统完整性符合特定条件时才释放密钥。嵌入式设备在启动流程、威胁模型和生命周期(10年以上)等方面与PC存在显著差异。针对嵌入式设备的物理攻击包括总线监听、中间人攻击及通过TPM重置绕过PCR校验。Linux内核6.10版本新增NULL种子波动检测机制,可识别TPM中间人攻击。fTPM虽消除物理总线风险,但面临侧信道攻击和可信执行环境漏洞威胁。TPM无法应对所有威胁,需结合SELinux、AppArmor和安全启动链等机制。TPM固件更新至关重要,特别是修复TPM-FAIL(CVE-2019-16863)等漏洞时。冷启动攻击可在TPM解封后从内存提取密钥,需部署防护措施。TPM运算缓慢,不适合处理重型加密,但能有效保护长期密钥安全。
Lennart Poettering, Christian Brauner founded a new company4 months agohttps://amutable.com/about为全球Linux工作负载提供可验证的完整性保障将密码学验证构建到Linux系统中,实现从启动到持续运行的全周期信任坚守系统状态完整性绝不妥协的承诺
Compromise of Polish codes and ciphers WWII3 months agohttp://chris-intel-corner.blogspot.com/2026/02/the-compromise-of-polish-diplomat...波兰在二战中站在同盟国一方作战,是最早被纳粹德国占领的国家。波兰流亡政府及军队为盟军战争作出重要贡献,包括不列颠战役中的波兰飞行员,以及在北非、意大利和西欧作战的波兰部队。波兰情报机构在被占领的欧洲广泛活动,甚至渗透进德国最高统帅部,并与英国、美国和日本情报机构展开合作。波兰情报部门向英国提供了约8万份报告,包括关于德国V型武器及德军高层行动的关键情报。战争期间,波兰外交和军事密码先后被德国、英国和美国的密码破译机构攻破。德国密码专家破译了波兰外交密码(包括'45号密码')和军事情报密码,获取了重要情报。英美密码机构虽破译了波兰军情通讯,却未向波方示警,此举危及盟军安全。波兰在瑞士(Ekspozytura S)和法国(Ekspozytura F2)的抵抗组织与情报网络因密码被破而暴露。波兰的Lacida等密码机被证实存在安全隐患,而采用英国Typex密码机的替代计划又因生产问题受阻。波兰通讯系统的全面失守是重大情报失误,为后世密码安全提供了深刻教训。
We have broken SHA-1 in practice3 months agohttps://shattered.io/SHA-1已被实际攻破,攻击者可生成两个具有相同数字签名但内容冲突的PDF文件。该漏洞影响数字签名、文件完整性校验及各类应用中的文件识别(包括GIT和SVN版本控制系统)。尽管自2005年起SHA-1就存在理论攻击风险,且NIST于2011年将其淘汰,许多应用仍在使用该算法。谷歌和Mozilla已采取防护措施:Chrome将SHA-1证书标记为不安全,Firefox则全面弃用该算法。攻击者可篡改GIT仓库,使不同内容的提交产生相同哈希值,构成重大安全隐患。SVN在1.9.6及以上版本和1.8.18版本中已针对SHA-1碰撞漏洞发布补丁。SHAttered攻击效率远超暴力破解,虽需大量计算资源,但现已具备实际可行性。此项突破性研究由CWI研究所与谷歌研究院合作完成,依托谷歌的基础设施与技术专长。Marc Stevens与Dan Shumow开发了在线检测工具,可识别文件是否遭受SHA-1碰撞攻击。反密码分析技术能通过为冲突文件生成不同哈希值,有效检测并防御SHA-1碰撞攻击。
Don't pass on small block ciphers3 months agohttps://00f.net/2026/02/10/small-block-ciphers/小分组密码(32位、64位)常被视为过时且不安全,但在特定应用中仍具价值大分组密码(如Rijndael-256、Vistrutah)更通用安全,但小分组密码仍有细分场景用途小分组密码因分组长度有限,易受枚举攻击和区分攻击影响分组密码是对称加密函数,通过密钥相关置换处理输入数据小分组密码可安全加密计数器(如账户ID、数据包索引)以隐藏敏感信息UUID各版本存在权衡:v1/v7会泄露时间戳,v4随机性更强但体积较大,v6针对旧系统优化小分组密码可加密UUID部分字段(如UUIDv7时间戳),在保持UUID特性的同时防止信息泄露SIMON与SPECK(NSA设计)是经过充分分析的高效小分组密码,目前尚无实际攻击案例小分组密码并非普遍安全,但在被动攻击场景或特定数据隐藏需求中可能有用密钥白化技术(FX/Even-Mansour结构)可增强小分组密码安全性
Fast sorting networks, branchless by design3 months agohttps://00f.net/2026/02/17/sorting-without-leaking-secrets/排序是计算机科学中的关键问题,性能是大多数应用的核心考量因素。传统排序算法如快速排序、归并排序和pdqsort容易受到时序侧信道攻击,可能导致敏感数据泄露。排序网络通过提供固定操作序列来解决这个问题,使其具有数据无关性并能抵抗时序攻击。冒泡排序是简单排序网络的代表,但对大型数据集效率低下。奇偶置换排序通过引入并行性改进了冒泡排序,但仍保持O(n²)的时间复杂度。双调序列和Batcher双调排序提供了更高效的O(n log²n)复杂度方案,使其适用于密码学应用。由Daniel J. Bernstein开发的djbsort实现了Batcher排序网络,并针对速度、恒定时间执行和形式化验证进行了优化。Zig语言实现的djbsort相比传统排序算法展现出显著性能提升,尤其对原生数值类型和SIMD优化场景。djbsort中的浮点数排序采用巧妙的位操作技术建立全序关系,保持接近整数排序的性能。尽管排序网络理论复杂度更高,但在实际应用中(尤其是安全敏感场景)可能超越传统排序算法。
Cryptographic Issues in Matrix's Rust Library Vodozemac3 months agohttps://soatok.blog/2026/02/17/cryptographic-issues-in-matrixs-rust-library-vodo...Matrix的Olm加密库存在多个旁路攻击漏洞,且漏洞披露后仍未修复。Matrix.org安全团队未能及时通知其他客户端相关漏洞,且漏洞披露流程处理不当。Matrix的Rust加密库Vodozemac存在密码学漏洞,包括接受迪菲-赫尔曼密钥交换中的单位元,导致安全性降为零。Vodozemac中从V2降级到V1的攻击通过将HMAC输出截断至64位降低了安全性。Vodozemac的其他问题包括:ECIES校验码强度不足、静默丢弃消息密钥、pickle格式中使用确定性IV、模糊测试期间禁用安全检查等。Matrix的密码学实现缺乏专业保障,libolm和Vodozemac两个库中反复出现同类漏洞。Matrix领导层未展现出对历史安全问题的反思态度或改进意愿。尽管经过多次审计,Matrix加密模块的已知问题仍未解决,改进力度不足。Matrix的安全缺陷使其成为高风险通信选择,安全性堪比其他防护薄弱的平台(如Twitter的X Chat)。
Carelessness versus Craftsmanship in Cryptography3 months agohttps://blog.trailofbits.com/2026/02/18/carelessness-versus-craftsmanship-in-cry...两个AES加密库(aes-js和pyaes)在其AES-CTR接口中提供了默认初始化向量(IV),导致影响数千个项目的密钥/IV复用漏洞在AES-CTR或GCM模式下复用密钥/IV对可能导致严重安全问题,包括明文恢复和脆弱的加密机制aes-js和pyaes缺乏现代加密模式(如AES-GCM和AES-GCM-SIV),使其容易遭受攻击这两个库均存在旁路攻击风险,且自2017-2018年以来未再更新aes-js维护者以随意态度驳回严重安全问题,暴露出漠视安全的态度strongSwan的strongMan VPN管理器因pyaes默认IV存在漏洞,但维护者实施了模范级安全修复方案strongMan的修复措施包括:替换pyaes为现代加密库、采用GCM-SIV模式、增加每条目的密钥派生机制粗制滥造与工匠精神的区别在于开发者如何应对错误,strongMan的响应堪称后者典范