The pandemic of incomplete OpenSSL error handling
8 days ago
- #Security
- #OpenSSL
- #Error Handling
- APT 的一个 bug 报告指出,在 FIPS 系统中因 MD5 错误导致 TLS 故障,建议在 TLS 操作周围使用 ERR_clear_error()。
- 作者反对这种做法,认为丢弃无关的错误是不安全的坏习惯,应该修复根本原因。
- ERR_clear_error() 在许多代码库中被广泛视为最佳实践,但这导致了错误处理不全面的系统性问题。
- 另一个反模式是在 OpenSSL 操作后检查顶层错误,如果认为不严重就丢弃它们,这也会掩盖无关的错误。
- 鼓励开发者检查代码中的 ERR_clear_error() 调用,并考虑使用 ERR_set_mark() 进行更安全的错误堆栈管理。
- 呼吁 OpenSSL 的作者避免推广那些损害软件安全性和信任度的做法。