技术文章Random Oracle
文章围绕 Windows 代码签名生态中“证书机构充当恶意软件警察”这一做法展开批判,核心问题是:证书颁发与撤销本来服务于身份认证,却被延伸成了对软件行为的事后执法。作者以 ActiveX 时代的案例为起点,说明“签名即可信”的遗留观念如何塑造了 Authenticode 体系,并进一步指出,证书撤销无法精准只封禁某个恶意二进制,而往往会波及同一证书签发的其他正常版本。文中还强调,撤销并不能形成全球性的禁发机制,开发者仍可向其他 CA 重新申请证书,因此它并不是治理恶意软件的有效授权工具。作者结合 RFC 5280 的撤销原因枚举与 X.509/PMI 的历史,论证“写了恶意软件”并不是标准意义上的撤销理由。最后文章指出,针对恶意代码真正属于更高层的授权与信誉系统问题,应由 SmartScreen、Defender、WDAC 等机制承担,而不该把 PKI 语义强行改造成执法工具。
文章直接给出 Authenticode、X.509 撤销语义和代码签名基线要求的具体证据,清楚说明“认证”和“授权”混用的类别错误。适合做安全架构、PKI 设计和 Windows 软件分发机制的长期参考,尤其适合需要理解证书撤销边界与滥用风险的读者。
技术文章Random Oracle
文章介绍了 Windows 证书验证体系中的一个少见扩展点:自定义 revocation provider。作者先说明其工作方式——在 CertVerifyRevocation 调用中,多个提供者按优先级链式返回“有效、已吊销或未知”,其中任一明确结论都会终止后续查询。随后文章强调了三类边界:部分应用(如 Chrome、Firefox)并不走系统 API;revocation 只有在证书链先通过后才会执行;应用还可能显式关闭检查或传入离线模式。基于这些机制,作者展示了三个用途:在 CRL/OCSP 不可用时补齐吊销判断、为特定 CA 做事后 name constraints 约束,以及把代码签名黑名单从单张证书扩展到身份级别。文章的结论是,自定义 revocation provider 能把 Windows 的信任判定从“按证书串号”提升到更灵活的策略层,但其有效性强依赖于应用是否调用平台链验证。
推荐收录,因为文章直接给出了 Windows revocation provider 的机制、调用顺序和三个真实用例,并明确指出了浏览器绕过平台 API、链构建前置条件等限制。适合做 Windows PKI、客户端信任链和企业证书治理的参考,尤其对安全工程师和平台开发者有可迁移价值。
技术文章Random Oracle
文章延续 QCC(Quining C Compiler)的话题,讨论如何把“单文件 C 程序变成 quine”的能力扩展到多程序循环。作者先构造一个基础链路:C 程序生成 Python 程序,Python 再打印出 C 源码,并说明关键前提是把任意字符串稳定转成可执行的目标语言程序,尤其要处理引号、换行和 Unicode 等转义问题。随后文章展示如何把链路继续扩展到 Rust,并指出理论上可继续叠加更多语言,但会受到行长与转义开销的限制。进一步地,作者把目标从“只会打印源码的程序”推广到保留原有业务功能的程序对,通过预处理宏或运行时文本切片从合并源码中裁出 A/B 两个版本,使它们既能执行原功能,也能按条件输出对方源码。文章最后总结这种构造可推广到多个程序,形成任意两两可达的完整图,但也坦承预处理方案会带来大量死代码,运行时裁剪会更干净。
推荐收录,因为文章给出了从单个 quine 到多程序 quine loop 的明确构造路径,包含字符串转目标语言程序、源码拼接、条件编译和可扩展性限制等直接证据。适合关注编程语言、自指程序、源到源转换和编译技术的读者,且其中关于宏裁剪与运行时裁剪的权衡具有可迁移价值。