無憂支付網首頁
囊括國內所有第三方支付公司信息
為客戶提供最優質的支付接口服務
24小時服務電話
站內搜索
您當前的位置:主頁 > 相關文檔 >

基于藍牙的無線支付系統設計

添加時間:2018-12-19 14:31
  藍牙作為一種常見的短距離通訊技術,其通訊距離可達10米以上,幾乎所有的智能手機都支持藍牙。傳統刷卡支付需要用戶簽名或者在POS機機輸入卡片密碼,步驟繁瑣且安全風險大, 在客流量巨大的商場超市,劣勢更為明顯。隨著移動技術的發展,二維碼掃碼支付逐漸替代了傳統刷卡支付,但掃碼支付仍然存在諸多問題,例如需要在公開場合暴露手機屏幕,攝像頭受到光線和距離的影響較大,在網絡不佳時無法完成支付,二維碼ID不能無限分配,另外也無法在用戶端實現單步操作完成交易。為解決上述問題,本文試圖描述一種基于藍牙的無線支付方案,具有比掃碼支付更優秀的安全性和便利性。另外如果對本方案稍加修改,可以將藍牙POS機替換為安裝有商戶管理App的智能手機,以便應用到其他更加細分的支付場景,例如出租車等。如圖1所示。

藍牙POS機
  
  1、系統結構
  
  我們將交易雙方分為商戶和用戶,商戶使用藍牙POS機+商品掃碼器+支付網關,用戶使用帶有藍牙功能的智能手機+支付管理App.
  
  藍牙POS機為安裝有Android操作系統,帶有藍牙/網絡/USB接口的觸屏版POS機。藍牙POS機機中內置IC卡,卡中包含商戶信息,商戶信息具有全球唯一ID.支付管理App可以設計為在藍牙配對之后自動喚醒,無需用戶手動運行;
  
  商品掃碼器用于掃描商品的條形碼,可以連接到藍牙POS機的USB接口并與之通訊;
  
  支付網關即為銀聯的支付服務器,用于處理最終交易報文;
  
  智能手機為普通的支持藍牙功能的Android或者iPhone手機;
  
  支付管理App為管理用戶支付憑證及支付過程的手機App,負責通過藍牙協議與藍牙POS機進行數據交換;如圖2所示。
  
  2、詳細步驟
  
  (1)商戶使用商品掃碼器掃描所有商品,商品信息寫入到USB緩沖區,數據格式為(商品總數量N+商品1信息+商品2信息+…+商品N信息)。由于USB協議為被動傳輸協議,因此本步驟中的商品信息應由藍牙POS機循環檢測USB緩沖區來讀取,藍牙POS機每讀取一條商品信息,就把商品總數量N減一,并把商品信息顯示在屏幕上,而掃描器每掃描一件商品,就把商品總數量N加一。當所有的商品都已掃描時,商戶按下藍牙POS機中的確認鍵,此后藍牙POS機在顯示所有商品信息后將自動開啟藍牙功能進入待連接狀態,并發出提示音。
  
  (2)用戶啟動支付管理App(也可以提前將此App保持在后臺運行),將手機不斷貼近藍牙POS機,支付管理App循環枚舉周邊的藍牙設備并讀取藍牙設備ID(即商戶ID)和計算距離,根據預先設置的條件來過濾可連接藍牙設備(例如設備ID格式必須為MERCHANT-XXX,距離必須在2m范圍內)。如果發現單臺符合條件的藍牙設備,則靜默完成配對和連接,如果存在多臺符合條件的藍牙設備,則顯示設備列表提示用戶選擇目標設備。配對過程靜默完成,不需要用戶輸入PIN碼。手機連接到藍牙POS機之后,藍牙POS機發出提示音。
  
  (3)藍牙POS機與支付管理App通過DH算法協商出256比特的AES密鑰,DH算法可以讓雙方在完全沒有對方任何預先信息的條件下通過明文信道創建起一個密鑰。藍牙POS機與支付管理App此后所有的數據交換都要經過AES加密,不得傳送任何明文信息,以防止可能發生的旁路嗅探攻擊。密鑰協商大致過程如下:1)藍牙POS機與支付管理App協定使用大質數p以及大基數g,p與g均為正整數;2)藍牙POS機選擇一個秘密整數a,計算A=ga mod p并發送給支付管理App;3)支付管理App選擇一個秘密整數b,計算B=gb mod p并發送給藍牙POS機;4)藍牙POS機計算k=Ba mod p(k即為雙方共享的AES密鑰);5)支付管理App計算k=Ab mod p(k即為雙方共享的AES密鑰)。
  
  (4)藍牙POS機通過已建立的加密通道向支付管理App發送詳細商品信息,并進行聲音提示以防止交易中止,支付管理App將商品信息和總價顯示在手機屏幕供用戶確認。
  
  (5)用戶核對訂單信息,如果發現訂單有誤,可以點擊取消按鈕,支付管理App向藍牙POS機發送交易取消指令,交易過程中止;如果訂單無誤,則輸入支付密碼進行支付,支付管理App將銀行卡號,由支付密碼加鹽(當前時間)而產生的CRC校驗碼發送到藍牙POS機并等待交易結果,支付過程中用戶端無需聯網。
  
  (6)藍牙POS機將支付信息發送至支付網關進行最終結算,接收交易結果,如果交易成功,則向支付管理App發送交易成功指令,支付管理App收到該指令后向用戶展示交易成功界面;如果交易失敗,則向支付管理App發送交易繼續指令,支付管理App收到該指令后回到步驟5繼續支付。
  
  (7)藍牙POS機關閉藍牙功能,回到步驟1繼續處理下一位用戶的訂單;如圖3所示。
  
  3、結語
  
  由于快捷安全以及適應性強的特點,藍牙支付是一種極有前景的支付模式,實際上在國內某些領域已經在使用與藍牙支付類似的NFC技術。相對于NFC支付,藍牙支付不需要升級現有的硬件設備,大部分工作可以通過修改軟件來實現。若要部署到實際生產環境,最重要的工作是制定統一的藍牙通訊和加密協議,該協議是在藍牙傳輸協議基礎上的數據交換協議,藍牙POS機與支付管理App之間通過該協議來交換數據。在本方案中,還有以下幾點需做說明:
  
  (1)每個藍牙POS機均有唯一設備ID,此設備ID需要包含其商戶信息,以便支付管理App進行過濾。每次交易完成后支付管理App可以記憶商戶ID以便下次靜默配對,如果是新設備首次配對則需要用戶手動確認配對。
  
  (2)為了加密效率起見,本文對藍牙傳輸采用的加密算法為AES對稱加密,由于支付過程較短且被人為操控,此加密算法的安全性已經足夠。若要進一步提升安全性,則可以采用2048位RSA非對稱加密,方法是在詳細步驟3的基礎上進行以下操作:1)藍牙POS機使用已協商的密鑰k加密自己的RSA公鑰M發送給支付管理App;2)支付管理App執行解密獲取藍牙POS機的RSA公鑰M;3)支付管理App使用M加密交易報文發送給藍牙POS機;4)藍牙POS機使用自己的RSA私鑰N解密出交易報文。
  
  此加密方式要求藍牙POS機預置一個RSA密鑰對,私鑰N應設置為只能使用但無法讀取的狀態。
  
  (3)兩臺藍牙設備距離之間的距離,可以使用RSSI(Received signal strength indication)進行測算。方法是注冊一個傳感器服務(SENSOR_SERVICE)通知,當設備位置發生變化時就開始計算周圍的藍牙設備距離:
  
  計算公式:
  
  d=10^((abs(RSSI)-A)/(10*n))
  
  其中:
  
  d-計算所得距離(米);  
  RSSI-接收信號強度(負值);  
  A-發射端和接收端相隔1米時的信號強度;  
  n-環境衰減因子。
3d杀号定胆澳客网