Esta puede ser una pregunta estúpida, pero ...
¿Por qué el software crucial para la seguridad está escrito en lenguajes como C y C ++? Entiendo por qué, digamos, un sistema integrado puede necesitar un lenguaje de bajo nivel para hacer el mayor uso de recursos limitados, pero parece una tontería escribir software de seguridad en lenguajes de bajo nivel.
Estoy preguntando esto porque cada vez que voy a debian.org y veo las soluciones de seguridad más recientes, la mayoría vasta involucra problemas de seguridad de la memoria, que solo aparecen en idiomas inseguros como C y C ++. Como mala reputación que tiene Java, por ejemplo, me imagino que el 90% de los parches de seguridad para OpenSSL serían completamente inútiles. Si se utilizara un lenguaje de nivel superior como Scala o Lisp, supongo que sería aún más fácil mantener las cosas seguras. El desorden de sus arreglos en el peor de los casos dará lugar a un error de tiempo de ejecución.
¿La razón para usar C / C ++ es evitar los ataques de canal lateral? Podría imaginar algunas propiedades de una clave que interfiere con la ejecución de un recolector de basura conservador (como Boehm) y que conduce a ataques de tiempo, pero ningún lenguaje de nivel superior utiliza recolectores de basura inseguros de todos modos.