簡介
機會性加密或伺機加密(英語:Opportunistic encryption,簡稱OE;有時也稱非認證加密、隨機加密)是一種網路通信加密機制,即當創建通信連線時,首先嘗試請求加密,如果對方也支持加密連線,連線則開始加密,期間不進行身份驗證;如果加密請求嘗試失敗,則回退到明文通信機制。這種加密不須雙方進行事先配置,能夠抵抗被動的流量竊聽,但無法防禦中間人攻擊等主動攻擊。因此,它不能替代完整的加密方案。使用機會性加密時,用戶也不會看到任何連線安全的提示。
大多數網際網路安全協定中,開始加密通信前都會進行身份驗證,以防止中間人攻擊,從而確保通訊安全。但是,這將涉及到身份驗證與密鑰管理,且須進行事先配置,否則無法開始安全通信。這使加密變成了“有或無”的一個問題,只能在“完全安全”或“完全不安全”兩個極端選項之間選擇,沒有條件時便只能放棄加密,使用不安全的明文連線。這限制了加密連線在網際網路上的大規模套用,使被動的攻擊者也能夠竊聽大量網際網路流量。
機會性加密則並不要求進行身份驗證,目的是在條件允許時就儘可能使用加密通信方式。雖然機會性加密只能防止被動竊聽,對攻擊者的主動攻擊無能為力(例如降級攻擊或中間人攻擊),但它使大規模加密網際網路通信成為可能,從而防止網際網路遭到大規模監控、“在大多數時候,提供一定程度的安全性”。
路由器
FreeS / WAN項目是OE的早期支持者之一。現在在Libreswan工作的前Freeswan開發人員繼續努力。libreswan旨在支持使用IPsec進行Opportunistic Encryption的不同身份驗證掛鈎。2015年12月發布的版本3.16支持使用基於AUTH-NULLOpportunistic IPsec。Libreswan項目目前正在開展(前向)DNSSEC和Kerberos對Opportunistic IPsec的支持。
Openswan也被移植到OpenWrt項目中。Openswan使用反向DNS記錄來促進系統之間的密鑰交換。
可以使用OpenVPN和網路協定來設定動態VPN連結,這些連結的行為與特定域的OE類似。
Unix和類Unix系統
所述的FreeS / WAN和叉子如的Openswan和strongSwan提供的VPN,其還可以在OE模式下使用操作的IPsec基礎的技術。混淆TCP是另一種實施OE的方法。
Windows作業系統
Windows平台默認安裝了OE的實施。此方法使用IPsec來確保流量,並且是一個打開的簡單程式。它通過MMC和“本地計算機上的IP安全策略”進行訪問,然後編輯屬性以分配“(請求安全性)”策略。這將在Kerberos環境中啟用可選的IPsec。
在非Kerberos環境中,需要來自證書頒發機構(CA)的證書,該證書對於任何與您進行安全通信的系統都是通用的。
當任何一方位於NAT後面時,許多系統也有問題。NAT Traversal(NAT-T)解決了這個問題,並通過向註冊表添加2的DWORD來完成:HKLM\ SYSTEM \ CurrentControlSet \ Services \ IPsec \ AssumeUDPEncapsulationContextOnSendRule使用MMC中提供的過濾選項,可以實現定製聯網以要求,請求或允許通信到各種域和協定以使用加密。
電子郵件
機會性加密還可用於特定流量,如使用SMTPSTARTTLS擴展用於在Internet上中繼訊息的電子郵件,或用於讀取電子郵件的Internet郵件訪問協定(IMAP)STARTTLS擴展。通過此實施,不需要從證書頒發機構獲取證書,因為可以使用自簽名證書。
•RFC 2595在IMAP,POP3和ACAP中使用TLS
•RFC 3207SMTP Service Extension for Secure SMTP over TLS
•STARTTLS和後綴
•STARTTLS和Exchange
許多系統首先嘗試獲取加密密鑰,如果不成功,則使用帶有第三方附屬檔案的傳統電子郵件包的變體,然後以明文形式傳送電子郵件。PGP,p≡p,Hushmail和Ciphire等都可以設定為以此模式工作。
實際上,SMTP中的STARTTLS通常使用自簽名證書進行部署,這代表系統管理員的最少一次性任務,並且會導致大多數電子郵件通信被機會性加密。
VoIP
一些IP語音(VoIP)解決方案儘可能為語音流量提供無痛加密。Sipura和Linksys系列模擬電話適配器(ATA)的一些版本包括SRTP的硬體實現,並且安裝來自VoIP信息站點Voxilla的證書。當呼叫被放置時,嘗試使用SRTP,如果成功,則將一系列音調播放到手機中,否則呼叫在沒有使用加密的情況下繼續。Skype和Amicima僅使用安全連線,Gizmo5嘗試在其客戶端之間建立安全連線。菲爾齊默爾曼,艾倫約翰斯頓和喬恩卡拉斯已經提出了一種名為ZRTP的新的VoIP加密協定。他們有一個名為Zfone的實現,它的原始碼和編譯後的二進制檔案都可用。
網站
為了加密WWW/HTTP連線,通常使用HTTPS,這需要嚴格的加密,並且在網站運營商的初始設定和持續維護成本方面都具有顯著的管理成本。大多數瀏覽器都會驗證網路伺服器的身份,以確保SSL證書由受信任的證書頒發機構(管理員通常必須付費)簽署且尚未過期,通常要求網站運營商手動更改證書,或兩年。啟用某種機會主義網站加密的最簡單方法是使用自簽名證書,但這會導致瀏覽器在每次訪問該網站時都會顯示警告,除非用戶手動將該網站的證書標記為可信。由於未加密的網站當前沒有顯示任何此類警告,因此使用自簽名證書的情況並不普遍。
2015年,Mozilla開始在Firefox37版本中推出機會加密。由於存在嚴重的漏洞可能會繞過SSL證書驗證,因此它迅速回滾。
像HTTPS Everywhere和HTTPSfinder這樣的瀏覽器擴展程式可以找到並自動將連線切換到HTTPS。
有幾個提議可用於對HTTP / 2協定進行真正的無縫機會性加密。這些建議後來遭到拒絕。波爾·亨寧·卡普,高級FreeBSD的核心開發者,批評了IETF為以下與HTTP / 2特定的政治議程中的標準不執行投機取巧加密。
弱點
當受到主動竊聽時,經常與SMTP一起使用的STARTTLS實施容易受到STRIPTLS攻擊。