手機支付寶面臨的風險和應對(II)---支付安全走過的心路歷程

上文已經說過,支付安全的兩個問題,歸結爲技術手段就是認證和交易數據的完整性。

由於PC上網銀和支付寶已經運轉多年,已經走過不少歷程,我們簡要回顧一下。

身份認證的目的就是弄清楚訪問者是誰,根據用戶的特徵來驗證其身份。

身份認證的基本途徑有:

a)基於你所知道的(What you know):知識、口令、密碼。

b)基於你所擁有的(What you have):身份證、信用卡、密鑰、智能卡、令牌等。新增一個現在很普遍的手機驗證碼(其實就是冬天口令)

c)基於你的個人特徵(What you are):指紋、筆跡、聲音、手型、臉型、視網膜、虹膜。

用戶名/密碼是最簡單也是最常用的身份認證方法,是基於“what you know”的驗證手段。每個用戶的密碼是由用戶自己設定的,只有用戶自己才知道。只要能夠正確輸入密碼,計算機就認爲操作者就是合法用戶。由於密碼是靜態的數據,在驗證過程中需要在計算機內存中和網絡中傳輸,而每次驗證使用的驗證信息都是相同的,很容易被駐留在計算機內存中的木馬程序或網絡中的監聽設備截獲。因此,用戶名/密碼方式一種是極不安全的身份認證方式。

智能卡通過在芯片中存有與用戶身份相關的數據,由合法用戶隨身攜帶,登錄時必須將智能卡插入專用的讀卡器讀取其中的信息,以驗證用戶的身份。智能卡認證是基於“what you have”的手段,通過智能卡硬件不可複製來保證用戶身份不會被仿冒。

回過頭看這麼多年的歷史,爲了解決身份認證,除了用戶名/密碼這種方式,還有一些存在的或者消失的手段。主要包括軟證書、USB Key、手機動態口令、動態口令卡等等。其中軟證書、USB Key也可以用來保障交易數據完整性。

總結起來就兩類:證書和動態口令,產品形態比較多樣化,看阿里的網站介紹:

https://securitycenter.alipay.com/sc/products.htm

1)動態口令卡

動態口令卡尤其是RSA公司的secureid在國外應用很多,在國內也曾經在一些銀行規模化使用過,但最後銀行基本放棄了這種方式。

 

爲解決靜態口令安全性的問題,在20世紀90年代出現了動態口令(Dynamic Password)技術。動態口令技術也稱爲一次性口令技術(One Time Password),即用戶每次登錄系統時都使用不同的口令,這個口令用過後就立刻作廢,不能再次使用。

動態口令是變動的口令,其變動來源於產生口令的運算因子是變化的。動態口令的產生因子一般都採用雙運算因子(two factor):其一,爲用戶的私有密鑰,它是代表用戶身份的識別碼,是固定不變的;其二,爲變動因子,正是變動因子的不斷變化,才產生了不斷變動的動態口令。根據所採用的不同變動因子,形成了不同的動態口令認證技術:口令序列、時間同步(Time Synchronous)、事件同步(Event Synchronous)和挑戰/應答方式(Challenge/Response Asynchronous)。

例如,登錄前,首先產生登錄用的動態口令:

動態口令= MD5(用戶私密信息 +用戶名 +不確定因子)。

網絡傳輸動態口令,系統收到動態口令後,驗證用戶合法性:

驗算口令= MD5(用戶私密信息 +用戶名 + 不確定因子)。

當動態口令與驗算口令一致後即可認爲用戶是合法的。

用的比較多的是基於時間同步的動態口令技術。

時間同步動態口令技術是一種基於時間同步方式來產生動態口令的技術。時間同步口令牌內置有時鐘、種子密鑰和口令產生算法,並可以根據當前時間和種子密鑰生成一個動態口令。用戶需要訪問系統時,將令牌生成的口令傳送到認證服務器,服務器通過其種子密鑰副本和當前時間計算出驗證口令,對用戶進行驗證,如果兩口令相匹配,則認證通過。相關產品如RSA信息安全公司的SecurID系統。

基於時間同步認證技術是把時間作爲變動因子,一般以60秒作爲變化單位。所謂“同步”是指用戶口令卡和認證服務器所產生的口令在時間上必須同步。這裏的時間同步方法是用“滑動窗口”技術,自動在用戶口令卡和服務器之間實現矯正和同步。基於時間同步的令牌在每次進行認證時,服務器端將會檢測令牌的時鐘偏移量,相應不斷微調自己的時間記錄,從而保證令牌和服務器的同步,確保日常的使用。但由於令牌的工作環境不同,在磁場、高溫、高壓、震盪、入水等情況下易發生時鐘脈衝的不確定偏移和損壞,故對時間同步的設備進行較好的保護是十分必要的。對失去時間同步的令牌,可以通過增大偏移量的技術(前後10分鐘)來進行遠程同步,確保其能夠繼續使用,降低對應用的影響,但對超出默認(如20分鐘)的時間同步令牌,將無法繼續使用或進行遠程同步,必須返廠或送回服務器端另行處理。

