攀枝花醫保管理系統IC卡數據結構分析
文章出處:http://5052h112.com 作者:fondcard 人氣: 發表時間:2011年09月17日
[文章內容簡介]:本文主要說明醫保系統中采用的各種IC卡片中的數據結構及相互關系,是系統構成的重要技術性文章。
概 述
本文主要說明醫保系統中采用的各種IC卡片中的數據結構及相互關系,是系統構成的重要技術性文章。
在本系統中,根據IC卡類型可分為兩種:CPU卡和SLE4428邏輯加密卡;根據其應用功能的不同,可以分為:總控卡、密鑰傳輸卡、密鑰卡和醫保卡(也可以叫用戶卡)。另外,由于系統管理的需要,特別添加了管理員卡(用于登錄發卡系統)。
其相互關系如下:
一、 CPU卡
本系統采用的CPU卡系符合國家勞動保障部規定的智能IC卡,芯片采用符合社保要求的國產華大芯片,自帶8位微處理器,數據存儲空間為8K ,CPU卡的操作系統(COS)為廣東德生科技有限公司自主開發并獲得社保認證的社保IC卡操作系統。目前已在廣東省、云南省等地區廣泛應用。
CPU卡中所有信息都是以文件形式保存的,而文件又是以目錄形式組織的〔事實上,在CPU卡里,目錄也被稱為文件,叫專用文件(DF),而保存具體數據的文件叫基本文件(EF)〕,在創建文件的時候,即可以設置對該文件的操作限制,如允許直接讀、允許通過安全認證后改寫、固化不得改寫等。
而為了控制對不同的文件的讀寫控制,又可以設置不同的密鑰(長度為8/16個字節),換言之,可以設置為要讀某一個文件,需驗證密鑰1,要改寫該文件,則需驗證密鑰2,而要讀另外一個文件,又可以設置要求驗證密鑰3……這樣一來,其安全性得到了明顯的提高。
二、 邏輯加密(SLE4442)
邏輯加密卡常被通俗地叫成IC卡,它是通過一個邏輯安全機制,來控制卡片信息的讀/寫操作的。
4428卡有三重數據安全機制:卡片密碼、密碼錯誤計數器及數據保護。
1.卡片密碼:控制著IC卡數據區數據的改寫,即要改寫IC卡的信息,必須驗證IC卡的密碼——保證卡上數據安全而不被撰改;
2.卡片密碼錯誤計數器:當IC卡密碼驗證失敗時,該計數器減1,如果減到0,則該卡片物量鎖死,如果驗證成功,則該計數器恢復到初始值——防止惡意跟蹤和嘗試;
3.數據保護指將寫在IC卡上的信息進行寫保護操作,如同磁盤的寫保護開關,一旦寫保護操作成功,則該數據信息不可改(可針對一個字節進行寫保護操作)——防止數據修改和保證唯一性。
本系統在IC卡(也就是醫保卡)的安全規劃上,采用了綜合、全面的安全措施,使得系統的安全性得到了最大限度的保障,其具體的措施如下:
1.最大的也是最核心的,一卡一密
首先說明,很多IC卡應用中,都是用相同一個密碼,長度一般為2-3個字節,其安全隱患在于如果有人破得了一張IC 卡的密碼,則整個系統將面臨危險。
一卡一密則很好地解決了這一問題,它的原理是先從IC卡的數據保護區內讀取一個(唯一的、足夠長的、不可改的)卡片序列號(SN),長度為8個字節,然后通過標準的、通過安全認證的、通用的加密算法(3DES),進行加密運算(DEA),得到一個8字節的密文,對該密文進行某種固定的取舍,即可得IC卡的密碼。
具體過程如下圖:
2.卡序列號唯一并固定
相對來說,該方案很多應用中都采用它,一來它可以保證卡片的合法性,另一方,也方便了IC卡的管理。防止一些回收卡重新非正常渠道流入應用中。
補充說明:該序列號可以為明碼,也可以為密文
3.數據加密
數據加密同樣也是應用得較多的一種安全措施,因為IC卡本身的原理是任何時候都可以讀取卡上的信息,試想,如果一個攻擊者可以輕易地看到你的目標和路徑的話,那他接下來想的一定是無論如何也要達到,而相反,如果一個攻擊者一開始面對的就是漆黑一片,他幾乎很難讓自己再堅持走下去。(以上僅為個人想法)
4.數據校驗碼和兩種校驗算法同時采用
數據校驗是防止外人惡意篡改,這也是信息安全的一種常用模式,也是必須采用的。
本系統采用兩種數據校驗算法,分別為:加權平均和求異或校驗碼長度為1個字節,分高低2位BCD碼,高位為加權平均值,低位為求異或。兩種算法同時應用,為系統的安全性加重了科學依據。
5.CPU卡的加入
CPU卡加入為系統的安全性提供的最大的保障,CPU卡主要應用在醫保卡卡片密碼的計算和卡上數據區數據信息的加/解密。CPU卡的加入,為系統增添了許多特點,如:
系統安全控制密鑰由用戶方領導入系統管理員共同輸入產生,卡片供應商、軟件開商發無法獲知系統的原始密鑰;
CPU卡在卡片內計算產生密文信息,避免了在程序中進行數據加/解密運算所帶來的不確定因素;
CPU卡為其本身的安全提供了嚴格的管理機制,系統將嚴格按此機制設計開發發卡系統。
其它在此不再作詳細的論述。
三、 總控卡
總控卡主要完成對所有CPU卡的安全控制,包括通過它對密鑰傳輸卡的安全認證從而啟動一般密鑰卡的發行;通過它解鎖密鑰卡上的操作口令;通過它完成已經使用過的CPU卡洗卡操作,從而清空CPU中的安全數據等。
總控卡通過系統管理員輸入一串16個字節的系統卡片總控密鑰產生。該總控密鑰該被分散到每一張密鑰卡中,作為密鑰卡合法性鑒別的依據。
具體關系圖如下:
說明:由于總控中存放的密鑰卡卡片主控密鑰系校驗密鑰卡的合法性,以使有別與其它應用中的CPU卡,所以,它的安全性不是至關重要的。因此它的產生和管理也就相對來說簡單些。
四、 密鑰傳輸卡
它的重要性就在于它存放了密鑰卡中真正進行數據加密計算和醫保卡卡片密碼計算的兩組密鑰,同時還存放了該密鑰產生的原碼串(也就是由負責領導輸入的原兩組原碼串和系統管理員輸入的分散因子),該卡將是系統安全的來源。
密鑰傳輸卡由總控卡控制發行,如下圖所示:
密鑰傳輸卡中的信息結構:
1.由用戶方負責人直接輸入兩組16個字符,通過系統轉換為BCD碼。并由系統管理員輸入兩組分散因子(長度為8個字節),分別為卡片密碼計算密鑰分散因子(PSUB)、卡片數據加密計算密鑰分散因子(DSUB);
2.以上三人輸入的字符串將分別保存在三個順序文件中:0004、0005、0006;
3.以上三人還要求分別輸入各自的口令,分別為:Pin1,Pin2,Pin3,長度為2-8個字節,該口令控制著各自的原碼信息讀出;
4.將領導I輸入的原碼串對PSUB進行分散,得8字節臨時密文I:PkeyL;
5.將領導II輸入的原碼串對PSUB進行分散,得8字節臨時密文II:PkeyR;
6.PkeyL & PkeyR=Pkey(卡片密碼計算密鑰);
7.將領導I輸入的原碼串對DSUB進行分散,得8字節臨時密文I:DkeyL;
8.將領導II輸入的原碼串對DSUB進行分散,得8字節臨時密文II:DkeyR;
9.DkeyL & DkeyR=Dkey(卡片數據信息加/解密計算密鑰);
10.將卡片數據加/解密計算密鑰(Dkey)保存到文件EF01中,該文件的讀寫控制為:改寫:不允許;讀:卡片主控密鑰認證和線路加密;
11.將卡片密碼計算密鑰(Pkey)保存到文件EF02中,該文件的讀寫控制為:改寫:不允許;讀:卡片主控密鑰認證和線路加密。
邏輯結構圖如下:
關于密鑰傳輸卡的一些安全特性如下:
1.其使用必須通過總控卡的有效性認證(認證卡片主控密鑰),本系統中所有密鑰卡的卡片主控密鑰(MK)都是一致的。該密鑰是對卡片合法性的有效認證;
2.密鑰傳輸卡是系統安全數據源,有其有效的管理,也就是對系統安全性的管理。它是系統原始密鑰的;
3.密鑰傳輸卡的原始密鑰數據的改寫權限為不允許,讀操作要求驗證相應人員的PIN,同時,數據在卡與終端的傳輸過程中采用了線路加密技術,防止他人截取。
五、 管理員卡
管理員卡的加入,主要是為了加強對醫保發卡系統的有效管理,控制醫保卡的發行工作了密鑰卡的安全產生。
管理員卡按權限的不同,又分為系統管理員卡和發卡管理員卡,前者擁有發卡系統的全部操作權限,而后者則只能完成與發醫保IC 卡相關的操作,如數據鏈接、醫保IC卡的發行、重寫以及數據清除等。
管理員卡是在總控卡和密鑰傳輸卡控制下產生的,具體過程如下圖:
管理員卡的安全特性:
1. 管理員口令控制著兩組密鑰的使用權
2. 終端管理員對終端的安全管理就是對該密鑰卡的管理,同時,該密鑰卡又成為了終端管理員身份卡
3. 終端管理員基本信息可以根據應用需要進行擴充。
管理卡的數據結構如下圖:
六、 密鑰卡(終端應用)
密鑰卡與管理員卡的數據結構幾乎是相同的,只是要密鑰卡的根目錄下添加了一個標識文件,具體內容請參見管理員卡。
七、 醫保IC卡
醫保IC卡的數據結構主要分為三部分:前32個字節的卡序列號(卡號)、持卡人基本信息、交易記錄。
本文關鍵詞:IC卡,數據結構,CPU卡,邏輯加密,總,C卡,數據結構,CPU卡,邏輯加密,總控,卡,數據結構,CPU卡,邏輯加密,總控卡
上一篇:PKI技術漫談[ 09-17 ]
下一篇:技術與大型體育賽事的安全防衛、管理控制(上)[ 09-17 ]