软件安全防护与协议安全分析
1. 软件测试与安全问题
在软件测试中,堆或栈溢出、内存泄漏等问题会导致程序不稳定。一些工具,如 Cenzic 的 Hailstorm 或 Immunity 的 SPIKE,可对任意网络协议(包括 HTTP)进行压力测试。很多公司满足了 Web 应用的使用测试要求,但在软件测试的安全方面投入较少。
2. 加密与认证
2.1 加密设计的常见错误
在产品中设计加密时,常见的错误是密钥分发处理不当。例如,某在线业务试图通过在数据库中加密客户信用卡信息来保护数据,但数据库服务器需要解密数据,最终密钥的两半都汇集到数据库服务器,这样将密钥和加密数据存储在同一目标服务器上,加密就失去了意义。
2.2 PKI 设计的常见漏洞
PKI 设计中,缺乏有效的撤销程序是主要问题。任何值得攻击的 PKI 系统最终可能会被攻破,如通过贿赂保安、社会工程学、逆向工程或暴力攻击等方式。若无法有效撤销被盗密钥,一个被盗密钥就能危及整个系统。而且撤销计划需要网络支持,涉及密钥层级系统、撤销密钥和真实性检查。仅知道用于加密或签名消息的公钥,并不意味着知道实际持有该密钥的人。
2.3 加密库的潜在风险
使用加密库时,常被忽略的关键事实是,为提高速度,这些库通常用 C 语言编写,包含复杂的编码例程(如 ASN.1)。用 C 语言编写复杂编码例程时,必然会出现缓冲区溢出漏洞。例如,Kerberos 实现的认证库就存在诸多问题。
2.4 哈希消息认证码(HMACs)
在事务性服务器 - 客户端程序中,服务器给用户数据后可能会忘记该数据,当
超级会员免费看
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



