標籤:

為什麼晶元卡不能被複制?

不能隨便修改數據很容易理解,這個可以加密。但是晶元卡為什麼不能被複制啊。拿一張同樣的卡在裡面寫入同樣的數據不行么。就算原來的卡里所有的數據都是加密的,我讀不出來但是可以複製一張一模一樣的啊


恩,這個怎能不答…先mark

先來個形象的:

磁條卡是各完全沒有思想的雕塑,推進ATM機里(當然不僅是ATM,還可能是POS機或其他終端),ATM去特定位置(雕塑的手臂上,底座上,脖子後頭等等……)讀取卡片的信息,包括卡號,有效期,發卡行信息,等等。如果是一個假的ATM機,照樣可以讀取到這些信息,反正雕塑是死的。

晶元卡是有思考能力的,它推進ATM後是這樣的。

ATM:嘿卡兄,你好,我讀一下你的卡號吧。

卡:你說讀就讀啊?你是誰啊你?

ATM:我,我是愛存不存銀行的ATM機。

卡:你說是就是 啊,你們行長叫什麼?他秘書叫什麼?身高體重?腰圍褲長?

ATM:行長叫XXX,他秘書叫YYY,胸圍XXX,腰圍xxx,頭圍xxx……

卡:恩……看來你還真是個合法的ATM

ATM:就是,就是。快說卡號吧

恩,就類似這樣

=========================正經的分割線==============================

好吧,上面說的過於調侃,也不嚴謹,其實卡號這樣的信息是可以隨便讀的。下面說正經的。

晶元卡和終端之間,有互相認證的過程。根據中國人民銀行發布的《中國集成電路卡規範》,卡片認證終端合法性的過程,叫做外部認證。終端認證卡片合法性的過程,叫做內部認證。咱們一個一個說。

外部認證:

外部認證使用對稱演算法。每張卡片中都會有一個用於外部認證的秘鑰——其實就是一串數字,有16個位元組長。每一張銀行卡的這個秘鑰都是不同的,發卡的時候是使用銀行的一個母秘鑰對卡內數據,比如卡號,進行運算,得到這張卡得秘鑰,然後寫進卡里。進行交易的時候,卡片要求終端使用該秘鑰對當次交易的數據(比如交易金額,交易時間,交易貨幣代碼等等)進行運算,算出密文輸入進卡片。合法終端可以從後台獲取銀行的那個母秘鑰,並且能夠讀取到卡中的卡號等公開信息。(是的,卡號是隨便讀的,畢竟它不就印在你的卡上么)終端就可以算出你卡內寫的那個秘鑰是多少,然後用這個秘鑰按照卡片的要求加密數據傳送到卡片中,卡片用內置的秘鑰進行校驗,校驗通過,則認為該終端是合法終端。認證了終端的合法性以後卡片才允許終端做一些高級別的交易,比如修改電子現金餘額。然而卡號,有效期這樣的數據是不需要認證就可以從卡片中讀出來的。

於是有的人說了,這不還是可以隨便複製么?找張白卡寫上同樣的卡號?好,關鍵點來了:終端認證卡片合法的依據是IC卡私鑰!IC卡私鑰!IC卡私鑰!

內部認證:

IC卡私鑰就是內部認證用的。內部認證使用的是非對稱演算法。國際演算法是RSA,現在在努力推行國密演算法sm2,然而……呵呵。非對稱演算法的特點是,有兩個秘鑰(也就是兩串數字),分別叫做公鑰和私鑰。一段明文經過私鑰運算之後,就變的他媽都認不得了。但私鑰並不能把它變回原樣,必須用對應的公鑰才可以讓它重回母親懷抱。銀行卡內就存著一個IC卡私鑰,這個私鑰也是每張卡都不一樣的。一旦寫入卡里,就再也沒人知道這私鑰是什麼了。卡片負責保證IC卡私鑰的安全,任何情況下都不會被泄露。連發卡的銀行也不知道一張卡片裡面的IC卡私鑰是什麼。進行內部認證的時候,終端根據卡片內讀出的公開的信息,可以計算出卡片的IC卡私鑰對應的公鑰是什麼。(這個過程很複雜,期間需要跟發卡行的後台以及CA認證中心進行認證,就不展開說了,反正合法的終端可以獲得IC卡公鑰)然後終端發給卡片一些數據,通常是隨機數,卡片用卡內存儲的IC卡私鑰對這個數據進行加密,把密文輸出給終端。終端用IC卡公鑰解密,確認是剛才自己發給卡得那幾個隨機數,則認為卡片是合法的卡片。

所以,如果要複製晶元卡,就必須要得到這個每張卡都不一樣的,連銀行都不知道是什麼的,從來都不會被以任何形式輸出的IC卡私鑰!!


卡片防複製機制是在交易的時候有一個動態數據驗證,晶元卡內有一部分存儲區域是不能被隨便讀取的,是每張卡片特有的,就算複製卡片,這片區域內的數據是不能被讀取出來;做交易的時候有一個動態驗證,需要終端向卡片發送隨機數指令,卡片用卡內的私鑰對收到的數據加上卡片內其他數據做加密運算,產生一個動態的證書,返回給終端,終端用卡片公鑰解密,解密出來的數據如果格式符合銀聯標準的規定,那麼就說明卡片沒被複制,如果不符合,說明卡片私鑰和公鑰不匹配,卡片被複制了


複合IC銀行卡僅用於過渡 有磁條仍難逃克隆風險,單一晶元卡更安全

昆明警方偵破特大盜刷銀行卡案 晶元卡照樣被複制


晶元卡可以被複制


應該正確來說:按照當今計算機技術,晶元卡很難複製;磁條卡很容易複製。

晶元里有加密演算法,若要使用現在的計算機破解需要耗費很長時間,100年或更長不等。


一般晶元卡都有屬於自己的獨立數據 不容易被複制 如果你想複製需要一個讀卡器 好像還有其他的手段吧


晶元是可以被複制的,但是複製的成本太高,通過正常手段,是很難複製(但是通過異常手段,直接從NVM中獲取數據,這是有可能得,但是代價很大)。磁條卡為啥容易複製,因為正常的工具都能讀取磁軌信息,所以花費的成本不高。


晶元里有加密演算法,晶元會計算的,不是讀出信息的。明文被晶元加密後發送出去。讀卡器只得到一個結果,就像你叫一個人把文件加密,發給你,無法知道密鑰。


有的時候,有些東西不是不能複製,是因為那是違法的,也掙不了多少錢,把自己搭進去,何必呢。


推薦閱讀:

TAG:安全 | IC卡 |