簡體   English   中英

SASL_SSL 安全協議如何工作? 客戶端是否驗證服務器(X.509 證書)?

[英]How does SASL_SSL security protocol work? Does client verify the server (X.509 cert)?

SSL 的工作原理是眾所周知的,因為它被廣泛使用並且在任何地方都得到了很好的描述。 總之——SSL涉及

  1. 客戶端通過驗證服務器 X.509 證書來驗證服務器的真實性。
  2. 然后使用 diffie-hellman 密鑰交換算法得到一個對稱密鑰。

但我不確定security.protocol=SASL_SSL會發生什么。 Kafka 等少數技術的客戶端和服務器通信依賴此安全協議作為選項之一。 在這里,我擔心上面的第 1 點。 如果我從某人那里得到錯誤的代理地址(作為一種技巧), SASL_SSL 是否驗證服務器證書是我的問題 如果是這樣,那么我可以確定收到的代理不是真實的,並且我的應用程序不會發布或訂閱來自該服務器的消息,並且我的數據是安全的。

編輯 1:按照@steffen-ullrich 的回答和評論再挖一點,我在下面看到。 看起來證書驗證在通過 chrome 使用時正在發生,並且可能它也加載到了cacerts中。 所以 java 代碼能夠驗證服務器..所以看起來沒問題..

編輯 2:正確的證書 DST 和 ISRG 已預加載在 JDK 11 cacerts 中,因此客戶端能夠按照斯蒂芬的評論對服務器進行身份驗證。 在此處輸入圖像描述

您所問的與其他配置有關,請閱讀以下說明。

ssl.endpoint.identification.algorithm 客戶端用來驗證服務器主機名的端點識別算法。 默認值為 https。 包括由代理創建的用於代理間通信的客戶端連接的客戶端驗證代理主機名是否與代理證書中的主機名匹配。 通過將 ssl.endpoint.identification.algorithm 設置為空字符串來禁用服務器主機名驗證。 類型:字符串 默認值:https 重要性:中等

SASL 是客戶端身份驗證的標准 - 請參閱簡單身份驗證和安全層 SASL_SSL 僅表示客戶端身份驗證 (SASL) 用於受保護連接 (SSL) 以防止攔截,而不是通過普通連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM