ATM金融行業金鑰原理講述與技術詳解

2021-07-27 02:43:40 字數 1800 閱讀 6360

假設我們有一段資料,是atm取款的報文,包括乙個人的磁卡號、密碼、取款金額。現在需要將這些資料從一台atm機器傳到前置機處理,這些資料是比較機密的,如果被人竊取了,就可以用該卡號和密碼把帳戶中的錢取走,所以我們需要將這些資料進行加密。

加密的功能一共有兩個,乙個是帳號密碼不能被看到,二是帳號密碼不能被改動。

第一種情況帳號密碼不能被看到,目前一般的做法是只對帳號和密碼(也有只對密碼加密的)進行加密,其他的內容不加密的。對帳號和密碼加密有個術語,叫pinblock,即pin塊,就是對帳號和密碼進行des加密處理後的乙個密文資料塊。即然使用了des演算法來加密帳號和密碼,則必然有個key來加密,那麼我們就把這個key稱為pinkey,就是專門來加密使用者帳戶和密碼的key。至於怎樣進行加密形成最後的密文pinblock,有很多標準的,象ibm3624、ansi、iso、diebold等標準,其實它們大同小異,就是在對報文中的密碼進行乙個預處理,再用pinkey來des加密,主要的差別就是怎樣預處理而已,比如有的是密碼後面補f,補夠16位,就是類似這樣的預處理。

第二種情況,帳號密碼不能被改動。一旦報文被截獲,不被改動顯然做不到,但是我們可以通過驗證的方式來判斷是否被改動過。如果被改動過就不處理這個報文。我們可以先對報文第乙個64bit加密,得到64bit的加密後資料data1,接著再拿加密後的data1與報文第二個64bit資料進行按位異或,得到同樣長64bit的資料data2,我再用key對data2加密,得到加密後的資料data3,再拿data3與報文第三個64bit資料進行按位異或,同樣的處理依次類推。直到最後會得到乙個64bit的資料,將這個資料放到報文的最後發到前置機,這樣報文的長度只增加了64bit而已。這個演算法就叫做mac演算法。用來參與mac計算的key就常被稱為mackey,也有叫工作金鑰、過程金鑰。

通過pinkey和mackey對報文進行了兩重處理,基本上報文就是安全的了。如果我們對des演算法比較了解,就會知道,如果想對加密後的密文解密,必須要知道key才行,所以說key一定要保密。怎樣來保密key呢?我們前面提到的無論是算mac還是算pin塊,都是直接拿明文的key來計算的,那麼這個key很容易被竊取的,所以,我們還要對pinkey和mackey本身進行加密。怎樣實現,同樣是des演算法大顯身手的地方。我再找個key對pinkey和mackey進行一次加密。這時用來對pinkey和mackey進行加密的key就被我們稱為masterkey,即主金鑰,用來加密其他金鑰的金鑰。

不過,masterkey依然是明文啊。再找個key來加密masterkey,那最終無論處理多少道,最後的那個key肯定是明文,這樣看來,安全的問題還沒有解決啊。既然此路不通,那我們需要換個思維角度了,仔細想想怎樣處理明文的masterkey。黑客程式只能竊取我軟體上的東西,如果我把masterkey放到硬體裡面怎麼樣,黑客是沒能力跑到我硬體裡面把masterkey取出來的,當然,不排除道高一尺、魔高一丈的情況,但至少99.9%的黑客都沒這能力的。那這樣不就解決了我們遇到的問題了嗎,只要把masterkey放到硬體裡面(一般是鍵盤的加密模組裡面)就好了。

好,到這裡,我們已經不怕有人把報文中的關鍵資訊獲取到了,總算是安全了。

在最近,老是有人提到「硬加密」,這個有什麼用呢?以前我的軟體處理是這樣的,鍵盤每按一下,我就把那個數字在程式裡面先存起來,等到4位或6位密碼按完後,再把它們合在一起,再送給pinkey加密。那如果黑客程式直接把我的按鍵資訊獲取,那他根本不用破解報文中用pinkey加密後的密碼,直接簡單的就把我輸入的密碼得到了。怎麼辦?如果我把獲取按鍵的程式固化進入加密硬體(一般在鍵盤中),按鍵的數字根本不通過上層的軟體,直接一步進入硬體裡面處理,等到按鍵按完了後,硬體直接把經過一道處理的按鍵資訊給我上層軟體,此時已經是密文了,就相當於把前面計算pinblock的處理移到硬體裡面去了,那黑客就沒法獲取我的按鍵了。這種處理現在就被稱為硬加密。

金融行業金鑰詳解

第一層,加密機主金鑰 master key mk 是儲存在硬體加密機內的由三個成分合成的一對最上層金鑰,其作用是將所有存放在本地的其它金鑰和加密資料進行加密,在硬體加密機以外的地方不會以明文形式存放,是 金鑰體系中最高端別的金鑰。硬體加密機投入執行時,必須先產生和裝載mk。由於des演算法依靠某乙個...

金融行業秘鑰詳解

金融行業因為對資料比較敏感,所以對資料的加密也相應的比較重視。在其中有關金鑰及加密方面的文章很少,並且散發在各個銀行及公司的手中,在網上沒有專門對這部分進行介紹的。本文對金融行業的金鑰進行較深入的介紹,包括象到底什麼是主金鑰 masterkey 傳輸金鑰 mackey 為什麼我們需要這些東西等。附 ...

金鑰協商的原理

群組金鑰協商 group key agreement 這種方法是基於分布式的思想,它的特點是 1 群組的多個成員一起參與金鑰生成2 群組中的金鑰是由每個成員提供的引數以及金鑰生成演算法共同決定的3 群組中任何成員均不能事先確定金鑰。有幾種流行的的群組金鑰協商及分配方法,包括ckd centraliz...