對稱與非對稱加密
一、 對稱加密(Symmetric Encryption):
- 雙方通訊是由同一把鑰匙加密。
- 缺點:通訊不安全。
- A與B通訊使用同一把鑰匙加密,若A與C通訊則必須使用另一把鑰匙加密。
- 任何一方把金鑰洩露出去,則破壞安全機制。
二、 非對稱加密(Asymmetric Encryption):
- 使用一對金鑰來進行加密。
- 每一方都有一對金鑰,公鑰(public key)和私鑰(private key)。
- 公鑰可以公開出去,私鑰則是自己保存。
- A若要與B傳訊,A必須使用B的公鑰進行加密,再將訊息傳給B。
- B可以透過自己的私鑰來解密。
- 訊息雖然是由公鑰加密的,但卻無法用公鑰解密,這就是非對稱加密。
- 使用RSA演算法。
三、 Hash Function
- 如:MD5
- 伺服器預先提供一個MD5的checksum,使用者下載完檔案以後,
用MD5演算法計算下載檔案的checksum,然後通過檢查這兩個checksum是否一致,
就能判斷下載的檔案是否出錯。 - 2004年,證實MD5演算法無法防止碰撞,因此無法適用於安全性認證。
- 演散法的設計要考慮到效率
- 不同的輸入會得到不同的訊息摘要(Message Digest)
- 無法從訊息摘要倒推回輸入內容
SSH2與Telnet的運作方式與差別、SSL協定
一、 SSH2
- 建立在應用層與傳輸層上的安全協定
- 傳統FTP, Telnet都是明文傳輸,很容易受到「中間人」的攻擊,或是假冒伺服器端來接收資料。
- SSH可對傳輸資料進行加密,亦可壓縮資料來加快速度。
SSH兩種級別驗證:
密碼的安全驗證: 知道帳密後可登入主機,傳輸的資料都會被加密,
但無法避免被中間人攻擊,因為有可能會假冒伺服器端。金鑰的安全驗證: 客戶端產生金鑰,把公鑰放在存取的伺服器端上。當伺服器收到客戶端請求金鑰安全驗證時,
就比對使用者目錄加的公鑰與客戶端傳送過來的公鑰是否相同,
若相同則用公鑰加密「質詢」,並把它傳送給客戶端。
二、 Telnet
- 傳輸資料未加密,帳號和密碼容易會被竊聽,很多伺服器都會封鎖Telnet服務,改用更安全的SSH。
三、 SSL與TLS
SSL(Secure Socket Layer)和TLS(Transport Layer Security)在傳輸資料時進行加密,
以保護在網路上傳輸的資料
流程:
- Client端傳送
ClientHello
訊息給Server端 - 伺服器選擇要進行的SSL選項,並傳送
ServerHello
訊息給Client端 - Server端用
ServerKeyExchang
e訊息來傳送公開金鑰給Client端 - Server端傳送
ServerHelloDone
訊息結束 - Client端利用Server的公鑰來加密交談金鑰(Session Key),並透過
ClientKeyExchange
訊息來傳送給Server端 - Client端傳送
ChangeCipherSpec
訊息來啟動已達成協議的選項。 - Client端傳送
Finished
訊息,告知Server端可以檢查最新啟動的選項。 - Server端傳送
ChangeCipherSpec
訊息來啟動已達成協議的選項。 - Server端傳送
Finished
訊息,告知Client端可以檢查最新啟動的選項。