Page 228 - 捷運技術 第38期
P. 228

222                         徐春進 史敦仁 捷運系統票證加密與通訊安全







                                                        Master
                                                        Diversify Key
                                     CIM                Mater Key A/B                      KMS



                Diversify Key A/B                                Master Key
                                         NoteBook                A/B
                                                                 Diversify          Master MACing Key
                                                                 MACing Key

                                           ᠐ьኳಔ!
                    ஽ၯь!                 Master Key A
                      Key A                                         SPS/CD               Master
                                          Master Key                                      MACing Key
                      Key B            Master Diversify Key

                                      Diversify MACing Key                                  DDIT!
                           Ҭܰၗ਑
                                                                  Ҭܰ㩷   MAC
                                                                  ၗ਑!
                                             圖六 票證公司金鑰管理系統

            4.  傳送端電腦(悠遊卡讀寫模組)將MacTx 當成MAC附加在資料塊之後,以網路傳送往

               CCHS
            5. 目的端電腦(CCHS)收到資料塊及附於其後之MAC(MacTx)後完成下述處理步驟
            6. 目的端電腦解開MAC(MacTx),獲得接收到之「交易資料塊」之訊息摘要之明碼

                 javax.crypto.Cipher crx = Cipher.getInstance(“DES”);
                 crx.init(Cipher.DECRYPT_MODE,  MacKey );         //以MacKey解密
                 byte[] MacTxR=crx.doFinal(MacTx.getBytes());
            7.  目的端電腦產生「接收到之交易資料塊」之訊息摘要(MessageDigest),這裡以採用
               SHA-1摘要演算

                 java.security.MessageDigest DigeAlgoR=java.security.MessageDigest.getInstance("SHA-1");
                 加入要進行計算摘要的交易資料塊
                 DigeAlgoR .update(接收到之交易資料塊.getBytes());

                 計算出摘要ResulltingDigestR
                 byte[] ResulltingDigestR= DigeAlgo .digest();
            8. 目的端電腦比較兩個訊息摘要,比較是否一致
                 java.security.MessageDigest.isEqual(ResulltingDigestR, MacTxR );
                 如果比較結果不一致,表示收到之交易資料塊為非法終端設備所傳出或則是接收到之交

            易資料塊內容已被竄改,因此這筆資料須丟棄(discard)。


            (五)網路通訊:
                 如前所述,有線網路傳輸區之資料流其底層傳輸協定為TCP/IP,但配合清算中心及各終

            端模組之製造商之相容性,實作上層協定採用Message Queue、FTP、CORBA等,這些協定
            簡化程式開發時間,以下做一簡介,請參考:
   223   224   225   226   227   228   229   230   231   232   233