车辆诊断方法、服务器及计算机可读存储介质与流程

文档序号:20780270发布日期:2020-05-19 21:10阅读:131来源:国知局
车辆诊断方法、服务器及计算机可读存储介质与流程

本申请属于电子技术领域,尤其涉及一种车辆诊断方法、服务器及计算机可读存储介质。



背景技术:

车辆诊断是车辆维修保养的重要手段。目前常用的车辆诊断方法为:诊断设备插入车载诊断系统(on-boarddiagnostic,obd)接口,获取车辆的各种信息,并对获取到的信息进行分析,并将分析结果告知用户,以使用户对车辆进行妥善的维修保养确保车辆的使用性能。

然而,在诊断过程中,车辆诊断指令的传输,车辆数据的获取很容易被黑客劫持,导致车辆数据信息泄露甚至篡改,影响车辆的维修保养过程,进而影响车辆的使用性能。



技术实现要素:

本申请实施例提供了一种车辆诊断方法、服务器及计算机可读存储介质,可以解决在车辆诊断指令的传输、车辆数据的获取过程中被劫持导致指令和数据被泄露甚至篡改的问题。

第一方面,本申请实施例提供了一种车辆诊断方法,应用于服务器,包括:

当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证;

在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备;

当检测到软件即服务saas服务器发送的初始车辆诊断指令时,采用所述会话密钥对所述初始车辆诊断指令进行加密,并将加密得到的目标车辆诊断指令发送至所述车辆诊断设备;

接收所述saas服务器转发的目标车辆检测数据,其中,所述目标车辆检测数据由所述车辆诊断设备采用所述会话密钥对获取的初始车辆数据进行加密后发送至所述saas服务器,所述初始车辆数据由所述车辆诊断设备采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取;

采用所述会话密钥对所述目标车辆检测数据进行解密,并将解密得到的初始车辆数据发送至所述saas服务器,以触发所述saas服务器对所述初始车辆数据进行分析,得到车辆诊断结果。

上述方案,通过加密服务器对saas服务器发送的车辆诊断指令进行加密后发送给车辆诊断设备,以及采用会话密钥对saas服务器转发的加密的车辆数据进行解密,将解密后的明文车辆数据发送至saas服务器,以使得saas服务器基于解密后的车辆数据进行分析,得到车辆诊断结果。由于在此过程中,加密服务器的交互数据或指令都是加密数据,即使获取到加密的数据也无法破译,得到明文数据,能够防止在车辆诊断过程中,车辆诊断指令的传输,车辆数据的获取被黑客劫持,或者因车辆诊断设备的obd接头的总线被入侵,而导致通过该总线传输的车辆诊断指令、车辆诊断指令对应的车辆数据被偷袭或窃取,进而防止他人得到明文诊断指令和车辆数据之后,模仿或还原出车辆诊断方案,能够防止车辆诊断方案被窃取;还可以防止因车辆数据信息被篡改而导致影响车辆的维修保养过程,进而影响车辆的使用性能的情况发生。

由于加密服务器可处理高并发的车辆诊断指令,能够保证车辆诊断系统的处理效率。

在第一方面的一种可能的实现方式中,所述当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证,包括:

获取所述车辆诊断设备的第一安全证书,并基于所述第一安全证书对所述车辆诊断设备进行身份验证,其中,当所述第一安全证书与预存的安全证书相同时,判定所述车辆诊断设备身份合法。

在第一方面的一种可能的实现方式中,所述在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,包括:

在确认所述车辆诊断设备身份合法,并确认所述车辆诊断设备返回的身份验证结果表示所述服务器身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,其中,所述身份验证结果由所述车辆诊断设备在获取到所述服务器的第二安全证书时,基于所述第二安全证书对所述服务器进行身份验证后发送。

在第一方面的一种可能的实现方式中,所述生成会话密钥包括:基于密钥协商机制生成会话密钥。

其中,密钥协商机制,主要用于产生通信双方的临时会话密钥。例如,依靠非对称秘钥算法协商会话密钥、基于秘钥交换算法协商会话密钥、依靠共享的信息协商会话密钥等方法。

其中,非对称秘钥算法包括但不限于:rsa、椭圆曲线密码编码学(ellipticcurvescryptography,ecc)。依靠非对称秘钥算法协商会话密钥的方法具体为:加密服务器随机生成一个随机数,并将该随机数作为本次的会话密钥,采用车辆诊断设备的公钥对该随机数进行加密后发送至车辆诊断设备,车辆诊断设备在接收到加密后的随机数时,采用自己的私钥对其进行解密,得到随机数,即会话密钥。这样加密服务器以及车辆诊断设备均能得到会话密钥。

其中,秘钥交换算法包括但不限于dh算法、ecdh算法、dhe算法、ecdhe算法等。基于秘钥交换算法协商会话密钥的实现原理是:只交换产生密钥的部分数据,各自保证可以产生相同的数据。基于秘钥交换算法协商会话密钥的实现方式为现有技术,此处不赘述。

