CN109639642B - 基于mqtt的安全认证方法、装置及存储介质 - Google Patents
基于mqtt的安全认证方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109639642B CN109639642B CN201811339590.5A CN201811339590A CN109639642B CN 109639642 B CN109639642 B CN 109639642B CN 201811339590 A CN201811339590 A CN 201811339590A CN 109639642 B CN109639642 B CN 109639642B
- Authority
- CN
- China
- Prior art keywords
- client
- authentication
- preset
- password
- subscription
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及安全技术,揭露了一种基于MQTT的安全认证方法、电子装置及存储介质,该方法根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份。之后,该方法接收客户端发送的登录请求,并利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接。最后,接收客户端发送的主题订阅请求,根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。利用本发明,能够提高对客户端的安全认证,有效保障服务端安全,减少分布式拒绝服务攻击。
Description
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种基于MQTT的安全认证方法、装置及计算机可读存储介质。
背景技术
息队列遥测传输(Message Queuing Telemetry Transport,MQTT)是国际商业机器公司(International Business Machiness Corporation,IBM)开发的一个即时通讯协议。该协议采用一种轻量级的订阅/发布模式来进行消息的传输,通过对低带宽、低计算能力、以及不稳定的网络环境做了特殊的优化,以适用于对嵌入式智能终端和移动终端的信息推送,从而有效的节省终端的耗电量及流量。
然而,在基于MQTT协议的通讯过程中可能会面临着许多安全问题,如分布式拒绝服务(Distributed Denial Of Service,DDOS)攻击问题、用户设备访问的安全认证及授权问题等。这些问题给通讯网络带来极大的威胁,因此,亟待设计一种基于MQTT的安全服务系统,能够对用户端进行安全认证,有效保障服务端安全,减少DDOS攻击。
发明内容
鉴于以上内容,本发明提供一种基于MQTT的安全认证方法、装置及计算机可读存储介质,其主要目的在于保证用户访问的认证安全,防止恶性的分布式拒绝服务攻击。
为实现上述目的,本发明提供一种基于MQTT的安全认证方法,该方法包括:
创建步骤:根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份;
第一接收步骤:接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码;
第一认证步骤:根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接;
第二接收步骤:接收客户端发送的主题订阅请求;
第二认证步骤:根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。
优选地,所述预设的认证规则包括:
记录接收到登录请求时刻的时间戳,记为第二时间戳;
根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳;
根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码;
将所述接收到的密码与所述认证密码进行对比;
若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过。
优选地,所述预设的加密规则包括:
将所述虚拟账号与所述客户端标识符中代表群体身份的字符拼接生成第一字符串;
将所述第一字符串中的字符进行倒序排列得到第二字符串;
根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法;
利用第一加密算法对所述第二字符串进行加密得到第一密文;
利用第二加密算法对所述第二字符串进行加密得到第二密文;
将所述第一密文与第二密文进行拼接得到第三密文;
将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出。
优选地,所述第一认证步骤包括:
统计预设周期内每个客户端发送登录请求的次数,若登录请求的次数小于预设次数,则认证通过,若登录请求的次数大于预设次数,则认证失败,在预设时间内禁止接收该客户端发送登录请求。
优选地,该方法还包括:
实时统计每个群体身份所连接的设备数,判断每个群体身份所连接的设备数是否大于预设值,若某群体身份所连接的设备数大于预设值,则禁止其他设备接入该群体身份。
此外,本发明还提供一种电子装置,该电子装置包括:存储器、处理器及显示器,所述存储器上存储安全认证程序,所述安全认证程序被所述处理器执行,可实现如下步骤:
创建步骤:根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份;
第一接收步骤:接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码;
第一认证步骤:根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接;
第二接收步骤:接收客户端发送的主题订阅请求;
第二认证步骤:根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。
优选地,所述预设的认证规则包括:
记录接收到登录请求时刻的时间戳,记为第二时间戳;
根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳;
根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码;
将所述接收到的密码与所述认证密码进行对比;
若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过。
优选地,所述预设的加密规则包括:
将所述虚拟账号与所述客户端标识符中代表群体身份的字符拼接生成第一字符串;
将所述第一字符串中的字符进行倒序排列得到第二字符串;
根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法;
利用第一加密算法对所述第二字符串进行加密得到第一密文;
利用第二加密算法对所述第二字符串进行加密得到第二密文;
将所述第一密文与第二密文进行拼接得到第三密文;
将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出。
优选地,所述第一认证步骤包括:
统计预设周期内每个客户端发送登录请求的次数,若登录请求的次数小于预设次数,则认证通过,若登录请求的次数大于预设次数,则认证失败,在预设时间内禁止接收该客户端发送登录请求。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括安全认证程序,所述安全认证程序被处理器执行时,可实现如上所述基于MQTT的安全认证方法中的任意步骤。
本发明提出的基于MQTT的安全认证方法、装置及计算机可读存储介质,通过根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回虚拟账号、群体身份及算法调用指令,之后,接收客户端发送的登录请求并利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接,最后,接收客户端发送的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息,从而提高系统认证的安全性能,保证系统资源的安全和隐私。
附图说明
图1为本发明电子装置较佳实施例的示意图;
图2为图1中安全认证程序较佳实施例的模块示意图;
图3为本发明基于MQTT的安全认证方法较佳实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明电子装置1较佳实施例的示意图。
在本实施例中,该电子装置1可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该电子装置1可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
该电子装置1包括但不限于:存储器11、处理器12、显示器13及网络接口14。所述电子装置1通过网络接口14连接网络,获取原始数据。其中,所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobilecommunication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子装置1的外部存储设备,例如该电子装置1配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述电子装置1的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述电子装置1的操作系统和各类应用软件,例如安全认证程序10的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。例如,存储虚拟账号及群体身份。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行安全认证程序10的程序代码等。
所述显示器13可以称为显示屏或显示单元。在一些实施例中显示器13可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-EmittingDiode,OLED)触摸器等。显示器13用于显示在电子装置1中处理的信息以及用于显示可视化的工作界面,例如,显示每个群体身份(Group Identification,GID)所连接的设备数。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),该网络接口14通常用于在所述电子装置1与其他电子设备之间建立通信连接。
图1仅示出了具有组件11-14以及安全认证程序10的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。用户可以通过触摸所述触控区域启动安全认证程序10。
此外,该电子装置1的显示器13的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器13与所述触摸传感器层叠设置,以形成触摸显示屏。该电子装置1基于触摸显示屏侦测用户触发的触控操作。
该电子装置1还可以包括射频(Radio Frequency,RF)电路、传感器和音频电路等等,在此不再赘述。
如图2所示,是图1中安全认证程序10较佳实施例的模块示意图。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。
在本实施例中,安全认证程序10包括:创建模块110、第一接收模块120、第一认证模块130、第二接收模块140及第二认证模块150,所述模块110-150所实现的功能或操作步骤如下:
创建模块110,用于根据客户端发送的注册请求,创建虚拟账号及群体身份(GroupIdentification,GID),并向客户端返回该虚拟账号及群体身份。具体地,还包括创建权限信息。例如,创建每个虚拟账号的权限信息,根据权限信息赋予客户端的权限范围。同一个虚拟账号对应一个GID,但同一个虚拟账号可以用多台设备同时进行登录,如:同一个账号可以同时使用电脑和手机进行登录。所述GID用于控制设备的连接数,当同一个账号连接的设备数目多于预设数目时,GID自动阻止该账号的其他设备的接入,防止过多恶性设备。所述GID包括允许连接的设备类型、允许连接的设备数等。
第一接收模块120,用于接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码。进一步地,还包括接收客户端发送的算法调用指令。当客户端接收到服务端返回的虚拟账号及群体身份时,根据群体身份及设备标识符生成客户端标识符,如:GID@@{device Id},所述客户端标识符即为客户端id且全局唯一。同时,客户端调用算法组中的加密算法,如散列算法、信息-摘要算法(Message Digest Algorithm 5,MD5),根据预设的加密规则对虚拟账号及群体身份进行加密得到密码,并根据调用的加密算法自动生成算法调用指令,之后,客户端将生成的客户端标识符、密码及算法调用指令发送给服务端。具体地,所述预设的加密规则包括:将所述虚拟账号与所述客户端标识符中代表群体身份的字符相连生成第一字符串,并将所述第一字符串中的字符进行倒序排列得到第二字符串,接着,根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法,利用第一加密算法对所述第二字符串进行加密得到第一密文及利用第二加密算法对所述第二字符串进行加密得到第二密文,最后,将所述第一密文与第二密文进行拼接得到第三密文,并将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出。所述时间戳通常是一个字符序列,唯一标识某一刻的时间。所述第一时间戳是指用户登录的客户端的时刻。
第一认证模块130,用于根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接。所述预设的认证规则包括:记录接收到登录请求时刻的时间戳,记为第二时间戳,所述第二时间戳是指服务端接收到登录请求的时刻,根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳,接着,根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码,最后,将所述接收到的密码与所述认证密码进行对比,若所述接收到的密码与所述认证密码不同,则认证失败;若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过,存储客户端标识符,并建立订阅连接。若所述时间差值大于预设时间阈值,则说明从客户端发送请求到服务端接收请求的时间段过长,自动认为不安全,认证失败。进一步地,所述第一认证步骤还包括:统计预设周期内每个客户端请求的次数,若请求的次数小于预设次数,则认证通过,若请求的次数大于预设次数,则认证失败,在预设时间内禁止接收客户端的登录请求。
第二接收模块140,用于接收客户端发送的主题订阅请求。当客户端与服务端建立订阅连接后,客户端可以向服务端发送主题订阅请求。所述主题订阅请求包括:订阅主题及客户端标识符。
第二认证模块150,用于根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。所述主题列表用于存储订阅主题,判断用户订阅的主题是否与主题列表中的相同,若相同,则将该主题对应的订阅信息发送给用户。进一步地,还可以根据接收到的客户端标识,判断该客户端标识对应的客户端是否建立订阅连接,若客户端标识存在于服务端,则说明该客户端标识对应的客户端已建立订阅连接,认证成功,若客户端标识不存在于服务端,则说明该客户端标识对应的客户端未建立订阅连接,认证失败。
在另一个实施例中,还可以包括:实时统计每个GID所连接的设备数,判断每个GID所连接的设备数是否大于预设值,若某个GID所连接的设备数大于预设值,则禁止其他设备接入该GID。通过设置GID所连接的最大设备数,控制设备的接入数量,从而防止分布式拒绝服务的攻击。
如图3所示,是本发明基于MQTT的安全认证方法较佳实施例的流程图。
在本实施例中,处理器12执行存储器11中存储的安全认证程序10的计算机程序时实现基于MQTT的安全认证方法包括:步骤S10-步骤S50。
步骤S10,创建模块110根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份。具体地,还包括创建权限信息。例如,创建每个虚拟账号的权限信息,根据权限信息赋予客户端的权限范围。同一个虚拟账号对应一个GID,但同一个虚拟账号可以用多台设备同时进行登录,如:同一个账号可以同时使用电脑和手机进行登录。所述GID用于控制设备的连接数,当同一个账号连接的设备数目多于预设数目时,GID自动阻止该账号的其他设备的接入,防止过多恶性设备。所述GID包括允许连接的设备类型、允许连接的设备数等。
步骤S20,第一接收模块120接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码。进一步地,还包括接收客户端发送的算法调用指令。当客户端接收到服务端返回的虚拟账号及群体身份时,根据群体身份及设备标识符生成客户端标识符,如:GID@@{device Id},所述客户端标识符即为客户端id且全局唯一。同时,客户端调用算法组中的加密算法,如散列算法、信息-摘要算法(Message Digest Algorithm 5,MD5),根据预设的加密规则对虚拟账号及群体身份进行加密得到密码,并根据调用的加密算法自动生成算法调用指令,之后,客户端将生成的客户端标识符、密码及算法调用指令发送给服务端。
具体地,所述预设的加密规则包括:将所述虚拟账号与所述客户端标识符中代表群体身份的字符相连生成第一字符串,并将所述第一字符串中的字符进行倒序排列得到第二字符串,例如,原来的字符串为“qwertyuiop”,倒序后为“poiuytrewq”。接着,根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法,利用第一加密算法对所述第二字符串进行加密得到第一密文及利用第二加密算法对所述第二字符串进行加密得到第二密文。假设第一加密算法为散列算法,第二加密算法为MD5算法,利用散列算法对第二字符串进行加密得到一串数字,该散列算法为:29+((1+hash(第二字符串))×字符串长度-1)/字符串长度。所述hash算法,即哈希算法,为一种通用的算法,对字符串进行哈希运算会得到长度相同的整数值。该值指向的是该字符串在内存中的存储地址,并且对于一个字符串基本唯一。如果字符串太多,长度不一致的情况下可能会一致,所以这里加上字符串进行了很多运算,为了保证生成的整数值唯一。同理,将第二字符串进行base64编码,在进行MD5加密,得到一串密文。最后,将所述第一密文与第二密文进行拼接得到第三密文,如将散列算法得到的数字与MD5算法得到的密文进行拼接得到第三密文。并将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出。例如,密码=(第三密文+#+第一时间戳),所述分隔符用于分隔第三密文及第一时间戳,所述时间戳通常是一个字符序列,唯一标识某一刻的时间。所述第一时间戳是指用户发送登录请求的时刻。
步骤S30,第一认证模块130根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接。所述预设的认证规则包括:记录接收到登录请求时刻的时间戳,记为第二时间戳,所述第二时间戳是指服务端接收到登录请求的时刻。根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳。例如,定位分隔符,根据分隔符将密码分成两段得到第一时间戳和第三密文。接着,根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码。应理解的是,所述算法调用指令所调用的加密算法与客户端加密所使用的加密算法一致。最后,将所述接收到的密码与所述认证密码进行对比,若所述接收到的密码与所述认证密码不同,则认证失败;若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过,存储客户端标识符,并建立订阅连接。若所述时间差值大于预设时间阈值,则说明从客户端发送请求到服务端接收请求的时间段过长,自动认为不安全,认证失败。例如,从客户端发送请求到服务端接收请求的时间段如果超过5s,则认证不安全。进一步地,所述第一认证步骤还包括:统计预设周期内每个客户端请求的次数,若请求的次数小于预设次数,则认证通过,若请求的次数大于预设次数,则认证失败,在预设时间内禁止接收客户端的登录请求。例如,统计客户端在30s内连续请求的次数,假设客户端在5s内连续请求了20次,则自动识别为恶意连接,系统自动禁止该客户端的任意操作3min。
步骤S40,第二接收模块140接收客户端发送的主题订阅请求。当客户端与服务端建立订阅连接后,客户端可以向服务端发送主题订阅请求。所述主题订阅请求包括:订阅主题及客户端标识符。
步骤S50,第二认证模块150根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。所述主题列表用于存储订阅主题,判断用户订阅的主题是否与主题列表中的相同,若相同,则将该主题对应的订阅信息发送给用户。进一步地,还可以根据接收到的客户端标识,判断该客户端标识对应的客户端是否建立订阅连接,若客户端标识存在于服务端,则说明该客户端标识对应的客户端已建立订阅连接,认证成功,若客户端标识不存在于服务端,则说明该客户端标识对应的客户端未建立订阅连接,认证失败。
在另一个实施例中,还可以包括:实时统计每个GID所连接的设备数,判断每个GID所连接的设备数是否大于预设值,若某个GID所连接的设备数大于预设值,则禁止其他设备接入该GID。假设,一台服务器能够支撑20万的客户端连接。如果没有GID的控制,一个账户可以直接连20万甚至更多的客户端上来,直接导致其他服务不可用。因此,通过设置GID所连接的最大设备数,控制设备的接入数量,从而防止分布式拒绝服务的攻击。如一个GID设置只能连接5万设备,若达到5万个设备则拒绝其他设备接入。
上述实施例提出的基于MQTT的安全认证方法,通过注册虚拟账号及群体身份,接着,接收客户端的登录请求,对客户端进行第一认证,认证通过则建立订阅连接,最后,接收客户端的主题订阅请求,对客户端进行第二认证,认证通过则向客户端推送相关主题的订阅信息,从而提高服务端的安全认证,防止提高抵抗恶意连接的能力。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括安全认证程序10,所述安全认证程序10被处理器执行时实现如下操作:
创建步骤:根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份;
第一接收步骤:接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码;
第一认证步骤:根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接;
第二接收步骤:接收客户端发送的主题订阅请求;
第二认证步骤:根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。
优选地,所述预设的认证规则包括:
记录接收到登录请求时刻的时间戳,记为第二时间戳;
根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳;
根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码;
将所述接收到的密码与所述认证密码进行对比;
若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过。
优选地,所述预设的加密规则包括:
将所述虚拟账号与所述客户端标识符中代表群体身份的字符拼接生成第一字符串;
将所述第一字符串中的字符进行倒序排列得到第二字符串;
根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法;
利用第一加密算法对所述第二字符串进行加密得到第一密文;
利用第二加密算法对所述第二字符串进行加密得到第二密文;
将所述第一密文与第二密文进行拼接得到第三密文;
将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出。
优选地,所述第一认证步骤包括:
统计预设周期内每个客户端发送登录请求的次数,若登录请求的次数小于预设次数,则认证通过,若登录请求的次数大于预设次数,则认证失败,在预设时间内禁止接收该客户端发送登录请求。
优选地,该方法还包括:
实时统计每个群体身份所连接的设备数,判断每个群体身份所连接的设备数是否大于预设值,若某群体身份所连接的设备数大于预设值,则禁止其他设备接入该群体身份。
本发明之计算机可读存储介质的具体实施方式与上述基于MQTT的安全认证方法的具体实施方式大致相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于MQTT的安全认证方法,应用于电子装置,其特征在于,所述方法包括:
创建步骤:根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份;
第一接收步骤:接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码;
所述客户端标识符,根据群体身份及设备标识符生成;
所述预设的加密规则包括:
将所述虚拟账号与所述客户端标识符中代表群体身份的字符拼接生成第一字符串;
将所述第一字符串中的字符进行倒序排列得到第二字符串;
根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法;
利用第一加密算法对所述第二字符串进行加密得到第一密文;
利用第二加密算法对所述第二字符串进行加密得到第二密文;
所述第一加密算法及第二加密算法分别调用算法指令对字符串进行运算,得到长度相同且唯一的整数值;
将所述第一密文与第二密文进行拼接得到第三密文;
将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出;
第一认证步骤:根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接;
第二接收步骤:接收客户端发送的主题订阅请求;
第二认证步骤:根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。
2.根据权利要求1所述的基于MQTT的安全认证方法,其特征在于,所述预设的认证规则包括:
记录接收到登录请求时刻的时间戳,记为第二时间戳;
根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳;
根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码;
将所述接收到的密码与所述认证密码进行对比;
若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过。
3.根据权利要求1所述的基于MQTT的安全认证方法,其特征在于,所述第一认证步骤包括:
统计预设周期内每个客户端发送登录请求的次数,若登录请求的次数小于预设次数,则认证通过,若登录请求的次数大于预设次数,则认证失败,在预设时间内禁止接收该客户端发送登录请求。
4.根据权利要求1所述的基于MQTT的安全认证方法,其特征在于,该方法还包括:
实时统计每个群体身份所连接的设备数,判断每个群体身份所连接的设备数是否大于预设值,若某群体身份所连接的设备数大于预设值,则禁止其他设备接入该群体身份。
5.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及显示器,所述存储器上存储有安全认证程序,所述安全认证程序被所述处理器执行,可实现如下步骤:
创建步骤:根据客户端发送的注册请求,创建虚拟账号及群体身份,并向客户端返回该虚拟账号及群体身份;
第一接收步骤:接收客户端发送的登录请求,所述登录请求包括客户端标识符、虚拟账号,以及经过预设加密规则加密后得到的密码;
所述客户端标识符,根据群体身份及设备标识符生成;
所述预设的加密规则包括:
将所述虚拟账号与所述客户端标识符中代表群体身份的字符拼接生成第一字符串;
将所述第一字符串中的字符进行倒序排列得到第二字符串;
根据算法调用指令,从加密算法组中调用第一加密算法及第二加密算法;
利用第一加密算法对所述第二字符串进行加密得到第一密文;
利用第二加密算法对所述第二字符串进行加密得到第二密文;
所述第一加密算法及第二加密算法分别调用算法指令对字符串进行运算,得到长度相同且唯一的整数值;
将所述第一密文与第二密文进行拼接得到第三密文;
将得到的第三密文、分隔符及第一时间戳进行拼接得到密码并输出;
第一认证步骤:根据接收到的客户端标识符、虚拟账号及所述加密后得到的密码,利用预设的认证规则进行认证,若认证通过,则与客户端建立订阅连接;
第二接收步骤:接收客户端发送的主题订阅请求;
第二认证步骤:根据接收到的主题订阅请求,将订阅主题与主题列表进行对比认证,若主题列表中存在所述订阅主题,则认证通过,根据订阅主题向客户端推送订阅信息。
6.根据权利要求5所述的电子装置,其特征在于,所述预设的认证规则包括:
记录接收到登录请求时刻的时间戳,记为第二时间戳;
根据所述接收到的密码,利用预设方式进行提取得到所述接收到的密码中的第一时间戳;
根据客户端标识符、虚拟账号及所述提取的第一时间戳,利用算法调用指令调用该客户端对应的加密算法,对所述虚拟账号及所述客户端标识符中代表群体身份的字符进行预设加密规则的加密后得到认证密码;
将所述接收到的密码与所述认证密码进行对比;
若所述接收到的密码与所述认证密码一致,则计算所述提取的第一时间戳与所述第二时间戳之间的时间差值,将所述时间差值与预设时间阈值进行对比,若所述时间差值小于预设时间阈值,则认证通过。
7.根据权利要求5所述的电子装置,其特征在于,所述第一认证步骤包括:
统计预设周期内每个客户端发送登录请求的次数,若登录请求的次数小于预设次数,则认证通过,若登录请求的次数大于预设次数,则认证失败,在预设时间内禁止接收该客户端发送登录请求。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括安全认证程序,所述安全认证程序被处理器执行时,可实现如权利要求1至4中任一项所述基于MQTT的安全认证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811339590.5A CN109639642B (zh) | 2018-11-12 | 2018-11-12 | 基于mqtt的安全认证方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811339590.5A CN109639642B (zh) | 2018-11-12 | 2018-11-12 | 基于mqtt的安全认证方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109639642A CN109639642A (zh) | 2019-04-16 |
CN109639642B true CN109639642B (zh) | 2022-04-12 |
Family
ID=66067715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811339590.5A Active CN109639642B (zh) | 2018-11-12 | 2018-11-12 | 基于mqtt的安全认证方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109639642B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086636B (zh) * | 2019-04-17 | 2022-03-25 | 平安科技(深圳)有限公司 | 一种基于mqtt的消息分发方法、服务器及存储介质 |
CN110113362B (zh) * | 2019-05-29 | 2021-07-06 | 杭州海兴泽科信息技术有限公司 | 一种基于mqtt协议的消息实时推送方法 |
CN110278248B (zh) * | 2019-05-29 | 2022-04-22 | 平安科技(深圳)有限公司 | 遗嘱消息分发方法、装置及计算机可读存储介质 |
CN110266810B (zh) * | 2019-07-03 | 2022-03-29 | Oppo广东移动通信有限公司 | 基于mqtt协议的消息接收方法、设备及存储介质 |
CN110381057B (zh) * | 2019-07-17 | 2022-06-07 | 上海庆科信息技术有限公司 | 通讯连接的处理方法、装置、存储介质、处理器及系统 |
CN110417795A (zh) * | 2019-08-05 | 2019-11-05 | 中国工商银行股份有限公司 | 收款信息订阅方法、装置及收款系统 |
CN110601783A (zh) * | 2019-08-23 | 2019-12-20 | 贵州省广播电视信息网络股份有限公司 | 一种基于机顶盒的应急广播方法 |
CN111314366B (zh) * | 2020-02-25 | 2022-07-08 | 广州致远电子有限公司 | 一种基于mqtt协议的安全登录系统及方法 |
CN111737087B (zh) * | 2020-06-30 | 2023-08-04 | 超越科技股份有限公司 | 身份信息显示方法及系统 |
CN115987495B (zh) * | 2022-12-05 | 2023-09-15 | 南凌科技股份有限公司 | 一种通用的MQTT客户端id冲突检测及防护实现系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078863A (zh) * | 2013-01-08 | 2013-05-01 | 青岛海信宽带多媒体技术有限公司 | 登录认证的方法、装置及系统 |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
CN107708112A (zh) * | 2017-11-02 | 2018-02-16 | 重庆邮电大学 | 一种适用于mqtt‑sn协议的加密方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10072951B2 (en) * | 2015-12-04 | 2018-09-11 | International Business Machines Corporation | Sensor data segmentation and virtualization |
US10637960B2 (en) * | 2016-10-21 | 2020-04-28 | Infiswift Technologies, Inc. | Method for bridging publish/subscribe brokers for guaranteed low-latency delivery |
EP3331197B1 (en) * | 2016-12-02 | 2020-08-26 | Advanced Digital Broadcast S.A. | A method and system for monitoring a connection status of a device |
-
2018
- 2018-11-12 CN CN201811339590.5A patent/CN109639642B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078863A (zh) * | 2013-01-08 | 2013-05-01 | 青岛海信宽带多媒体技术有限公司 | 登录认证的方法、装置及系统 |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
CN107708112A (zh) * | 2017-11-02 | 2018-02-16 | 重庆邮电大学 | 一种适用于mqtt‑sn协议的加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109639642A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109639642B (zh) | 基于mqtt的安全认证方法、装置及存储介质 | |
CN109067728B (zh) | 应用程序接口的访问控制方法、装置、服务器及存储介质 | |
US11076295B2 (en) | Remote management method, and device | |
US8447970B2 (en) | Securing out-of-band messages | |
US20130124863A1 (en) | Systems and methods for secure communication using a communication encryption bios based upon a message specific identifier | |
US20080141352A1 (en) | Secure password distribution to a client device of a network | |
US11995176B2 (en) | Platform for generation of passwords and/or email addresses | |
CN110430167B (zh) | 临时账户的管理方法、电子设备、管理终端及存储介质 | |
CN114584306B (zh) | 一种数据处理方法和相关装置 | |
CN109729000B (zh) | 一种即时通信方法及装置 | |
US11977620B2 (en) | Attestation of application identity for inter-app communications | |
US9485229B2 (en) | Object level encryption system including encryption key management system | |
CN115473655A (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN112087475B (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
US10931662B1 (en) | Methods for ephemeral authentication screening and devices thereof | |
CN112423277B (zh) | 蓝牙网状网络中的安全证书恢复 | |
CN116701831B (zh) | 处理数据的方法、装置及存储介质 | |
CN113259376A (zh) | 一种基于区块链的物联网设备的控制方法 | |
CN112699404A (zh) | 一种校验权限的方法、装置、设备及存储介质 | |
CN108259454A (zh) | 一种Portal认证方法和装置 | |
CN106487637A (zh) | 一种应用消息的处理系统、方法及应用设备 | |
CN114598724A (zh) | 电力物联网的安全防护方法、装置、设备及存储介质 | |
US8635680B2 (en) | Secure identification of intranet network | |
JP6720113B2 (ja) | 認証システム、サービス提供サーバ、認証方法、及びプログラム | |
CN112134884A (zh) | 一种报文序列号的更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |