隱晦式安全

隱晦式安全（Security through obscurity）是指用設計的或是實現細節的隱晦，來達成系統或是元件的安全性（security），是一種安全工程（security engineering）的設計方式。

歷史
鎖匠曾反對用隱晦來達到安全性，他在1851年示範如何撬開當時最先進的鎖。有人認為，若公開鎖的設計缺陷，會讓罪犯更容易破壞鎖，霍布斯的回應是：「盜賊對他們的專業非常熱衷，他們知道的已經比我們可以教他們的多太多了。」

正式文件中很少提到隱晦式安全。有安全工程的書藉在1883年時記錄了柯克霍夫原則。例如在一個有關核子指揮與控制安全性和開放性的討論中曾提到：

減少意外戰爭可能性的好處遠大於秘密的可能好處。這是柯克霍夫原則的現代強化版，柯克霍夫原則最早在十九世紀提出，其中認為系統的安全性應該是基於其鎖匙，而不是其設計的隱密性。

曾著文探討「隱晦式安全只是想像」以及軍隊中口號之間的權衡，也提到競爭對於是否要公開的影響。

美國的全国公共广播电台在2020年1月時報導愛荷華州的民主黨官員拒絕分享有關caucus應用程式的安全性資訊，為了「確保我們不會傳遞對我們不利的資訊。」。網路安全專家的回應是「保留應用程式的技術細節不公開，無法保護整個系統。」。

 批評 
標準組織不鼓勵單單只用隱晦式安全作為安全措施。美國的國家標準技術研究所（NIST）曾針對此作法提出建議：「系統的安全性不能只靠實現方式的保密或是元件的保密來達成。」

此技術和基於安全的設計及的概念是相反的，不過真實世界中的專案有許多不同的元件組成，也有各自的安全策略，也不排除同一個專案中同時有不同安全策略的元件。
 架構上的隱晦以及技術上的隱晦 
若考慮，隱晦式安全的效果會和是否配合其他良好安全實務一起進行有關。若隱晦式安全是獨立的技術，配合其他實務使用，則隱晦可視為是有效的安全工具。

近些年來，由於移動目標防禦（Moving Target Defense）以及的實施，越來越多人支持用隱晦式安全作為網路安全（cybersecurity）的方法論之一。NIST的網路防衛評估架構800-160 Volume 2建議在建立有韌性而且安全運算環境時，以隱晦式安全作為其安全措施中的一部份。

相關條目
 隐写术

 柯克霍夫原則

 代码混淆

 基於安全的設計

 零日攻击



參考資料

外部連結
 Eric Raymond on Cisco's IOS source code 'release' v Open Source 
 Computer Security Publications: Information Economics, Shifting Liability and the First Amendment by Ethan M. Preston and John Lofton
  by Jay Beale
 Secrecy, Security and Obscurity  & The Non-Security of Secrecy  by Bruce Schneier
 "Security through obsolescence", Robin Miller, linux.com, June 6, 2002 

Category:電腦安全程序
Category:密码学
Category:保密性