依靠共享的信息协商会话密钥的实现原理是,双方依靠共享的信息,直接通过密钥导出函数(keyderivationfunction)来产生同一密钥。

可以理解的是,在其他实施例中,加密服务器可以基于所述车辆诊断设备的公钥、所述服务器的私钥以及随机数,生成会话密钥。或者,加密服务器也可以基于车辆诊断设备的公钥以及加密服务器的私钥生成会话密钥,此处不做限制。

第二方面,本申请实施例提供了一种车辆诊断方法,包括:

加密服务器当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证;

所述加密服务器在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备;

所述加密服务器当检测到软件即服务saas服务器发送的初始车辆诊断指令时,采用所述会话密钥对所述初始车辆诊断指令进行加密,并将加密得到的目标车辆诊断指令发送至所述车辆诊断设备;

所述车辆诊断设备在接收到所述目标车辆诊断指令时,采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取初始车辆数据,采用所述会话密钥对所述初始车辆数据进行加密,将加密得到的目标车辆数据发送至所述saas服务器;

加密服务器接收所述saas服务器转发的目标车辆检测数据,采用所述会话密钥对所述目标车辆检测数据进行解密,并将解密得到的初始车辆数据发送至所述saas服务器;

所述saas服务器在接收到所述初始车辆数据时,对所述初始车辆数据进行分析,得到车辆诊断结果。

上述方案,通过加密服务器对saas服务器发送的车辆诊断指令进行加密后发送给车辆诊断设备,以及采用会话密钥对saas服务器转发的加密的车辆数据进行解密,将解密后的明文车辆数据发送至saas服务器,以使得saas服务器基于解密后的车辆数据进行分析,得到车辆诊断结果。由于在此过程中,加密服务器的交互数据或指令都是加密数据,即使获取到加密的数据也无法破译,得到明文数据,能够防止在车辆诊断过程中,车辆诊断指令的传输,车辆数据的获取被黑客劫持,或者因车辆诊断设备的obd接头的总线被入侵,而导致通过该总线传输的车辆诊断指令、车辆诊断指令对应的车辆数据窃取,进而防止他人得到明文诊断指令和车辆数据之后,模仿或还原出车辆诊断方案,能够防止车辆诊断方案被窃取;还可以防止因车辆数据信息被篡改而导致影响车辆的维修保养过程,进而影响车辆的使用性能的情况发生。

由于加密服务器可处理高并发的车辆诊断指令,能够保证车辆诊断系统的处理效率。

在第二方面的一种可能的实现方式中,所述加密服务器当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证,包括:

所述加密服务器获取所述车辆诊断设备的第一安全证书,并基于所述第一安全证书对所述车辆诊断设备进行身份验证,其中,当所述第一安全证书与预存的安全证书相同时,判定所述车辆诊断设备身份合法。

在第二方面的一种可能的实现方式中,车辆诊断方法还包括:

所述加密服务器将自己的第二安全证书发送至所述车辆诊断设备;

所述车辆诊断设备在接收到所述第二安全证书时,基于所述第二安全证书对所述服务器进行身份验证,并将身份验证结果发送至所述加密服务器;

相应地,所述加密服务器在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,包括:

所述加密服务器在确认所述车辆诊断设备身份合法,并确认所述车辆诊断设备返回的所述身份验证结果表示所述服务器身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备。

在第二方面的一种可能的实现方式中,所述加密服务器通过以下方式生成会话密钥:

所述加密服务器基于密钥协商机制生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备。

基于密钥协商机制生成会话密钥的方法包括但不限于:依靠非对称秘钥算法协商会话密钥、基于秘钥交换算法协商会话密钥、依靠共享的信息协商会话密钥等方法。

其中,非对称秘钥算法包括但不限于:rsa、椭圆曲线密码编码学(ellipticcurvescryptography,ecc)。依靠非对称秘钥算法协商会话密钥的方法具体为:加密服务器随机生成一个随机数,并将该随机数作为本次的会话密钥,采用车辆诊断设备的公钥对该随机数进行加密后发送至车辆诊断设备,车辆诊断设备在接收到加密后的随机数时,采用自己的私钥对其进行解密,得到随机数,即会话密钥。这样加密服务器以及车辆诊断设备均能得到会话密钥。

其中,秘钥交换算法包括但不限于dh算法、ecdh算法、dhe算法、ecdhe算法等。基于秘钥交换算法协商会话密钥的实现原理是:只交换产生密钥的部分数据,各自保证可以产生相同的数据。基于秘钥交换算法协商会话密钥的实现方式为现有技术,此处不赘述。

依靠共享的信息协商会话密钥的实现原理是,双方依靠共享的信息,直接通过密钥导出函数(keyderivationfunction)来产生同一密钥。

可以理解的是,在其他实施例中,加密服务器可以基于所述车辆诊断设备的公钥、所述服务器的私钥以及随机数,生成会话密钥。或者,加密服务器也可以基于车辆诊断设备的公钥以及加密服务器的私钥生成会话密钥,此处不做限制。

第三方面,本申请实施例提供了一种车辆诊断装置,包括:

