掌桥专利:专业的专利平台
掌桥专利
首页

基于蓝牙BENP系统的POS终端定位及数据传输方法

文献发布时间:2023-06-19 09:33:52


基于蓝牙BENP系统的POS终端定位及数据传输方法

技术领域

本发明属于通信技术领域,尤其是涉及一种基于蓝牙BENP系统的POS终端定位及数据传输方法。

背景技术

现有技术中,传统POS终端通过连接手机app获取手机定位数据,通过手机app传输给POS终端后台服务器。2)POS终端产品内置通信模块,包括: wifi、2G/3G/4G、cat1、NBIoT等,通过与网络基站的数据通信,获取基站的位置信息,然后上报传输给POS的服务器端。

现有技术的缺陷在于:1)App方式操作步骤复杂,需要用户授权,需要手机与pos相互切换使用比较麻烦;2)内置网络模块方式实现定位功能,网络模块成本高。

发明内容

本发明旨在解决上述技术问题,提供一种基于蓝牙BENP系统的POS终端定位及数据传输方法。

为了达到上述目的,本发明采用如下技术方案:

基于蓝牙BENP系统的POS终端定位及数据传输方法,所述蓝牙BENP系统包括POS终端、移动设备端、后台服务器,所述POS终端包括数据输入组件、MCU安全芯片、POS终端蓝牙模块、显示屏、定位模块,所述移动设备端包括移动设备端蓝牙模块、移动设备端网络模块,所述后台服务器包括后台服务器蓝牙模块、后台服务器网络模块、数据校验模块、数据处理模块;

所述数据输入组件通过以下方式获取外部数据:通过摄像头识别二维码,通过NFC模块读取支持NFC功能的支付卡,通过磁条卡读卡模块读取磁条类支付卡,通过IC卡读卡模块读取支持IC功能的支付卡;所述MCU安全芯片用于连接数据读取模块接收并处理获取的外部数据,驱动显示屏并将数据传输给显示屏供用户确认,MCU安全芯片将需要传输的数据加密后通过POS终端蓝牙模块传输给移动设备端蓝牙模块,或者通过移动设备端的网络模块连接网络传输给后台服务器;所述POS终端蓝牙模块通过BNEP连接移动设备端蓝牙模块,通过BNEP协议方式发送MCU安全芯片传输的数据给后台服务器及传输后台服务器端传回的数据给MCU安全芯片处理,或者通过手机App连接蓝牙实现数据透传;所述显示屏用于显示交易的数据信息,供用户比对确认信息,同时用于交易的签名;所述定位模块用于获取POS终端当前的位置信息数据;

所述移动设备端蓝牙模块与POS终端蓝牙模块通过BNEP的方式连接,POS终端通过移动设备端蓝牙模块与移动设备端网络模块实现数据的传输,通过移动设备端的网络与后台服务器实现网络访问;

所述后台服务器网络模块连接网络,接收移动设备端通过网络传输的数据和通过网络将数据传输给移动设备端;所述数据校验模块负责验证收到的数据并传输给数据处理模块;所述数据处理模块用于处理接收到的数据信息,并按照要求通过后台服务器网络模块给移动设备端发送数据;

所述POS终端定位及数据传输方法,包括:POS终端通过POS终端蓝牙模块,采用蓝牙BNEP协议方式,利用移动设备端的网络与支付厂商的后台服务器实现对接,实现POS终端与后台服务器进行数据流的交互;用户发生交易需要支付时,后台服务器获取POS终端的位置信息进行校验,POS终端通过读取定位模块上报的位置信息数据,通过蓝牙BNEP传输给后台服务器。

作为优选,还包括GPS漂移处理方法,POS终端实际应用中因用户的状态虽然处于相对静止状态,但当位于交通工具上,可以会出现GPS位置的漂移情况,GPS漂移处理方法包括以下步骤:

a1.检测到的状态为静止时,强制速度为0;

a2.速度为0时,强制方向为0;

a3.数据中的速度值为0时,就不去更新地图上的经纬度;

a4.通过比较上次定位数据的经纬度差的绝对值再来判定是否有慢速移动,比较上次定位数据的经纬度差的绝对值时,包括时间数据。

作为优选,还包括TLS/SSL动态加密方法,基于支付产品对安全的要求,蓝牙BNEP使用的TCP/IP协议通讯的过程中,采用TLS/SSL加密,以保障用户交易过程的数据安全,TLS/SSL动态加密方法包括以下步骤:

b1.POS终端通过发送"client hello"消息向后台后台服务器发起握手请求,该消息包括了POS终端所支持的 TLS 版本和密码组合以供后台服务器进行选择,还有一个"clientrandom"随机字符串;

