Security-Definition

是否有加密的可用性方法

  • February 17, 2019

背景

可以說密碼學提供了用於實現資訊安全目標的工具。

資訊安全的三大支柱是機密性、完整性和可用性。

為了保密,我們有密碼。這裡的相關安全模型考慮了純密文、已知明文、選擇明文和選擇密文場景(IND-KPA、IND-CPA、IND-CCA 等)。在更細粒度的級別上,存在諸如線性/差分密碼分析之類的攻擊以及對它們的抵抗力。

為了完整性,我們有 MACS 和數字簽名。這裡的相關安全模型有:UUF-KMA、SUF-KMA、EUF-KMA、UUF-CMA、SUF-CMA、EUF-CMA(術語完整解釋見連結)

問題

是否有類似的安全模型和可用性目標?

可用性的基本方法包括各種形式的冗餘,例如在許多機器之間進行備份和分發內容。區塊鏈通過加密方法提供一定程度的可用性。

但是,是否有任何方法可以像保密性和完整性一樣定義/證明對正式考慮對手權力和目標的抵制?

洪水。 考慮網際網路上的一個節點與對等點進行對話。任何人都可以向節點發送數據包,但只有對等方知道計算數據包身份驗證器的密鑰,以便節點接受它們。

  • 網路上的攻擊者在任何給定時間可以浪費的節點上的最大記憶體量是節點可以處理的並行數據包數乘以節點願意接受的消息的最大大小。設計您的協議時對數據包大小進行較小的限制,從而減少這種拒絕服務向量。

例如,TL​​S 記錄僅限於 $ 2^{14} $ 字節,或 16 KB。然而,TLS 是在 TCP流而不是數據包協議中分層的(除非我們說的是 DTLS,順便說一句,這給了我們 Heartbleed)。因此,TLS 接收器無法將數據包丟棄在地板上——偽造TCP 段將終止整個 TLS 會話。與 SSH 相同。哎呀。教訓:將加密放在數據包層,而不是數據包層內的流層。

  • 對等方仍然可用的頻寬量是進入節點的總頻寬減去對手使用的頻寬量。就其本身而言,這裡沒有什麼特別加密的東西——這只是網路或處理能力的問題。請記住,精心設計的高級拒絕服務洪水與大量合法使用者無法區分。

擦除。 考慮一個擦除通道:如果發送方發送一個數據包,接收方以某種機率接收到它 $ p $ ,或者頻道以某種機率吃掉它 $ 1 - p $ . 糾刪碼,例如 Reed-Solomon 碼,是一種將消息編碼為 $ n $ 數據包,以便任何 $ k $ 它們足以恢復消息。這以通道頻寬為代價提高了傳輸的可能性。但它為攻擊者在阻止整個消息之前必須阻止的數據包數量設置了一個下限,或者,對消息通過之前必須通過的數據包數量設置了一個下限,即 $ k $ 的 $ n $ .

例如,Tahoe-LAFS將文件(“消息”)拆分為 Reed-Solomon 共享(“數據包”)以儲存在不同的伺服器上。如果像世界上最大的回形針最大化器(“資本主義”)這樣的對手決定擦除儲存節點,您仍然可以從儲存它們的其他儲存節點恢復數據。(Tahoe-LAFS 還在對每個文件進行擦除編碼之前對其進行加密,並對每個共享進行身份驗證,因此攻擊者可以做的最糟糕的事情就是擦除一個共享——偽造的嘗試將被檢測到,並且功能類似於擦除。)

工作證明。 在比特幣網路中,對手控制的處理能力的比例決定了對手在雙花中的成功機率。擊敗競爭對手,您將獲得更大的處理能力。(當然,有人可能會注意到分叉中的雙花。因此嘗試這種攻擊的預期成本也可能很高。)

更廣泛地說,當一定比例的節點是惡意的時,網路中可以獲得多少性能的研究是拜占庭容錯的研究。這本身就是“密碼學”嗎?我不知道——問三位拜占庭將軍,你可能會得到三個不同的答案。但它是這類問題的正式研究領域,有目標、對手、真愛和城堡風暴。

這肯定取決於模型以及允許對手做什麼。正如在另一個答案中提到的,如果我們採取某種程度有限的對手,那麼有辦法(不是純粹的加密)來提供可用性。然而,對於被允許為所欲為的對手,密碼學無能為力。這樣的例子可能是當對手控制通信通道時,比如乙太網電纜。在這種情況下,對手可以將其一分為二,從而有效地中斷通信。

在更抽象的層面上,我們可以將不安全通道建模為具有 3 個介面的系統:一個用於發送者,一個用於接收者,一個用於攻擊者。發送者想要發送一條消息並發送一個 $ write(message) $ 添加的命令 $ m $ 到多集 $ B $ 那一開始是空的。

對手可以發送一個 $ read $ 命令並獲取 $ B $ , $ inject(m’) $ 和 $ m’ $ 被添加到 $ B $ , $ delete(m) $ 和 $ m $ 被刪除 $ B $ .

接收方發送一個 $ read $ 命令並獲取 $ B $ .

現在鑑於允許攻擊者刪除消息,我們真的無能為力。

我認為與機密性的對比是,我們可以假設對手無法讀心(至少現在……)。

引用自:https://crypto.stackexchange.com/questions/67363