尽管@TomLeek 和@Iszi 的答案(顺便说一句都很出色)似乎直接矛盾,但您已经收到了几个很好的答案。
他们都提出了很好的观点:一方面,保持设计秘密不会使系统安全,而公开审查会使您(可能)发现某些您没有考虑过的漏洞;另一方面,对设计保密并没有什么坏处,只要这不是设计安全性的关键因素。
双方都是绝对正确的——有时。
我认为可以公平地说,一般论点中的双方都同意将设计保密并不会直接增加安全性。
在最坏的情况下,它只是隐藏了安全漏洞(这可能是也可能不是一件好事,这取决于您认为对谁最隐蔽)。
在最好的情况下(没有通过发布设计而暴露的微不足道的漏洞),它仍然不会增加安全性 - 但它确实最大限度地减少了攻击面。
最小化攻击面(即使不存在漏洞)绝对是一件好事;然而,这需要权衡和权衡发布的好处(即被额外的眼睛审查),以及保密的缺点 - 例如依赖它作为安全控制的诱惑(曾经流行的安全默默无闻),作为安全剧院的一种形式。
还值得注意的是,正如@Tikiman 所暗示的那样,仅仅发布设计并不足以确保对其进行审查——尤其是那些能够找到漏洞并且也倾向于向您披露漏洞的人。在许多情况下,发布的设计只会被那些具有不正当意图的恶意个人审查,因此您不会获得预期的收益。此外,通常人们甚至不知道他们的设计是否属于上述最佳情况或最坏情况。
所以,底线 - 就像在安全方面的许多事情一样,直接的答案仍然是:这取决于。
这里有一个明确的权衡需要考虑——如果这是一个复杂的密码系统,答案就会很清楚;如果这是一个实施繁重的典型企业系统,那么不同的答案将是明确的。
我在这种情况下的倾向正如@Tom 所说,但出于提到的次要原因 - 部分是无政府主义的用户群,主要是教学目标。
请注意,这些实际上并不是真正的安全考虑 - 至少不是直接的。
(哦,至于@Tikiman 的观点——这里涉及的教学法意味着您实际上可以确保设计得到审查,至少由整个班级审查;-))