第十五章 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智慧卡