時間同步口令技術有如下缺點:

a)口令在一定時間段有效,所以在這個時間段內存在重放攻擊的威脅。

b)認證效率低。數據在網絡上傳輸和處理上存在一定的延遲,當時間誤差超過允許值時,合法用戶的身份認證也會失敗。

c)同步機制複雜。一方面,當令牌數量分散且屬於多個不可控網絡系統時,保證衆多的令牌同認證服務器的時鐘同步是一個難題;另一方面,認證服務器的系統時鐘必須嚴格保護,不得隨意更改,以免影響全部基於此服務器進行認證的令牌。

d)不能防止僞造服務器攻擊。攻擊者可以僞造服務器,收集用戶的有效口令後,僞裝成合法用戶通過認證併入侵系統。

e)令牌需要保持正確的時鐘,耗電量大,使用壽命短,成本高。

f)應用模式單一,難以支持雙向認證等應用需求。

 動態口令系統組成

動態口令認證系統一般由三部分組成:

a)動態口令令牌:硬件設備,像一個小的計算器,用來生成口令,可以隨身攜帶。

b)動態口令認證服務器:認證服務器端是動態口令認證系統的核心,負責響應認證系統客戶端所發過來的用戶認證請求(動態口令),完成用戶的身份認證。

c)代理軟件(Agent):Agent以及基於各種標準的訪問協議(如RADIUS協議)構成認證轉發點,安裝在受保護的系統上,負責將用戶的認證請求轉發到認證服務器端。

 動態口令產品類型

1)硬件生成(Token Card):用類似計算器的小卡片計算一次性口令。

a) 對於時間同步方式,該卡片每隔一段時間就會重新計算口令。

b)目前市場主流的動態口令卡僅僅起到身份認證的功能,無法防止信息篡改,可以通過在動態口令卡中設置輸入功能,把部分交易信息引入動態口令的計算過程中,但結果就是需要用戶額外輸入,用戶體驗較差。

其代表就是工銀電子密碼器,支持在個人網上銀行、手機銀行、電話銀行等渠道使用,特別適合使用iPhone、iPad等移動終端辦理大額支付業務的客戶。

起使用流程如下,和U盾的流程非常類似,把交易數據和令牌裏面保存的密鑰進行了運算。

而爲防止動態口令牌丟失時,被別人盜用,部分口令令牌使用PIN碼保護,根據PIN碼保護的形式不同,令牌又具有如下兩種特徵:

c) PIN碼保護:軟PIN碼是在密碼輸入窗口輸入動態密碼時,同時輸入個人記憶的靜態口令,將其和令牌生成的動態密碼一同輸入彈出的用戶名口令窗口,傳送到服務器端實現認證。

d)硬PIN碼保護:硬PIN碼即是在開啓口令牌時要求輸入的密碼,不知道該密碼的人員不能使用口令牌,即不能開機,類似於移動終端的PIN碼,這個PIN碼不會再輸入到彈出的登錄窗口。

 前述提到的工銀電子密碼器,使用時需要兩次輸入開機密碼(6位數字),完成開機密碼初始化。
 兩次輸入的開機密碼必須相同,否則將導致初始化開機密碼失敗。失敗後,按任意鍵返回,重新進行初始化開機密碼。

2)軟件生成(Soft Token):軟件代替硬件,如客戶端形式的動態口令。

3)刮刮卡:刮刮卡背面以矩陣形式印有多個數字串。使用網上銀行進行對支付交易時,網上銀行系統會隨機給出一組口令卡座標,用戶從卡片上找到座標對應的密碼組合並輸入網上銀行系統,只有當密碼輸入正確時,才能完成相關交易。這種密碼組合動態變化,每次交易密碼僅使用一次,交易結束後即失效,能有效避免交易密碼被黑客竊取。

    

4)移動終端動態口令卡:使用SIM卡或者移動終端軟件產生動態口令的一種方式。

a)基於移動終端的動態口令牌,利用了移動終端的按鈕、顯示屏和電池,一個移動終端可支持多個動態口令業務,降低了成本。

b)移動終端既可支持硬件口令牌,也可支持軟件口令牌。支持硬件口令牌的移動終端,主要通過使用內置動態口令業務的智能卡(SIM卡)來產生動態口令;基於SIM的動態口令牌,其口令由SIM卡內部生成,通過手機屏幕顯示出來。支持軟件令牌的移動終端,主要是智能手機使用相應的軟件程序來產生動態口令。

