摘 要:本論文通過Android系統的NFC安全框架的研究設計了系統開發原型,采用Micro SD卡接口和JNI技術開發Java Card安全應用程序,實現手持設備與Java Card的安全通信。
關鍵詞:Android;Java Card;安全;APDU
中圖分類號:TN929.5 文獻標識碼:A 文章編號:1674-7712 (2015) 02-0000-01
智能卡技術已經在人們的日常生活中普遍應用,文章將在Java Card安全體系結構的分析基礎上,開發采用SD卡技術和JNI開發模型的安全應用程序。
通信過程中,首先要使用各種認證技術和加密技術來保障各個環節的安全[1],比如對通信雙方進行身份認證、認證消費密鑰等。本文提出一種基于Java Card的安全環境。
一、基于Android的JNI開發模型
Android [2]是一個免費開放的移動設備操作系統平臺,系統采用了該平臺下的JNI的開發模型,通過JNI可以實現Java語言和另一種語言比如C、C++等的交互,是Java語言通向另一種語言的窗口。JNI是Java本地調用的簡稱,說白了在運行一個程序時需要和不同的系統平臺交互,JNI的設計目的就是使Java在不同平臺運行實現,JNI實現的方法是通常使用native來修飾。
二、Java Card體系結構分析
Java Card技術在設計方面做了一定的改變,與智能卡不同的是在智能卡的基礎上安裝Java系統軟件,并且為應用程序預留了充足的空間。如圖1描述了Java Card應用程序的體系結構[3]。
一個典型的Java Card應用程序并不是孤立存在的,它由三部分內容組成,分別是卡端、讀卡端以及讀卡端應用程序和系統。下面更詳細的介紹每部分里的重要元素:1) 后端應用程序和系統;2) 讀卡端應用程序和系統;3) 卡端的小應用程序和系統運行環境。
三、系統實現與分析
應用協議數據單元就是消息傳送模型的核心內容,每一次設備終端設備發送命令APDU給Java Card,Java Card接收到的每一條消息都要傳送給相應的Applet中,Applet對命令APDU作相應的處理,返回一個響應APDU給移動設備終端。
根據系統體系結構,實現了Java Card的讀寫、獲取隨機數、認證、存錢、消費及讀余額等功能,并通過相互認證技術以及數字簽名技術,驗證了通信雙方的合法性,保證了數據的安全。系統實現過程中讀寫設備向Java Card發送的C-APDU以及收到的R-APDU的運行結果如圖2所示。
四、結束語
本文章實現了訪問過程首先對雙方設備進行認證,進而對Java Card上的敏感數據實現讀余額、存錢以及消費等操作,在Java Card上添加驗證以及對通信數據進行加密的過程使得在便攜信息安全方面起到了重要的作用。
本文章根據Android系統的NFC框架設計了系統開發流程以及Java Card安全架構,開發采用SD卡技術和JNI開發模型的安全應用程序,對編寫的Java Card應用程序代碼進行編譯生成的類文件進行格式轉換,轉換為CAP文件,并把轉換后的文件加載到Java Card測試床中運行,開發了手持設備的Android應用程序,實現手持設備安全訪問Java Card,此技術結果也將會在物聯網應用中得到廣泛的應用。
參考文獻:
[1]王明飛.Java智能卡的安全性[J].電腦知識與技術,2011,(24):6015-6016.
[2]田俊靜,張波,黃湘情.Android基礎教程[M].北京:人民郵電出版社,2010.
[3]李健.Java智能卡原理與應用技術研究[D].天津工業大學,2011.
[作者簡介]趙青娟(1989-),女,河北聯合大學,碩士研究生,研究方向:計算機應用技術;(1990-),男,河北聯合大學,碩士研究生,研究方向:計算機應用技術。
[基金項目]河北省自然科學基金研究(F2012401050)