b2.后台服务器发送"server hello"消息对POS终端进行回应,该消息包含了数字证书,后台服务器选择的密码组合和"server random"随机字符串;

b3.POS终端对后台服务器发来的证书进行验证,确保对方的合法身份;

b4.POS终端向后台服务器发送另一个随机字符串预主密钥"premaster secret",这个字符串是经过后台服务器的公钥加密过的,只有对应的私钥才能解密;

b5.后台服务器使用私钥解密"premaster secret";

b6.POS终端和后台服务器均使用 client random,server random 和 premastersecret,并通过相同的算法生成相同的共享密钥 KEY;

b7.POS终端发送经过共享密钥 KEY加密过的"finished"信号;

b8.后台服务器发送经过共享密钥 KEY加密过的"finished"信号;

b9.握手完成,双方使用对称加密进行安全通信;

TLS/SSL协议握手完成后,POS终端与后台服务器即进入加密通信,在使用普通的HTTP协议进行网络数据交换,但是其会用"会话密钥"加密内容。

作为优选,步骤b3中,具体包括以下步骤:

b31.检查数字签名;

b32.验证证书链;

b33.检查证书的有效期;

b34.检查证书的撤回状态,撤回代表证书已失效。

作为优选,还包括显示屏签名方法,基于对签名安全方面的及应用中的要求,签名算法使用DSA算法实现,DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,所述显示屏签名方法包括以下步骤:

c1.使用SHA编码将发送文件加密产生128bit的数字摘要;

c2.发送方用自己的专用密钥对摘要再加密,形成数字签名;

c3.将原文和加密的摘要同时传给对方;

c4.接受方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生同一摘要;

c5.将解密后的摘要和收到的文件在接受方重新加密产生的摘要相互对比,如果两者一致,则说明在传送过程中信息没有破坏和篡改,否则,则说明信息已经失去安全性和保密性。

作为优选,所述移动设备端网络模块、后台服务器网络模块的连接网络为3G、4G、5G、WIFI、cat1或NBIoT。

采用上述技术方案后,本发明具有如下优点:

POS终端在无内置网络通信模块及不适用手机app的情况下,或者无法获取到POS 的位置信息的设备,通过在POS终端中内置定位模块的方式,即可以获取POS终端的位置信息。然后通过蓝牙BNEP协议,可以在与后台服务器通信时实现传输POS终端的位置数据给到后台服务器。此方式可以实现在不支持定位的POS终端上实现POS终端获取和传输POS终端的实时位置数据。

附图说明

图1为蓝牙BENP系统的数据传输关系图;

图2为蓝牙BENP系统的结构示意图;

图3为显示屏签名算法流程图。

具体实施方式

以下结合附图及具体实施例,对本发明作进一步的详细说明。

本发明提供一种基于蓝牙BENP系统的POS终端定位及数据传输方法,如图1-2所示,所述蓝牙BENP系统包括POS终端、移动设备端、后台服务器,所述POS终端包括数据输入组件、MCU安全芯片、POS终端蓝牙模块、显示屏、定位模块,所述移动设备端包括移动设备端蓝牙模块、移动设备端网络模块,所述后台服务器包括后台服务器蓝牙模块、后台服务器网络模块、数据校验模块、数据处理模块;

所述数据输入组件通过以下方式获取外部数据:通过摄像头识别二维码,通过NFC模块读取支持NFC功能的支付卡,通过磁条卡读卡模块读取磁条类支付卡,通过IC卡读卡模块读取支持IC功能的支付卡;所述MCU安全芯片用于连接数据读取模块接收并处理获取的外部数据,驱动显示屏并将数据传输给显示屏供用户确认,MCU安全芯片将需要传输的数据加密后通过POS终端蓝牙模块传输给移动设备端蓝牙模块,或者通过移动设备端的网络模块连接网络传输给后台服务器;所述POS终端蓝牙模块通过BNEP连接移动设备端蓝牙模块,通过BNEP协议方式发送MCU安全芯片传输的数据给后台服务器及传输后台服务器端传回的数据给MCU安全芯片处理,或者通过手机App连接蓝牙实现数据透传;所述显示屏用于显示交易的数据信息,供用户比对确认信息,同时用于交易的签名;所述定位模块用于获取POS终端当前的位置信息数据;

所述移动设备端蓝牙模块与POS终端蓝牙模块通过BNEP的方式连接,POS终端通过移动设备端蓝牙模块与移动设备端网络模块实现数据的传输,通过移动设备端的网络与后台服务器实现网络访问;

所述后台服务器网络模块连接网络,接收移动设备端通过网络传输的数据和通过网络将数据传输给移动设备端;所述数据校验模块负责验证收到的数据并传输给数据处理模块;所述数据处理模块用于处理接收到的数据信息,并按照要求通过后台服务器网络模块给移动设备端发送数据;

