CN109614770A - 应用于嵌入式设备的授权系统及方法 - Google Patents
应用于嵌入式设备的授权系统及方法 Download PDFInfo
- Publication number
- CN109614770A CN109614770A CN201811584658.6A CN201811584658A CN109614770A CN 109614770 A CN109614770 A CN 109614770A CN 201811584658 A CN201811584658 A CN 201811584658A CN 109614770 A CN109614770 A CN 109614770A
- Authority
- CN
- China
- Prior art keywords
- information
- result information
- computations
- authorization
- encryption
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013475 authorization Methods 0.000 claims abstract description 100
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 89
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001186 cumulative effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000008901 benefit Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000012795 verification Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种应用于嵌入式设备的授权系统及方法,其中方法包括:信息获取程序模块,用于获取嵌入式设备运行时所产生的随机信息;第一加密计算程序模块,用于根据预设加密算法对随机信息进行加密计算,得到第一加密结果信息;信息发送程序模块,用于将随机信息发送至第二加密计算程序模块;信息接收程序模块,用于接收第二加密计算程序模块所反馈的第二加密结果信息;授权程序模块,用于根据第一加密结果信息和第二加密结果信息确定嵌入式设备是否通过授权。本发明引入了一种分级加密的思想,综合了在线授权与离线授权的优点,并结合目前IoT嵌入式平台中的芯片架构,不依赖于芯片的唯一识别码,通过对加密算法的保密来做到软件授权的安全性。
Description
技术领域
本发明涉及鉴权技术领域,尤其涉及一种应用于嵌入式设备的授权系统及方法。
背景技术
随着IoT(Internet of things,物联网)技术的不断发展,越来越多的小型嵌入式设备被应用到生活的方方面面,而高效鲁棒的软件授权机制保证了开发者的劳动成果不被窃取。基于嵌入式的硬件平台,目前保护软件开发者权益的授权方案主要有如下几类:
在线授权方案,一种基于云端服务器的授权方式,即通过向云端服务器发送请求来确认本地平台是否被允许正常工作;在线授权方案,一种基于服务器认证的授权加密方式,替代了传统意义上的授权文件、序列号或者激活码的方式。当客户第一次使用该产品时,在保证可联网的状态下,需与开发商的认证服务器建立连接,完成必要的加密信息交互之后,方可授权成功。考虑到目前通信中加密技术的成熟性与高保密性,以及核心授权文件远离端侧,因此,这是一种非常安全的授权机制。此外,在保证联网的状态下,认证服务器可与客户端进行不定期的授权检查,最大程度地保护了软件开发商的权益。
离线授权方案,一种不依赖于云端服务器的授权方案,即在产品出厂前已经经过授权,或者是在出厂前被植入一种唯一性的识别码,便于在系统开机前进行自校验。离线授权方案,顾名思义,该授权方案不依赖于互联网,利用出厂时嵌入在产品本地的唯一设备序列号、注册码、密钥等,通过自身的软件授权程序来完成自校验。通常在嵌入式设备的主控芯片中,会留有一块只允许擦写一次的ROM,在芯片出厂时,软件开发商会与客户约定,在该ROM中写入能够唯一区别该芯片的信息。进而,软件开发商能够利用该信息在嵌入式产品本地嵌入校验机制,因为芯片信息的唯一性也就保证了加密授权方案的可靠性。因此,通过密钥的发放个数,软件开发商也能够知晓自己的软件产品在多少个平台上同时使用。
对于在线授权方案:考虑到在线授权方案依赖于互联网,而部分软件开发商的产品无法直接与网络建立连接,如常见的DSP/MCU+AP的嵌入式平台,传统的AP(Applicationprocessor,应用处理器)具有实时联网的功能,而DSP/MCU考虑到成本等因素,并非具有联网的功能或联网功能较弱。因此DSP/MCU侧的授权便无法得到保证;此外,在线授权机制常常采用复杂度较高的加密算法,因此那种需要较低功耗且算力很低的IoT平台则不太适合此类方案。
对于离线授权方案,因为通过本地的唯一设备识别号来进行校验,虽然契合了大部分嵌入式平台无法直接联网的特点,但相对应的存在较大的安全隐患。首先,软件开发商并不能够完全确保芯片厂商针对客户的每一个芯片嵌入完全不同的序列号,这样存在一个序列号授权多个产品的风险;其次,软件开发商在嵌入式芯片的选型过程中,需要确保芯片具有一块一次可擦写的ROM,进而满足能够进行离线授权的前提。一定程度上,软件开发商在进行芯片选型时会存在约束。
针对在线授权的方案,软件开发商的产品并非全部具有联网功能,因此也就无法直接应用于该类产品。例如在常见的IoT平台系统中,通常会有一个独立的AP以及多个专用的信号处理芯片(如DSP),AP负责采集各个DSP端侧收集到的信息,进而将信息反馈给网络。当开发商在类似的DSP上进行开发软件时,在线授权就无法直接利用。
针对离线授权的方案,由于嵌入式平台的芯片选型往往由第三方的负责生产产品的客户选定,因此并不一定能够保证芯片具有唯一设备识别号。此外,由于离线授权的核心数据在应用的端侧,因此软件开发商无法去动态地跟踪产品授权的情况,以及无法知晓是否一个设备对应于一个授权文件。
发明内容
本发明实施例提供一种应用于嵌入式设备的授权系统及方法,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种应用于嵌入式设备的授权系统,包括:
信息获取程序模块,用于获取所述嵌入式设备运行时所产生的随机信息;
第一加密计算程序模块,用于根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
信息发送程序模块,用于将所述随机信息发送至第二加密计算程序模块,所述第二加密计算模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
信息接收程序模块,用于接收所述第二加密计算程序模块所反馈的第二加密结果信息;
授权程序模块,用于根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
第二方面,本发明提供一种应用于嵌入式设备的授权系统,包括:
集成于所述嵌入式设备中的第一处理器芯片和第二处理器芯片;其中,所述第一处理器芯片,用于获取所述嵌入式设备运行时所产生的随机信息;根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;将所述随机信息发送至所述第二处理器芯片;
所述第二处理器芯片,用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
所述第一处理器芯片,还用于接收所述第二处理器芯片所反馈的第二加密结果信息;根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
第三方面,本发明提供一种应用于嵌入式设备的授权方法,所述嵌入式设备中集成有第一处理器芯片和第二处理器芯片;所述方法包括:
所述第一处理器芯片获取所述嵌入式设备运行时所产生的随机信息;
所述第一处理器芯片根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
所述第一处理器芯片将所述随机信息发送至所述第二处理器芯片;
所述第二处理器芯片采用所述预设加密算法或者相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
所述第一处理器芯片接收所述第二加密结果信息;
所述第一处理器芯片根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
第四方面,本发明提供一种应用于嵌入式设备的授权方法,包括:
获取所述嵌入式设备运行时所产生的随机信息;
根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
将所述随机信息发送至第二加密计算程序模块,所述第二加密计算程序模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
接收所述第二加密计算程序模块所反馈的第二加密结果信息;
根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
第五方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项应用于嵌入式设备的授权方法。
第六方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项应用于嵌入式设备的授权方法。
第七方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项应用于嵌入式设备的授权方法。
本发明实施例的有益效果在于:引入了一种分级加密的思想,综合了在线授权与离线授权的优点,并结合目前IoT嵌入式平台中的芯片架构,不依赖于芯片的唯一识别码,通过对加密算法的保密来做到软件授权的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的应用于嵌入式设备的授权方法的一实施例的流程图;
图2为本发明的应用于嵌入式设备的授权方法的另一实施例的流程图;
图3为本发明的应用于嵌入式设备的授权系统的一实施例的原理框图;
图4描述了分级加密的授权系统的基本功能框图;
图5为时间轴层面的授权过程示意图;
图6为本发明中的加密数据格式示意图;
图7为基于嵌入式平台的分级加密授权系统的完整程序流程框图;
图8为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前,在针对嵌入式平台的软件加密方案中,在原有联网平台的基础上,软件开发商会将自身软件直接移植到该平台上,利用该平台的联网功能来进行授权校验。这样,只要在原有客户选定的芯片上进行开发,利用基础的加密算法来保证软件开发商的权益。
另外,针对原先使用离线授权的IoT产品,软件开发商也会推荐给负责产品的客户采用某家芯片厂商的某款芯片,保证该芯片能够具备唯一的设备识别号,进而嵌入式平台可在开机前进行自校验。上述的第一种方案,虽然将开发商软件直接集成到了原芯片中,但也会存在芯片资源不够无法集成及集成后的稳定性问题;而后一种解决方案,虽然推荐了某款芯片,但也给软件开发商和产品客户增长了产品投入市场的时间。
此外,虽然已有相关从业人员提出了类似的混合加密算法,但在嵌入式平台上,如何在不影响原有产品方案性能与稳定性的基础上,保证整个加密授权系统的正常工作,需要设计一套简易但稳健的逻辑交互策略。
本发明提出了一种用于嵌入式设备的授权方法,示例性地,嵌入式设备可以是集成了语音对话算法程序的空调、冰箱、抽油烟机、电视、故事机、音箱等智能终端设备。
如图1所示,为本发明的应用于嵌入式设备的授权方法的一实施例的流程图,在该实施例中,所述嵌入式设备中集成有第一处理器芯片和第二处理器芯片;该方法包括:
S11、所述第一处理器芯片获取所述嵌入式设备运行时所产生的随机信息;
S12、所述第一处理器芯片根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
S13、所述第一处理器芯片将所述随机信息发送至所述第二处理器芯片;
S14、所述第二处理器芯片采用所述预设加密算法或者相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
S15、所述第一处理器芯片接收所述第二加密结果信息;
S16、所述第一处理器芯片根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
本发明实施例中的第一处理器芯片可以为内嵌有语音控制算法数字信号处理器(DSP),第二处理器芯片可以为应用处理器(AP),进一步的AP能够接入互联网。
示例性地,第一处理器芯片利用某类随机信息,例如,芯片上电之后的工作时间、芯片采集到的输入数据等,作为预设加密算法的输入值A。通过软件开发商在芯片内移植的预设加密算法,来计算输出值B,并将加密前的输入值A传给下一级(即,第二处理器芯片);下一级利用此输入值A与相同的或对称的加密算法来计算输出值C,并将此输出值C回传至第一级(第一处理器芯片)。第一级通过核对输出值B与C来判定授权算法是否校验通过。
本发明引入了一种分级加密的思想,综合了在线授权与离线授权的优点,并结合目前IoT嵌入式平台中的芯片架构,不依赖于芯片的唯一识别码,通过对加密算法的保密来做到软件授权的安全性。
综上来看,输入的随机性保证了在不知道加密算法的前提下,他人无法破解此类授权系统;其次,一般地,可利用联网的那一级来将产品的授权信息上传至互联网,进而开发商知道自己软件的授权使用情况;再者,软件算法仅为开发商可见,软件的安全程度也完全由开发商自己决定,灵活性与安全性得到了统一。
在一些实施例中,所述第一处理器芯片还用于在将所述随机信息发送至所述第二处理器芯片之后,开始计时;当计时累计时长超过设定阈值时仍没有接收到所述第二加密结果信息,则确定本次授权失败。
在一些实施例中,所述第一处理器芯片还用于记录在等待接收所述第二加密结果信息期间,发送随机信息的累计次数;当所述累计次数超过设定次数阈值时,确定本次授权失败。
如图2所示,为本发明的应用于嵌入式设备的授权方法的另一实施例的流程图,该方法包括:
S21、获取所述嵌入式设备运行时所产生的随机信息;
S22、根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
S23、将所述随机信息发送至第二加密计算程序模块,所述第二加密计算程序模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
S24、接收所述第二加密计算程序模块所反馈的第二加密结果信息;
S25、根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
本实施例中的授权方法的执行主体可以是集成在嵌入式设备中的第一处理器芯片(例如,DSP芯片),在该芯片中内置了授权程序,该程序的执行流程对应于本实施例中的步骤S21-S25。此外,第二加密计算程序模块可以是内置与第一处理器芯片中的另一个软件程序,也可以是内置于另外一个处理器芯片中的软件程序。
如图3所示,为本发明的应用于嵌入式设备的授权系统300的一实施例的原理框图,该系统包括:
信息获取程序模块310,用于获取所述嵌入式设备运行时所产生的随机信息;
第一加密计算程序模块320,用于根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
信息发送程序模块330,用于将所述随机信息发送至第二加密计算程序模块,所述第二加密计算模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
信息接收程序模块340,用于接收所述第二加密计算程序模块所反馈的第二加密结果信息;
授权程序模块350,用于根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
在一些实施例中,本发明的应用于嵌入式设备的授权系统还包括:
计时程序模块,用于在所述信息发送程序模块将所述随机信息发送至第二加密计算程序模块之后,开始计时;
第一授权确定程序模块,用于当计时累计时长超过设定阈值时所述信息接收程序模块没有接收到所述第二加密结果信息,则确定本次授权失败。
在一些实施例中,本发明的应用于嵌入式设备的授权系统还包括:
授权计数程序模块,用于记录所述信息接收程序模块等待接收所述第二加密结果信息期间,所述信息发送程序模块发送随机信息的累计次数;
第二授权确定程序模块,用于当所述累计次数超过设定次数阈值时,确定本次授权失败。
在一些实施例中,本发明的应用于嵌入式设备的授权系统还包括:第二加密计算程序模块,用于采用所述预设加密算法或者相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息。
在一些实施例中,应用于嵌入式设备的授权系统包括:
集成于所述嵌入式设备中的第一处理器芯片和第二处理器芯片;其中,所述第一处理器芯片,用于获取所述嵌入式设备运行时所产生的随机信息;根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;将所述随机信息发送至所述第二处理器芯片;
所述第二处理器芯片,用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
所述第一处理器芯片,还用于接收所述第二处理器芯片所反馈的第二加密结果信息;根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
在一些实施例中,所述第一处理器芯片,还用于在将所述随机信息发送至所述第二处理器芯片之后,开始计时;当计时累计时长超过设定阈值时仍没有接收到所述第二加密结果信息,则确定本次授权失败。
在一些实施例中,所述第一处理器芯片,还用于记录在等待接收所述第二加密结果信息期间,发送随机信息的累计次数;当所述累计次数超过设定次数阈值时,确定本次授权失败。
上述本发明实施例的应用于嵌入式设备的授权系统可用于执行本发明实施例的应用于嵌入式设备的授权方法,并相应的达到上述本发明实施例的实现应用于嵌入式设备的授权方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
为了更好地说明本发明的技术方案,以下以DSP+AP的嵌入式平台来进行阐述,此处DSP泛指植入软件开放商某类信号处理算法的平台,而AP则泛指那些具备一定联网功能的平台。当然,本专利也适用于单个AP的场景,而从逻辑上来区分第一级和第二级。下面对该方案进行详细的阐述。
1.1、基本功能框图
图4描述了分级加密的授权系统的基本功能框图。
芯片上电时,默认第一级DSP是正常工作的,避免因AP侧还未联网而导致DSP校验失败;
每次DSP端在某类事件下(如定时器中断等)发起授权,类似于DSP与AP之间的握手信号。DSP首先发送KEY1值(伪随机)给AP,并置位标志位KEY1_IsValid。AP则查询到标志位KEY1_IsValid置位后,读取相应的KEY1值,利用加密算法计算KEY2值回馈给DSP。此时,AP对标志位KEY1_Isvalid清零,然后置位标志位KEY2_Isvalid;
DSP在查询到标志位KEY2_IsValid被置位之后,则读取返回的KEY2值,利用KEY1、KEY2值,结合自身加密算法来判断授权是否成功,并清零KEY2_IsValid标志位;
此外,考虑到授权系统的鲁棒性,由于AP可能迟迟未返回校验值KEY2,则引入了授权超时机制。若DSP在一定时间内或者下一次发起授权时仍未收到KEY2值,则自动默认本次校验失败;
上述流程中有如下细节需要注意:
KEY1_IsValid==1,表明AP可以读取KEY1值,读取完成之后清除该标志位;
KEY2_IsValid==1,表明DSP可以读取KEY2值,读取完成之后清除该标志位;
授权超时检测策略:
若DSP发送完KEY1,在一定时间(如1小时内)未接收到KEY2值,则默认此次授权失败。若允许授权的次数被使用完,则必须断电重启DSP芯片之后才能重新授权及正常工作;
若DSP在一定次数(如10次内)的触发授权中,均未收到KEY2值,则默认此次授权失败。若允许授权的次数被使用完,则必须断电重启DSP芯片之后才能重新授权;
每次触发授权的条件可自行设置,如定时器中断到来、某个信号事件到来等;
DSP的授权状态完全依赖于AP本身的授权状态。若DSP芯片工作期间,AP授权文件失效,则第一级DSP不再允许工作,除非AP授权重新生效且DSP端侧断电重启,重新开始授权流程;
图5为时间轴层面的授权过程示意图,需要注意的有以下几点:
DSP仅在约定的时刻触发授权校验,一般来说,DSP并不会在每个处理周期触发授权,这也是没有必要的;如图5中所示,每隔5个DSP处理周期具有一个触发授权时刻,在触发授权时刻抛出KEY1值。
DSP一旦收到KEY2值之后,保证在当前执行周期或下一执行周期完成授权校验工作。并且在抛出KEY1值至接收KEY2之间进行授权超时检测。
每次第一级DSP触发授权操作时,发送的KEY1值均为不同随机值,保证了加密算法的安全性。
1.2、加密方式策略选择
如果对称加密用如下式子表征(y密文、f算法、x待加密信息、key_private密钥):
加密:y=f(x,key_private)
解密:x=f-1(y,key_private)
在对称加密中,仅密文y是公开的,而待加密的信息x、算法f和密钥key_private都是保密的。而在我们1.1小节的描述中,很明显KEY1=x,KEY2=y是公开的,因此我们需要保密的是算法f和密钥key_private。也就是说,在我们的AP与DSP的授权(通信)过程中,需保密的是算法(+密钥)本身,而非待发送的信息本身。
因此,我们仅需设计一种加密方式,而与是否是对称/非对称加密无关。考虑到非对称加密算法(如经典的RSA算法,RSA algorithm,非对称加密算法,名字取自Ron Rivest、Adi Shamir、Leonard Adleman)复杂度高,并不一定适合于嵌入式平台。而对称加密中的RC4(Rivest Cipher 4,一种流加密算法)系列算法、文件校验中的CRC(Cyclic RedundancyCheck,循环冗余校验)算法等计算量相对较低,且在128bit情况下能保证较高的安全性,因此,可优先选用此类算法。当然,本专利给出的是分级机密的授权系统,是一种通用的交互逻辑框架,与采用何类加密算法无关。此处仅作简要说明。
1.3、加密数据格式
如图6所示,为本发明中的加密数据格式示意图。
为了更好地阐述分级加密的授权系统,以下仅列举了一种可行的输入数据格式,供参考。
KEY1:64bit,由定时器信息(32bits)和输入提取信息(32bits)组成;
加密算法f:分两步:A.交换KEY1值相邻Byte内容;B.CRC32;
KEY2:32bit,加密数据值KEY2。
1.4、程序设计流程
如图7所示,为基于嵌入式平台的分级加密授权系统的完整程序流程框图。其中,
a.上述框图给出了基本的软件授权流程,其中图4中的黑色虚框部分为授权超时检测,避免AP一直未返回KEY2值而导致DSP side默认授权可用状态。
b.授权超时检测采用当下一次授权触发到来时,检查上一次DSP授权校验是否执行,若未执行,则默认上次授权不通过。当然,授权超时检测机制不唯一,该方案仅供参考。
c.上述软件授权流程中依据变量sAllowAuthorFailCnt来唯一判断一级DSP是否执行原有基础功能。
DSP在上电启动过程中变量sAllowAuthorFailCnt=N(N>0),每次校验失败,变量sAllowAuthorFailCnt--。当sAllowAuthorFailCnt<0时,授权标志永久清零,此时DSP原有功能不再执行。也就是说,该授权系统考虑到各类延时的影响,允许系统存在一定的授权失败次数。而当允许授权失败的次数(即变量sAllowAuthorFailCnt)小于0时,才判断整个DSP端侧的授权失败。
d.第一级DSP仅在特定的时间到来时,才触发第一级的授权,避免了因AP无法响应频发的授权请求而导致整个系统一直无法授权通过。从实际的使用角度来说,频繁的授权也是没有必要的。
针对本专利提出的一种嵌入式平台的分级加密的授权系统,其所能够直接达到的效果是该授权框架能够适用于更多的嵌入式硬件平台,并且逻辑上的分级加密,使得该方案并不依赖于平台的唯一设备识别码,而保证了与原有平台方案的高度兼容性,进而加快了产品的快速落地。
而更深层次的,由于该授权方案的通用性,保证了软件开发商与负责产品的客户有更多的芯片选型的空间,在综合性价比与能耗的基础上,能够选择出一种最佳的软硬件方案,进而使产品更具有竞争力。另外,分级之间简易的通信握手方式也使得软件开放商在交付产品的时候具有更短的开发周期,避免了因授权机制过于复杂而影响产品最终推向市场的时间。
分级加密逻辑:基于嵌入式的硬件平台,分级加密的逻辑最大程度地保留了在线授权和离线授权的优点,通过分级加密,使得整个授权系统的逻辑更加得清晰,也使得软件开发商可以把更多的精力投放到加密算法本身。此外,分级加密的授权系统,一定程度上使得客户针对芯片选型更加灵活,或者说在保证原有产品功能的基础上,使得新增一套功能单元变得更加简单。
超时检测机制:超时检测机制,不仅使得该授权系统更加得安全,而且针对有些多任务的系统,也允许了一定的响应延时,即在延时几个处理周期的基础上也能够保证授权的正常工作,因此增强了授权系统的容错能力,也就提高了自身授权的鲁棒性。
加密算法灵活性:基于简洁的分级加密逻辑,并依赖于高强度的加密算法,使得整个授权系统更加可靠。针对某些低功耗的应用场景,通过合理地调整加密算法的复杂度,使得原本整个系统的性能并不会因为加入了授权算法而受到影响。也就是说,软件开发商可以通过不同的应用场景来选择合适的加密算法,使之获得最大的性能与效益。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项应用于嵌入式设备的授权方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项应用于嵌入式设备的授权方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行应用于嵌入式设备的授权方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时应用于嵌入式设备的授权方法。
图8是本申请另一实施例提供的执行应用于嵌入式设备的授权方法的电子设备的硬件结构示意图,如图8所示,该设备包括:
一个或多个处理器810以及存储器820,图8中以一个处理器810为例。
执行应用于嵌入式设备的授权方法的设备还可以包括:输入装置830和输出装置840。
处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器820作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的应用于嵌入式设备的授权方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例应用于嵌入式设备的授权方法。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据应用于嵌入式设备的授权装置的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至应用于嵌入式设备的授权装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可接收输入的数字或字符信息,以及产生与应用于嵌入式设备的授权装置的用户设置以及功能控制有关的信号。输出装置840可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器820中,当被所述一个或者多个处理器810执行时,执行上述任意方法实施例中的应用于嵌入式设备的授权方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种应用于嵌入式设备的授权系统,包括:
信息获取程序模块,用于获取所述嵌入式设备运行时所产生的随机信息;
第一加密计算程序模块,用于根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
信息发送程序模块,用于将所述随机信息发送至第二加密计算程序模块,所述第二加密计算模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
信息接收程序模块,用于接收所述第二加密计算程序模块所反馈的第二加密结果信息;
授权程序模块,用于根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
2.根据权利要求1所述的系统,其中,还包括:
计时程序模块,用于在所述信息发送程序模块将所述随机信息发送至第二加密计算程序模块之后,开始计时;
第一授权确定程序模块,用于当计时累计时长超过设定阈值时所述信息接收程序模块没有接收到所述第二加密结果信息,则确定本次授权失败。
3.根据权利要求2所述的系统,其中,还包括:
授权计数程序模块,用于记录所述信息接收程序模块等待接收所述第二加密结果信息期间,所述信息发送程序模块发送随机信息的累计次数;
第二授权确定程序模块,用于当所述累计次数超过设定次数阈值时,确定本次授权失败。
4.根据权利要求1-3任一项所述的系统,其中,还包括:
第二加密计算程序模块,用于采用所述预设加密算法或者相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息。
5.一种应用于嵌入式设备的授权系统,包括:
集成于所述嵌入式设备中的第一处理器芯片和第二处理器芯片;其中,所述第一处理器芯片,用于获取所述嵌入式设备运行时所产生的随机信息;根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;将所述随机信息发送至所述第二处理器芯片;
所述第二处理器芯片,用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
所述第一处理器芯片,还用于接收所述第二处理器芯片所反馈的第二加密结果信息;根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
6.根据权利要求5所述的系统,其中,所述第一处理器芯片,还用于在将所述随机信息发送至所述第二处理器芯片之后,开始计时;当计时累计时长超过设定阈值时仍没有接收到所述第二加密结果信息,则确定本次授权失败。
7.根据权利要求6所述的系统,其中,所述第一处理器芯片,还用于记录在等待接收所述第二加密结果信息期间,发送随机信息的累计次数;当所述累计次数超过设定次数阈值时,确定本次授权失败。
8.一种应用于嵌入式设备的授权方法,所述嵌入式设备中集成有第一处理器芯片和第二处理器芯片;所述方法包括:
所述第一处理器芯片获取所述嵌入式设备运行时所产生的随机信息;
所述第一处理器芯片根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
所述第一处理器芯片将所述随机信息发送至所述第二处理器芯片;
所述第二处理器芯片采用所述预设加密算法或者相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
所述第一处理器芯片接收所述第二加密结果信息;
所述第一处理器芯片根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
9.一种应用于嵌入式设备的授权方法,包括:
获取所述嵌入式设备运行时所产生的随机信息;
根据预设加密算法对所述随机信息进行加密计算,得到第一加密结果信息;
将所述随机信息发送至第二加密计算程序模块,所述第二加密计算程序模块用于采用所述预设加密算法或者与相对于所述预设加密算法的对称加密算法对所述随机信息进行加密计算,以得到第二加密结果信息;
接收所述第二加密计算程序模块所反馈的第二加密结果信息;
根据所述第一加密结果信息和所述第二加密结果信息确定所述嵌入式设备是否通过授权。
10.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求8或9所述方法的步骤。
11.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求8或9所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584658.6A CN109614770A (zh) | 2018-12-24 | 2018-12-24 | 应用于嵌入式设备的授权系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584658.6A CN109614770A (zh) | 2018-12-24 | 2018-12-24 | 应用于嵌入式设备的授权系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614770A true CN109614770A (zh) | 2019-04-12 |
Family
ID=66011387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584658.6A Pending CN109614770A (zh) | 2018-12-24 | 2018-12-24 | 应用于嵌入式设备的授权系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614770A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090843A (zh) * | 2020-03-23 | 2020-05-01 | 北京全路通信信号研究设计院集团有限公司 | 一种离线授权方法及系统 |
CN111994035A (zh) * | 2019-05-10 | 2020-11-27 | 广州汽车集团股份有限公司 | 无人驾驶车辆换挡控制方法、装置、系统及无人驾驶车辆 |
CN112585608A (zh) * | 2020-01-13 | 2021-03-30 | 深圳市大疆创新科技有限公司 | 嵌入式设备、合法性识别方法、控制器及加密芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372464A (zh) * | 2016-08-25 | 2017-02-01 | 中山市天启智能科技有限公司 | 一种嵌入式系统中静态库文件的防盗版加密方法 |
CN106627489A (zh) * | 2016-12-09 | 2017-05-10 | 广州汽车集团股份有限公司 | 一种纯电动汽车防盗认证方法及系统 |
CN108182576A (zh) * | 2018-02-08 | 2018-06-19 | 飞天诚信科技股份有限公司 | 一种安全认证方法及系统、路侧安全模块、车载安全模块 |
-
2018
- 2018-12-24 CN CN201811584658.6A patent/CN109614770A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372464A (zh) * | 2016-08-25 | 2017-02-01 | 中山市天启智能科技有限公司 | 一种嵌入式系统中静态库文件的防盗版加密方法 |
CN106627489A (zh) * | 2016-12-09 | 2017-05-10 | 广州汽车集团股份有限公司 | 一种纯电动汽车防盗认证方法及系统 |
CN108182576A (zh) * | 2018-02-08 | 2018-06-19 | 飞天诚信科技股份有限公司 | 一种安全认证方法及系统、路侧安全模块、车载安全模块 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111994035A (zh) * | 2019-05-10 | 2020-11-27 | 广州汽车集团股份有限公司 | 无人驾驶车辆换挡控制方法、装置、系统及无人驾驶车辆 |
CN112585608A (zh) * | 2020-01-13 | 2021-03-30 | 深圳市大疆创新科技有限公司 | 嵌入式设备、合法性识别方法、控制器及加密芯片 |
CN111090843A (zh) * | 2020-03-23 | 2020-05-01 | 北京全路通信信号研究设计院集团有限公司 | 一种离线授权方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI749061B (zh) | 區塊鏈身份系統 | |
EP2663948B1 (en) | Secure computing in multi-tenant data centers | |
CN110505065B (zh) | 一种可信时间戳添加方法、装置和存储介质 | |
JP5851021B2 (ja) | ソーシャルネットワークベースのpki認証 | |
US8745401B1 (en) | Authorizing actions performed by an online service provider | |
JP6818744B2 (ja) | 確認情報更新方法及び装置 | |
US8959335B2 (en) | Secure password-based authentication for cloud computing services | |
US8533811B2 (en) | Developer phone registration | |
WO2020258837A1 (zh) | 解锁方法、实现解锁的设备及计算机可读介质 | |
CN110072236A (zh) | 设备连接方法、设备和系统 | |
JP7332087B2 (ja) | エアギャッピングされた秘密鍵を用いてトランザクションに署名するためのシステムおよび方法 | |
CN104836784B (zh) | 一种信息处理方法、客户端和服务器 | |
CN109614770A (zh) | 应用于嵌入式设备的授权系统及方法 | |
WO2016029595A1 (zh) | 开放平台的调用方法、装置、设备及非易失性计算机存储介质 | |
US10721076B2 (en) | Method, device, terminal, and server for a security check | |
WO2013079037A1 (zh) | 一种允许用户访问的方法、客户端、服务器以及系统 | |
KR20160081255A (ko) | Otp 제공을 위한 모바일 단말 및 그 동작 방법 | |
CN110519280A (zh) | 一种爬虫识别方法、装置、计算机设备及存储介质 | |
CN109787989A (zh) | 一种密码修改方法、系统及目标服务器和存储介质 | |
US20200349566A1 (en) | Device control method and related device | |
CN110505185A (zh) | 身份验证方法、设备和系统 | |
CN110647583B (zh) | 一种区块链构建方法、装置、终端及介质 | |
Ciampi et al. | Collusion-preserving computation without a mediator | |
CN103841081A (zh) | 一种能力调用方法和系统 | |
JP6603799B2 (ja) | エンティティアイデンティティ有効性検証方法及びその装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |