据我所知,.NET 没有用于读取或写入框架中构建的数据的ASN.1 解析器。这意味着任何创建或验证 ASN.1 数据的代码都在使用质量参差不齐的第三方库。 Bouncy Castle和.NET 的 JavaScience是此类库的一些示例。
我知道一些使用较少广泛使用且测试较少的 ASN1 解析器的生产安装。考虑到过去解析数据的问题,以及OpenSSL 仍然存在 ASN1 解析问题,我认为 ASN1 解析是一个被忽视的问题。
背景
ASN.1 用于 TLS 证书、X.400 电子邮件、X.500 和轻量级目录访问协议 (LDAP) 目录服务、H.323 (VoIP)、Kerberos、BACnet 和简单网络管理协议 (SNMP) 来描述它们交换的协议数据单元 (PDU)。任何在受信任的包装器之外读取或写入 ASN.1 数据的自定义软件都可能使系统面临风险。
问题
如何测试和保护 ASN.1 解析器?
哪些解析器比其他解析器更安全?
.NET 如何在没有内置库的情况下执行 AD LDAP、Certificate oid 验证和 kerberos?