一种具有访问控制功能的装置
本申请是申请日为2016年10月25日,申请号为201610932849.1,发明名称为“虚拟钥匙方法及应用该方法的装置、后台***、用户终端”的专利的分案申请。
技术领域
本发明涉及一种操作访问控制装置的技术,特别是涉及安全地操作具有联网功能的智能访问控制装置的技术及后台***和终端。
背景技术
目前现有的访问控制装置使用的技术包括:实体钥匙、密码输入、ID/IC卡识别、RFID卡识别、磁卡识别、二维码识别、蓝牙识别、NFC识别、生物特征识别(如人脸、指纹、虹膜、掌纹等)等。除生物特征识别外,实体钥匙、密码输入、ID/IC卡识别、RFID卡识别、磁卡识别几种技术已经应用多年,但存在管理麻烦(特别是人员流动性较高时),保密性不强,容易被破解或复制,丢失后不好作废等缺点;二维码、蓝牙和NFC随着近几年智能手机的普及而用的得到推广,但现有用智能手机使用这几种技术实现操作访问控制装置的产品或技术都在安全性、可靠性、灵活性、可扩展性、可规模化、通用性方面存在不足。
在先前的专利申请201610914471.2中,公开了基于虚拟钥匙和虚拟钥匙包技术的物体访问权限管理方法及相应的后台***、访问控制装置和用户终端。但是已公开的技术方案只是一个通用虚拟钥匙技术基础框架,并未涉及虚拟钥匙的安全性方案。
发明内容
本发明的第一个目的是提供一种安全可靠而且灵活的虚拟钥匙操作访问控制装置进行锁命令操作的方法及应用该方法的装置、后台***和用户终端。
该方法具体包括:
由后台***为访问控制装置生成和保存访问控制装置的装置公钥和装置私钥,并将装置公钥交给访问控制装置保存,同时返回和保存的还包括项目域密钥;
由后台***在用户终端注册新用户时生成和保存用户的公钥和私钥,并将用户公钥交给用户终端保存;
后台***在用户的虚拟钥匙包中为需要生成虚拟钥匙的访问控制装置生成虚拟钥匙缀,虚拟钥匙缀由使用对应访问控制装置的装置公钥对用户私钥加密而成;
后台***传给用户终端的虚拟钥匙包数据中包括一个或多个(装置标识、虚拟钥匙缀)元素组;
访问控制装置从短距离输入模块识别到用户终端靠近并接收来自用户终端的虚拟钥匙相关数据并完成虚拟钥匙的锁命令操作,其具体步骤包括:
S1、用户终端靠近访问控制装置的短距离输入模块,访问控制装置确认并开始接收输入;
S2、用户终端向访问控制装置发送用户标识;
S3、访问控制装置收到用户标识后在本地检索是否有该用户标识的钥匙权限记录,如果没有则操作终止;
S4、访问控制装置向用户终端发送包括装置标识、项目域密钥、第一时间戳数据,以进行认证;
S5、用户终端收到认证所需的包括装置标识、项目域密钥、第一时间戳数据,在用户的虚拟钥匙包中找到对应的虚拟钥匙缀和虚拟钥匙记录,所述虚拟钥匙记录加上命令类型形成第一钥匙,其中命令类型包括:开锁、上锁、反锁;
S6、向访问控制装置返回认证响应,响应参数中包括:虚拟钥匙缀、第一加密虚拟钥匙数据、第一签名数据,其中返回响应前的步骤包括:步骤S6-1通过散列算法对(第一时间戳、装置标识、项目域密钥、用户标识)计算得出第一对称密钥,步骤S6-2用第一对称密钥对第一钥匙使用对称加密算法加密出第一加密虚拟钥匙数据,步骤S6-3计算第一签名;
S7访问控制装置收到认证响应后,执行以下步骤:
S7-1校验第一签名数据,如果签名数据不符,则操作终止;
S7-2使用装置私钥解密出虚拟钥匙缀中的用户私钥,如果解密失败则操作终止;
S7-3使用解密出的用户私钥解密钥匙权限记录中的虚拟锁芯数据,得到第一锁芯数据,如果解密失败则操作终止;
S7-4根据包括虚拟钥匙相关数据在内的数据计算出第一对称密钥;
S7-5使用第一对称密钥解密第一加密虚拟钥匙数据,得到第一钥匙数据,如果解密失败则操作终止;
S7-6对第一锁芯数据和第一钥匙数据中的具体参数进行核对,如果核对不正确则操作终止;
S7-7核对全部正确后,根据第一钥匙数据中的命令类型参数向电锁控制接口发送相应的锁命令,如果没有命令类型参数默认发送开锁命令。
该方法对使用NFC近场通讯和低功耗蓝牙通讯的用户终端都适用,只要使用对应的通讯协议和消息处理流程即可,具体可以参看具体实施方式中的实施例。对于使用其它短距离无线通讯网络或点对点无线通讯方式,也可以用同样的方法来实现。
该方法不但适用于普通的智能门禁类访问控制装置,也适用于带有联网功能的智能锁装置。在一些实施例中,可以将访问控制装置与车辆控制***进行连接通讯,实现对车辆的开门与开锁启动控制,从而实现安全、灵活和方便的车辆租用管理。对于其它可以移动的物体,如保管箱、保险箱等物体上的智能锁装置也一样适用。另外,该方法还可以操作访问控制装置执行反锁功能。
该技术方案的设计思想是由后台***针对每个访问控制装置生成其每把虚拟钥匙对应的虚拟锁芯,并保存在访问控制装置内,该虚拟锁芯只能由对应的虚拟钥匙加虚拟钥匙缀的组合才能打开读取,而虚拟钥匙和虚拟钥匙缀由后台***生成并传给授权使用的用户的用户终端保存;用户终端通过特别设计的方式将虚拟钥匙和虚拟钥匙缀传递给访问控制装置完成与虚拟锁芯的配对、解锁、详细信息对比的操作。整个处理过程中数据具有防篡改、防暴力破解、防信息泄露、防伪造的能力。同时,保持了锁控制信息的灵活性。另外,在访问控制装置临时断网的情况下,用户终端和访问控制装置也可以完成开锁、上锁或反锁操作,不受断网的影响。而且访问控制装置内的数据不保存用户的私人敏感信息,也不用担心数据泄露和被篡改、伪造的风险。
访问控制装置只在后台***有针对本装置的虚拟钥匙有更新时才会从后台***接收到虚拟钥匙更新消息,以保持装置内的数据与后台***数据的一致性。后台***在用户的虚拟钥匙包中的虚拟钥匙有变化时,会向对应访问控制装置发送虚拟钥匙更新消息,虚拟钥匙记录中包括:授权者、被授权者、虚拟锁芯数据;访问控制装置收到虚拟钥匙更新消息后对保存在装置中的虚拟钥匙数据进行更新。
为了加强用户终端和访问控制装置之间传递虚拟钥匙和虚拟钥匙缀的安全性,该方案中使用了动态时间戳来要求用户终端用来加密和签名,以确保高级别的防攻击和防信息泄露能力。时间戳也可以使用伪随机数方式来替代,效果等同。
为增加加密强度和匹配精度,技术方案中还设计了项目域密钥的使用。同一个项目域中部署的同类访问控制装置均有同样的项目域描述,项目域描述中包括了项目域密钥,该密钥由后台***生成并发给访问控制装置保存使用。它可以增强数据传递时的数据安全性也便于用户终端管理虚拟钥匙包。在不同的实施例中,特定格式的项目域描述还可以被用于指示使用不同的加解密算法、公私钥对强度以及散列算法,凸显了此方案的可扩展性。
本发明并没有限制使用何种非对称加解密算法和密钥强度,只要是支持公私钥对的非对称加解密算法,且满足应用场景的安全和性能要求即可。一般而言,可以使用RSA、ECC、SM2。
实施中,散列算法也可以根据需要,在MD5、SHA1、SHA256、SM3等常用算法中选择合适的。签名算法则可以直接用散列算法,或者是在要求不高的场景下,使用CRC32甚至CRC16即可。
实施中,对称加密算法推荐使用AES-128、AES-192或者AES-256这类算法。
在上述步骤S7-6中,第一锁芯数据和第一钥匙数据中都包括:有效期、类型,类型包括:不限次数、仅限一次、有效期内每天一次。这正是虚拟钥匙技术比实体钥匙或实体卡片要灵活、便利和可扩展的地方。实施中可以设计出更灵活便利的授权方式以满足用户和市场的需要,也可以增加更多字段数据和后续处理来增强安全性。
对于仅限使用一次类型的虚拟钥匙,则在开锁完成后,访问控制装置将此条记录从钥匙权限表中去除并发送第一通知消息给后台***,消息参数中包括装置标识、用户标识、时间。后台***收到来自访问控制装置的第一通知消息,记录在日志中,并更新用户的虚拟钥匙包中对应虚拟钥匙的状态数据,然后将更新后的虚拟钥匙数据以第二通知消息发送给用户终端。用户终端接收到来自后台***的第二通知消息,更新本地存储的虚拟钥匙数据。
在不同的实施例中,用户终端可以是具有不同通讯模块、显示方式和交互方式的智能设备,如智能手机、平板电脑、智能手表、车载设备、智能眼镜、智能机器人等。
本发明的第二个目的是提供一种可使用蓝牙附件装置作为虚拟钥匙解锁介质的方法,以及应用该方法的访问控制装置、后台***和用户终端。具体方法包括:
带有低功耗蓝牙模块的访问控制装置还包括附件权限表,记载可用于访问控制装置开启电锁的附件列表,每条记录内容包括:附件标识、第二时间戳、使用对称加密算法加密的虚拟附件锁芯数据、第二签名数据,接收到后台***发来的虚拟钥匙更新消息方式发送给访问控制装置并保存;访问控制装置通过蓝牙无线连接与接近所述访问控制装置的蓝牙附件装置通讯后得到蓝牙附件装置的蓝牙地址标识;对于收到的所述蓝牙地址标识,在附件权限表中进行核对,步骤包括:
B1、把蓝牙地址标识转换为附件标识;
B2、用附件标识在附件权限表中检索是否有对应附件权限记录,如果没有则核对终止;
B3、取出附件权限记录中的第二时间戳;
B4、用数据指纹算法计算出装置私钥指纹;
B5、使用散列算法对(第二时间戳、装置标识、附件标识、项目域密钥、装置私钥指纹)计算出第二对称密钥;
B6、使用第二对称密钥对附件权限记录中的虚拟附件锁芯数据进行解密,得到附件锁芯数据;
B7、根据(第二时间戳、装置标识、附件标识、附件锁芯数据、项目域密钥、装置私钥指纹)数据进行签名计算,得到的第二校验签名;
B8、第二校验签名与附件权限记录中的第二签名数据进行核对,如果核对不符则终止;
B9、核对附件锁芯数据中的有效期时间和状态,状态包括:有效、失效;
B10、如果在有效期内且状态为有效,则核对成功,向电锁控制接口发送开锁命令;如果附件锁芯数据中的类型为仅限一次类型则开锁完成后,访问控制装置将此条附件权限记录从附件权限表中去除并发送第一通知消息给后台***,消息参数中包括装置标识、用户标识、时间。
后台***生成附件装置所需的虚拟钥匙更新消息的方法是:虚拟钥匙记录中的被授权者信息包括用户在用户终端绑定的短距离无线附件装置的标识信息,即附件标识,虚拟钥匙更新消息中还包括第二时间戳、使用对称加密算法加密的虚拟附件锁芯数据、第二签名数据;第二时间戳由后台***动态生成;虚拟附件锁芯数据由第二对称密钥加密而成,第二对称密钥由散列算法对(第二时间戳、访问控制装置标识、附件标识、项目域密钥、装置私钥指纹)计算得出;第二签名数据根据(第二时间戳、装置标识、附件标识、附件锁芯数据、项目域密钥、装置私钥指纹)数据进行签名算法计算得出。装置私钥指纹即装置私钥的载荷数据的散列计算值。该算法解决了蓝牙附件装置无法保存和传输加过密的用户私钥之问题,同时又具备较高的安全。
对于访问控制装置收到虚拟钥匙更新消息,如果收到的虚拟钥匙的授权者是虚拟钥匙使用者本人时,虚拟钥匙记录中的被授权者信息包括用户在用户终端绑定的短距离无线附件装置的标识信息,即附件标识,同时虚拟钥匙更新消息中还包括第二时间戳、使用对称加密算法加密的虚拟附件锁芯数据、第二签名数据;访问控制装置收到上述类型的虚拟钥匙更新消息时,将相关数据更新至附件权限表。
此技术方案解决了用户可能因为临时没有携带手机,却佩戴了预先绑定授权的蓝牙可穿戴装置,如手环、手表等随身携带的装置。但是通常这些蓝牙装置不能进行再编程以实现本发明前一个技术方案中的通讯方法(动态传递虚拟钥匙和虚拟钥匙缀并做校验的方法),作为折中,此技术方案选择了将蓝牙附件装置的蓝牙地址转换为附件标识并为它生成对应的虚拟附件锁芯数据的方法。该方法虽然没有使用非对称加解密算法,安全性稍低,但对用户而言简便易行且成本低。
具体实施中,此技术方案也可以用于将现有通用格式的NFC兼容格式ID卡与用户账号进行绑定,但不建议这么做,毕竟有管理麻烦、易被复制的问题和风险。
总体而言,本发明提供了一个安全、可靠、方便、智能化和可大规模推广的虚拟钥匙技术方案。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是一种实施例中后台***的***框图;
图2是一种实施例中访问控制装置的***框图;
图3是一种实施例中用户终端的***框图;
图4是一种实施例中后台***生成虚拟锁芯、虚拟钥匙缀的处理示意图;
图5是一种实施例中访问控制装置和用户终端间通过NFC或蓝牙通讯完成开锁操作时数据处理的示意图(注:忽略了签名校验处理);
图6是一种实施例中后台***生成成套第二虚拟锁芯、第二签名的处理示意图;
图7是一种实施例中是一种实施例中访问控制装置和用户终端间通过蓝牙附件装置完成开锁操作的数据处理示意图;
图8是一种实施例中用户终端通过NFC完成对访问控制装置开锁操作的时序图;
图9是一种实施例中用户终端通过蓝牙完成对访问控制装置开锁操作的时序图。
具体实施方式
下面的描述被给出以使本领域技术人员能够实现并使用实施例,并且下面的描述是在特定的应用及其要求的情况下提供的。对所公开的实施例的各种修改对本领域技术人员来说应当是显而易见的,并且本文所定义的一般原理在不脱离本公开内容的精神和范围的情况下可以应用于其他实施例和应用。因而,本发明并不限于所示出的实施例,而是应当符合与本文所公开的原理和特征一致的最广泛的范围。
在具体实施方式部分所描述的数据结构和代码通常存储于计算机可读存储介质上,该存储介质可以是能够存储由计算机***使用的代码和/或数据的任意器件或介质。计算机可读存储介质包括,但不限于,易失性存储器、非易失性存储器、磁存储器件和光存储器件(例如,盘驱动器、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘)或者现在已知的或以后开发的能够存储代码和/或数据的其他介质。
在具体实施方式部分所描述的方法和处理能够被实现为代码和/或数据,该代码和/或数据能够存储于以上所描述的计算机可读存储介质内。当计算机***读取并执行存储于计算机可读存储介质上的代码和/或数据时,计算机***执行被实现为数据结构和代码并被存储于计算机可读存储介质内的方法和处理。
而且,本文所描述的方法和处理能够包含于硬件模块或装置内。这些模块或装置可以包括,但不限于,专用集成电路(ASIC)芯片、场可编程门阵列(FPGA)、在特定的时间执行特定的软件模块或一段代码的专用的或共用的处理器、和/或现在已知的或以后开发的其他可编程逻辑器件。当硬件模块或装置被激活时,它们执行包含于它们之内的方法和处理。
图1示出了根据一种实施例的后台***100。后台***100可以对应于服务器、集群、运行于虚拟机上的服务程序、运行于云***容器中的服务程序,其中的各模块也可以是服务器、集群、运行于虚拟机上的服务程序、运行于云***容器中的服务程序。参照图1,用户服务模块101处理来自用户终端300的请求:登录请求处理133、注册请求处理132、和虚拟钥匙相关请求处理131。当虚拟钥匙数据有更新时通过消息处理模块105发送虚拟钥匙更新消息给访问控制装置200,新的虚拟钥匙数据也被返回给用户终端300。用户服务模块101通过全局物体访问服务111接口访问物体访问权限表125和项目域信息访问服务110接口访问访问控制装置表122。用户的虚拟钥匙包和虚拟钥匙数据保存在用户钥匙包126数据库中,而用户账户数据库127只保存用于用户登录相关的数据;所有针对用户账户和虚拟钥匙包、虚拟钥匙的操作都被记录在数据库用户访问日志128中。***管理模块104管理和监视后台***100***范围的运行状态,特别是,***管理模块104管理多个项目域管理模块102的实例的启动、运行,而这些实例之间是隔离和独立的,互不干扰和影响,而且各实例间的数据库也是隔离和独立的。各项目域管理人员通过项目域管理人员用终端199登录项目域的后台管理130以完成物体所有者信息120、物体信息121和访问控制装置表122的录入和编辑管理。访问控制装置表中的信息包括:区域编号、装置编号、装置硬件标识、装置类型、关联装置列表、装置安装信息,该表应该在安装和配置访问控制装置时录入完成。全局项目域信息汇总136服务用于将不同项目域管理模块102的实例中数据进行自动汇总,汇总的结果保存在物体访问权限表125中。
全局物体访问服务模块103中,还包括装置公私钥表129,记录所有服务控制装置的公钥和私钥,这些公钥和私钥在装置成功注册后由后台***生成,并把装置私钥返回给访问控制装置。全局物体访问服务111为后台***其它模块提供对包括装置公私钥表129的访问操作。
用户账户127还被用于保存用户的公钥和私钥,这些公钥和私钥在用户注册时由后台***生成,并将用户公钥返回给用户终端。
如图1所示的实施例中,后台***100的***管理员使用***管理员用终端198登录***管理模块104进行***层面的管理和维护。
在一些实施例中,小区物业服务公司的管理人员在小区对应后台管理操作界面中录入好小区的房屋信息、业主信息、楼栋信息、门禁设备信息。
在一些实施例中,服务公寓的管理人员在公寓项目对应后台管理操作界面中录入好公寓的房屋信息、楼层信息、智能锁装置信息。
在一些实施例中,租车公司的管理人员在公司对应后台管理操作界面中录入好车辆信息、智能车锁装置信息。
在一些实施例中,项目域管理模块还实现了装置、管理人员监控137。各项目域管理人员通过项目域管理人员用终端199登录项目域的后台管理130可以完成对管理人员识别信息123和物体分区编号列表124的录入和编辑管理。这些信息也会被自动汇总至物体访问权限表125中。
在一些实施例中,小区物业服务公司的管理人员还在小区对应后台管理操作界面中录入好小区的物业服务人员信息、楼栋分区信息、物业服务人员分区服务信息。
在一些实施例中,服务公寓的管理人员在公寓项目对应后台管理操作界面中录入好公寓的管理和服务人员信息、分区权限等信息。
在一些实施例中,虚拟钥匙记录中包括:授权者、被授权者、授权有效期、授权类型、授权访问的访问控制装置信息。根据不同应用场景的实施例,可以设计更丰富的虚拟钥匙记录信息,以满足应用场景的要求。比如,在一些实施例中,单个访问控制装置可以管理和控制一组多个保管箱,这种情况下只要在虚拟钥匙记录中添加上子箱的编号做核对就可以控制具体的子保管箱的开启。
图2示出了根据一种实施例的访问控制装置200。访问控制装置200可以实现为各种门禁设备、各种智能锁、各种出入闸。参照图2,中央处理单元212负责控制和管理处理器201所有处理单元的工作。网络模块204用于访问控制装置200连接后台***100,通过登录注册处理单元204完成对后台***100的登录后,就可以访问后台***100的服务,并接收来自后台***100的虚拟钥匙更新消息。如果接收到来自后台***100的虚拟钥匙更新消息,消息处理单元213将消息交由虚拟钥匙处理单元210进行处理,虚拟钥匙处理单元210先对消息进行校验,校验成功后更新到装置本地存储器202加密保存的虚拟钥匙库中。输入模块203接收来自用户终端300的虚拟钥匙相关数据,接收的虚拟钥匙相关数据交给输入识别处理单元211来处理,识别和处理完成后由虚拟钥匙处理单元210进行进一步的校验和处理。如果收到的虚拟钥匙相关数据核验通过,中央处理单元212向电锁控制接口205发送锁命令,驱动电锁299进行锁命令操作。
在一些实施例中,输入模块包括:NFC近场通讯单元、低功耗蓝牙通讯单元、二维码扫描单元。
图3示出了根据一种实施例的用户终端300。用户终端300可以为各种移动终端、智能手机、平板电脑、笔记本电脑、智能手表、智能眼镜、车载电脑等。参照图3,中央处理单元313负责控制和管理处理器301所有处理单元的工作。网络模块303用于用户终端300连接后台***100,通过登录注册处理单元316完成对后台***100的登录后,就可以访问后台***100的服务,并接收来自后台***100的虚拟钥匙更新消息。如果接收到来自后台***100的虚拟钥匙更新消息,消息处理单元314将消息交由虚拟钥匙处理单元311进行处理,虚拟钥匙处理单元311先对消息进行校验,校验成功后更新到装置本地存储器302加密保存的虚拟钥匙库中。输入模块305接收用户的操作输入,输出模块304将反馈输出给用户,用户交互处理单元315通过输入模块305和输出模块304完成与用户的交互,比如虚拟钥匙包的选择和查看、成员管理、虚拟钥匙的管理和添加授权等交互操作,再经虚拟钥匙处理单元311、虚拟钥匙请求单元312、网络连接处理单元317、网络模块303向后台***100发送虚拟钥匙请求。登录后台***100后从本地存储器302中解密保存的虚拟钥匙包数据,如果没有找到,就向后台***100发送获取虚拟钥匙包请求。通过短距通讯模块306,可以把虚拟钥匙数据发送给访问控制装置200,进行锁命令操作。
在一些实施例中,短距通讯模块306包括NFC近场通讯单元、低功耗蓝牙通讯单元。短距通讯处理单元319负责处理这些短距通讯的连接、通讯。
在一些实施例中,可以通过用户交互处理单元315、附件处理单元310和短距通讯模块306完成与短距离无线附件装置399的绑定,然后通过虚拟钥匙单元311、虚拟钥匙请求单元312向后台***100发送添加虚拟钥匙请求,授权该短距离无线附件装置可以进行虚拟钥匙开锁操作。
在一些实施例中,虚拟钥匙可以以二维码的形式经输出模块304输出到显示屏幕上,供访问控制装置200的二维码识别单元识别或者摄像头单元拍摄后识别。
图4给出了用于例示根据一种实施例的后台***生成虚拟锁芯、虚拟钥匙缀的处理示意图。
首先,对于已经存在的虚拟钥匙记录,取出其中用于校验核对所用的项目,这些项目包括(有效期、类型),形成第一锁芯(步骤400)。然后使用虚拟钥匙记录中的被授权者信息在用户账户127数据库中进行检索,取得被授权使用该虚拟钥匙用户的用户公钥和用户私钥(步骤402)。接着用刚获得的用户公钥作为密钥,使用非对称加密算法对第一锁芯数据进行加密(步骤404)。加密结果形成虚拟锁芯(步骤406)。
继续,使用虚拟钥匙记录中的装置信息,调用全局物体访问服务111(步骤410),取得装置公钥(步骤412)。使用刚获得的装置公钥作为密钥,对在步骤402获得的用户私钥用非对称加密算法进行加密(步骤414)。加密结果形成虚拟钥匙缀(步骤416)。
每次后台***里的虚拟钥匙记录有变化时,都需要重新生成虚拟锁芯和虚拟钥匙缀(如果装置信息有变化)。更新后的虚拟锁芯数据被后台***100以虚拟钥匙更新消息方式发送给访问控制装置200。虚拟钥匙缀一般作为用户虚拟钥匙包的一部分,在用户终端300向后台***100发送获取虚拟钥匙包请求时返回给用户终端300。
图5给出了用于例示根据一种实施例访问控制装置和用户终端间通过NFC或蓝牙通讯完成开锁操作时数据处理的示意图(注:忽略了签名校验处理,因为其实NFC、蓝牙通讯时本身带校验,实施时用普通的CRC16或者CRC32算法计算出一个简单的校验值即可,可以节约用户终端对NFC命令的响应时间)。参照图5:
步骤S1、用户终端靠近访问控制装置的短距离输入模块,访问控制装置确认并开始接收输入;
步骤S2、用户终端向访问控制装置发送用户标识;
步骤S3、访问控制装置收到用户标识后在本地检索是否有该用户标识的钥匙权限记录,如果没有则操作终止;
步骤S4、访问控制装置向用户终端发送包括装置标识、项目域密钥、第一时间戳数据,以进行认证;
步骤S5、用户终端收到认证所需的包括装置标识、项目域密钥、第一时间戳数据,在用户的虚拟钥匙包中找到对应的虚拟钥匙缀和虚拟钥匙记录,所述虚拟钥匙记录加上命令类型形成第一钥匙,其中命令类型包括:开锁、上锁、反锁;
步骤S6、向访问控制装置返回认证响应,响应参数中包括:虚拟钥匙缀、第一加密虚拟钥匙数据、第一签名数据,其中返回响应前的步骤包括:步骤S6-1通过散列算法对(第一时间戳、装置标识、项目域密钥、用户标识)计算得出第一对称密钥,步骤S6-2用第一对称密钥对第一钥匙使用对称加密算法加密出第一加密虚拟钥匙数据;步骤S6-3计算第一签名;
步骤S7、访问控制装置收到认证响应后,执行以下步骤:
步骤S7-1、校验第一签名数据,如果签名数据不符,则操作终止(图中未展示该步骤);
步骤S7-2、使用装置私钥解密出虚拟钥匙缀中的用户私钥,如果解密失败则操作终止;
步骤S7-3、使用解密出的用户私钥解密钥匙权限记录中的虚拟锁芯数据,得到第一锁芯数据,如果解密失败则操作终止;
步骤S7-4、根据包括虚拟钥匙相关数据在内的数据计算出第一对称密钥;
步骤S7-5、使用第一对称密钥解密第一加密虚拟钥匙数据,得到第一钥匙数据,如果解密失败则操作终止;
步骤S7-6、对第一锁芯数据和第一钥匙数据中的具体参数进行核对,如果核对不正确则操作终止;
步骤S7-7、核对全部正确后,根据第一钥匙数据中的命令类型参数向电锁控制接口发送相应的锁命令,如果没有命令类型参数默认发送开锁命令。
在一些实施例中,可以在步骤S5中所述第一钥匙中不加命令类型,这样就只能做开锁操作。在一些实施例中,用户终端300上的交互操作界面可以指定下一步用户终端300靠近访问控制装置200时是要做开锁还是上锁或反锁。
图6给出了用于例示根据一种实施例的后台***为蓝牙附件装置生成虚拟附件锁芯和第二签名的处理示意图。
首先,对于已经存在的虚拟钥匙记录,取出其中用于校验核对所用的项目,这些项目包括(有效期、类型),形成附件锁芯(步骤600)。然后生成第二时间戳(步骤602)。接下来使用数据指纹算法计算装置私钥的指纹,得到装置私钥指纹(步骤604)。然后在步骤606,计算(第二时间戳、装置标识、附件标识项目域密钥、装置私钥指纹)的散列值,其中的附件标识从虚拟钥匙中被授权者信息中得到。步骤606的计算结果就是第二对称密钥(步骤608)。以第二对称密钥为密钥,用对称加密算法对附件锁芯数据进行加密(步骤610)。加密结果就形成了虚拟附件锁芯(步骤612)。然后是计算签名数据,在步骤614,对(第二时间戳、装置标识、附件标识、附件锁芯第二锁芯、项目域密钥、装置私钥指纹)进行签名计算。计算结果得到第二签名(步骤616)。
图7给出了用于例示根据一种实施例的访问控制装置,接收用户使用蓝牙附件装置进行开锁操作的处理示意图。首先,访问控制装置发现有蓝牙附件装置靠近,当进入一定的距离范围后,访问控制装置进行如下的处理步骤:
B1、把蓝牙附件装置的蓝牙地址标识转换为附件标识;
B2、用附件标识在附件权限表中检索是否有对应附件权限记录,如果没有则核对终止;
B3、取出附件权限记录中的第二时间戳;
B4、用数据指纹算法计算出装置私钥指纹;
B5、使用散列算法对(第二时间戳、装置标识、附件标识、项目域密钥、装置私钥指纹)计算出第二对称密钥;
B6、使用第二对称密钥对附件权限记录中的虚拟附件锁芯数据进行解密,得到附件锁芯数据;
B7、根据(第二时间戳、装置标识、附件标识、附件锁芯数据、项目域密钥、装置私钥指纹)数据进行签名计算,得到的第二校验签名;
B8、第二校验签名与对应记录中的第二签名数据进行核对,如果核对不符则终止;
B9、核对附件锁芯数据中的有效期时间和状态,状态包括:有效、失效;
B10、如果在有效期内且状态为有效,则核对成功,向电锁控制接口发送开锁命令;如果附件锁芯数据中的类型为仅限一次类型则开锁完成后,所述装置将此条记录从附件权限表中去除并发送第一通知消息给后台***,消息参数中包括装置标识、用户标识、时间。
图8给出了用于例示根据一种实施例的访问控制装置,与用户终端通过NFC通讯进行开锁操作的处理示意图。参照图8,其中的步骤与图5中的步骤可以对照来看。区别主要在于图5是基于数据结构的处理流程,而图8则是具体使用NFC通讯时的处理流程。
首先,访问控制装置200启动后,输入识别单元211找到输入模块203中有NFC通讯单元,就启用NFC HCE模式的读卡器模式,等待识别做了NFC卡仿真的用户终端300靠近。当发现有NFC卡仿真的用户终端300靠近访问控制装置200后,向用户终端300发送SELECTFILE APDU的NFC命令。注意:相关NFC的APDU命令请参看ISO-IEC-7816-4规范,有关NFC HCE模式,请参看ISO 14443-4规范。
在用户终端300这边,短距通讯处理单元319中有NFC卡仿真处理程序,对从短距通讯模块306中NFC通讯单元接收到的NFC命令进行处理。在实施例中,只处理了来自访问控制终端200的SELECT FILE和INTERNAL AUTHENTICATE命令。
用户终端300执行完步骤S6后,访问控制终端200就开始步骤S7的各子步骤。
图9给出了用于例示根据一种实施例的访问控制装置,与用户终端通过蓝牙通讯进行开锁操作的处理示意图。参照图9,其中的步骤与图5中的步骤可以对照来看。区别主要在于图5是基于数据结构的处理流程,而图9则是具体使用蓝牙通讯时的处理流程。
首先,访问控制装置200启动后,输入识别单元211找到输入模块203中有低功耗蓝牙通讯单元,就启用蓝牙的外设模式等待也使用蓝牙通讯的用户终端300靠近并连接。用户靠近访问控制装置200后,打开用户终端300,在通过交互操作开始进行蓝牙开锁。用户终端300中的短距通讯处理单元319中的蓝牙处理程序先搜索附近是否有指定类型的蓝牙外设(访问控制装置200所带),搜索到后查询是否有自定义蓝牙虚拟钥匙开锁服务(步骤S1),如果有就连接成功。这里的自定义蓝牙虚拟钥匙开锁服务是实施例自己定义的蓝牙服务,提供一系列的自定义的属性的读/写服务。然后,用户终端300发送写用户标识属性的命令(步骤S2)。访问控制装置200收到用户标识后检查是否存在此用户标识的记录(步骤S3),如果没有,就返回错误响应,否则返回成功响应。用户终端300收到成功响应后,向访问控制装置200发送读认证凭证属性命令(步骤S4);访问控制装置200随后计算出时间戳,并返回用户终端300请求的属性数据(装置标识、项目域密钥、时间戳);后续的步骤就与图5中的处理流程基本一致,只是通讯用了蓝牙的写属性方式来实现。
本领域的技术人员应该明白,上述的本发明实施例所提供的装置的各组成部分,以及方法中的各步骤,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现。从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明之较佳实施例,但其并不限制本发明的实施范围,即不偏离本发明的权利要求所作之等同变化与修饰,仍应属于本发明之保护范围。