C++语言的创造者批评了美国国家安全局关于安全编程语言的报告

比亚恩·斯特劳斯楚普

Bjarne Stroustrup 回应 NSA 推荐并反驳 C++ 分类

比亚恩·斯特劳斯楚普, C++语言的创造者, 对美国国家安全局报告的调查结果提出异议, 它建议组织放弃使用 C 和 C++ 等编程语言,它们将内存管理转移给开发人员,转而使用 C#、Go、Java、Ruby、Rust 和 Swift 等自动提供内存管理或在编译时执行内存安全检查。

根据 Stroustrup 的说法, NSA 报告中提到的安全语言并不真正优于 C++ 从您的角度来看,在重要的应用程序中。

美国国家安全局建议组织考虑对他们使用的编程语言进行战略性改变。 为内存安全语言提供很少或不提供固有的内存保护,如 C/C++
在可能的情况下

特别是,他C++ 基本准则, 近年来发展起来的, 涵盖安全编程的方法 并规定使用工具来确保类型和资源的安全工作。 但是,不需要如此强大的安全保证的开发人员可以继续使用旧的开发方法。

Stroustrup 认为一个好的静态分析器 符合 C++ 核心指南 可以为C++代码提供必要的安全保障 与切换到新的安全编程语言相比,成本要低得多。

例如,大多数核心指南已经在 Microsoft Visual Studio 静态分析器和内存安全配置文件中实现。 Clang tidy 静态分析器也考虑了一些建议。

美国国家安全局的报告也因只关注记忆问题而受到批评。,留下了许多其他影响安全性和可靠性的编程语言问题未得到解决。

不幸的是,许多 C++ 用法也停留在遥远的过去,忽略了改进,包括大幅提高安全性的方法。 现在,如果我在我感兴趣的用途范围内考虑任何优于 C++ 的“安全”语言,我不会认为 C/C++ 的消亡是一件坏事,但事实并非如此.

Bjarne Stroustrup 不同意 NSA 出版物将保护软件的概念限制为保护内存。 实际上,这方面是所有建议放弃 C 或 C++ 以支持 Rust 语言的出版物的共同点,以确保几家大公司(Microsoft、Amazon 等)认可的软件的安全性。

“‘安全’没有单一的定义,我们可以通过组合编程风格、支持库和利用静态分析来实现多种安全类型,”他说。 因此,Bjarne Stroustrup 建议,在软件安全方面,从 C++ 中可以获得什么取决于开发人员,特别是,取决于该语言提供的工具的知识、他对编译器的掌握等。

Stroustrup 将安全性视为一个更广泛的概念,其各个方面可以通过编码风格、库和静态分析器的组合来实现。 为了控制确保使用类型和资源的安全性的规则的包含,建议使用代码注释和编译器选项。

在性能比安全性更重要的应用程序中,此方法允许选择性地使用工具,以确保仅在需要时确保安全性。 也可以部分应用安全增强工具,例如先限制范围检查和初始化规则,然后逐步使代码适应更严格的要求。

最后,如果你有兴趣能够了解更多关于C++的创造者的出版物,你可以查阅详情 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。