<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>柯克霍夫原则 on kenji.blog</title><link>http://kenji.blog/zh-cn/tags/%E6%9F%AF%E5%85%8B%E9%9C%8D%E5%A4%AB%E5%8E%9F%E5%88%99/</link><description>Recent content in 柯克霍夫原则 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>kenjinote</copyright><lastBuildDate>Wed, 16 Apr 2025 23:53:08 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-cn/tags/%E6%9F%AF%E5%85%8B%E9%9C%8D%E5%A4%AB%E5%8E%9F%E5%88%99/index.xml" rel="self" type="application/rss+xml"/><item><title>柯克霍夫原则</title><link>http://kenji.blog/zh-cn/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/</link><pubDate>Wed, 16 Apr 2025 23:53:08 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_2.png" alt="Featured image of post 柯克霍夫原则" />&lt;h1 id="柯克霍夫原则">柯克霍夫原则
&lt;/h1>&lt;hr>
&lt;p>大家好！&lt;/p>
&lt;p>今天想和大家聊一个有点意思，而且实际上非常重要的“柯克霍夫原则”。&lt;/p>
&lt;p>啊，等等等等。&lt;br>
也许有人会想：“什么‘柯克霍夫原则’，根本没听说过，那么多片假名看着就头晕……”请放心。这篇文章正是为你准备的。&lt;/p>
&lt;hr>
&lt;h2 id="安全的密码到底是什么意思">“安全的密码”到底是什么意思？
&lt;/h2>&lt;p>比如有人跟你说：“这个保险箱，只有知道秘密开法的人才能打开。”&lt;/p>
&lt;p>乍一听，感觉超级安全吧。&lt;br>
但是，仔细想想，难道不会觉得有点不安吗？&lt;/p>
&lt;p>“要是那个秘密暴露了，不就全完了吗？”&lt;/p>
&lt;p>其实，这正是柯克霍夫原则登场的契机。&lt;/p>
&lt;hr>
&lt;h2 id="到底什么是柯克霍夫原则">到底什么是“柯克霍夫原则”？
&lt;/h2>&lt;p>这个原则简单来说，就是：&lt;/p>
&lt;p>&lt;strong>“即使密码系统的机制暴露了，也应该是安全的。”&lt;/strong>&lt;/p>
&lt;p>说得更明确一点，就是“安全性只能依赖于‘密钥’，密码本身的加密方法公开也没关系！”&lt;/p>
&lt;p>反过来说，如果“只是把密码算法（机制）当作秘密，那么它的可靠性就会被认为很低”。&lt;/p>
&lt;hr>
&lt;h2 id="只要机制保密就安全这种想法可能有点危险">“只要机制保密就安全”——这种想法可能有点危险
&lt;/h2>&lt;p>我们经常会听到这样的说法：&lt;/p>
&lt;blockquote>
&lt;p>“这个应用的代码谁也没给看过，所以安全性没问题。”&lt;/p>
&lt;/blockquote>
&lt;p>我能理解这种心情。&lt;br>
但这就像在说：“因为谁也没看过，所以就找不到坏处，肯定没问题吧。”&lt;/p>
&lt;p>而实际上，“谁也没看过”这件事本身，有时就会成为一种风险。&lt;/p>
&lt;hr>
&lt;h2 id="但是为什么这个原则那么重要">但是，为什么这个原则那么重要？
&lt;/h2>&lt;p>因为，如果有人拿到了机制，并且能轻易破解，那么这个密码系统就彻底完蛋了。&lt;/p>
&lt;p>打个比方，这就好比你家门锁的结构非常复杂，但实际上用百元店买的万能钥匙就能打开。&lt;/p>
&lt;p>重要的不是“锁保密所以安全”，而是“就算把锁的结构全给你看，没有正确的钥匙你也打不开”。&lt;/p>
&lt;hr>
&lt;h2 id="可是这样不觉得可怕吗">“可是，这样不觉得可怕吗？”
&lt;/h2>&lt;p>很多人在这里会觉得：&lt;/p>
&lt;blockquote>
&lt;p>“把机制全都暴露出来，不觉得可怕吗？”&lt;/p>
&lt;/blockquote>
&lt;p>我很理解。&lt;br>
因为大家都会想：“要是全让人看了，会不会被模仿、被恶意利用啊？”&lt;/p>
&lt;p>但这正是柯克霍夫原则的核心所在。&lt;br>
“即使给人看也坚不可摧的强度”，才是真正的安全。&lt;/p>
&lt;hr>
&lt;h2 id="话虽如此一开始还是需要点勇气的">话虽如此，一开始还是需要点勇气的
&lt;/h2>&lt;p>如果站在开发者的角度想，“公开机制=弱点也会被看到”，这当然会让人心跳加速。&lt;/p>
&lt;p>但是，请想一想。&lt;/p>
&lt;p>能够坦诚地公开机制，并说“欢迎任何人来验证”的东西，结果反而会更受信任。&lt;/p>
&lt;p>这和人际关系很像。&lt;/p>
&lt;p>“在你展现了真实的自己后，还能和你愉快相处的人”，才是最让人安心的。&lt;/p>
&lt;hr>
&lt;h2 id="总而言之">总而言之
&lt;/h2>&lt;p>柯克霍夫原则听起来可能有点理论化，但它的本质非常简单。&lt;/p>
&lt;p>只不过是说 &lt;strong>“我们要打造一个不管给谁看都不会被破坏的机制”&lt;/strong>。&lt;/p>
&lt;p>比起表面的保密，更需要的是靠谱的设计。&lt;br>
比起不想给任何人看的代码，更需要的是公开也不觉得丢人的代码。&lt;/p>
&lt;p>或许，在未来的时代，会越来越需要这种“强度”吧。&lt;/p>
&lt;hr>
&lt;p>感谢你的阅读！&lt;/p>
&lt;p>安全的话题虽然有点难，但其实它和“人际关系”、“日常生活中的安全感”也有相通的地方。&lt;br>
不用觉得有压力，只要慢慢了解，一定会发现其中的好处。&lt;/p>
&lt;hr>
&lt;p>&lt;img src="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img.png"
width="189"
height="282"
srcset="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_hu715032b7fe5224f655ebb7d29b676305_77325_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_hu715032b7fe5224f655ebb7d29b676305_77325_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Auguste Kerckhoffs"
class="gallery-image"
data-flex-grow="67"
data-flex-basis="160px"
>&lt;/p></description></item></channel></rss>