身份验证单元,用于当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证;

会话密钥生成单元,用于在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备;

加密单元,用于当检测到软件即服务saas服务器发送的初始车辆诊断指令时,采用所述会话密钥对所述初始车辆诊断指令进行加密,并将加密后得到的目标车辆诊断指令发送至所述车辆诊断设备;

接收单元,用于接收所述saas服务器转发的目标车辆检测数据,其中,所述目标车辆检测数据由所述车辆诊断设备采用所述会话密钥对获取的初始车辆数据进行加密后发送至所述saas服务器,所述初始车辆数据由所述车辆诊断设备采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取;

解密单元,用于采用所述会话密钥对所述目标车辆检测数据进行解密,并将解密得到的初始车辆数据发送至所述saas服务器,以触发所述saas服务器对所述初始车辆数据进行分析,得到车辆诊断结果。

可选地,所述身份验证单元具体用于:获取所述车辆诊断设备的第一安全证书,并基于所述第一安全证书对所述车辆诊断设备进行身份验证,其中,当所述第一安全证书与预存的安全证书相同时,判定所述车辆诊断设备身份合法。

可选地,所述会话密钥生成单元还用于:在确认所述车辆诊断设备身份合法,并确认所述车辆诊断设备返回的身份验证结果表示所述服务器身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,其中,所述身份验证结果由所述车辆诊断设备在获取到所述服务器的第二安全证书时,基于所述第二安全证书对所述服务器进行身份验证后发送。

可选地,所述会话密钥生成单元具体用于:基于密钥协商机制生成会话密钥。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的车辆诊断方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在数据管理设备上运行时,使得数据管理设备执行上述第一方面中任一项所述的车辆诊断方法。

可以理解的是,上述第三方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是本申请一实施例提供的车辆诊断系统的示意图;

图2是本申请一实施例提供的车辆诊断方法的交互图;

图3是本申请一实施例提供的车辆诊断方法的流程示意图;

图4是本申请一实施例提供的车辆诊断装置的结构示意框图;

图5是本申请一实施例提供的服务器的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

请参阅图1,图1是本申请实施例提供的一种车辆诊断系统的示意图。该系统包括:车辆诊断设备10、加密服务器20以及软件即服务(software-as-a-service,saas)服务器30。车辆诊断设备10的数量可以为一个,也可以为至少两个,此处不做限制。车辆诊断设备10和加密服务器20之间可以相互通信,加密服务器20以及saas服务器30之间可以相互通信,车辆诊断设备10和saas服务器30之间也可以相互通信。

其中,车辆诊断设备10以及加密服务器20中设有安全芯片,安全芯片预置有一证书,该证书可以是rsa证书,也可以是sm2证书,此处不做限制。该证书可以由预设的证书发布平台发布,该证书也可以在对安全芯片进行初始化时,向预设的证书发布平台申请得到。该证书具有一对非对称秘钥,该对非对称秘钥包括公钥和私钥。

车辆诊断设备10为车载诊断系统(on-boarddiagnostic,obd)设备,可以是obd装置(例如,obd接头),也可以是与obd接头连接的设备,此处不做限制。当车辆诊断设备10为与obd接头连接的设备时,该设备与obd接头通过总线连接。当车辆诊断设备10为obd接头时,安全芯片设置在obd接头中。

其中,车辆诊断软件或车辆诊断应用部署于saas服务器30。用户可通过安装该车辆诊断应用或车辆诊断程序的终端启动车辆诊断服务,并触发该终端或saas服务器30生成车辆诊断服务启动指令以及车辆诊断指令,从而进行车辆诊断。saas服务器30能够为多用户、多设备提供车辆诊断服务。

加密服务器20用于在确认车辆诊断设备10身份合法时,生成会话密钥,并将会话密钥发送至车辆诊断设备10。会话密钥用于加密saas服务器30转发的车辆诊断指令或解密saas服务器30转发的车辆数据。

saas服务器30用于将数据转发至加密服务器20,转发的数据包括车辆诊断指令,以及车辆诊断设备10发送的采用会话密钥加密的车辆数据。

车辆诊断设备10用于采用会话密钥对加密服务器20发送的车辆诊断指令进行解密,并获取该车辆诊断指令对应的车辆数据,并采用会话密钥对获取到的车辆数据进行加密后发送至saas服务器30。

在介绍了车辆诊断系统的组成及总的工作原理之后,下面结合车辆诊断方法的交互图,详细说明车辆诊断系统在进行车辆诊断时的具体实现流程。请一并参阅图2,图2是本申请一实施例提供的车辆诊断方法的交互图。如图所示,车辆诊断系统的实现流程如下:

1、加密服务器对车辆诊断设备进行身份验证。

例如,当用户需要对车辆进行诊断时,将车辆诊断设备10插入待检测车辆的obd接口,通过终端启动车辆诊断应用触发车辆诊断服务启动指令。saas服务器30将车辆诊断服务启动指令发送至加密服务器20。车辆诊断服务启动指令包括车辆诊断设备的设备标识信息。