動態口令小結

1)動態口令不能提供非否認性。

2)動態口令會被釣魚。由於動態口令的輸出信息有個短暫的有效期,可能被釣魚以後用於違法操作。

3)大多數動態口令僅起到了身份認證的功能,無法防止信息篡改。  也就說錢照樣丟!

2)U

基於USB KeyU盾)的身份認證方式是近幾年發展起來的一種身份認證技術。它內置了CPU、存儲器、芯片操作系統(COS),可以存儲用戶的密鑰或數字證書。利用USB Key內置的證書、密碼算法實現對用戶身份的認證、交易的不可否認性。

U盾採用非對稱密鑰算法對網上數據進行加密、解密和數字簽名,確保網上交易的保密性、真實性、完整性和不可否認性。

除了硬件,U盾內置智能卡芯片操作系統(COS),該操作系統就像DOSWindows等操作系統一樣,管理着與U盾相關的各種數據、密鑰和文件,並控制各種安全服務。

U盾密鑰完全在硬件內生成,並存儲在硬件中,能夠保證密鑰不出硬件,硬件提供的加解密算法完全在加密硬件內運行。

U盾的出發點是基於系統是不可信的。這也是本文中強調的安全思路:絕大多數應用的安全性可以基於系統安全機制,但部分應用(如網上支付)可以獨立於系統安全之外構建安全體系

 

目前僅在轉賬時使用U盾,畢竟使用U盾的用戶體驗還是比較差的。另外,目前商業銀行主要採用單向SSL,原因在於還有很多用戶沒有證書,但依然要進行網銀操作如查詢賬戶等。

U盾的安全性分析

要說明U盾的安全性,先得說明U盾的作用。

U盾保存證書以及證書對應的私鑰。U盾的作用主要是提供身份認證以及簽名。U盾中雖然內置證書,但每次驗證過程都需要從U盾中讀取出來,其實和存在在計算機上安全級別差不多,那麼U盾最關鍵的部分就是簽名了。由於私鑰不能導出芯片,而只有私鑰簽名的數據在服務端才能驗證通過,因此只有擁有私鑰才能完成交易。也就是說,U盾的安全體現在物理存在。確保只有使用U盾時才能完成交易。當前U盾的物理存在是靠簽名來體現的,只有通過U盾裏面的私鑰簽名才能完成交易,而且U盾裏面的私鑰是不可導出的。惡意程序即使獲取了用戶所有的賬戶、口令信息,由於沒有物理U盾,也無法在其他PC上完成交易。

U盾也經歷了逐漸完善的過程,最初的第一代U盾僅僅體現了物理存在,依然存在一些安全隱患,如交易數據被篡改,本來是給A轉賬100元,結果被改爲轉賬1000元給B。另一個問題就是如果你一直把U盾插到計算機上,有可能木馬自動完成全部交易,也就是自動執行的問題,雖然U盾私鑰簽名時需要輸入口令,但由於這個輸入是發生在Windows上的,木馬可以幫你代勞。

由此誕生了第二代U盾,帶有確認按鈕和顯示屏的U盾。二代U盾有下列功能:

l U盾物理實體保證只有擁有該實體才能完成交易。U盾裏面的私鑰是不可導出的,無法複製。

l 顯示屏保證交易數據無誤,如果木馬篡改了交易數據,在顯示屏直接可以看到。

l 交易的自動執行,不點擊確認按鈕無法完成簽名操作,交易也無法完成。

二代U盾比較徹底地解決了網銀的支付安全問題,但帶來的後果就是使用更復雜,用戶體驗更差。木馬雖然也可以篡改數據,但如果用戶不單擊確認按鈕,交易就無法完成。有了這種機制保證,這種損人不利己的事情(木馬篡改數據、竊取口令等)會越來越少。

 3)一種特殊的動態口令機制----手機短信

由於手機的普及,手機短信作爲一種有簡單、有效的認證方式飛速發展,尤其在sp時代,即使現在運營商大部分業務還是通過短信完成交易。

 這種方式相對其他的動態口令機制,最大的優勢就是方便,無需攜帶額外設備(畢竟手機是必須攜帶的)。

目前不管是在pc上、手機上,使用手機驗證碼已經很普遍。

手機短信認證其實可以用於賬戶登錄、交易等環節進行認證、給用戶提示等,在運營商的業務中非常普遍,比如我登陸139郵箱都會提醒我,但銀行畢竟從運營商批發短信需要銀兩,因而沒有大範圍使用短信。

發佈了47 篇原創文章 · 獲贊 9 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章