密碼系統簡介
全球資訊網的出現,揭開了電子商務時代的序幕。無疑地,網路將會成為21世紀最大的商業平台。在網路普及與高度e化的影響下,更加突顯資通安全的重要性。由於網際網路上使用者身分的不確定性,再加上電子商務涉及商業交易行為,所傳遞的資料包含使用者的敏感性資料,像身分證字號、信用卡號、使用者帳號及密碼等,其所帶來的安全問題更是備受重視。
在現今網路環境下,一般利用身分認證技術來驗證通訊雙方的身分及其合法性,身分認證技術不僅扮演著第一道,也是最重要的防線之一。目前,常用的身分認證技術則大致分為公開金鑰基礎建設(Public-Key Infrastructures;PKI)和通行密碼驗證兩大類。
公開金鑰基礎建設的實現,是基於公開金鑰的概念,每個人都擁有一對金鑰,一把為公開金鑰,另一把為與其相對應的私密金鑰。顧名思義,公開金鑰即是公開的;而私密金鑰則是使用者須自行妥善保存的。基於公開金鑰基礎建設的認證機制,就是把私密金鑰當成數位簽章的重要參數,藉此達到認證、完整性及不可否認性,進一步達成授權及存取控制。而當收文者對發文者所傳送的文件要進行認證時,為了確認所取得的公開金鑰的正確性,就必須要有相關機制能夠協助達成此目的。在電子商務環境中,設計者需要一可信賴的第三者,也就是所謂的憑證管理中心,對金鑰做認證來取信使用者;利用憑證和數位簽章的技術,即可進行身分認證,如此一來,網路上的每一個人皆可在高度信賴下進行電子商務的交易行為。這種公開金鑰建設的技術,一般最常使用的是RSA密碼系統,來建構安全的商務網路環境基礎。
最普遍的通行碼驗證方法,僅利用使用者身分識別碼(ID)與通行密碼(Passwords)進行驗證。首先,伺服器端使用單向雜湊函數(One-way hash functions)將使用者密碼轉換成固定長度的訊息摘要,將此訊息摘要與使用者身分識別碼存放在一個記錄表格。當使用者透過網路連線至伺服器端並打入自己的識別碼與密碼後,伺服器透過比對接收到的身分識別碼和密碼,與之前存於表格中的身分識別碼和訊息摘要是否相符進行認證。而在傳輸控制協定/網際網路協定的制定過程中,最初並沒有考慮所傳輸資訊的安全性問題。有鑑於密碼學的興起,可利用加解密技術建立安全通道,讓發送和接收兩端可以放心地交換資料。發展至今,通行碼驗證進一步可配合智慧卡或生物特徵等方法來加以達成。
智慧卡(Smart cards)是一種資訊載具,具有記憶、識別、加解密及傳輸等功能。一般來說分為三大類:接觸式、非接觸式以及雙/多介面式。智慧卡結合身份認證技術的概念,在於當使用者欲登入系統時除了要輸入自己的密碼外,還需插入自己的智慧卡才能完成登入程序,目的在於達到風險分攤的目的。只要能夠保證使用者所記憶的密碼或智慧卡沒有遺失或遭竊取,就能夠確保除了使用者本身外的任何人,皆無法通過伺服器系統的身分驗證程序而登入成功。
近年來,由於生物科技的進步,許多利用生物特徵作為通行碼的身份認證機制也相繼提出。生物特徵辨識系統可分為生理及行為兩大類。生理特徵較不易隨時間而改變,例如:染色體、指紋及虹膜。行為特徵則可能受到壓力、疲勞與感冒等因素影響,如語音等。一般來說,目前最常被使用且商品化的就是指紋辨識。
密碼系統應用實例
在通行碼認證系統中,使用者在向伺服器註冊完成之後,將會得到一組識別碼與通行密碼的組合,此資料儲存在伺服器端,以供使用者存取伺服器端服務時識別身分之用。惡意的攻擊者可藉以下方式取得受害使用者的密碼,偽裝成受害的使用者來存取伺服器所提供的服務:
- ●從伺服器取得其用來儲存密碼的檔案;
- ●竊聽使用者和伺服器間的連線;
- ●若使用者的密碼過於簡單的話,則很有可能可以暴力破解使用者的密碼。
學者L. Lamport [1]首先提出利用密碼輸入作為遠端登入的方案,如(圖二)所示,這能防止上述前二種攻擊方式,但要預防第三種攻擊方式,只能依賴使用者自定密碼時維繫良好習慣。其大要描述如下:
- ●為了防止第一種攻擊法,Lamport使用了單向函數(One-way functions)對密碼進行編碼,伺服器端只儲存編碼後的密碼。所謂的單向函數就是無法從輸出值(編碼後的密碼)推算出輸入值(編碼前的密碼)的單一運算方向函數。
- ●而對於第二種攻擊法,則是在每次登入時改變下次登入的密碼,並在每次登入時,將下次的密碼經單向函數編碼後,傳送給伺服器儲存以供下次登入使用。如此一來就可以防止藉由竊聽方式得到使用者登入用的密碼,這部份的作法是利用同一個單向函數多次作用在密碼上,例如F5(pwd) = F(F(F(F(F(pwd)))));其中F為一單向函數,pwd為使用者密碼。
這種以單向函數實現的認證系統,具有結構簡單及運算快速等優點。然而這種方法仍需要在伺服器端內建一個密碼表來驗證使用者的身分,所以密碼表仍有可能會受到有心人士的破壞或修改。
這種系統實際使用的版本是後來由Phil Karn在Bellcore所提出的“The S/KEY One-Time Password System”,它利用安全的單向雜湊函數(One-way hash functions)對密碼進行編碼,並將每次的One-Time Password(OTP)由hash chain來達成。這種系統實際應用在FreeBSD、OpenBSD等作業系統上。
一般我們常聽到的公開金鑰密碼系統(Public-key cryptosystems)是一種非對稱式的密碼系統,非對稱式密碼系統的特色在於加密和解密所使用的金鑰是不同的。公開金鑰密碼系統是在通訊時,傳送方利用接收方的公開金鑰,對訊息加密後送給接收方,而接收方則以自己的私密金鑰進行解密。以下將介紹最常見的RSA公開金鑰密碼系統。
RSA的加解密原理如下:
- ●隨機找出二個相異的大質數p、q,並計算出n = p q。
- ●隨機選出一個和((p-1)(q-1))互質的數e,(e, n)即為RSA的公開金鑰。
- ●然後找到e在module ((p-1)(q-1))之下的乘法反元素d,(d, p, q)即為RSA的私密金鑰。
- ●當設計者要對一筆資料m利用RSA做加密時,便計算C = me mod n,C即為加密後的密文。
- ●而當設計者要對一份利用RSA加密後的密文C解密求出明文時,便計算m = Cd mod n,m即為解密之後的明文。
若設計者需要對訊息或是文件設定電子簽章,則是簽章者利用自己的私密金鑰對訊息「加密」,在這裡,加密就是簽章。若設計者需要對簽章後的訊息進行驗証、看是否真的是某個使用者的簽章時,設計者只要拿簽章者的公開金鑰,對簽章後的訊息「解密」,如果解密後的訊息和原來是一樣的,即代表這份簽章後的文件的確是由簽章者所簽。
RSA公開金鑰密碼系統的安全性,是建立在因數分解的解題過程,所以隨著計算機計算能力的提昇,RSA中n的長度需求將變得愈來愈長。亦即設計者將來將需要更大的n、需要更多的空間來儲存私密金鑰;當n愈大時,對n做因數分解的計算量就愈高。目前應用上,對n的要求是長度至少要達到1024位元以上。
目前,RSA已大量被應用在電子商務領域,像是網路銀行的交易[8]、電子貨幣[7]與付費系統[4]等。
常見的攻擊與解決方法
密碼系統最早是因應訊息保密而設,進入網路世代後,密碼系統的設計要點是如何讓訊息能夠在網路上秘密地被傳送,不致於讓駭客或是竊取者攻擊有效。常見的攻擊包含竊取訊息、竄改訊息、偽造訊息及阻斷攻擊等,前述是以攻擊者角度為出發點,以下將以整體系統的弱點、以及在設計上應注意事項介紹攻擊解決方法。
首先是攻擊者欺騙認證系統進而竊取密碼。常見的攻擊手法有三種,第一種為「字典攻擊法(Dictionary attacks)」,顧名思義就是以特定程式將所有字典上的單字逐一嘗試,推敲該單字作?密碼的可能性,排列嘗試使用單字作為破解的優先順序。此種方法最為簡單、也常為為駭客入侵使用,在網路登錄系統中可無限制地登錄測試,進而成功登入系統修改設定。第二種則為「暴力嘗試法(Brute-force attacks)」,利用日常生活中常見的詞語或排列,逐一嘗試進而破解使用者的密碼取得存取權限。常用的字詞如下:
- ●生日、身分證、電話號碼;
- ●0~9的各種排列組合;
- ●空白密碼;
- ●女友、男友、兒子或女兒的名字等;
- ●使用原廠預設帳號和密碼。
最後一種則是後門程式。此種攻擊法在網路世界相當常見,利用伺服器端的弱點植入竊聽程式,竊取密碼表格。最廣為人知也是殺傷力最強的應屬「木馬程式」,此為典型的攻擊程式,植入欲攻擊的主機,經由遠端的控制而竊取資料。
為因應不同的攻擊法,設計者就必須注意一些事項。為了避免太容易被使用暴力法破解,密碼金鑰的長度(位元數)需足夠,降低被猜中的機率;在密碼金鑰傳輸過程中透露愈少資料愈好,避免以明文的方式在公開的媒體上傳送以保障私密性。同時養成良好的密碼使用習慣、不用慣用詞語或是字典內出現的單字、盡量混用大小寫及特殊符號,以增加猜測範圍。至於針對後門程式的防禦工作,一般儲存於伺服器的密碼表格,最好利用上述的單向雜湊函數、配合加解密系統來儲存,以減低駭客修改或偷取原來密碼的機會。
除了密碼竊取問題外,還有身分辨識的課題。傳統密碼的驗證方法是一旦密碼遭破解或是竊取時,則完全無法辨識出該登入者是否為本人、或是惡意攻擊者偽裝登入。而在使用非對稱式加密系統中,會出現「中間人攻擊(Man-in-the-middle attacks)」,如(圖三)所示。
由於生物科技的進步,身分認證技術可利用生物特徵來當作密碼的身份驗證機制。生物特徵可以分為生理及行為二大類,第一類為生理上的特徵,有染色體(DNA)、指紋(Fingerprint)及虹膜(Iris)等;另一類特徵是在行為上,以語音(Voice)最為人知。生物辨識最常被使用的是指紋辨識,因為指紋從出生到死亡幾乎不會改變,且同時擁有相同的指紋的機率極低。為了防止中間人攻擊,必須使用憑證(Certificates),可以正確取得公鑰(Public key),降低中間人攻擊的成功機率。憑證是一種由通訊雙方都信任的公正第三者,經一定程序驗證個體之身分與公鑰後簽發,用以證明該個體確實擁有與其所宣稱的公鑰相對應私鑰的憑據。
至於在訊息完整部分,訊息在傳送過程中可能會遭受竄改,收訊者所收到的訊息有時已與發送者原本傳送的訊息完全不同。為解決這種問題,在密碼系統上傳送者可利用數位簽章處理訊息,接收者則可以辨識訊息內容是否遭到竄改。數位簽章是利用個人非對稱式金鑰對中的私鑰,對所需要傳送的訊息內容以簽章演算法運算,因為私鑰只有真正合法使用者才會擁有,因此也能做出唯一的結果,接收者則可藉由相對應的公鑰,藉由驗證演算法驗證訊息的來源及其完整性。
未來的發展
電子商務的服務涵蓋包括電子競標、網路拍賣與電子錢包等,日常生活中金融IC卡盜領案件與屢見不鮮的網路拍賣詐騙事件,常引發社會大眾對電子交易上安全性的疑慮。為了防止惡意的使用者試圖去竊取他人私密資料或是假冒使用者身分這樣的犯罪行為,以往使用通行密碼的電子商務系統已經無法滿足當前多重的安全需求,因此,如何確保網際網路交易環境安全,相當受到重視。目前利用智慧卡作為載具達成安全目標的應用,越來越普遍,例如金融IC晶片卡與IC健保卡等。近年來利用生物特徵來做為身份認證因子的風潮也越來越盛,例如指紋辨識、視網膜辨識、手背靜脈分佈和聲紋辨識等。目前網路安全的設計要點,以結合通行碼、智慧卡、生物資料作為發展安全的三因子系統為首要目標。
通行碼、智慧卡、生物特徵等安全因子各有優缺點,一般生物資料被認為有以下的優點:
- ●唯一性:不像一般密碼或智慧卡,當系統每開一個通行密碼就等於開啟一扇門,因為合法使用者可輕易地分享密碼或卡片給其他人登入。而生物特徵只有擁有者本人才能登入。
- ●遺失可能性低:使用者會有忘記密碼、遺失智慧卡的風險。但生物特徵沒有這個問題,因此也減少要更換密碼或重新申請新卡的時間與作業成本。
- ●親近性高:使用生物特徵認證,都比輸入密碼和插入卡片來得方便。
雖然生物特徵克服了通行碼以及智慧卡的缺點,但是生物資料在辨識的準確性以及速度上仍然有待改進。另外如果是使用者在遠端登入進行操作,也必須要具備能夠信任的生物特徵讀取機。不同於智慧卡的讀卡機有一定的規格來讀取智慧卡的資料,遠端伺服器如何信任生物特徵讀取機,在技術上仍須一步克服。
整體而言,利用智慧卡、通行碼以及生物特徵資料等多重因子,設計能達到最佳安全度、最佳效率和使用便利的身分認證系統,將會是未來發展的重要趨勢。(作者范俊逸為國立中山大學資訊工程學系副教授,主持電子商務與安全工程實驗室。林宜慧為中山大學資工所博士生;阮鶴鳴、陳龍獻、曾俊豪為中山大學資工所碩士生。網址:http://www.cse.nsysu.edu.tw)
<註:參考資料:
[1]. Leslie Lamport, “Password Authentication with Insecure Communication,” Communications of ACM, Vol. 24, 1981, pp. 770-772.
[2]. Yi-Pin Liou, “The Security Analysis and Improvement for Remote User Authentication Scheme Using Smart Cards,” 聖約翰學報第二十三期, pp. 105-113
[3]. 資通安全專輯之十六-行動電子商務安全/雷欽隆教授、范俊逸教授
[4]. 工研院資通所http://www.ccl.itri.org.tw/products/transfer/internet_soft/techinfo/SSL01.htm
[5]. 中正大學校園網路策進會 http://www.cna.ccu.edu.tw/doc/security_intro2.pdf/
[6]. http://www.faqs.org/rfcs/rfc2289.html Internet FAQ Archives Online Aducation
[7]. https://www.tml.hut.fi/Studies/Tik-110.350/1997/Ecommerce/e-cash_1.html
[8]. 聯邦銀行 http://www.ubot.com.tw/news/2001/0502001.htm>