所述POS终端定位及数据传输方法,包括:POS终端通过POS终端蓝牙模块,采用蓝牙BNEP协议方式,利用移动设备端的网络与支付厂商的后台服务器实现对接,实现POS终端与后台服务器进行数据流的交互;用户发生交易需要支付时,后台服务器获取POS终端的位置信息进行校验,POS终端通过读取定位模块上报的位置信息数据,通过蓝牙BNEP传输给后台服务器。

本发明还包括GPS漂移处理方法,POS终端实际应用中因用户的状态虽然处于相对静止状态,但当位于交通工具上,可以会出现GPS位置的漂移情况,GPS漂移处理方法包括以下步骤:

a1.检测到的状态为静止时,强制速度为0;

a2.速度为0时,强制方向为0;

a3.数据中的速度值为0时,就不去更新地图上的经纬度;

a4.通过比较上次定位数据的经纬度差的绝对值再来判定是否有慢速移动,比较上次定位数据的经纬度差的绝对值时,包括时间数据。

具体算法如下:class test{private LocationPojo preLocation;private List nowLocation;private Long preTime;public boolean test(List now,LocationPojo pre) {this.nowLocation = now;this.preLocation = pre;double distance = 0;//两点坐标点距离int tmp = 40;//精准度上行初始阀值(固定)int AccuracyThresholdUp = tmp;//精准度上行阀值int AccuracyThresholdDown = 30;//精准度下行阀值int stopCount = 0; //静止状态坐标计数int rectCountDown = 0; //坐标在30M围栏内计数int rectCountUp = 0; //坐标在100M围栏外计数int notCheckUpCount = 0; //超出大围栏计数,不检查精准度/*** 如果没有上一次的GPS数据,那么直接返回这次的GPS数据。

**/

if (this.preLocation() == null){

this.preLocation(this.nowLocation.get(0));

this.preTime = this.preLocation().getAddTime();//上一次记录的时间

return true;

}

LocationPojo b = null;

//循环计数(此循环每次定位间隔是1秒,每次定位数据达到10条后进入计算)

//用10条现在的GPS数据与上一次的GPS数据,进行数据计算。

for (LocationPojo pojo:this.nowLocation){

if (b == null){

b = pojo;

}

//判断不是GPS数据,如果不是,改变阀值的上下值

if (pojo.getProvider().equals(GPS.GPS)) {

AccuracyThresholdUp = (int)(tmp * 1.5);//网络定位普遍在40以上,所以需要改变精准度的阀值。

}else{

AccuracyThresholdUp = tmp;//由于是循环的,所以每次都需要重新赋值。

}

if (pojo.getSpeed() <= 0 || (pojo.getSpeed() > 0 &&pojo.getAccuracy() > AccuracyThresholdDown)){

stopCount++;

}

//测算距离

distance = CommUtils.getLocationDistance(pojo.getLatitude(),pojo.getLongitude(),preLocation.getLatitude(),preLocation.getLongitude());

//优化速度精准度

if(pojo.getSpeed() > 0 && distance > 0){

//距离 / 时间 * 3.6 = 速度(KM)

// float speed = CommUtils.fromatNumber(distance /((pojo.getAddTime() - this.preTime) / 1000) * 3.6,null);

// pojo.setSpeed(speed); pojo.setSpeed(CommUtils.formatNumber(pojo.getSpeed().doubleValue(),"#0.00").floatValue());

}

//latlnt电子围栏 30 - 100m

//超出围栏(条件是:lat或者lnt与上一次坐标匹配大于[100m]并且精确度在30m以内,条件成立)

if (distance > 100){

notCheckUpCount++;

//高精准度(GPS数据应该是可靠的)

if(pojo.getAccuracy() < AccuracyThresholdUp){

rectCountUp++;

//如果上一次GPS精准度大于这一次,那么次数GPS数据是有效的。

if(pojo.getAccuracy() <= preLocation.getAccuracy()){

b = pojo;

}

}

}else if (distance > 30 && pojo.getAccuracy() < AccuracyThresholdUp){

//如果在电子围栏内,并且精确度在30m以内,条件成立

rectCountDown++;

if(pojo.getAccuracy() <= preLocation.getAccuracy()){

b = pojo;

}

}

}

//a:在30米的围栏中必须有速度值,而且超出小围栏的计数>=5个,条件成立则正在移动(30M直径的正方形)

//a1:在100米的围栏中有8个条数据均超出,不管有没有速度,条件均成立

double a = getNowLocation().size() * 0.5;

double a1 = getNowLocation().size() * 0.8;

if ((stopCount <= 5 && rectCountDown >= a) || rectCountUp >= a1 ||(notCheckUpCount == getNowLocation().size() && rectCountUp >= a) ||(stopCount >= a && rectCountUp >= a)){

this.setPreLocation(b);

this.setPreTime(b.getAddTime());

return true;

}

return false;

}

}