加密服务器20在检测到车辆诊断服务启动指令时,基于车辆诊断服务启动指令中包含的车辆诊断设备的设备标识信息,对车辆诊断设备10进行身份验证。车辆诊断服务启动指令可以由saas服务器30在检测到用户启动车辆诊断应用时发送。

加密服务器20对车辆诊断设备10进行身份验证的方法可以为:加密服务器20基于车辆诊断设备的设备标识信息向车辆诊断设备10发送身份验证请求信息,以请求车辆诊断设备10返回车辆诊断设备的身份信息。加密服务器20在获取到车辆诊断设备10的身份信息时,从身份数据库中查找与该身份信息匹配的身份信息,在查找到匹配的身份信息时,判定车辆诊断设备10身份合法,在未查找到匹配的身份信息时,判定车辆诊断设备10不合法。

其中,该身份信息可以是车辆诊断设备10的唯一身份识别信息,例如,介质访问控制(mediaaccesscontrol,mac)地址,唯一识别码或唯一序列号。身份信息数据库中预先存储有加密服务器20允许通信的车辆诊断设备的身份信息。身份信息数据库中预先存储的身份信息可以由用户预先输入,也可以由其他设备发送,此处不做限制。

在一种可能的实现方式中,该身份信息也可以是车辆诊断设备10的安全证书,也可以是车辆诊断设备对应的密钥对中的公钥。密钥对包括公钥和私钥。密钥对可以是车辆诊断设备采用非对称加密算法生成。采用非对称加密算法生成密钥对的方法为现有技术,具体请参阅现有技术中的相关描述,此处不赘述。

在一种可能的实现方式中,当加密服务器20以及车辆诊断设备10均设有安全芯片时,加密服务器20可以通过车辆诊断设备10内置的安全芯片对应的安全证书,对车辆诊断设备10进行身份验证。

具体的,加密服务器20获取车辆诊断设备10的第一安全证书,并基于第一安全证书对车辆诊断设备进行身份验证。其中,当第一安全证书与预存的安全证书相同时,判定车辆诊断设备身份合法。或者,当第一安全证书对应的公钥与预存的车辆诊断设备的公钥相同时,判定车辆诊断设备身份合法。预存的安全证书是指加密服务器20内预先存储的车辆诊断设备的安全证书。安全证书与车辆诊断设备的设备标识信息关联存储,以使得加密服务器20可以基于车辆诊断设备的设备标识信息查找车辆诊断设备的安全证书。

或者,加密服务器20采用散列函数分别计算第一安全证书对应的第一特征值,以及计算该预存的安全证书对应的第二特征值,在确认第一特征值与第二特征值相同时,判定车辆诊断设备身份合法。散列函数包括但不限于哈希算法、消息摘要算法。

可以理解的是,车辆诊断设备10也可以采用上述方式对加密服务器20进行身份验证,以使得车辆诊断设备10与加密服务器20进行双向身份认证。

车辆诊断设备10内预置了加密服务器20的第二安全证书。当车辆诊断设备10与加密服务器20通过交换各自对应的安全证书进行双向身份认证时,车辆诊断设备10在从本地获取到加密服务器20对应的第二安全证书时,基于第二安全证书对加密服务器进行身份验证,并将身份验证结果发送至加密服务器20。

2、加密服务器在确认身份合法时,生成本次车辆诊断所对应的会话密钥。

加密服务器20可以在确认车辆诊断设备10身份合法时,生成本次车辆诊断所对应的会话密钥。可以理解的是,一次车辆诊断可以对应多条车辆诊断指令。

可以理解的是,当车辆诊断设备10与加密服务器20进行双向身份认证时,加密服务器20可以在确认车辆诊断设备10身份合法,且车辆诊断设备10返回的身份验证结果表示加密服务器身份合法时,生成本次车辆诊断对应的会话密钥。

在一种可能的实现方式中,加密服务器20采用以下方式生成会话密钥:基于密钥协商机制生成会话密钥。

其中,密钥协商机制,主要用于产生通信双方的临时会话密钥。例如,依靠非对称秘钥算法协商会话密钥、基于秘钥交换算法协商会话密钥、依靠共享的信息协商会话密钥等方法。

其中,非对称秘钥算法包括但不限于:rsa、椭圆曲线密码编码学(ellipticcurvescryptography,ecc)。依靠非对称秘钥算法协商会话密钥的方法具体为:加密服务器随机生成一个随机数,并将该随机数作为本次的会话密钥,采用车辆诊断设备的公钥对该随机数进行加密后发送至车辆诊断设备,车辆诊断设备在接收到加密后的随机数时,采用自己的私钥对其进行解密,得到随机数,即会话密钥。这样加密服务器以及车辆诊断设备均能得到会话密钥。

其中,秘钥交换算法包括但不限于dh算法、ecdh算法、dhe算法、ecdhe算法等。基于秘钥交换算法协商会话密钥的实现原理是:只交换产生密钥的部分数据,各自保证可以产生相同的数据。基于秘钥交换算法协商会话密钥的实现方式为现有技术,此处不赘述。

