第十五章 IC卡安全簡介 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
第十五章 IC卡安全簡介 本章介紹 IC 卡相關概念並探討其安全性,從IC 卡的發展、IC 卡基本結構、IC 卡之分類,與 IC 卡原理;也介紹Java 卡、IC卡應用、IC 卡的攻擊及對策,以及常用之IC 卡機制,讓讀者能了解 IC 卡之基本知識與其應用。本章包含 : 簡介 IC卡結構、分類與標準 IC卡的安全性 國內外應用情況
15.1 簡介 IC 卡( Integrated Circuit Card,IC Card) 又稱為智慧卡 ( Smart Card)、集成電路卡,將具有存儲功能、加密功能及資訊處理能力的積體電路晶片模組,封裝並附著於如信用卡尺寸大小的塑膠片基中,便構成了IC卡。 IC卡最早在1970年代發明,IC 卡第一次大量使用是在1983 年法國的付款公用電話卡。 到1990 年代IC卡在歐洲迅速發展,以SIM卡的形式被使用在GSM 行動電話設備中。今日,全世界行動電話無所不在,因此IC卡也變得非常普遍。 1993 年,國際付款組織VISA 、萬事達卡 ( Master Card ) 和Europay 等組織,同意共同開發用於現金卡或信用卡的IC卡規格。1994 年發布了EMV 系統的第一版本,並在1998 年發行穩定的規格版本。
15.1 簡介 從IC 卡的發展,IC 卡廠商對自己的卡片系統的操作都有自己獨特的一套指令集,為能夠統一發展介面,於1996 年有 Java 卡規範被推出,該規範支持一卡多用途。在 Java 卡上可以同時存在多個不同的應用,載入不同的執行碼,可以執行不同的應用。 1997 年,IC卡廠商為普遍推廣IC卡的應用,共同制定一個公開的、與多應用功能的IC卡平台,稱為Multos。 IC 卡具備許多優點,諸如:體積小,攜帶方便,不容易偽造、變造,記憶體容量大,有密碼保護,安全性高。其應用範圍非常廣泛,如金融卡、健保卡、悠遊卡、門禁卡,皆是成功之應用範例。
15.1 簡介 相較於過去常用的磁條卡,IC 卡的安全性較高,且記憶空間較大。磁條卡沒有安全保護措施,只要擁有磁條讀卡機,就可以讀取磁條內的資料。磁條卡很容易被複製,而且其記憶容量約只有 100 個位元組 ( Bytes )。 相反的,IC 卡具有密碼保護功能,需要通過 PIN ( Personal Identification Number ) 的驗證才能使用,如果無法通過驗證,即無法存取資料或使用 IC 卡。 圖 15-1 各式 IC 卡
15.2 IC 卡結構與分類 IC 卡的實體結構主要是根據ISO 7810、7816/1和7816/2標準而設計,ISO 7816著重在IC卡實體與電氣信號規範,以及IC卡與讀卡設備之間資料傳送協定。 整體而言,智慧卡 ( IC 卡) 的實體結構主要包含了塑膠卡片、印刷電路及積體電路晶片三部份。積體電路晶片非常薄,一般成圓形形狀,其直徑約在0.5mm以內,積體電路晶片含有CPU、 RAM、 ROM、 和EPROM。
15.2 IC 卡結構與分類 IC 卡有8 個接觸點,分別以C1 ~ C8 為編號,請參考圖 15-1 IC 卡接觸點示意圖,以及表 15-1 IC 卡接觸點說明。其中C4和C8設計為保留將來使用,接觸面為金屬材質,一般為銅製薄片,積體電路的輸入輸出端C7 (接觸點名稱為I/O ) 連結到接觸面,便於讀寫的操作。 表 15-1 IC 卡接觸點說明 接觸點編號 接觸點名稱 接觸點功能 C1 VCC 電源 C2 RTS 重置 C3 CLK 時鐘脈衝 C4 RFU 保留 C5 GND 接地 C6 VPP 燒錄程式電源 C7 I/O 輸入/輸出 C8 圖 15-2 IC 卡接觸點示意圖
15.2.1 IC 卡分類 IC 卡有幾種不同分類方式 ( 參考圖 15-3)。根據元件分類,可分成記憶卡與晶片卡。根據接觸介面分類,可分為接觸式、非接觸式、與混合式(Hybrid)。根據作業系統 ( OS )分類,可分為 Java 卡、Multos、GSM、與EMV。 圖 15-3 IC 卡的分類方式
15.2.2 依據元件分類 記憶卡為最便宜的卡片,內部包含 EEPROM 以存放應用資料,和ROM 以存放永久資料,加上邏輯電路與輸出/輸入介面 (圖 15-4)。EEPROM 容量大小約 2K ~ 32K。不具備微處理器的晶片記憶卡,是最基本型的晶片卡,只能儲存資料,也無法修改,應用範例如電話IC卡。本質上,它只能稱為記憶卡。 圖 15-4記憶卡內部架構
15.2.2 依據元件分類 具備微處理器的晶片卡有資訊處理功能與計算能力,不僅具有儲存資料功能,同時具有處理指令和資料安全保護等功能。其主要元件包含 (圖 15-4 ): CPU (Central Processing Unit ) CPU是晶片卡的核心部分,通常使用8位元微處理器,已有漸漸朝向16或32位元微處理器發展的趨勢。晶片卡具備一個核心的卡片作業系統COS ( Card Operating System ) 以提供各種系統服務。 ROM ( Read-Only Memory) 內含有卡片作業系統,大小從幾K 到32 KB,資料一旦寫入則無法更改。 EEPROM ( Erasable Programmable Read-Only Memory ) 內含有卡片的應用程式和資料,大小從2K到32 KB,資料可以清除或覆寫。 RAM (Random Access Memory ) 主要用於存放程序執行時的堆疊、暫存資料以及做為I/O的緩衝區,當電源中斷時,其內的資料會消失,一般大小為256 位元組或 512 位元組。
15.2.2 依據元件分類 圖 15-4 晶片卡內部架構
15.2.3 依據介面分類 依照介面分類,IC卡可分為:接觸式IC卡、非接觸式IC卡、以及混合式IC卡。 接觸式IC卡(Contact IC Card)即是在塑膠卡片上封裝積體電路,並在卡上提供外接的金屬接觸點,使得讀寫裝置可對它提供電源和信號,並使兩者之間可互相通信傳輸資料。 非接觸式的IC 卡 ( Contactless IC Card ),由IC卡晶片與感應天線組成,封裝在一個標準的塑膠卡片或其他裝置內。卡片在一定距離範圍 ( 通常為2.5 ~ 10 公分 ) 靠近讀寫器表面,透過無線電波的傳遞來完成資料的讀寫操作,應用了無線技術,可在一定距離內讀取智慧卡資料。應用範例如悠遊卡。 非接觸式 IC 卡,具備無線通訊功能,使用無線射頻辨識技術 ( Radio Frequency Identification,RFID )。由菲利蒲公司 ( Philips ) 研發的Mifare無線射頻辨識技術系列產品,目前佔有廣大的市場。Mifare 系列產品使用頻率為 13.56 MHz 無線技術,為非接觸式IC 卡,不需外加電池,透過感應線圈提供卡片所須電力,將資料傳輸至讀卡機。其記憶體共1 K 位元組,記憶體共分成獨立的16個區段(Sector),可供多個應用系統分別使用不同之區段。每一個區段均可自行訂定其存取權限。
15.2.3 依據介面分類 同時擁有接觸式與非接觸式存取方式的晶片 IC 卡,稱為混合式 ( Hybrid) IC 卡。 新一代的 IC 卡,同時提供接觸式以及非接觸式的指令與資料傳送等作業,該卡片稱為 『 Combi Card 』。 Combi Card之應用將可符合各式各樣的業界需求。
15.2.4 依據作業系統分類 各家廠商在開發IC 晶片卡的過程,皆有自己的開發界面與指令集,因此系統開發人員需要非常熟悉底層通信界面與協定,才能導入IC晶片卡於各種應用。所以在開發IC 卡應用系統時,需要花費許多時間與金錢,以結合各種不同應用系統之開發。 Java 卡之發展,即是針對各種複雜的開發程序,希望發展一套統一的標準介面。Java 卡為接觸式的 IC 卡,Java 卡的內部結構如圖 15-6 所示。 圖 15-6 Java 卡內部結構圖
15.2.5 IC 卡使用標準 IC 卡的種類繁多,各類 IC卡各有其參考的標準,表15-1列出常見的 IC 卡標準以供參考。 GSM/3GPP SIM/ME,STK :GSM11.11,GSM11.14 JAVA Card Java card 2.2xx : java.sun.com EMV Book1~4 : www.emvco.com Multos www.multos.com ISO 接觸式:ISO 7816 part1~part 10,非接觸式 : ISO 14443
15.2.6 IC卡應用範疇 使用IC 卡具備有高安全性,可以保護個人身分與重要資料,攜帶方便,使用便利,記憶資料容量大,且具有穩定性。非接觸式的 IC 卡,不必與讀卡機接觸,可以減少經常的摩擦所造成的晶片磨損,並且可具有驗證、加密等安全機制。 IC 卡的應用領域很廣,包含交通運輸業、金融業、電話通訊業、健保醫療業、校園應用等,表 15-2 舉列 IC 卡應用領域與其應用系統。 表 15-2 IC 卡應用領域與應用系統 IC 卡應用領域 IC 卡應用系統 交通運輸業 悠遊卡、高速公路電子收費 金融業 提款卡,電子錢包 電話通訊業 SIM 卡 健保醫療業 健保IC卡 電子化政府 身份識別:電子護照、自然人憑證 教育學術 校園IC卡 門禁管制 宿舍門禁系統
15.3 IC 卡的安全性 本節探討 IC 卡之安全性,從技術的觀點,分析 IC 卡的安全與漏洞,並介紹一般攻擊方法與安全防護上的技術。
15.3.1 ISO 7816 安全性 ISO 7816 定義了 IC 卡底層電器特性與協定,在 ISO 7816 中,定義了四種安全機制。 身分碼 ( 或密碼,PIN ) 驗證: IC 卡提供身分碼 PIN 驗證介面,通過驗證成功後,才可取得使用者權限,是保護使用者權限之機制。 金鑰驗證: IC 卡提供外部驗證介面,系統開發者使用金鑰驗證完成後,才可取得 IC 卡使用權限。驗證技術需要由系統發展者提供。 資料驗證: IC 卡內部之公開與秘密資料,在資料進入與送出,皆有驗證碼,以確保資料完整性。 資料加密: IC 卡對於要送出到外界的機密資料,都以加密處理,以確保資訊機密性。對於送入內部的資料須加以解密,需要適當權限才能取得資料之使用權。
15.3.2 IC 卡的攻擊 IC 卡的攻擊方法是使用相關技術針對 IC 卡之弱點進行攻擊,以竊取或變更其中機密資料。IC 卡的攻擊依形態包含實體攻擊與邏輯攻擊。 實體攻擊 直接存取內部元件(包括處理器,匯流排,記憶體等),使用微探針(或探測器)進行探測、觀察,以操作或干擾對模組或晶片動手腳,分析及鑑別系統元件和它們之間的交互關係。亦可使用紫外線、X-射線、雷射、電磁場、區域加熱、或光學技術等,誘導錯誤發生以改變它的內容值。 邏輯性攻擊 是一種非侵略性的攻擊,對模組裝置沒有實體損壞。可採用相關設備收集電磁輻射等訊號以重建資料。亦可利用執行加解密運算所耗費之時間特徵,以推導出私密金鑰等攻擊方法。
15.3.3 非接觸式 IC 卡認證程序 IC 卡系統的卡片和讀卡機之間的資料傳輸與資料處理,需要具備隱密性,以及相互認證以確保資料之安全。IC 卡系統的認證程序規範為 ISO-9798-2。每張卡片均具有一個獨一、不重覆、且無法變更的序號。 卡片上的記憶體分成固定大小的區段,每一個區段各自擁有其執行認證所需的金鑰,存取卡片上之記憶體均需通過認證程序後,才可以讀寫資料或執行應用程式。 卡片記憶體的每一個區段(Sector)都有對應的權限控管。每一個區段的控管包括多組金鑰和可更改的存取權限。多組金鑰和存取權限可用來組成階層式的金鑰管理,以管理不同區段的存取方式。
15.3.3 非接觸式 IC 卡認證程序 卡片和讀卡機之間的溝通使用安全認證程序(如圖 15-7),為雙向認證程序,卡片與讀卡機都會彼此認證對方。假設在初始化狀態,卡片與讀卡機皆擁有一把相同的金鑰 K,其雙向認證程序如下: 卡片產生一個亂數 RA 傳給讀卡機。 讀卡機接到該資訊後,產生一個亂數RB,並將亂數RA、亂數 RB、參數 B、與訊息 Text1,使用金鑰 K 加密並傳送資訊Enc( RA || RB || Text1)K至卡片。其中參數 B是作為防止重送攻擊之用;Enc( RA || RB || Text1)K,Enc 表示加密,下標 K 表示使用金鑰,|| 表示資料串接。 卡片接收到讀卡機送來之資料後,使用金鑰 K解開資訊,檢查 RA之值是否相同,如果不同則停止通訊程序。若相同則使用金鑰 K,加密資訊Enc( RB || RA || Text2)K ,並將之送給讀卡機。 讀卡機接收到資訊後,使用金鑰 K 解開之,比對所傳送資訊中的 RA 與 RB 與讀卡機中之 RA 與 RB 是否都相同。藉此以完成雙向認證程序。 圖 15-7卡片和讀卡機使用認證程序
15.3.4 IC 卡與磁條卡之安全性比較 磁條卡片在日常生活中應用非常廣泛,例如信用卡等。而磁條卡片在應用上也存在很多的危機,如果保護不慎常會遭受到財務的損失,所以在使用上要注意其安全性。 相反的,使用IC 卡比較安全,IC 卡有嚴密的保護機制、使用卡片時需要輸入PIN碼並須通過驗證,每筆交易均擁有唯一的交易序號、卡片內有金鑰之保護等等。 表 15-4 IC 卡與磁條卡片之各項比較 比較項目 磁條卡 IC 卡 卡片被偷竊或遺失,遭人冒用。 有遭受冒用之虞慮。 防護機制安全性高。 以不當途徑取得持卡人資料,或加工製作出偽造卡片。 易於偽造,可使用電腦、錄碼機、燙印機等。加工製作。 不易偽造。 不當取得之卡片,加以變造 易於變造。 不易變造。 利用網路交易,竊取信用卡或加值卡之資料。 易於取得資料。 不易取得資料。
15.4 國內外應用實例 IC卡的相關技術逐漸成熟,網路消費的活動也漸漸普及,再加上IC卡本身具有安全、便利等特性,使得IC卡廣泛被應用在許多領域。 圖 15-9 IC 金融卡 圖 15-10 電話 IC 卡 圖 15-11 行動電話SIM 卡
15.4.1 國內IC卡的應用實例 在國內常見的IC卡應用實例,包括了IC金融卡、電話IC卡、校園IC卡、行動電話的SIM卡,以及健保卡IC。 多功能的IC金融卡 這種IC金融卡上的晶片可以被區分為多個區域,每個區域負責不同的功能;例如可以綜合電子錢、電話卡、大額轉帳消費、健保醫療等功能。在使用上,消費者只要持用I C金融卡,到提供自動服務的機器或銀行的撥轉設備,將自己帳戶中的一部份金額撥存到IC金融卡的晶片內,便可以此I C金融卡上街購物、到加油站加油、或打電話。 電話IC卡 目前有些公用電話已經改為IC卡式的,這種公用電話以IC卡來取代硬幣或一般電話卡,用戶可持用一般的金融IC卡和電話IC卡打電話。IC電話卡除了可以記錄餘額之外,也可記錄常用之電話號碼。用戶只要將IC卡插入IC公用電話機中,即可顯示原先儲存的電話號碼,極為便利。
15.4.1 國內IC卡的應用實例 校園IC卡 近年來,許多學校是與銀行簽約,並交由銀行來發行校園IC卡。結合學生證與金融業務的功能,校園IC卡已成為一張多功能的卡片。基本上,校園IC卡的大小與一般IC金融卡相同,上面並附加持有人姓名、照片、就讀科系、學號等顯性資料。內部則可儲存多項資訊,例如寢室門禁資料、圖書館借書資料、學生基本資料、以及原本的金融卡資訊等。 行動電話SIM卡 近年來國內迅速成長的一項通信設備是數位式行動電話,而數位式行動電話中的那張「用戶識別卡」或「SIM卡」是重要的關鍵。若是行動電話內缺少那張卡,或是用戶無法通過用戶識別卡的驗證,行動電話就無法使用。而在這張SIM卡內儲存的資訊,包含有個人的使用資料、行動電話系統的基本資料、以及保護使用者的安全資料等。
15.4.1 國內IC卡的應用實例 健保卡IC 健保IC卡的上面記錄有保險對象的姓名、身分證號、出生日期、卡片號碼及照片,民眾持用貼有照片的健保IC卡看病時,不需要攜帶身分證明文件。因為健保IC卡的IC晶片內具有足夠的記憶體,其記錄的內容包含個人基本資料段、健保資料段、醫療專區和衛生行政專區。 圖 15-12 健保 IC 卡
15.4.2 國外IC卡的應用實例 在歐洲IC金融卡的使用十分普及,例如在英國、德國、法國、瑞士、比利時、丹麥、葡萄牙等國家,民眾可以持用IC卡於公共電話、加油站、停車繳費、超市購物、乘坐交通工具以及日常的支付。以下介紹可重複儲值的「新加坡現金卡」、香港公共交通運輸所使用的「Octopus 智慧卡電子收費系統」、以及英國的「電話式之自動提款機系統」和法國的「行動電信 IC卡交易系統」。 新加坡現金卡 在1996年11月,新加坡電子傳輸網路公司(NETS)推出了一套可重複儲值使用的現金卡,民眾可以到各參與銀行之分行、郵政服務處、以及自動販賣機等購買現金卡。每當卡片內餘額快用完時,持卡人可以持卡片到自動櫃員機(ATM)將金額轉存入現金卡,而ATM亦會從持卡人銀行帳號中將每次轉入的金額扣除掉。 香港Octopus智慧卡 香港的公共交通收費,包括巴士、地鐵、鐵路、以及油麻地小輪等公共交通工具,於1997年8月開始使用智慧卡電子系統,這套電子收費系統在當地被稱為「八達通」,是採用可重覆、非接觸式的IC 卡。民眾只需將IC卡靠近收費站的感應器,就可自動扣繳費用。通過時,收費器上同時顯示餘額資訊,當卡內餘額所剩不多時,可持卡到設有售票處或增值機的地方補充儲值。
15.4.2 國外IC卡的應用實例 電話式之自動銀行服務 在英國,Barclaycard信用卡公司與Cellnet 電信網路公司發展出全世界第一個「電話式之自動提款機」,透過電信網路,用戶可獲得銀行自動提款機服務。IC晶片持卡人只要將卡片插入有網路連線的電話機具,並鍵入密碼與提領金額,就可以迅速將帳號中的現金轉存入卡片內,卡片內可以儲存的現金額度為50英鎊。 行動電話 IC卡交易 法國的行動電信網路公司也開發了全世界第一個「行動電信 IC卡交易系統」。使用這套系統,用戶可以利用行動電話手機與晶片式信用卡向商店下訂單進行購物。商店接獲訂單訊息後,便可以透過電信網路及用戶的行動電話,向用戶確認訂單訊息。該用戶再將晶片式信用卡插入手機匣口,並輸入密碼就可完成該筆交易。 圖 15-13 Octopus智慧卡