sasl是一種用來擴充c/s模式驗證能力的機制認證機制, 全稱****** authentication and security layer.
當你設定sasl時,你必須決定兩件事;一是用於交換「標識信 息」(或稱身份證書)的驗證機制;一是決定標識資訊儲存方法的驗證架構。
sasl驗證機制規範client與server之間的應答過程以及傳輸內容的編碼方法,sasl驗證架構決定伺服器本身如何儲存客戶端的身份證書以及如何核驗客戶端提供的密碼。
如果客戶端能成功通過驗證,伺服器端就能確定使用者的身份, 並藉此決定使用者具有怎樣的許可權。
比較常見的機制;
4.1 plain(較常用)
plain是最簡單的機制,但同時也是最危險的機制,因為身份證書(登入名稱與密碼)是以base64字串格式通過網路,沒有任何加密保護措施。因此,使用plain機制時,你可能會想要結合tls。
4.2 login
login不是其正式支援的機制,但某些舊版的mua使用這種機制,所以cyrus sasl讓你可選擇其是否支援login機制。如果你的使用者仍在使用這類老掉牙的mua,你必須在編譯sasl函式庫時,指定要包含login的支援。 login的證書交換過程類似plain。
4.3 otp
otp是一種使用「單次密碼」的驗證機制。此機制不提供任何加密保護,因為沒必要--每個密碼都只能使用一次,每次聯機都要改用新密碼。smto client必須能夠產生otp證書。
4.4 digest-md5(較常用)
使用這種機制時,client與server共享同乙個隱性密碼,而且此密碼不通過網路傳輸。驗證過程是從伺服器先提出challenge(質詢)開始, 客戶端使用此challenge與隱性密碼計算出乙個response(應答)。不同的challenge,不可能計算出相同的response;任何擁 有secret password的一方,都可以用相同的challenge算出相同的response。因此,伺服器只要比較客戶端返回的response是否與自己算 出的response相同,就可以知道客戶端所擁有的密碼是否正確。由於真正的密碼並沒有通過網路,所以不怕網路監測。
4.5 kerberos
kerberos是一種網路型驗證協議。除非你的網路已經使用kerberos,否則你應該用不到kerberos機制;相對的,如果你的網路已經架設了kerberos驗證中心,sasl就能完美的將smtp驗證整合進現有的體系。
4.6 anonymous
anonymous機制對smtp沒有意義,因為smtp驗證的用意在於限制**服務的使用物件,而不是為了形成open relay,sasl之所以提供這種機制,主要是為了支援其他協議。
當 客戶端鏈結到乙個支援sasl的郵件伺服器時,伺服器會以優先順序列出可用的機制供客戶端選擇。如果客戶端也支援多鐘機制,則當第一種機制驗證失敗時,客戶 端可能會繼續嘗試第二種機制,直到通過驗證或是所有機制都失敗為止。如果雙方在一開始就無法協調出共同的機制,驗證過程就算失敗。
一旦雙方在使用哪種機制上達成共識,就開始進行驗證過程。實際的互動過程隨機制而定,但通常包含一次或多次應答過程。驗證協議本身也規定了應答內容的編碼格式。
數字證書, 是級聯認證派發的, 最上層是根ca認證中心. 數字證書的根本作用, 是為了保證所有人公鑰的安全性和真實性. 大致認證過程是: 通過ca的公鑰來解出該ca所派發的證書裡面所包含的公鑰(使用者或者機構的). 並通過該公鈅來驗證證書持有人的真實性. (因為持有人並不一定是證書所有人)
通過上面對ssl的分析,我們可以看到,ssl並不能阻止別人獲得你傳輸的資料,但是由於你傳輸的資料都是加密過的,別人拿到了毫無用處,一樣可以保護信 息的安全。還有一點需要強調一下,ssl並不依賴於tcp,它可以建立在任何可靠的傳輸層協議(比如tcp)之上。也就是說ssl是不能建立在udp之上 的。這是顯然的,如果傳輸都不可靠,偶爾丟兩個包或者包的順序換一換的話,怎麼保證安全呢?
sasl是提供一種使用者身份認證機制, 你可以簡單認為是用來認證使用者的賬號/密碼是否執行進入系統或者使用系統的服務. 一般較長使用digest-md5, 該種機制下, 密碼可以不用在網路上傳輸, 也就不用怕密碼被竊聽.
SASL 簡單認證和安全層
sasl是一種用來擴充c s模式驗證能力的機制認證機制,全稱 authentication and security layer。當你設定sasl時,你必須決定兩件事 一是用於交換 標識信 息 或稱身份證書 的驗證機制 一是決定標識資訊儲存方法的驗證架構。sasl驗證機制規範client與serve...
WCF簡單教程 8 安全 Windows認證
第八篇 wcf安全 wcf提供了非常豐富的加密機制與審核機制,以保證對外提供的服務安全可靠。本文是簡單教程,所以只挑其中的一小部分來聊聊。先來看看最簡單的windows認證。所謂windows認證,是指客戶端訪問時,要提供服務端認可的windows使用者身份。1 服務端 xmlversion 1.0...
安全筆記 演算法 金鑰和認證
安全不安全 hash演算法 單向演算法,涉及鹽值,不涉及金鑰。使用者可以通過hash演算法對目標資訊生成一段特定長度的唯一的hash值,卻不能通過這個hash值重新獲得目標資訊。hash演算法加密的資料是無法解密的,所以無法用來傳輸需要解密才能使用的內容,主要用於資訊完整性校驗。非對稱加密 公鑰 n...