依靠共享的信息协商会话密钥的实现原理是,双方依靠共享的信息(例如,双方的公钥,或对方的公钥),直接通过密钥导出函数(keyderivationfunction)来产生同一密钥。

可以理解的是,在其他实施例中,加密服务器可以基于所述车辆诊断设备的公钥、所述服务器的私钥以及随机数,生成会话密钥。

具体的,加密服务器20将车辆诊断设备的公钥、所述加密服务器的私钥以及随机数,作为一条消息。可以理解的是,该消息中车辆诊断设备的公钥、所述加密服务器的私钥以及随机数这三者的位置可以任意变换。

之后,加密服务器20采用消息认证码算法计算该消息的消息认证码(messageauthenticationcode,mac)值,将该mac值作为会话秘钥;或者,采用哈希算法计算该消息对应的哈希值,并将该哈希值作为会话秘钥。

可以理解的是,在其他实施例中,加密服务器20也可以基于车辆诊断设备的公钥以及加密服务器的私钥生成会话密钥,此处不做限制。例如,加密服务器20将车辆诊断设备的公钥以及加密服务器的私钥作为一消息,采用哈希算法计算该消息的哈希值,并将该哈希值作为会话密钥。

3、加密服务器将所述会话秘钥发送至车辆诊断设备。

加密服务器20基于车辆诊断设备的设备标识信息,将会话秘钥发送至车辆诊断设备。

4、saas服务器将初始车辆诊断指令发送至加密服务器。

saas服务器30在检测到用户通过车辆诊断应用触发的初始车辆诊断指令时,将初始车辆诊断指令发送至加密服务器20。初始车辆诊断指令包括但不限于以下任一个或至少两个的任一组合:读取故障码、清楚故障码、读取冻结帧、读取数据流、动作测试、编程配钥以及了解汽车运行状况。

5、加密服务器采用所述会话密钥对所述初始车辆诊断指令进行加密。

6、将加密得到的目标车辆诊断指令发送至所述车辆诊断设备。

加密服务器20基于车辆诊断设备的设备标识信息,将加密得到的目标车辆诊断指令发送至车辆诊断设备10。

7、车辆诊断设备在接收到所述目标车辆诊断指令时,采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取初始车辆数据,采用所述会话密钥对所述初始车辆数据进行加密。

车辆诊断设备10在解密得到初始车辆诊断指令时,根据该初始车辆诊断指令获取待检测车辆的车辆数据,并将采集到的车辆数据作为初始车辆数据。之后,采用会话密钥对初始车辆数据进行加密,得到目标车辆数据。由于obd用于监控发动机的运行状况和尾气后处理系统的工作状态,因此,获取到的车辆数据为可以为以下部件或系统的相关数据:发动机、催化转化器、颗粒捕集器、氧传感器、排放控制系统、燃油系统、排气再循环(exhaustgasrecirculation,egr)。

可以理解的是,待检测车辆的车辆数据可以是车辆诊断设备10基于初始车辆诊断指令实时采集,也可以是车辆诊断设备10从用于存储车辆数据的存储区域获取,此处不做限制。

8、将加密得到的目标车辆数据发送至saas服务器。

9、saas服务器将接收到的目标车辆数据转发至加密服务器。

由于saas服务器30无法对数据进行加密或解密,因此,saas服务器30在接收到车辆诊断设备10发送的目标车辆数据时,将目标车辆数据转发至加密服务器20。

10、加密服务器采用所述会话密钥对所述目标车辆检测数据进行解密。

加密服务器20在接收到saas服务器30转发的目标车辆数据时,采用会话密钥对目标车辆检测数据进行解密,得到加密前的初始车辆数据。

11、加密服务器将解密得到的初始车辆数据发送至saas服务器。

12、saas服务器在接收到所述初始车辆数据时,对所述初始车辆数据进行分析,得到车辆诊断结果。

saas服务器30在接收到加密服务器20发送的该初始车辆诊断指令对应的初始车辆数据时,基于初始车辆诊断指令对该初始车辆诊断指令对应的初始车辆数据进行分析,得到车辆诊断结果,并将车辆诊断结果通知给用户。

可以理解的是,当saas服务器检测到多条初始车辆诊断指令时,基于每条初始车辆诊断指令,对各自对应的初始车辆数据进行分析,得到每条初始车辆诊断指令对应的车辆诊断结果;之后,可以基于每条初始车辆诊断指令对应的车辆诊断结果,生成车辆诊断报告,并将该车辆诊断报告通知给用户。

在本申请实施例中,加密服务器为支持高并发的服务器,可同时处理并发的预设数量的车辆诊断指令,预设数量可基于加密服务器可同时处理的并发指令的阈值设置。预设数量小于或等于该阈值即可。

