您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 结合IC卡强化时戳服务之设计与实现
1結合IC卡強化時戳服務之設計與實現葉志青a,楊中皇b,褚芳達cab高雄師範大學資訊教育研究所802高雄市苓雅區和平一路116號TEL:(07)7172930;FAX:(07)7174884c中華電信研究所前瞻技術研究室國家時間與頻率標準實驗室326桃園縣楊梅鎮民族路五段551巷12號TEL:(03)4244973e-mail:adexter@icemail.nknu.edu.tw;bchyang@computer.org;ccfonda@cht.com.tw摘要因為網際網路每年快速的成長,安全措施已被視為網際網路上最重要的一環。時戳服務機構(time-stampingauthority,TSA)是一個可信任的機構,它可以提供資料在某一特定時間前即已存在的證據。在這個研究中,我們透過網際網路實作依據RFC-3161標準的可信賴的時間服務系統(TrustedTimeService,TTS),伺服端是在Linux平台上安裝及修改開放源始碼軟體OpenTSA,而客戶端則是在Windows平台上使用C++Builder工具自行開發軟體。同時,伺服端配有USBIC卡讀卡機和現成的IC卡來儲存及擷取時戳伺服端的私鑰。客戶端亦配有USBIC卡讀卡機並利用IC卡來儲存通行碼,以便與伺服端進行密碼驗證,以防止阻斷服務攻擊。關鍵字:時戳、數位簽章、公開金鑰基礎建設、IC卡壹、緒論邁向廿一世紀,網際網路的應用快速發展,許多以網路為主的應用及服務模式逐漸成型,文件及各項交易趨向數位化,而在目前的網路架構下,資訊毫無保護的在公開的網路上傳遞,衍生了許多以前傳統社會從未有的安全問題,例如當電子公文在網路傳遞的同時,可能遭到擷取、竄改、複製、偽造等,而電子交易時,付款機制的安全性、認證系統的確認性、交易的不可否認性以及資料的完整性等安全問題,至使必須利用安全技術,加入一些安全機制,以確保在網路上資料的安全。我國電子簽章法[27]於民國九十年十一月十四日公佈,並於九十一年四月一日起正式施行,內容除明定電子簽章、電子文件之法律效力外,亦規範了憑證機構的管理機制,以達到有效保護消費者的權益,同時也為憑證之建置與運作,即電子簽章的使用提供相當明確的法源依據,未來將由可信任的認證機構進行數位憑證的發放,藉此建立電子商務交易的信任機制。而其中依電子簽章法第十一條第二項所規定之「憑證實務作業基準應載明事項」中第三十條第五項:紀錄對於時戳之要求;可見時戳對於憑證作業的重要性。因此,假若能透過時戳服務系統提供精準的時戳服務,相對的也為電子文件、電子交易等提供更大的安全保障。時戳(TimeStamp)就好比郵戳一般;郵局在處理郵件時所蓋用的郵戳,是目前最通用的時間證明,以「郵戳為憑」即可證明文件收寄的時間[28];而時戳所扮演的角色即為數位化的郵戳,是資訊時代不可或缺的安全機制,時戳可以為任何電子文件或電子交易提供準確的時間證明,並且驗證文件或交易的內容自蓋上時戳後是否曾被人修改過。時戳服務機構(time-stampingauthority,TSA)[1,9,16,17]通常扮演一個可信任的第三機構來提供資料在某一特定時間前即已存在的證據,而時戳服2務(time-stampingservice)已成為公開金鑰基礎建設(PKI)的一部份[2,6],並且是許多網路安全應用的關鍵部份,例如Kerberos、網路交易等等。當文件或文件的雜湊值被送往TSA要求時戳時,TSA伺服端將回應一個時戳記號(time-stampingtoken),其可用來指出資料或雜湊值在某一特定時間前即已存在。有諸多情況是我們必須去證明一些資料被建立或修改的日期和時間[8],而TSA將會透過一目瞭然的聨結通道來聯結時戳記號,對任何人而言,要事前未被查覺地在聨結通道的中間插入一份文件,在計算上是不太可能的[14,19]。在這個研究中,我們探討建立時戳服務系統之之相關應用技術,以掌握時戳服務系統的優缺點,進而提出TTS(TrustedTimeService)系統設計,以強化現行的時戳服務系統。在伺服端,我們使用依據OpenSSL計劃[12,21]提供的開放原始碼軟體OpenTSA做為中介軟體,在Linux環境中建立TTS伺服器,且為了保護私鑰,TTS伺服端配有SLE4428IC卡和Omnikey[11]的USBIC卡讀卡機,時戳回應則由存在IC卡內的私鑰所簽發;在客戶端,BorlandC++Builder6[4]為發展TTS客戶端的軟體工具,其能透過IC卡的密碼確認方式[7,18,22]與伺服端進行認證;此外,客戶端與伺服端的通訊協定即是依據IETFRFC3161標準[6]。貳、文獻探討本章主要係針對完成可信賴的時間服務系統(TTS)所需的相關理論及技術加以探討;其中包括相關的密碼學演算法、ASN.1、X.509數位憑證、OpenTSA、IC卡、阻斷服務攻擊等簡介。2.1相關的密碼學演算法安全雜湊演算法(securehashalgorithm,SHA)[24,29]是由美國國家標準技術局(NIST)所發展出來的,並在1993年成為安全雜湊標準(FIPSPUB180),而在1995年又將其修訂版本發佈為FIPSPUB180-1,即為通稱的SHA-1。SHA-1接受任何長度小於264的訊息並產生一個160位元的訊息摘要。MD5是RonRivest在MIT所發展出來的訊息摘要演算法[15]。MD5可以輸入任意長度的明文位元,而其輸入的明文會被分成好幾個512位元的區段來處理,最後產生128位元的訊息摘要。2.2ASN.1ASN.1(AbstractSyntaxNotationOne,定義在X.208)[3]抽象語法符號,是一個ITU-T(X.680)和ISO(ISO8824-1)標準。其目的是為了在不同機器間用統一的語法表達事物,這是描述資料結構的電腦語言。ASN.1提出一套標準的方法,以敘述各種類型的資料結構,使資料的表示法有一種統一的方式。ASN.1可以用多種方式加以編碼,為了實際儲存或交換數據,資訊需要編碼成一個位元模式。從一個抽象語法轉換成位元模式最普遍的資料編碼規則稱作BER(BasicEncodingRules,定義在X.209),其目的是將ASN.1所敘述的資料結構,以一定的方式編碼以便在網路上傳遞。而另外還有一種編碼方式稱為DER(DistinguishEncodingRules,定義在X.690),它是BER的子集,對ASN.1提供唯一的編碼方式。2.3X.509數位憑證數位憑證是指一份經過數位簽署、包含了所有者名稱以及其公開數位金鑰的電子文件。數位憑證可以用多種形式呈現,但一般的數位憑證標準格式稱做X.509,為OSI標準中的一部份。X.509是由ITU所提出,X.509是X.500系列中的一部份,X.500定義了目錄服務(directoryservice),而X.509定義了X.500的目錄所提供給使用者的確認服務架構,這個目錄可以當成公鑰憑證的儲藏庫。每個憑證都包含了某位使用者的公鑰,並且都已經用可信3賴機構的私鑰簽署過。此外,X.509也定義了數位憑證的結構以及利用數位憑證作認證的協定。X.509數位憑證乃以ASN.1符號表示法定義,詳細記載了組成該數位憑證的二進位資料。而ASN.1可以用多種方式加以編碼,現今標準多使用簡單的DER(DistinguishedEncodingRules),可以產生二進位數位憑證。X.509用到了公開金鑰密碼學與數位簽章技術,其認證結構與確認協定被用在很多不同的地方,包括電子商務中用來作認證、SSL/TSL、SET、IPSec及S/MIME等等,均採用X.509的數位憑證來增加其安全性[24]。2.4OpenTSAOpenTSA計劃的目標是要發展一個穩定的、安全的,並且符合RFC-3161協定標準的開放原始碼時戳服務(timestampingauthority,TSA)之伺服端與客戶端應用程式;該計劃是由ZoltanGlozik所發展,而相關之軟體或加密軟體是由發展OpenSSL[21]函式庫的EricYoung和TimHudson所編寫,其第一個釋出的時戳測試套件是在2002年的5月10日。OpenTSA為OpenSSL的一個工具套件,因之與OpenSSL相同,其在某些簡單許可條件下可以被自由的使用在商業或非商業的用途上。在官方網站可以下載最新的OpenTSA發展套件和支援Apache的時戳模組。2.4IC卡IC卡在外觀上跟一般磁條卡很類似,也就是在符合國際標準的塑膠卡片上封裝積體電路(IC),而卡上有八個金屬接點可作為讀寫裝置提供電源、控制信號和資料傳輸的介面。IC卡內的積體電路可包含微處理器(MCU)和記憶體,若封裝在卡片內的積體電路只含記憶體而不具備微處理器,則稱為記憶卡(MemoryCard),大多僅作資料保存使用,如電話卡;若封裝在卡片內的積體電路包含微處理器和記憶體,則又稱為智慧卡(SmartCard)[28],因其具有微處理器,使得其如同一部電腦般的具有邏輯運算、資料儲存等功能,因此可以利用此功能發展出不同的密碼學演算法來代替現有的系統[25]。傳統的磁條卡(如信用卡、提款卡)容量小,且資料容易讀取、安全措施薄弱、容易偽造,因此產生很多的犯罪行為。IC卡[23]較磁條卡難以偽造,此外,IC卡讀卡機的介面目前有RS-232、USB、PCMCIA、3.5吋磁片等,而其價格也日益便宜;隨著Windows2000提供內建的PC/SC讀卡機驅動程式庫,更使得IC卡越來越適合網路安全應用[26]。2.6阻斷服務攻擊所謂阻斷服務攻擊(Denial-of-Service,DoS),通常是指攻擊者發送大量的網路封包給目標伺服器,致使目標主機的CPU、網路頻寬、記憶體等資源耗盡,因而使得某些服務遺失或者是一些功能失效,暫時無法提供正常服務;第一個著名的DoS攻擊就是MorrisWorm,它可以在數小時內征服五千台電腦。而另一個較常見的攻擊方式稱為分散式阻斷服務攻擊(DistributedDenial-of-Service,DDoS),其對系統所造成的傷害程度遠超過傳統的DoS攻擊,它是一種多對一的阻斷攻擊方式(如圖1),攻擊者透過許多具有安全漏洞的電腦主機作為跳板,對受控主機下達攻擊指令,便可命令更多的代理攻擊主機對攻擊目標主機傳送大量的封包,致使目標主機因無法處理大量封包而導致系統癱瘓。2000年2月,Yahoo、eBay、CNN、Amazon等大型企業網站,就因無法處理一時大量湧進的資訊封包而造成系統癱瘓,致使無法提供正常服務給合法的使用者。本研究中,為了防止類似阻斷服務攻擊的手法癱瘓系統,所以在TTS客戶端配載USBIC卡讀卡機並利用IC卡來儲存通行碼,以便與伺服端進行密碼驗證。4圖1DDoS攻擊模式參、系統架構本研究中所建立的TTS可信賴的時間服務系統主要分成兩個部份,其系統架構圖如下所示:圖2TTS系統架構圖一、在Linux平台下使用OpenTSA[13]開放源始碼所架設的TTS伺服器,與基本時戳服務運作模式不同的是,在本系統中另外加入一TrueTime公司(2002年併為Symmetricom公司)的PCI介面時間卡以取得精確且可任賴的時間來源。此外,伺服端亦加入IC卡和Omnikey的USBIC卡讀卡機以加強保護及管理私鑰。二、採用Borland公司的C++Builder6.0做為開發客戶端軟體程式工具;客戶端軟體具有時戳請求、時戳驗證、時戳接收、儲存及顯示時戳憑證等功能。此外,客戶器端亦使用IC卡和USBIC卡讀卡機和伺服端進行認證。3.1TTS伺服端本研究中TTS伺服端是在FedoraCore1平台上安裝和修改開放原始碼OpenSSL的工具套件OpenTSA[13],並以C語言軟體作為研發的工具,同時,TTS伺服端配有USBIC卡讀卡機和SLE4428IC卡來儲存及擷取TSA的私鑰。OpenTSA係使用gettimeofday()函數取得伺服器系統的時間,但在時戳服務上如果僅以此表示時戳的產出時間,則可能影響其服務的公正性,因此,
本文标题:结合IC卡强化时戳服务之设计与实现
链接地址:https://www.777doc.com/doc-1600821 .html