第七章使用者鑑別機制

Download Report

Transcript 第七章使用者鑑別機制

密碼學
Chapter 7 使用者鑑別機制
User Authentication Mechanisms
1
前言
• 鑑別是密碼學與網路安全中一個極重要
的觀念,藉由辨識特定使用者或系統來
建立可信度
• 鑑別能驗證使用者的真實身分
• 傳統上使用了使用者身份識別碼與通行
密碼
• 鑑別符記在通行密碼基礎之機制中增加
了隨機性,使它更為安全
• 由於 PKI 技術的出現,憑證基礎鑑別已
成為近代常使用的一種鑑別機制
2
鑑別基礎
• 任何密碼學方法中第一步就是鑑別
– 除非知道與誰聯繫,否則通訊內容加密沒有
意義
• 鑑別可被定義為判定使用者身分是否符
合要求
– 工作識別證
– 金融卡使用個人識別碼(PIN)
• 鑑別主要的概念是以秘密為基礎
3
通行密碼
• 鑑別方法中最常見的形式就是通行密碼
• 通行密碼是一連串的英文字母、數字和
特別字元,並假設只有被鑑別者這個實
體(通常是人)才知道
4
明文通行密碼(運作流程)
步驟1 : 提示輸入使用者身份識別碼和通行密碼
步驟2 : 輸入使用者身份識別碼和通行密碼
5
明文通行密碼(運作流程)
步驟3 : 驗證使用者身份識別碼和通行密碼
步驟4 : 鑑別結果
6
明文通行密碼(運作流程)
步驟5 : 告知使用者符合鑑別結果
7
明文通行密碼(此機制的問題)
• 通行密碼是以明文的方式儲存於資料庫
中
• 通行密碼是以明文的方式從使用者電腦
傳送到伺服器
8
在儲存和驗證密碼前先行加密通行密碼
9
原始通行密碼的變化
• 這種基本通行密碼鑑別的變化不使用原
始通行密碼,而是使用從原始通行密碼
導出的新通行密碼
• 方法運作需滿足
– 對於相同的通行密碼,此演算法必須每次都
能產生相同的結果
– 演算法的輸出(即由通行密碼所導出的資料)
不能提供任何有關原始通行密碼的線索
– 攻擊者應該無法使用錯誤的通行密碼而得到
正確的演算法結果
10
通行密碼摘要
•
一種避免以明文通行密碼儲存和傳送的
簡單方法就是使用訊息摘要
– MD5、SHA-1
•
運作方法
1. 將訊息摘要當成導出通行密碼儲存於使用
者資料庫中
2. 使用者鑑別
3. 伺服器端的驗證
11
將通行密碼訊息摘要儲存於資料庫
12
包含通行密碼訊息摘要之使用者鑑別
13
使用者鑑別程式確認身份與通行密碼
14
增加隨機性
• 為了改善安全性,需要增加一個不可預
測性或隨機性的位元到早先的機制中
• 保證通行密碼訊息摘要一直是相同的,
但使用者電腦和伺服器之間的訊息交換
不會相同,可避免重送攻擊
15
增加隨機性
• 運作方式
– 將訊息摘要當成導出通行密碼儲存於使用者
資料庫中
– 使用者送出登入要求
– 伺服器建立 一個隨機挑戰
– 使用者簽署包含通行密碼訊息摘要的隨機挑
戰
– 伺服器驗證來自使用者的加密隨機挑戰
– 伺服器傳回一個適當的訊息給使用者
16
只包含使用者身份的登入要求
17
建立並傳送隨機挑戰給使用者
18
使用者送出身分識別碼與加密的隨機挑戰
19
伺服器比較兩個加密的隨機挑戰
20
伺服器傳回一個適當的訊息給使用者
21
通行密碼加密
• 早期解決傳送明文通行密碼的問題,在
使用者電腦加密通行密碼
• 在主從式應用程式架構下沒有問題
• 在客戶端為瀏覽器狀況下則無法對通行
密碼加密
• 現經使用SSL來解決傳送明文密碼的問題
22
加密的時機
• 第一次加密發生在通行密碼被儲存在使
用者資料庫之前
• 另一次在使用者電腦端的通行密碼加密
在傳送到伺服器之前被執行
• 可使用相同或是不同的加密技術
23
在客戶端電腦和資料庫加密通行密碼
24
通行密碼的問題
• 一個主要的錯誤觀念
– 通行密碼是最簡單也是最便宜的鑑別機制形
式
• 對於使用者
– 所有的系統使用相同的密碼
– 將密碼記錄在各地方(日記、鍵盤下、螢幕
上…)
• 對管理者
– 花費40%的時間來建立、重置或更改使用者
通行密碼
25
通行密碼政策
• 組織都會詳細指明通行密碼政策,也就
是訂定通行密碼結構
• 可能的政策
– 通行密碼長度不可少於8個字元
– 不能包含空白
– 通行密碼中至少必須有一個小寫字母、一個
大寫字母、一個數字和一個特殊符號
– 通行密碼必須從字母開始
• 對使用者不方便記憶
– 造成使用者將通行密碼記錄下來導致安全問
題
26
鑑別符記
• 一個非常有用的通行密碼替代品
• 鑑別符記是一個很小的裝置,每次使用
時會產生一個新的隨機值,此隨機值會
成為鑑別的基礎
• 通常鑑別符記有下列組件
– 處理器
– 輸出顯示為液晶顯示器
– 電池
– (選擇性的)輸入工具為小型鍵盤
– (選擇性的)即時時鐘
27
鑑別符記
• 每個鑑別符記(每個裝置)以唯一的號碼預
先程式化,這個號碼稱為隨機種子或種
子
• 這個種子形成確保符記產生的輸出會獨
一無二的基礎
28
運作步驟
1. 符記建立
2. 符記的使用
•
•
•
鑑別符記自動產生虛擬隨機數,稱為一次
性密碼或一次性通行碼
一次性:產生、使用、丟棄
簡單說,程式使用同步化技術,經由鑑別
符記產生相同的一次性密碼
3. 伺服器傳回一個適當的訊息給使用者
29
儲存在資料庫和鑑別符記中的隨機種子
30
伺服器驗證一次性密碼
31
伺服器寄回一個適當的訊息給使用者
32
鑑別符記類型
• 挑戰/回應符記
• 時間基礎符記
33
挑戰/回應符記
•
•
•
鑑別符記中的預先程式化種子是秘密且
唯一的
此技術中,種子成為加密金鑰
步驟
使用者送出登入要求
伺服器建立一個隨機挑戰
使用者以密碼的訊息摘要簽署隨機挑戰
伺服器驗證來自使用者端被加密過的隨機
挑戰
5. 伺服器寄回一個適當的訊息給使用者
1.
2.
3.
4.
34
登入要求只包含使用者身份識別碼
35
建立隨機挑戰並傳送給使用者
36
挑戰/回應符記登入螢幕
37
使用者傳送使用者身份和加密的隨機挑戰
38
伺服器比較這兩個加密隨機挑戰
39
伺服器寄回一個適當的訊息給使用者
40
時間基礎符記
• 挑戰/回應符記的問題
– 需要三次的輸入
• 使用者輸入PIN存取符記
• 使用者閱讀螢幕並輸入隨機挑戰至符記
• 使用者閱讀符記LCD並輸入至密碼欄
– 過程中可能因使用者的失誤發生認證失敗
• 時間基礎符記解決上述問題
41
時間基礎符記
•
•
•
不需要小鍵盤
使用時間作為輸入的變數
步驟
1. 密碼產生和登入要求
2. 伺服器端認證
3. 伺服器寄回一個適當的訊息給使用者
42
使用者端寄登入要求給伺服器
43
伺服器驗證使用者送出的密碼
44
伺服器寄回一個適當的訊息給使用者
45
憑證基礎鑑別
•
•
•
另一新興的機制是憑證基礎鑑別,以使
用者數位憑證為基礎
FIPS-196 是定義此機制運作的一個標準
運作步驟
1.
2.
3.
4.
5.
建立、儲存和分配數位憑證
登入要求
伺服器建立一個隨機挑戰
使用者簽署隨機挑戰
伺服器回傳一個適當的訊息給使用者
46
建立、儲存和分配數位憑證
47
登入要求
48
伺服器建立一個隨機挑戰
49
開啟私密金鑰檔案密碼提示
50
使用者簽署隨機挑戰
51
伺服器比較兩個隨機挑戰
52
伺服器寄回一個適當的訊息給使用者
53
智慧卡的使用
•
•
•
•
•
智慧卡的使用與憑證基礎鑑別有關
智慧卡允許產生一私密-公開金鑰對
秘密金鑰通常被密密的存在卡內
公開金鑰與憑證可展示在外部
智慧卡也在卡內執行密碼學函數運算
– 加密、解密、建立訊息摘要與簽署
• 智慧卡便於攜帶
54
智慧卡技術的問題與解決方案
55
生物特徵辨識鑑別
• 生物特徵辨識裝置的運作是以一些人類
特徵為基礎
– 指紋、聲音、眼睛中虹膜的線模式
• 在生物特徵辨識中,因使用者生理狀況
可能會改變,故不需要精確的樣本進行
比對,只要大略符合即可接受
• 任何生物特徵辨識鑑別系統定義出兩個
配置參數
– 錯誤接收比
– 錯誤拒絕比
56
Kerberos
• 許多真實的系統使用一個稱為 Kerberos
的鑑別協定
• 由MIT設計以允許工作站存取網路資源
的安全方法
57
Kerberos 協定包含四個部分
• 使用者
– 客戶端工作站(Ex. Alice)
• 鑑別伺服器
– 在登入期間鑑別使用者
• 票根同意伺服器
– 發行票根以做為身分證明
• 服務伺服器
– 伺服器提供服務,例如網路印表機、檔案共
享或是應用程式(Ex. Bob)
58
Kerberos的步驟
1. 登入
2. 獲得一個服務同意票根(SGT)
3. 使用者聯繫伺服器存取服務
59
登入
60
AS將加密的交談金鑰和TGT寄給使用者
61
使用者寄出一個SGT請求給TGS
62
TGS寄出回覆給使用者
63
使用者安全地寄出KAB給伺服器
64
伺服器確認收到KAB
65
單一簽入方法
• Single Sign On (SSO) Approaches
• 有兩個方法可以實現SSO
– 腳本(script)
• 腳本用來協助使用者對系統進行回應
– 代理人(agent)
• 透過特定的軟體進行認證
66
各類實際應用
• HiNet動態密碼鎖
• BATTLE.NET
• beanfun!樂豆
67
HiNet動態密碼鎖
• 帳號+密碼+動態密碼鎖
• RSA技術
• 可用於其他企業服務
68
BATTLE.NET
• 多種類型的動態密碼鎖
– iPhone, iPod touch, Android手機, Windows
Phone 7, 驗證器鑰匙圈
• 用於保護暴風雪 (Buzzard) 旗下所有遊戲
與戰網網站
69
beanfun!樂豆
• 提供多種保護機制
– 聰明鎖, OTP動態密碼安全卡, PLAYSAFE數
位安全卡, GAMEOTP手機鎖
• 用於保護旗下各類遊戲
70
章節總結
• 鑑別就是確認一個使用者或系統的身
分
• 明文通行密碼是最普遍的鑑別機制
• 明文通行密碼會有安全性的問題
• 對通行密碼加密是一個較好的方法
• 從通行密碼衍生出來的某些事物也在
鑑別中使用
• 隨機挑戰增加通行密碼機制的安全性
71
章節總結
• 通行密碼政策可幫助密碼基礎鑑別機
制更安全
• 鑑別符記是更安全的
• 每一個鑑別符記的登入要求可以產生
一個新的密碼
• 鑑別符記是一個二因子的鑑別機制
• 鑑別鑑別可以是挑戰/回應或是時間
基礎的型態
72
章節總結
• 時間基礎符記是較受歡迎的,因為它
們比較自動化
• 智慧卡是高度安全的裝置,因為它們
是在卡內執行密碼學函數
• 目前智慧卡有許多不相容的問題
• 生物特徵辨識裝置是以人類特徵為基
礎
• Kerberos 是一個廣泛使用的鑑別協定
73
章節總結
• 單一簽入(SSO)允許使用者在多台伺
服器/應用程式上只使用唯一一組使
用者身分和密碼
• SSO 可由腳本或代理人來實行
74
The End
75