上述方案,通过加密服务器对saas服务器发送的车辆诊断指令进行加密后发送给车辆诊断设备,以及车辆诊断设备在基于该车辆诊断指令获取到相应的车辆数据时,采用会话密钥对车辆数据加密后发送至saas服务器,saas服务器将加密后的车辆数据转发给加密服务器进行解密,获取解密后的车辆数据,并基于解密后的车辆数据进行分析,得到车辆诊断结果。由于在此过程中,车辆诊断设备与saas服务器以及加密服务器交互的数据或指令都是加密的数据,即使获取到加密的数据也无法破译,得到明文数据,能够防止在车辆诊断过程中,车辆诊断指令的传输,车辆数据的获取被黑客劫持,或者因车辆诊断设备的obd接头的总线被入侵,而导致通过该总线传输的车辆诊断指令、车辆诊断指令对应的车辆数据被偷袭或窃取,进而防止他人得到明文诊断指令和车辆数据之后,模仿或还原出车辆诊断方案,能够防止车辆诊断方案被窃取;还可以防止因车辆数据信息被篡改而导致影响车辆的维修保养过程,进而影响车辆的使用性能的情况发生。

由于加密服务器可处理高并发的车辆诊断指令,能够保证车辆诊断系统的处理效率。

请参见图3,图3是本申请一实施例提供的车辆诊断方法的实现流程示意图,本实施例的车辆诊断方法的执行主体为服务器,例如图1所示的加密服务器。下面以车辆诊断方法的执行主体为加密服务器为例进行说明。如图3所示的车辆诊断方法可包括:

s101,当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证。

例如,当用户需要对车辆进行诊断时,将车辆诊断设备插入待检测车辆的obd接口,通过终端启动车辆诊断应用触发车辆诊断服务启动指令。saas服务器将车辆诊断服务启动指令发送至加密服务器。车辆诊断服务启动指令包括车辆诊断设备的设备标识信息。

加密服务器在检测到车辆诊断服务启动指令时,基于车辆诊断服务启动指令中包含的车辆诊断设备的设备标识信息,对车辆诊断设备进行身份验证。车辆诊断服务启动指令可以由saas服务器在检测到用户启动车辆诊断应用时发送。

加密服务器对车辆诊断设备进行身份验证的方法可以为:加密服务器基于车辆诊断设备的设备标识信息向车辆诊断设备发送身份验证请求信息,以请求车辆诊断设备返回车辆诊断设备的身份信息。加密服务器在获取到车辆诊断设备的身份信息时,从身份数据库中查找与该身份信息匹配的身份信息,在查找到匹配的身份信息时,判定车辆诊断设备身份合法,在未查找到匹配的身份信息时,判定车辆诊断设备不合法。

其中,该身份信息可以是车辆诊断设备的唯一身份识别信息,例如,mac地址,唯一识别码或唯一序列号。身份信息数据库中预先存储有加密服务器允许通信的车辆诊断设备的身份信息。身份信息数据库中预先存储的身份信息可以由用户预先输入,也可以由其他设备发送,此处不做限制。

在一种可能的实现方式中,该身份信息也可以是车辆诊断设备的安全证书,也可以是车辆诊断设备对应的密钥对中的公钥。密钥对包括公钥和私钥。密钥对可以是车辆诊断设备采用非对称加密算法生成。采用非对称加密算法生成密钥对的方法为现有技术,具体请参阅现有技术中的相关描述,此处不赘述。

可选的,为了保证数据的安全性,加密服务器以及车辆诊断设备均设有安全芯片,其中,安全芯片预置有一证书,该证书可以是rsa证书,也可以是sm2证书,此处不做限制。

在一种可能的实现方式中,为了保证数据的安全性,防止加密服务器与不可信设备进行通信,加密服务器可以通过车辆诊断设备内置的安全芯片对应的安全证书,对车辆诊断设备进行身份验证。此时,s101具体可以包括:获取所述车辆诊断设备的第一安全证书,并基于所述第一安全证书对所述车辆诊断设备进行身份验证,其中,当所述第一安全证书与预存的安全证书相同时,判定所述车辆诊断设备身份合法。

例如,加密服务器获取车辆诊断设备的第一安全证书,并基于第一安全证书对车辆诊断设备进行身份验证。其中,当第一安全证书与预存的安全证书相同时,判定车辆诊断设备身份合法。或者,当第一安全证书对应的公钥与预存的车辆诊断设备的第一公钥相同时,判定车辆诊断设备身份合法。预存的安全证书是指加密服务器内预先存储的车辆诊断设备的安全证书。安全证书与车辆诊断设备的设备标识信息关联存储,以使得加密服务器可以基于车辆诊断设备的设备标识信息查找车辆诊断设备的安全证书。

或者,加密服务器采用散列函数分别计算第一安全证书对应的第一特征值,以及计算该预存的安全证书对应的第二特征值,在确认第一特征值与第二特征值相同时,判定车辆诊断设备身份合法。散列函数包括但不限于哈希算法、消息摘要算法。

s102,在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备。

加密服务器可以在确认车辆诊断设备身份合法时,生成本次车辆诊断所对应的会话密钥,之后,基于车辆诊断设备的设备标识信息,将会话秘钥发送至车辆诊断设备。