本发明还包括TLS/SSL动态加密方法,基于支付产品对安全的要求,蓝牙BNEP使用的TCP/IP协议通讯的过程中,采用TLS/SSL加密,以保障用户交易过程的数据安全,TLS/SSL动态加密方法包括以下步骤:

b1.POS终端通过发送"client hello"消息向后台后台服务器发起握手请求,该消息包括了POS终端所支持的 TLS 版本和密码组合以供后台服务器进行选择,还有一个"clientrandom"随机字符串;

b2.后台服务器发送"server hello"消息对POS终端进行回应,该消息包含了数字证书,后台服务器选择的密码组合和"server random"随机字符串;

b3.POS终端对后台服务器发来的证书进行验证,确保对方的合法身份;

b4.POS终端向后台服务器发送另一个随机字符串预主密钥"premaster secret",这个字符串是经过后台服务器的公钥加密过的,只有对应的私钥才能解密;

b5.后台服务器使用私钥解密"premaster secret";

b6.POS终端和后台服务器均使用 client random,server random 和 premastersecret,并通过相同的算法生成相同的共享密钥 KEY;

b7.POS终端发送经过共享密钥 KEY加密过的"finished"信号;

b8.后台服务器发送经过共享密钥 KEY加密过的"finished"信号;

b9.握手完成,双方使用对称加密进行安全通信;

TLS/SSL协议握手完成后,POS终端与后台服务器即进入加密通信,在使用普通的HTTP协议进行网络数据交换,但是其会用"会话密钥"加密内容。

步骤b3中,具体包括以下步骤:

b31.检查数字签名;

b32.验证证书链;

b33.检查证书的有效期;

b34.检查证书的撤回状态,撤回代表证书已失效。

如图3所示,本发明还包括显示屏签名方法,基于对签名安全方面的及应用中的要求,签名算法使用DSA算法实现,DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,所述显示屏签名方法包括以下步骤:

c1.使用SHA编码将发送文件加密产生128bit的数字摘要;

c2.发送方用自己的专用密钥对摘要再加密,形成数字签名;

c3.将原文和加密的摘要同时传给对方;

c4.接受方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生同一摘要;

c5.将解密后的摘要和收到的文件在接受方重新加密产生的摘要相互对比,如果两者一致,则说明在传送过程中信息没有破坏和篡改,否则,则说明信息已经失去安全性和保密性。

DSA加密算法签名验证过程:

p:L bits长的素数。L是64的倍数,范围是512到1024;

q:p - 1的160bits的素因子;

g:g = h^((p-1)/q) mod p,h满足h < p - 1, h^((p-1)/q) mod p > 1;

x:x < q,x为私钥 ;

y:y = g^x mod p ,( p, q, g, y )为公钥;

H( x ):One-Way Hash函数。DSS中选用SHA( Secure Hash Algorithm )。

p, q, g可由一组用户共享,

签名及验证协议如下:

1. P产生随机数k,k < q;

2. P计算 r = ( g^k mod p ) mod q

s = ( k^(-1) (H(m) + xr)) mod q

签名结果是( m, r, s )。

3. 验证时计算 w = s^(-1)mod q

u1 = ( H( m ) * w ) mod q

u2 = ( r * w ) mod q

v = (( g^u1 * y^u2 ) mod p ) mod q

若v = r,则认为签名有效。

所述移动设备端网络模块、后台服务器网络模块的连接网络为3G、4G、5G、WIFI、cat1或NBIoT。

所述定位模块可以为:GPS、北斗、GNSS、Glonass、Galileo、GNSS等支持定位系统功能的各种模块衍生产品。

采用上述技术方案后,本发明具有如下优点:

POS终端在无内置网络通信模块及不适用手机app的情况下,或者无法获取到POS 的位置信息的设备,通过在POS终端中内置定位模块的方式,即可以获取POS终端的位置信息。然后通过蓝牙BNEP协议,可以在与后台服务器通信时实现传输POS终端的位置数据给到后台服务器。此方式可以实现在不支持定位的POS终端上实现POS终端获取和传输POS终端的实时位置数据。

除上述优选实施例外,本发明还有其他的实施方式,本领域技术人员可以根据本发明作出各种改变和变形,只要不脱离本发明的精神,均应属于本发明所附权利要求所定义的范围。

相关技术
  • 基于蓝牙BENP系统的POS终端定位及数据传输方法
  • 一种基于低功耗蓝牙标准的智能穿戴设备与移动终端数据传输方法及系统
技术分类

06120112213802