1.什麼叫卡片的個人化?
構建ic卡應用系統過程中,如何定義卡中的資料資訊(相對邏輯加密卡)或卡中的應用型別及其資料資訊(相對cpu卡)及將資料資訊寫入卡中,以便應用於系統中進行交易
是乙個重要環節。這一環節在業界通常稱為卡片個人化。
2.進行大批量和小批量個人化的條件?
卡片個人化既可以在專門的裝置機器上進行,以便於對大批量的卡片進行個人化;
也可以在pc機上通過連線 ic卡讀寫器進行,以便於對小批量的卡片進行個化。
不管硬體裝置如何,都必須設計一套程式軟體來進行個人化。這個程式軟體通常稱為發卡程式。
3.cpu卡發卡的流程是怎樣的?
cpu卡發卡大體可分為三個組成部分:
(1)卡結構建立(預個人化);(2)金鑰寫入;(3)個人化資料寫入。
當然,為確保正確發卡,程式設計過程中最好
是採用一邊建立卡結構,一邊寫入金鑰和個人化資料。
4.發卡前的準備工作有哪些?(外部認證,擦除結構,重新建立結構)
一般地,卡片**商提供卡片時,已經對卡片進行過初始化(主要用於對卡片進行測試),亦即卡片上已經建立了主檔案(mf)及主金鑰檔案(mf下的keyfile檔案),主金鑰檔案中也已寫入了初始卡片
主控金鑰
。在對cpu卡建立特定的卡結構及寫入金鑰和資料之前,我們第一步應該對卡片進行外部認證。外部認證所使用的金鑰正
是初始卡片主控金鑰。
當完成外部認證後,接下來最好是擦
除卡片上已有的卡片結構,然後再開始重新建立卡片結構。(安全起見)
可能遇到的問題
許多發卡程式在設計過程中,沒有考慮到擦除卡片上已有的卡片結構,而
是在完成外部認證後直接改寫原有卡片的主金鑰檔案的卡片主控金鑰。常見問題是由於原有主金鑰檔案建立時的空間大小不夠,而發卡程式試圖寫入除卡片主控金鑰
外還想寫入卡片維護金鑰
時,勢必造成寫入空間不夠而導致寫入不成功。
5.金鑰檔案的建立與金鑰值的寫入
為了獨立地管理一張卡上不同應用之間的安全問題,cpu卡中的每乙個應用放在乙個單獨的adf中。各個adf及其下屬各檔案資料的訪問(包括改寫、讀取)只能應用該adf下的金鑰檔案中的金鑰數值。為討論方便,此處假設只有乙個adf。
使用者卡結構中主要存在以下兩個金鑰檔案及相應的幾個金鑰:
(1)mf下的金鑰檔案(簡稱kmf),其裝載的金鑰
是卡片主控金鑰(簡稱cck);
(2)adf下的金鑰檔案(簡稱kadf),其裝載的金鑰有應用主控金鑰(簡稱ack),應用維護金鑰(簡稱amk),及其它應用金鑰;
(3)其它金鑰,如口令金鑰pin,口令解鎖金鑰,des運算金鑰等等。
6.金鑰檔案的建立需要注意的問題?
各金鑰檔案在建立時必須慎重考慮以下兩個要素:
(1)檔案大小的分配;
(2)有關許可權和金鑰使用後的後續狀態值的規定。
金鑰檔案的大小分配取決於要裝載的金鑰個數。每個金鑰均為一條可變長的記錄,每條記錄的長度為金鑰資料長度加7。以此可以計算金鑰檔案的大小。
在發卡程式設計過程中,常常會出現因為金鑰檔案的大小分配不夠而造成後面的金鑰無法寫入。
7.如何寫入金鑰?(線路保護,密文)
關於金鑰值的寫入,關鍵問題是要弄清楚該金鑰要求以何種形式寫入。通常有以下幾種形式:
(1)以明文形式寫入(常見的如口令金鑰pin的寫入);
(2)以帶線路保護的形式寫入(要求計算mac);
(3)以對金鑰值進行加密後的密文形式寫入(要求計算des或3des);
(4)以對金鑰值進行加密並帶線路保護的形式寫入(要求計算des&mac)。
如果金鑰值的寫入要求加密並帶線路保護,則金鑰值寫入時須對該金鑰值進行des&mac計算後以密文形式寫入(當然卡片作業系統內部會自動將其解釋成明文),帶線路保護的目的是防止金鑰值在寫入的過程中被劫取。如果不要求帶線路保護寫入,可直接以明文方式寫入。
在發卡程式設計過程中,尤其要注意卡片主控金鑰、應用主控金鑰、應用維護金鑰及其它金鑰之間的關係及其寫入要求。
8.卡片的主控金鑰和應用主控金鑰的區別?
卡片主控金鑰是
對整個卡片的訪問起控制作用的金鑰,由卡片生產商寫入,由發卡方替換為發卡方的卡片主控金鑰。發卡程式設計過程中,在對卡片進行任何操作之前,必須使用卡片主控金鑰作外部認證,
應用主控金鑰是
應用的控制金鑰,在卡片主控金鑰控制下寫入。
一般地,發卡方替換卡片的主控金鑰之後,為驗證替換工作正確,再用新的卡片主控金鑰作一次外部認證。
關於sql的對稱性金鑰和非對稱性金鑰(基礎)
首先談一下自己的理解,金鑰我們都知道是對我們所知道的某乙個事物進行加密。先講一下對稱性金鑰,如果我們對乙個資料庫中的乙個表的某些元素進行加密的時候,所用的加密密碼和解密的密碼是一致的,而非對稱性金鑰則剛好是相反的。我們具體看下怎樣對乙個我們想要加密的表資料進行加密和解密。1 加密乙個資料庫中的表的資...
關於ACL的in和out的應用
關於acl的in和out的應用 介紹 www.2cto.com r1 s1 1 ip位址192.168.1.1 lo0 1.1.1.1 r2 s1 0 192.168.1.2 s1 1 192.168.2.1 r3 s1 0 192.168.2.2 s1 1 192.168.3.1 以上所有路由執行...
IBATIS中關於和 與 的應用
ibatis中關於iterate和 與 的應用 乙個包含list元素的hashmap引數賦給sqlmap public int getcountbyid string id,string title,list ids throws exception 上面的ids元素是乙個list,裡面包含了乙個i...