在一种可能的实现方式中,当服务器与车辆诊断设备进行双向身份验证时,在确认双向身份验证通过时,生成会话密钥。s102可以具体为:在确认所述车辆诊断设备身份合法,并确认所述车辆诊断设备返回的身份验证结果表示所述服务器身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,其中,所述身份验证结果由所述车辆诊断设备在获取到所述服务器的第二安全证书时,基于所述第二安全证书对所述服务器进行身份验证后发送。

例如,车辆诊断设备也可以采用s101中的身份验证方式对加密服务器进行身份验证,以使得车辆诊断设备与加密服务器进行双向身份认证。

具体地,车辆诊断设备10内预置了加密服务器20的第二安全证书。当车辆诊断设备与加密服务器通过交换各自对应的安全证书进行双向身份认证时,车辆诊断设备从本地获取到加密服务器对应的第二安全证书时,基于第二安全证书对加密服务器进行身份验证,并将身份验证结果发送至加密服务器。

其中,当车辆诊断设备接收到的第二安全证书与车辆诊断设备内预存的加密服务器所对应的安全证书相同时,判定加密服务器身份合法。或者,当第二安全证书对应的公钥与预存的加密服务器的公钥相同时,判定加密服务器身份合法。

或者,车辆诊断设备采用散列函数分别计算第一安全证书对应的第一特征值,以及计算该预存的安全证书对应的第二特征值,在确认第一特征值与第二特征值相同时,判定加密服务器身份合法。散列函数包括但不限于哈希算法、消息摘要算法。

进一步地,加密服务器生成会话密钥的方式可以具体为:在确认所述车辆诊断设备身份合法时,基于密钥协商机制生成会话密钥。

其中,密钥协商机制,主要用于产生通信双方的临时会话密钥。例如,依靠非对称秘钥算法协商会话密钥、基于秘钥交换算法协商会话密钥、依靠共享的信息协商会话密钥等方法。

其中,非对称秘钥算法包括但不限于:rsa、椭圆曲线密码编码学(ellipticcurvescryptography,ecc)。依靠非对称秘钥算法协商会话密钥的方法具体为:加密服务器随机生成一个随机数,并将该随机数作为本次的会话密钥,采用车辆诊断设备的公钥对该随机数进行加密后发送至车辆诊断设备,车辆诊断设备在接收到加密后的随机数时,采用自己的私钥对其进行解密,得到随机数,即会话密钥。这样加密服务器以及车辆诊断设备均能得到会话密钥。

其中,秘钥交换算法包括但不限于dh算法、ecdh算法、dhe算法、ecdhe算法等。基于秘钥交换算法协商会话密钥的实现原理是:只交换产生密钥的部分数据,各自保证可以产生相同的数据。基于秘钥交换算法协商会话密钥的实现方式为现有技术,此处不赘述。

依靠共享的信息协商会话密钥的实现原理是,双方依靠共享的信息(例如,双方的公钥,或对方的公钥),直接通过密钥导出函数(keyderivationfunction)来产生同一密钥。

可以理解的是,在其他实施例中,加密服务器可以基于所述车辆诊断设备的公钥、所述服务器的私钥以及随机数,生成会话密钥。

具体地,加密服务器将车辆诊断设备的公钥、所述加密服务器的私钥以及随机数,作为一条消息。可以理解的是,该消息中车辆诊断设备的公钥、所述加密服务器的私钥以及随机数这三者的位置可以任意变换。

之后,加密服务器采用消息认证码算法计算该消息的消息认证码(messageauthenticationcode,mac)值,将该mac值作为会话秘钥;或者,采用哈希算法计算该消息对应的哈希值,并将该哈希值作为会话秘钥。

可以理解的是,在其他实施例中,加密服务器20也可以基于车辆诊断设备的公钥以及加密服务器的私钥生成会话密钥,此处不做限制。例如,加密服务器20将车辆诊断设备的公钥以及加密服务器的私钥作为一消息,采用哈希算法计算该消息的哈希值,并将该哈希值作为会话密钥。

s103,当检测到软件即服务saas服务器发送的初始车辆诊断指令时,采用所述会话密钥对所述初始车辆诊断指令进行加密,并将加密后得到的目标车辆诊断指令发送至所述车辆诊断设备。

初始车辆诊断指令包括但不限于以下任一个或至少两个的任一组合:读取故障码、清楚故障码、读取冻结帧、读取数据流、动作测试、编程配钥以及了解汽车运行状况。

s104,接收所述saas服务器转发的目标车辆检测数据,其中,所述目标车辆检测数据由所述车辆诊断设备采用所述会话密钥对获取的初始车辆数据进行加密后发送至所述saas服务器,所述初始车辆数据由所述车辆诊断设备采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取。

车辆诊断设备在接收到目标车辆诊断指令时,采用会话密钥对目标车辆诊断指令进行解密,得到初始车辆诊断指令,之后,根据该初始车辆诊断指令获取待检测车辆的车辆数据,并将采集到的车辆数据作为初始车辆数据。之后,采用会话密钥对初始车辆数据进行加密得到目标车辆数据,并将目标车辆数据发送至saas服务器。saas服务器在接收到目标车辆数据转发至加密服务器。

