前言
隨著網際網路的蓬勃發展,人們傳統的生活型態受到重大的顛覆,舉凡教育、交友、通訊、休閒、娛樂以及消費等等的行為,都逐漸由網路來取而代之。眼明手快的人已開始發覺到網際網路上的龐大商機,亦紛紛地投入了市場的開發以及推廣,從早期的網上購物、股票線上下單到電子銀行的出現,都在在顯示了電子商務藉著網路的觸角,正試圖全面攻佔每個人的生活。然而,電子商務所要面對的是個虛擬的網路空間,現實裡爾虞我詐的情節,也同樣地搬上網際網路。因此,要如何維繫一個安全的交易,會是推廣電子商務必須面對的首要課題。
相信有網路購物經驗或是瀏覽過購物網站的網友們,一定對於SET(Secure Electronic Transaction)以及SSL(Secure Socket Layer)這兩個名詞並不陌生。SET是一個由信用卡組織針對電子商務所制定的交易協定,主要是利用電子簽章的技術來達成安全的交易,也同時確保了交易雙方的權益(請參閱本刊1999.9月號64期「網路交易安全機制─SET簡介」)。SET協定本身需要一個建置完整的交易系統,在交易的過程又必須透過複雜的確認流程,相對的其成本也較高,所以目前的推廣腳步較為緩慢。
SSL協定則是由網景公司(Netscape)在九○年代初期所提出的一個通訊加密協定,主要是提供在網際網路傳遞資料的加密保護機制。SSL協定在提出之後,歷經修正與改版,目前廣為應用的是SSL V3.0的版本。與SET比較,SSL協定在系統建置以及交易成本上,相對地都較SET來的低,所以也就成為了電子商務在交易安全防護機制上的主要選擇。SSL協定到底是何方神聖?它究竟提供了怎麼樣的機制來保障消費者的權益?我們將深入探討這個超人氣的電子商務的「守護神」。
SSL協定(Secure Socket Layer Protocol)
一般的網路商場在接受消費者付款方式都是使用信用卡,網友只需要在網站上填寫個人信用卡的相關資料後,便可以完成交易。然而網路上傳遞資料都是以明文方式傳送的,也就是說這些資料很容易就被人給截取甚至冒用,進而衍生出許多的交易糾紛。也因為如此,現在的購物網站都必須提供加密機制來保護這些資料,其中最被廣為使用的就是SSL。
由於網路上的安全問題主要在於資料在傳送時被竊取、洩露、篡改甚至冒名等等的威脅,面對這些潛在的攻擊,SSL協定在設計上,便同時針對實際的需求來調整與安全相關的加解密技術,以便於在不同領域的應用上能夠具備更多的彈性。SSL協定利用了三個加解密技術來抵抗冒名、洩露以及篡改的問題─公開金鑰密碼系統用來確認身份以及交換加密的金鑰;秘密金鑰密碼系統用來加密欲傳送的資料;訊息驗證系統用來驗證訊息資料的完整性以避免被人惡意的篡改:
(一)公開金鑰密碼系統:比較廣為人知的是RSA(請參閱本刊1999.2月號57期「網路安全網座─公開金鑰密碼系統」),SSL協定利用此系統提供的身份認證機制來避免冒名傳訊的問題,也就是所謂的數位簽章技術。同時公開金鑰還可以直接做祕密金鑰交換使用。一般建議的金鑰長度至少為1024個位元,但是因為受限於美國的出口管制,目前在數位簽章部份最多只能到1024個位元,而加密的部分則只能到512個位元。
(二)秘密金鑰密碼系統:在網路上做資料傳送時,都是以明文的方式傳輸的,有許多的隱密性資訊很容易就會被洩露出來。因此我們可以利用此系統來將資料加密起來。其原理與上鎖的方式類似,資料收送的雙方彼此事先協調一把金鑰,利用此金鑰來做加密,同樣的也必須用此金鑰來解密,比較著名的演算法如RC4、DES、IDEA以及Triple DES等等。此系統要求雙方共同擁有一支祕密的金鑰,所以通常都是使用公開金鑰密碼系統來做祕密金鑰的交換,金鑰的長度越長,安全度就越高。目前此系統同樣受到美國出口管制的阻礙,只能使用到40個位元的長度,如果你願意將使用的加密金鑰拷備一份給美國政府的話,他就允許你使用56個元長度的金鑰,但是目前較安全的建議是128個位元以上(註一)。
(三)訊息驗證系統:此系統主要是利用單向雜湊函數(one way hash function),如MD2、MD5及SHA1等等的演算法,其特性就是我們給予一篇可變動長度的文章,利用此函數可以產生固定長度的字串(可以稱之為摘要「digest」)。不同的文章可以產生不一樣的摘要,就算只是一點點的改變都會不同。因此當我們要在網路上傳輸資料時,事先將傳送的資料做一個摘要,連同資料一併送出去,另一方再收到資料後同樣使用相同的方法產生另一個摘要來比對,以驗證訊息是否被篡改。
一般的交易網站所提供的SSL功能,都是受到了美國出口管制的限制,所以僅能提供512個位元的RSA公開金鑰系統以及40個位元的RC4加密演算法;至於使用者的瀏覽器,不論是微軟公司的IE或是網景公司的通訊家,同樣的都是受限於交易網站而無法提昇安全等級。(圖一)
《圖一 通訊家瀏覽器所支援的SSL協定加解密演算法組合》 |
SSL的安全強度
至於說SSL協定到底安不安全呢?就要看它是怎麼被架構起來的。我們再回頭來看這三個加解密技術的組合,是否能被正確以及合理的使用。
(一)數位簽章:要將這個技術有效的運用,就必須存在一個公正且有公信力的數位憑證管理中心(Certificate Authority,簡稱CA),每個交易網站都應該事先取得一張由CA所簽發的憑證,此憑證就代表這個網站的身份,同時又有CA的背書(請參閱本刊三月號之網路安全網座─憑證管理中心)。不僅是交易網站,每個使用者也可以去申請個人的數位憑證,藉以證明自己的身份,目前提供簽發憑證服務的有:政府管理憑證中心、財金資訊公司以及網際威信公司(代理國外VeriSign公司的CA系統)。當瀏覽器連線到有數位憑證的網站上時,便會出現如下圖的訊息視窗,你可以選擇信任而繼續連線或是不信任而中斷連線。目前1024位元簽章的出口限制在短期內勉強可以接受。(圖二)
《圖二 瀏覽器連線至有數位憑證的網站》 |
(二)公開金鑰加密:數位憑證經過驗證無誤之後,接著我們就可以使用此憑證的公開金鑰來加密祕密金鑰,這個部份目前出口管制在512位元長度,已經被RSA的發明人之一Shamir利用特殊的硬體威脅了。
(三)秘密金鑰加密:因為出口限制,目前在台灣只能使用40個位元長度的RC4,已知的最快破解時間是在短短的數小時內,在現實上已經是極為危險。(圖三)
《圖三 使用SSL協定時,瀏覽器的左下角以及上方的鎖頭會改變為上鎖的圖案》 |
難道在台灣就沒有辦法使用更安全的加密技術了嗎?答案還是有的!請再回頭看圖一中的選項,在前三欄的加解密組合後面備註了(When permitted)是什麼意思?就是如果交易網站允許的話就可以使用了,但是真的有這麼簡單嗎?當然是不可能啦!你想想:加解密演算法被美國政府列為同等於軍火的出口管制,台灣又是深受美國科技影響,隨手可見,觸目可及都是美國的軟硬體設備。只要是由美國出口的網站伺服器如微軟公司的IIS伺服器以及網景公司的Enterprise Server(兩者在台灣的佔有率在四成以上),所有的出口限制都加諸在這些網站伺服器上了。
要取得允許的方式,很簡單只要你是符合資格以及最重要的一點─給錢。資格是從事於財務金融業,如銀行或證券公司,只需到美國的VeriSign公司申請一個專用的強勢憑證(Strongly Certificate),付上使用費,就可以利用這張憑證開啟原先不被允許的加解密演算法了。
真正安全的交易
沒有人敢保證在網際網路上的電子商務交易是真正安全的,但至少要做到一定程度的安全。目前台灣的網路交易,大部份是使用了SSL協定來做為交易的守護神,然而不幸的是,它們的守護神卻是被上了手銬和腳鐐的,頂多只能產生威嚇的效用而已。回頭再看看之前所描述的SSL協定的技術,到底是出了什麼問題呢:
(一)形同虛設的身份認證:沒錯,現在究竟有多少的網站真的使用數位簽章呢?真的是少之又少。即便是有,那這個代表者公正與公信的CA又有多少的可信度呢?更少!甚至連CA系統都遭受攻擊!數位憑證是用來確認你所連結的網站位置以及提供一個組織的背書,如果沒有這一個保障,你就無法確定所連結的網站是真正你想去的地方。更不用說去相信那是一個做正當生意的商場還是吸人血的黑店了!千萬別拿自己的財產開玩笑。以金融領域來說,未來扮演電子銀行的CA,或是擁有CA系統的大型行庫,我想會是一個較為可靠的選擇。一般的網路商家只要去向這些CA申請憑證,就等於得到這些CA的背書了。
(二)出口管制的枷鎖:美國對於加解密法的出口管制,的確是電子商務的一大枷鎖,也正是SSL協定的手銬和腳鐐,如果要卸下這些刑具,除了之前提到去申請一個強勢的憑證之外,就別無他法了嗎?當然不是!因為除了IIS Server和Enterprise Server之外,還有一個世界上網站伺服器佔有率最高的Apache Server!它是一個完全免費的網站伺服器,只要再加上SSL模組(如:mod_ssl)與免費的加解密演算法函式庫如OpenSSL,就可以支援SSL協定所有的演算法組合了,當然也就沒有所謂出口限制的問題─1024個位元長度以上的RSA、128個位元以上的RC4或168個位元的Triple DES─提供一定程度的安全!目前Apache Server有在UNIX與 Windows NT平台的版本,一些知名的硬體大廠如IBM、HP和Sun都可支援。
另一個問題是:瀏覽器怎麼辦?它不是同樣無法突破這層限制?現在有一個叫做Fortify的軟體,可以將網景公司的瀏覽器的出口限制取消,立即便成可以與Apache Server匹配。(圖四)所顯示的前三個選項就沒有(When Permitted)了!(註二)
《圖四 經Fortify改變後的通訊家瀏覽器所支援的SSL協定加解密演算法組合》 |
(三)SSL協定與電子商務:如果說SSL協定是為了電子商務而設計,這個說法就有爭議了。其實SSL協定只是要提供一個網路安全的傳輸環境,並非是針對電子商務而來。主要的差別就在於SSL協定本身並沒有對於資料做數位簽章!數位簽章除了可以用來確認身份之外,也可以用作類似個人簽名的機制,即是不可否認的功能。說的更明白點,SSL協定只是針對身份(數位憑證)的確認,不是對每一筆訂單(傳輸的資料)所簽章,所以極有可能當客戶在網路上下單買股票,事後股票賠了錢後死不認帳,狡辯為系統管理的員工在取得帳號及密碼後所做的交易等等的糾紛。除非直接對訂單做簽章,否則無法避免這類問題的發生。
結論
者絕對同意SSL是目前網際網路在安全傳輸上一個不可缺的協定,因為它提供並且滿足了大部分對安全上的要求。但是,在現實中卻往往有許多令人遺憾的因素做祟,如美國的出口管制等等。然而就在這些問題懸而未決之際,勇於進取者卻罔顧大部份人的利益,只為了圖一己之私,實在是不可取;套一句老調重彈:主事的人會告訴你的,是他想讓你知道的,而不是你想知道的。你現在正連線網上購物嗎?還是汲汲於股票線上下單呢?且等一等按下按鍵,請先考慮清楚再做決定─你是正在享受者輕鬆購物或投資的樂趣呢?還是別人在享受你這塊甜美的俎上肉。
(作者周利欽、黃士殷分別就學、任教於元智大學資工系)
備註
註一:美國國務院已於日前允許將128位元SSL機制有條件的出口至美加以外地區。
註二:Apache Server本身支援SSL協定的介面,必須再搭配SSL協定的模組便可以提供較好的安全強度。本實驗室網站www.mmlab.cse.yzu.edu.tw便是使用這樣的組合,讀者可以至http://www.mmlab.cse.yzu.edu.tw/ftp/pub/security/crypto/取得Fortify(檔名為fn224w32-English.exe),將Netscape的瀏覽器修改後,再連上本實驗室的網站,就可以使用SSL協定中最高安全等級的傳輸保護。