这可能是一个愚蠢的问题,但是...
为什么用 C 和 C++ 等语言编写对安全至关重要的软件?我理解为什么嵌入式系统可能需要一种低级语言来充分利用有限的资源,但是用低级语言编写安全软件似乎很愚蠢。
我之所以问这个问题是因为每当我访问 debian.org 并查看最新的安全修复程序时,其中绝大多数都涉及内存安全问题,这些问题仅出现在 C 和 C++ 等不安全的语言中。例如,像 Java 那样糟糕的代表,我认为 OpenSSL 的 90% 的安全补丁将完全无用。如果使用更高级的语言,如 Scala 或 Lisp,我想它会更容易让事情变得安全。在最坏的情况下,弄乱你的数组会导致运行时错误。
使用 C/C++ 的原因是避免侧信道攻击吗?我可能会想象某个键的某些属性会干扰保守垃圾收集器(如 Boehm)的执行并导致计时攻击,但无论如何都没有更高级别的语言使用不安全的垃圾收集器。