由于obd用于监控发动机的运行状况和尾气后处理系统的工作状态,因此,获取到的车辆数据为可以为以下部件或系统的相关数据:发动机、催化转化器、颗粒捕集器、氧传感器、排放控制系统、燃油系统、排气再循环(exhaustgasrecirculation,egr)。

s105,采用所述会话密钥对所述目标车辆检测数据进行解密,并将解密得到的初始车辆数据发送至所述saas服务器,以触发所述saas服务器对所述初始车辆数据进行分析,得到车辆诊断结果。

加密服务器在接收到saas服务器转发的目标车辆数据时,采用会话密钥对目标车辆检测数据进行解密,得到加密前的初始车辆数据,并将该初始车辆诊断指令对应的初始车辆数据发送至saas服务器,以使得saas服务器基于该初始车辆诊断指令对初始车辆数据进行分析,得到车辆诊断结果。

上述方案,通过加密服务器对saas服务器发送的车辆诊断指令进行加密后发送给车辆诊断设备,以及采用会话密钥对saas服务器转发的加密的车辆数据进行解密,将解密后的明文车辆数据发送至saas服务器,以使得saas服务器基于解密后的车辆数据进行分析,得到车辆诊断结果。由于在此过程中,加密服务器的交互数据或指令都是加密数据,即使获取到加密的数据也无法破译,得到明文数据,能够防止在车辆诊断过程中,车辆诊断指令的传输,车辆数据的获取被黑客劫持,或者因车辆诊断设备的obd接头的总线被入侵,而导致通过该总线传输的车辆诊断指令、车辆诊断指令对应的车辆数据被偷袭或窃取,进而防止他人得到明文诊断指令和车辆数据之后,模仿或还原出车辆诊断方案,能够防止车辆诊断方案被窃取;还可以防止因车辆数据信息被篡改而导致影响车辆的维修保养过程,进而影响车辆的使用性能的情况发生。

由于加密服务器可处理高并发的车辆诊断指令,能够保证车辆诊断系统的处理效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

对应于上文实施例所述的车辆诊断方法,图4示出了本申请一实施例提供的车辆诊断装置的结构示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。本实施例中的车辆诊断装置包括的各单元用于执行图3对应的实施例中的各步骤,具体请参阅图2对应的实施例的相关描述,此处不赘述。请参阅图4,该车辆诊断装置4包括:

身份验证单元410,用于当检测到启动车辆诊断服务时,对车辆诊断设备进行身份验证;

会话密钥生成单元420,用于在确认所述车辆诊断设备身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备;

加密单元430,用于当检测到软件即服务saas服务器发送的初始车辆诊断指令时,采用所述会话密钥对所述初始车辆诊断指令进行加密,并将加密后得到的目标车辆诊断指令发送至所述车辆诊断设备;

接收单元440,用于接收所述saas服务器转发的目标车辆检测数据,其中,所述目标车辆检测数据由所述车辆诊断设备采用所述会话密钥对获取的初始车辆数据进行加密后发送至所述saas服务器,所述初始车辆数据由所述车辆诊断设备采用所述会话密钥对所述目标车辆诊断指令进行解密,并基于解密得到的所述初始车辆诊断指令获取;

解密单元450,用于采用所述会话密钥对所述目标车辆检测数据进行解密,并将解密得到的初始车辆数据发送至所述saas服务器,以触发所述saas服务器对所述初始车辆数据进行分析,得到车辆诊断结果。

可选地,身份验证单元410具体用于:获取所述车辆诊断设备的第一安全证书,并基于所述第一安全证书对所述车辆诊断设备进行身份验证,其中,当所述第一安全证书与预存的安全证书相同时,判定所述车辆诊断设备身份合法。

可选地,会话密钥生成单元420还用于:在确认所述车辆诊断设备身份合法,并确认所述车辆诊断设备返回的身份验证结果表示所述服务器身份合法时,生成会话密钥,并将所述会话密钥发送至所述车辆诊断设备,其中,所述身份验证结果由所述车辆诊断设备在获取到所述服务器的第二安全证书时,基于所述第二安全证书对所述服务器进行身份验证后发送。

可选地,会话密钥生成单元420具体用于:基于密钥协商机制生成会话密钥。

在本实施例中,该车辆诊断装置可以是服务器,例如,加密服务器,或者是服务器中的芯片,或者是集成在服务器中的功能模块。其中,该芯片或者该功能模块可以位于服务器的控制中心(例如,控制台),控制服务器实现本申请提供的车辆诊断方法。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

请参阅图5,图5为本申请一实施例提供的服务器的结构示意图。如图5所示,该实施例的服务器5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个车辆诊断方法实施例中的步骤。

所述服务器5可以是车辆检测设备、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该数据管理设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是服务器5的举例,并不构成对服务器5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),该处理器50还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51在一些实施例中可以是所述服务器5的内部存储单元,例如服务器5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述服务器5的外部存储设备,例如所述服务器5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述服务器5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1