基于藍牙通信技術和密鑰芯片的手機電子錢包支付系統(tǒng)
1.1 項目背景
本文引用地址:http://www.ex-cimer.com/article/201612/326318.htm藍牙(BlueTooth)是一種支持設備短距離通信的無線電技術。能在移動電話、PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。利用藍牙技術藍牙技術能夠有效地簡化移動通信終端設備之間的通信,使數(shù)據(jù)傳輸變得更加迅速高效。
電子錢包是電子商務購物活動中常用的一種支付工具,主要適用于小額購物。在電子錢包中存放的電子貨幣,如電子現(xiàn)金,電子零錢等等。常見的電子錢包有如電話IC卡、交通乘車卡等等。
由于藍牙設備在手機中有極高的普及度,使用藍牙通信實現(xiàn)電子錢包對硬件的更新需求小,開發(fā)復雜度相對沒那么高,能夠很快的直接投入應用。在通信過程中的安全主要依賴于加密算法。
實現(xiàn)了該系統(tǒng)之后,手機不僅僅能夠用做支付手段,而且能夠用作門禁功能。另一方便,如果在家電之后嵌入藍牙設備,那么就能夠容易的實現(xiàn)一臺手機與所有家電及外設通信,控制所有的家電。這樣,一臺手機實現(xiàn)購物、公交、門禁……幾乎擁有無限的可能性。
1.2設計摘要
本項目的目標旨在實現(xiàn)一個使用手機作為支付終端的電子錢包支付系統(tǒng)。將FPGA構建為一個密鑰芯片,利用手機中的藍牙設備作為通信手段,實現(xiàn)整一套的電子錢包系統(tǒng)。密鑰芯片通過藍牙接收手機傳送過來的錢包數(shù)據(jù),解密認證,之后實施消費支付,然后改變錢包參數(shù),通過藍牙重寫入手機之中。整個系統(tǒng)的關鍵在于三個地方:藍牙通信的具體實現(xiàn)、交易協(xié)議的設計以及密鑰算法的安全性。
1.3 申請捐贈實驗板
Nexys3 FPGA開發(fā)板
二 方案設計
2.1 系統(tǒng)實現(xiàn)原理與需求分析
密鑰芯片系統(tǒng)需要提供兩大功能,一個是認證,另外一個則是加密、解密數(shù)據(jù)。根據(jù)系統(tǒng)設計的需要,在FPGA外圍需要接入一個藍牙的通信設備,以便與手機藍牙設備通信、交換數(shù)據(jù)。
由于支付系統(tǒng)的商業(yè)性質(zhì),該系統(tǒng)最重要的特性就是安全性。為了實現(xiàn)系統(tǒng)的安全特性,在設計交易協(xié)議和加密算法的時候就需要有更多的考慮。以抵御非法用戶的各種攻擊,保護系統(tǒng)。
此外,系統(tǒng)需要考慮一個效率的問題。用戶愿意花費在支付或者認證的時間是非常短的,這種非接觸式的支付必須在1秒之內(nèi)完成??紤]到藍牙的傳輸速率很高,通訊協(xié)議以及密鑰算法的耗時則是主要的瓶頸因素。
2.2 硬件資源配置與架構
需要的硬件資源有:
具備藍牙功能的手機、Nexys3 FPGA開發(fā)板、相應的藍牙外設
2.3 軟件架構
軟件層次的設計,首先涉及到密鑰芯片與手機端的交換數(shù)據(jù)的過程,然后是外設(PC)控制芯片并與芯片交換數(shù)據(jù)的過程。在外設控制芯片的設計時,主要與具體的應用有關。如果是實現(xiàn)門禁功能,可能外設只需要實現(xiàn)開門或者拒絕認證的功能則可,如果是實現(xiàn)支付功能,則需要從外設中獲取具體的扣費信息,并返還認證、扣費成功與否的信息給外設。同時,外設需要設定其扣費額度等信息,配置密鑰芯片的運行。
本系統(tǒng)實現(xiàn)的是電子錢包,以之為例,外設需要啟動密鑰芯片的扣費功能,令其開始接受外部的扣費請求;外設需要設定密鑰芯片的扣費額度;當扣費成功(或者失敗)的時候,芯片需要返回該信息給外設,而外設則可以做相應的處理。
在密鑰芯片與手機端藍牙設備交換數(shù)據(jù)的時候,需要遵循一定的交易協(xié)議。由于該協(xié)議的設計和實現(xiàn)是本系統(tǒng)的核心部分,決定了整個系統(tǒng)的安全性,因此需要慎重考慮。在本申請書中先提出一個草案,此草案將在具體項目實施的過程中逐步完善,已達到所需的安全性。首先在密鑰芯片被設定為可接受請求狀態(tài),接著手機端主動發(fā)出認證請求,之后密鑰芯片返還一段隨機明文要求其簽名。手機端簽名后發(fā)送給密鑰芯片獲得認證。接著手機端獲得密鑰芯片返還的認證成功的信息之后將加密過的電子錢包數(shù)據(jù)發(fā)送給密鑰芯片。芯片完成解密、扣費和加密之后將數(shù)據(jù)返回給手機端。手機端存儲芯片返回的數(shù)據(jù),并通知芯片存儲成功。整個扣費過程就此結束,接著芯片返回初始狀態(tài),等待下一次認證請求。
下圖將給出整個業(yè)務的粗略流程圖。為了保證整個流程的安全性,在實際開發(fā)中需要使用到時間戳、唯一可識別序列號、簽名私鑰等等信息,而圖中為了描述方便,省略這些信息。而在實際的開發(fā)中,這些要素是必不可少的。
評論