第十五章 IC卡安全簡介
Download
Report
Transcript 第十五章 IC卡安全簡介
第十五章 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
C5
C2
C6
接觸點編號
接觸點名稱
接觸點功能
C1
VCC
電源
*** ***
C3
C7
C2
RTS
重置
C4
C8
C3
CLK
時鐘脈衝
C4
RFU
保留
C5
GND
接地
C6
VPP
燒錄程式電源
C7
I/O
輸入/輸出
C8
RFU
圖 15-2 IC 卡接觸點示意圖
保留
15.2.1 IC 卡分類
IC 卡有幾種不同分類方式 ( 參考圖 15-3)。根據元件分
類,可分成記憶卡與晶片卡。根據接觸介面分類,可
分為接觸式、非接觸式、與混合式(Hybrid)。根據作業
系統 ( OS )分類,可分為 Java 卡、Multos、GSM、
與EMV。
IC 卡
元件分類
介面分類
應用系統分類
記憶卡
接觸式
Java
晶片卡
非接觸式
Multos
混合式
GSM
EMV
圖 15-3 IC 卡的分類方式
15.2.2 依據元件分類
記憶卡為最便宜的卡片,內部包含 EEPROM 以存放
應用資料,和ROM 以存放永久資料,加上邏輯電路與
輸出/輸入介面 (圖 15-4)。EEPROM 容量大小約 2K ~
32K。不具備微處理器的晶片記憶卡,是最基本型的晶
片卡,只能儲存資料,也無法修改,應用範例如電話
IC卡。本質上,它只能稱為記憶卡。
*** ***
EEPROM
應用資料
輸入/輸出
介面
安全
邏輯電路
ROM
永久資料
圖 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 依據元件分類
*** ***
ROM
永久資料
EEPROM
應用資料
RAM
暫存資料
安全邏輯電路
匯流排
CPU
運算單元
輸入/輸出
介面
圖 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 所示。
執行碼 執行碼 執行碼
(Applet) (Applet) (Applet)
工業增掛類
(Industry Add-on Class)
架構 (Framework)
虛擬機 (VM)
作業系統與基本函數
圖 15-6 Java 卡內部結構圖
15.2.5 IC 卡使用標準
IC 卡的種類繁多,各類 IC卡各有其參考的標準,表15-1
列出常見的 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 是否都相同。藉此以完成雙向認證程序。
1. RA
2. Enc( RA || RB || Text1)K
讀卡機
3. Enc( RB || RA || Text2)K
*** ***
非接觸 IC 卡
圖 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智慧卡