首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用内置函数

使用内置函数
EN

Stack Overflow用户
提问于 2014-04-20 09:17:51
回答 2查看 103关注 0票数 0

我正在用C#.I开发一个Windows应用程序,听说人们不应该在代码中使用内置的方法和函数,因为黑客对这些内置的方法有很深的了解,并且知道如何使它们失败,应该始终使用自己的函数和方法,如果不使用,那么就从那些新开发的functions.How智能调用内置的函数--这是真的吗?

支持我的论点的一个支持例子是,我看到开发人员总是开发自己制作的加密算法,如AES、DES、RC4和Hash函数,因为他们认为内置加密算法有很多次后门。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-20 09:34:25

什么?!不,不,不!不管是谁告诉你这只是错了

有一种常见的谬误是,已发布的源代码更容易受到"h4ckerz“的攻击,因为任何人都可以看到其中的缺陷。然而,我很高兴你提到了密码,因为这是一个领域,在这个领域,这条推理路线确实是一个谬误。

其中一个most popular questions of all time on https://security.stackexchange.com/是关于一个开发人员(在OP中他被赋予化名为"Dave"),他对已发布的代码有同样的恐惧。戴夫,就像你看到的那个开发人员一样,正试图自制自己的加密算法。以下是该帖子中最受欢迎的评论之一:

Dave有一个根本错误的前提,即算法的安全性依赖于(甚至部分)其模糊性--事实并非如此。哈希算法的安全性取决于我们对数学的理解的限制,在较小的程度上,硬件强暴它的能力。一旦戴夫接受了这一现实(阅读维基百科关于哈希的文章,这就是现实),是一个关于谁更聪明的问题--戴夫自己还是一大群致力于解决这个特殊问题的专家。

事实上,现在的top two memes on Security.SE是“不要自己滚”和“不要成为戴夫”。

虽然这一切都是关于密码的,但一般适用于大多数开源软件。后门被找到并被修复的机会随着每一组新的眼睛放在代码上而增加。这应该是一个简单且没有争议的前提:人们寻找的东西越多,找到的可能性就越高。是的,这适用于寻找漏洞的恶意用户。然而,它也适用于高级用户、白帽黑客、安全研究人员、密码学家、专业开发人员和其他为“好”而工作的人,这通常(希望)超过那些为“邪恶”工作的人。这也隐含着一个错误的前提,即黑客需要看到源代码才能做坏事。这显然是错误的,因为有大量的私有系统的源代码从未发布过(各种Microsoft和Adobe程序),这些系统多年来一直充斥着漏洞。也许有源代码可以让黑客的工作更容易,但也许不是--是更容易查看源代码,寻找攻击矢量,还是只对编译好的二进制文件使用扫描工具和脚本?

博士不要当戴夫。滚动你自己的意味着你必须是everything中最优秀的才能获得成功,而不是对社区提供的最好的东西进行抽样。

心血

在你的评论中,你反驳道:

那么,为什么openSSL中的心脏出血错误还没有被发现和纠正呢?

因为没人看过。这才是可悲的事实。这就是区别--一旦有人找到了它发生了什么?现在,的数万名安全研究人员、密码专家和其他正在关注这个问题。假设我前面提到的一个专有产品中存在相同的漏洞,它很有可能。一旦它被抓住(如果它被抓到),问问你自己:

  • 该公司负责的程序员团队能从全世界安全专家、密码专家和其他分析人员的帮助中获益吗?
  • 如果发现了这个关键问题(这是一个很大的错误!)在您的软件中,您是否准备好处理自定义实现所造成的后果?
票数 4
EN

Stack Overflow用户

发布于 2014-04-20 09:33:58

除非您了解应用程序所使用的内置方法的具体故障模式或弱点,并且知道如何将它们最小化或消除,否则最好使用语言或库设计人员提供的方法,这些方法通常比普通程序员为特定项目提供的方法更高效、更安全。

您的示例绝对不支持您的观点:开发您自己的加密算法而不需要某个领域的背景知识,并由密码分析人员对其进行审查,然后将其应用于安全关键代码中,这将是一种灾难。即使开发您自己的行业标准加密算法的自定义实现,也会出现问题,如果您缺乏经验,几乎肯定会出现问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23180465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档