CN112347456B - 程序验证方法和装置、平台和用户终端及在线服务*** - Google Patents

程序验证方法和装置、平台和用户终端及在线服务*** Download PDF

Info

Publication number
CN112347456B
CN112347456B CN202011176393.3A CN202011176393A CN112347456B CN 112347456 B CN112347456 B CN 112347456B CN 202011176393 A CN202011176393 A CN 202011176393A CN 112347456 B CN112347456 B CN 112347456B
Authority
CN
China
Prior art keywords
program
server
credential
verification
root
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
Application number
CN202011176393.3A
Other languages
English (en)
Other versions
CN112347456A (zh
Inventor
谢辉
张跃洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Shanghai Robotics Co Ltd
Original Assignee
Cloudminds Shanghai Robotics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudminds Shanghai Robotics Co Ltd filed Critical Cloudminds Shanghai Robotics Co Ltd
Priority to CN202011176393.3A priority Critical patent/CN112347456B/zh
Priority to KR1020217043068A priority patent/KR102650220B1/ko
Priority to PCT/CN2020/137383 priority patent/WO2022088434A1/zh
Priority to JP2021578193A priority patent/JP7334280B2/ja
Priority to EP20941535.5A priority patent/EP4044053A4/en
Publication of CN112347456A publication Critical patent/CN112347456A/zh
Priority to US17/562,893 priority patent/US20220215098A1/en
Application granted granted Critical
Publication of CN112347456B publication Critical patent/CN112347456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及程序验证方法和装置、平台和用户终端及在线服务***,所述方法包括:从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;验证所述根凭据和所述验证凭据是否匹配,其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序;在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。本公开可以提升信息安全性。

Description

程序验证方法和装置、平台和用户终端及在线服务***
技术领域
本公开涉及在线服务领域,具体地,涉及一种程序验证方法和装置、平台和用户终端及在线服务***。
背景技术
在线服务***可以为用户提供各种服务,例如聊天、购物、缴费、游戏等,极大地提升了用户日常生活的便捷程度。但是,当前的一些在线服务***存在用户信息泄露的问题,服务提供商难以自证服务***不会收集或泄露用户信息,用户也难以对服务***是否按照约定进行保密进行验证,导致了在线服务***的用户信息安全性得不到保证。
发明内容
本公开的目的是提供一种程序验证方法和装置、平台和用户终端及在线服务***,已解决上述的技术问题。
为了实现上述目的,本公开的第一方面,提供一种程序验证方法,包括:从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;验证所述根凭据和所述验证凭据是否匹配,其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序;在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
可选地,所述方法还包括:获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则;验证所述当前摘要和所述预存摘要是否匹配,其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序;所述在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接,包括:在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
第二方面,本公开提供一种在线服务***,所述***包括用户终端、服务端、认证平台,其中,所述认证平台包括区块链网络;所述认证平台,用于对服务端程序进行服务端程序审核,并在所述服务端程序审核通过后将所述服务端程序的根凭据存入所述区块链网络中,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;所述认证平台或者所述用户终端用于,从所述区块链网络中获取服务端程序的根凭据,并从所述服务端获取所述服务端程序的验证凭据,并验证所述根凭据和所述验证凭据是否匹配,并在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接;所述用户终端用于运行所述用户端程序,所述服务端用于运行所述服务端程序;其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序。
可选地,所述认证平台还用于对所述用户端程序进行用户端程序审核,并在所述用户端程序审核通过后将所述用户端程序的摘要作为预存摘要存入所述区块链网络中,所述用户端程序审核通过至少表明所述用户端程序对数据的收集方式满足预设的数据收集规则;所述认证平台或者所述用户终端还用于,获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,并验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接;其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序。
可选地,所述用户终端包括启动器,所述启动器用于计算所述用户端程序的摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,并验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配的情况下,在所述用户终端启动所述用户端程序。
可选地,所述用户端程序和所述服务端程序通过加密传输通道连接。
第三方面,本公开提供一种程序验证装置,包括获取模块,用于从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;验证模块,用于验证所述根凭据和所述验证凭据是否匹配,其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序;连接模块,用于在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
可选地,所述装置还包括:摘要获取模块,用于获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则;摘要认证模块,用于验证所述当前摘要和所述预存摘要是否匹配,其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序;所述连接模块,用于在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
第四方面,本公开提供一种认证平台,所述认证平台包括存储器和处理其,存储器上存储有计算机程序,处理器用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
第五发明,本公开提供一种用户终端,所述用户终端包括存储器和处理其,存储器上存储有计算机程序,处理器用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
第六方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
基于上述的技术方案,至少可以达到以下的技术效果:通过对服务端程序的根凭据和验证凭据进行验证,确定服务端程序是未被修改且运行在TEE中的程序,从而保证服务端程序对数据的处理方式是满足数据处理规则且服务端程序运行时使用或生成的数据不会被其他程序读取,从而提升了服务端程序中的信息安全性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性公开实施例示出的一种程序验证方法的流程图。
图2是根据一示例性公开实施例示出的一种在线服务***的框图。
图3是根据一示例性公开实施例示出的一种通过用户终端进行验证的示意图。
图4是根据一示例性公开实施例示出的一种通过认证平台进行验证的示意图。
图5是根据一示例性公开实施例示出的一种程序验证装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先对本公开的实施场景进行说明。本公开中的在线服务主要由服务端程序和用户端程序配合实现,通过用户端程序收集用户的指令和信息等数据并传输至服务端程序,通过服务端程序对用户的指令进行处理得到处理结果。值得说明的是,一个在线服务***可能存在多个用户端程序,例如,当该在线服务***为会议***时,可以通过多个用户端程序分别收集各个与会用户的音像信息并发送到服务端程序,通过服务端程序对各用户的音像信息进行整合和处理,并将处理后的音像传输至各个用户端程序,以完成会议服务。
图1是根据一示例性公开实施例示出的一种程序验证方法的流程图,如图1所示,所述方法包括以下步骤:
S11、从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据。
其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则。
该数据处理规则可以包括是否存储数据、是否导出数据等,该数据处理规则可以由服务提供方和用户的约定而设置。
服务端程序审核可以由用户进行或者由用户和服务提供方共同进行,也可以由第三方的认证平台进行;该服务端程序审核可以通过数据检测程序实现,当数据检测程序判断该服务端程序对数据的处理方式满足预设的数据处理规则时确定服务端程序审核通过。
在一种可能的实施方式中,上述的验证凭据可以是TEE基于服务端程序计算、并在服务端程序经过TEE的合法性验证及完整性验证之后生成的。
由于TEE提供的验证机制不同,在另一种可能的实施方式中,验证凭据包括服务端验证凭据和TEE凭据,其中,服务端验证凭据是服务端的指定程序或者验证平台的程序基于服务端程序计算得到的,用于与根凭据进行匹配性验证,以证明服务端程序未经修改;TEE凭据是TEE对该服务端程序的运行代码和数据进行合法性验证以及完整性验证之后生成的凭据,以证明服务端程序运行于TEE中。
考虑到在线服务***的服务功能可能有更新的需求,而每次程序更新都会改变该程序计算得到的验证凭据,因此,在一种可能的实施方式中,在程序更新后,对更新后的服务端程序进行审核,并在审核通过后计算该服务端程序的根凭据,并将该根凭据存入区块链网络中。这样,可以避免因程序更新带来的验证不通过的问题。
S12、验证所述根凭据和所述验证凭据是否匹配。
其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序;
在本公开中,根凭据被写入区块链网络中,由于区块链网络中的数据难以被篡改的特性,可以保证根凭据不被修改。而根凭据和验证凭据均是基于服务端程序计算得出的,当服务端程序进行了修改后,生成的验证凭据将无法与预存在区块链网络中的根凭据匹配。基于上述的验证机制,可以保证服务端程序在通过了服务端程序审核之后未经过修改,也就是说,验证通过时刻的服务端程序对数据的处理方式是满足预设的数据处理规则的。在一种可能的实施方式中给,该根凭据和验证凭据可以是以哈希值的形式生成并验证的。
而本公开中的服务端程序是运行于TEE(Trusted Execution Environment,可信执行环境)中的程序,TEE是处理器中的一个安全区域,为程序的运行提供了一个安全隔离的运行环境,可以保证运行其中的代码和数据不被外部软件(包括操作***、BIOS等)或硬件(包括处理器的其他区域)非法获取,目前TEE可以通过ARM TrustZone、Intel SGX等实现。服务端没有途径从运行于TEE中的程序中获取中间数据,无法对经服务端程序处理的数据进行导出或存储,从而可以保证数据运算过程中的用户信息安全,并且,可以通过验证凭据来验证该服务端程序是否是运行于TEE中的程序。
也就是说,通过验证该根凭据和该验证凭据是否匹配,可以确定服务端程序是在审核后未修改的、满足数据处理规则的程序,并且可以确定服务端程序是运行在TEE中的,不会被外界程序调用数据的程序。
S13、在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
在根凭据与验证凭据匹配的情况下,可以确定服务端程序是在审核后未修改的、满足数据处理规则且运行在TEE中、不会被外界程序调用数据的程序,因此,可以确定将用户端程序与服务端程序连接,以实现在线服务。
在一种可能的实施方式中,在确定将用户端程序与服务端程序连接之前,还可以对用户端程序进行验证,具体的,获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则,当前摘要和预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序。该预存摘要和当前摘要分别可以是用户端程序在程序审核时的哈希值和当前的哈希值。考虑到应用程序更新会导致摘要变化的情况,在每次用户端程序更新后,认证平台可以对用户端程序进行重新审核,并将更新后的摘要作为新的预存摘要写入区块链网络中。
由于预存摘要是存储在区块链网络中的,可以保证预存摘要不被修改。而当前摘要与预存摘要匹配则可以证明当前待运行的用户端程序对数据的获取规则是满足预设的数据获取规则的,通过上述的机制,可以避免用户端程序对用户数据的非法获取。
在一种可能的实施方式中,该用户端程序和服务端程序是通过加密传输通道连接的,这样,可以从数据获取、数据传输、数据处理三个角度对用户数据的安全性进行保护,防止用户信息泄露。
值得说明的是,该用户端程序可以通过用户终端的启动器(如launcher)进行验证,或者通过用户程序内置的验证模块进行验证,或者由用户终端的验证程序进行验证,或者将用户端程序的当前摘要发送至认证平台并由认证平台进行验证,本公开对此不做限制。
本方法可以是响应于用户对用户端程序的开启操作进行的,例如,响应于用户开启用户端程序的操作,可以通过上述方法对服务端程序或用户端程序及服务端程序进行验证,并在验证通过后将用户端程序与服务端程序连接;本方法还可以是响应于用户对在线服务的请求操作进行的,例如,在用户端程序为聊天程序的情况下,在聊天程序开启后,响应于用户点击聊天窗口的操作,执行上述的方法以验证服务端程序,或者验证服务端程序及用户端程序。
基于上述的技术方案,至少可以达到以下的技术效果:通过对服务端程序的根凭据和验证凭据进行验证,确定服务端程序是未被修改且运行在TEE中的程序,从而保证服务端程序对数据的处理方式是满足数据处理规则且服务端程序运行时使用或生成的数据不会被其他程序读取,从而提升了服务端程序中的信息安全性。
图2是根据一示例性公开实施例示出的一种在线服务***的框图,如图2所示,所述在线服务***200包括用户终端210、服务端220和认证平台230,其中,认证平台包括区块链网络231。
在一种可能的实施方式中,如图3所示,用户终端210可以与服务端220以及认证平台230连接,可以从认证平台230处获取服务端程序的根凭据,并从服务端获取服务端程序的认证凭据,并验证所述根凭据和所述验证凭据是否匹配,在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序。
在一种可能的实施方式中,用户终端210还可以获取用户端程序的当前摘要,并从认证平台230处获取存储在区块链网络231中的预存摘要,并验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序。
值得说明的是,该预存摘要和当前摘要的验证可以是由用户终端210中的启动器进行的,也可以是由用户终端中的其他程序进行的,还可以是由用户端程序自我检测而实现的。
在上述的实施方式中,对服务端程序的验证和对用户端程序的验证都是由用户终端进行的,但在本公开中,对服务端程序和用户端程序的验证还可以由认证平台进行,还可以是由用户终端对服务端程序进行验证并由认证平台对用户端程序进行验证,或者由认证平台对服务端程序进行验证并由用户终端对用户端程序进行验证。也就是说,本公开不限制服务端程序和用户端程序是在何种实施主体中进行验证的。
例如,如图4所示,认证平台230可以与用户终端210以及服务端220连接,可以从用户终端210处获取用户端程序的当前摘要,并从服务端获取服务端程序的认证凭据,并从区块链网络231中调用用户端程序的预存摘要以及服务端程序的根凭据,分别对根凭据与认证凭据是否匹配,以及预存摘要及当前摘要是否匹配进行认证,在两者均匹配的情况下确定将服务端程序和用户端程序连接。
上述的认证过程可以是响应于用户对用户端程序的开启操作进行的,例如,响应于用户开启用户端程序的操作,生成程序验证请求,用于验证用户端程序的设备基于上述的验证请求对用户端程序进行验证,用于验证服务端程序的设备基于上述的验证请求对服务端程序进行验证,并在两个验证均通过后确定将用户端程序与服务端程序连接;上述的验证过程还可以是响应于用户对在线服务的请求操作进行的,例如,在用户端程序为聊天程序的情况下,在聊天程序开启后,响应于用户点击聊天窗口的操作,生成上述的验证请求。
在一种可能的实施方式中,该用户端程序和服务端程序是通过加密传输通道连接的,这样,可以从数据获取、数据传输、数据处理三个角度对用户数据的安全性进行保护,防止用户信息泄露。
考虑到应用程序会进行程序更新,因此,认证平台可以在用户端程序或服务端程序后,对更新后的程序重新进行审核,并在审核通过后更新预存摘要或根凭据。
关于上述实施例中用户终端或认证平台验证程序的具体步骤,在有关该认证方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述的技术方案,至少可以达到以下的技术效果:通过对服务端程序的根凭据和验证凭据进行验证,确定服务端程序是未被修改且运行在TEE中的程序,从而保证服务端程序对数据的处理方式是满足数据处理规则且服务端程序运行时使用或生成的数据不会被其他程序读取,从而提升了服务端程序中的信息安全性。
图5是根据一示例性公开实施例示出的一种程序验证装置的框图,如图5所示,所述装置500包括:
获取模块510,用于从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则。
验证模块520,用于验证所述根凭据和所述验证凭据是否匹配,其中,所述根凭据和所述验证凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,且为在所述根凭据写入所述区块链网络之后未经过修改的程序。
连接模块530,用于在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
可选的,所述装置还包括:
摘要获取模块,用于获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则。
摘要认证模块,用于验证所述当前摘要和所述预存摘要是否匹配,其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序。
所述连接模块530,用于在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述的技术方案,至少可以达到以下的技术效果:通过对服务端程序的根凭据和验证凭据进行验证,确定服务端程序是未被修改且运行在TEE中的程序,从而保证服务端程序对数据的处理方式是满足数据处理规则且服务端程序运行时使用或生成的数据不会被其他程序读取,从而提升了服务端程序中的信息安全性。
图6是根据一示例性实施例示出的一种电子设备600的框图。如图6所示,该电子设备600可以为在线服务***中用户终端,包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(I/O)接口604,以及通信组件605中的一者或多者。
其中,处理器601用于控制该电子设备600的整体操作,以完成上述的程序验证方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的程序验证方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的程序验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的程序验证方法。
图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为在线服务***中的认证平台,也可以为在线服务***中的服务端。参照图7,电子设备700包括处理器722,其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器722可以被配置为执行该计算机程序,以执行上述的程序验证方法。
另外,电子设备700还可以包括电源组件726和通信组件750,该电源组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括输入/输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作***,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的程序验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器732,上述程序指令可由电子设备700的处理器722执行以完成上述的程序验证方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的程序验证方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种程序验证方法,其特征在于,所述方法包括:
从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;所述根凭据和所述验证凭据均是基于服务端程序计算得出的;
验证所述根凭据和所述验证凭据是否匹配,其中,所述验证凭据包括服务端验证凭据和TEE凭据;所述服务端验证凭据是服务端的指定程序或者验证平台的程序基于服务端程序计算得到的,用于与根凭据进行匹配性验证,以证明服务端程序未经修改;所述TEE凭据是可信执行环境TEE对所述服务端程序的运行代码和数据进行合法性验证以及完整性验证之后生成的凭据,以证明服务端程序运行于TEE中;所述根凭据和所述TEE凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,所述根凭据和所述服务端验证凭据匹配表明所述服务端程序为在所述根凭据写入所述区块链网络之后未经过修改的程序;
在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,其中,所述预存摘要是在所述用户端程序审核通过后写入所述区块链网络中的,所述用户端程序审核通过至少表明所述用户端程序对数据的获取方式满足预设的数据获取规则;
验证所述当前摘要和所述预存摘要是否匹配,其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序;
所述在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接,包括:
在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
3.一种在线服务***,其特征在于,所述***包括:用户终端、服务端、认证平台,其中,所述认证平台包括区块链网络;
所述认证平台,用于对服务端程序进行服务端程序审核,并在所述服务端程序审核通过后将所述服务端程序的根凭据存入所述区块链网络中,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;所述根凭据和验证凭据均是基于服务端程序计算得出的;
所述认证平台或者所述用户终端用于,从所述区块链网络中获取服务端程序的根凭据,并从所述服务端获取所述服务端程序的验证凭据,并验证所述根凭据和所述验证凭据是否匹配,并在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接;
所述用户终端用于运行所述用户端程序,所述服务端用于运行所述服务端程序;
其中,所述验证凭据包括服务端验证凭据和TEE凭据;所述服务端验证凭据是服务端的指定程序或者验证平台的程序基于服务端程序计算得到的,用于与根凭据进行匹配性验证,以证明服务端程序未经修改;所述TEE凭据是可信执行环境TEE对所述服务端程序的运行代码和数据进行合法性验证以及完整性验证之后生成的凭据,以证明服务端程序运行于TEE中;所述根凭据和所述TEE凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,所述根凭据和所述服务端验证凭据匹配表明所述服务端程序为在所述根凭据写入所述区块链网络之后未经过修改的程序。
4.根据权利要求3所述的***,其特征在于,所述认证平台还用于对所述用户端程序进行用户端程序审核,并在所述用户端程序审核通过后将所述用户端程序的摘要作为预存摘要存入所述区块链网络中,所述用户端程序审核通过至少表明所述用户端程序对数据的收集方式满足预设的数据收集规则;
所述认证平台或者所述用户终端还用于,获取所述用户端程序的当前摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,并验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配,且所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接;
其中,所述当前摘要和所述预存摘要匹配表明所述用户端程序为在所述预存摘要写入所述区块链网络之后未经过修改的程序。
5.根据权利要求4所述的***,其特征在于,所述用户终端包括启动器,所述启动器用于计算所述用户端程序的摘要,并从所述区块链网络中获取所述用户端程序的预存摘要,并验证所述当前摘要和所述预存摘要是否匹配,在所述当前摘要和所述预存摘要匹配的情况下,在所述用户终端启动所述用户端程序。
6.根据权利要求3-5任一项所述的***,其特征在于,所述用户端程序和所述服务端程序通过加密传输通道连接。
7.一种程序验证装置,其特征在于,所述装置包括:
获取模块,用于从区块链网络中获取服务端程序的根凭据,并从服务端获取所述服务端程序的验证凭据,其中,所述根凭据是在所述服务端程序审核通过后写入所述区块链网络中的,所述服务端程序审核通过至少表明所述服务端程序对数据的处理方式满足预设的数据处理规则;所述根凭据和所述验证凭据均是基于服务端程序计算得出的;
验证模块,用于验证所述根凭据和所述验证凭据是否匹配,其中,所述验证凭据包括服务端验证凭据和TEE凭据;所述服务端验证凭据是服务端的指定程序或者验证平台的程序基于服务端程序计算得到的,用于与根凭据进行匹配性验证,以证明服务端程序未经修改;所述TEE凭据是可信执行环境TEE对所述服务端程序的运行代码和数据进行合法性验证以及完整性验证之后生成的凭据,以证明服务端程序运行于TEE中;所述根凭据和所述TEE凭据匹配表明所述服务端程序为在计算机的可信执行环境TEE中运行的程序,所述根凭据和所述服务端验证凭据匹配表明所述服务端程序为在所述根凭据写入所述区块链网络之后未经过修改的程序;
连接模块,用于在所述根凭据和所述验证凭据匹配的情况下,确定将用户端程序与所述服务端程序连接。
8.一种认证平台,其特征在于,所述认证平台包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1或2所述方法的步骤。
9.一种用户终端,其特征在于,所述用户终端包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1或2所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1或2所述方法的步骤。
CN202011176393.3A 2020-10-28 2020-10-28 程序验证方法和装置、平台和用户终端及在线服务*** Active CN112347456B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202011176393.3A CN112347456B (zh) 2020-10-28 2020-10-28 程序验证方法和装置、平台和用户终端及在线服务***
KR1020217043068A KR102650220B1 (ko) 2020-10-28 2020-12-17 프로그램 검증 방법 및 장치, 플랫폼 및 사용자 단말기 및 온라인 서비스 시스템
PCT/CN2020/137383 WO2022088434A1 (zh) 2020-10-28 2020-12-17 程序验证方法和装置、平台和用户终端及在线服务***
JP2021578193A JP7334280B2 (ja) 2020-10-28 2020-12-17 プログラム検証方法及び装置、プラットフォーム及びユーザ端末、並びに、オンラインサービスシステム
EP20941535.5A EP4044053A4 (en) 2020-10-28 2020-12-17 METHOD AND DEVICE FOR VERIFYING PROGRAM, PLATFORM, USER TERMINAL AND ONLINE SERVICE SYSTEM
US17/562,893 US20220215098A1 (en) 2020-10-28 2021-12-27 Program verification method and apparatus, platform, user terminal, and online service system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011176393.3A CN112347456B (zh) 2020-10-28 2020-10-28 程序验证方法和装置、平台和用户终端及在线服务***

Publications (2)

Publication Number Publication Date
CN112347456A CN112347456A (zh) 2021-02-09
CN112347456B true CN112347456B (zh) 2023-09-01

Family

ID=74355232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011176393.3A Active CN112347456B (zh) 2020-10-28 2020-10-28 程序验证方法和装置、平台和用户终端及在线服务***

Country Status (6)

Country Link
US (1) US20220215098A1 (zh)
EP (1) EP4044053A4 (zh)
JP (1) JP7334280B2 (zh)
KR (1) KR102650220B1 (zh)
CN (1) CN112347456B (zh)
WO (1) WO2022088434A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019233951A1 (fr) * 2018-06-04 2019-12-12 Worldline Une application logicielle et un serveur informatique pour authentifier l'identité d'un créateur de contenu numérique et l'intégrité du contenu du créateur publié
CN111193730A (zh) * 2019-12-25 2020-05-22 上海沄界信息科技有限公司 一种IoT可信场景构建方法及装置
CN111641694A (zh) * 2020-05-19 2020-09-08 全链通有限公司 基于区块链的应用程序发布方法、设备及存储介质
CN111783149A (zh) * 2020-06-30 2020-10-16 北京海益同展信息科技有限公司 基于区块链的数据处理方法、***、处理设备及认证设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6208645B2 (ja) 2014-09-30 2017-10-04 富士通エフ・アイ・ピー株式会社 ライセンス管理方法及びライセンス管理システム
CN109074433B (zh) 2016-05-13 2023-07-21 区块链控股有限公司 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和***
KR101948721B1 (ko) * 2016-09-30 2019-02-18 고려대학교 산학협력단 파일 해시 값을 이용한 파일 위변조 검사 방법 및 단말 장치
CN107592293A (zh) * 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
KR102181600B1 (ko) * 2018-03-30 2020-11-23 주식회사 코인플러그 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버
US11233792B2 (en) * 2018-05-02 2022-01-25 Mastercard International Incorporated Method and system for enhanced login credential security via blockchain
CN109033818B (zh) * 2018-07-16 2020-07-31 北京京东尚科信息技术有限公司 终端、验证方法和计算机可读存储介质
US10601828B2 (en) * 2018-08-21 2020-03-24 HYPR Corp. Out-of-band authentication based on secure channel to trusted execution environment on client device
CN111045856A (zh) * 2018-10-12 2020-04-21 伊姆西Ip控股有限责任公司 用于管理应用***的方法、设备和计算机程序产品
US11165827B2 (en) 2018-10-30 2021-11-02 International Business Machines Corporation Suspending communication to/from non-compliant servers through a firewall
EP3888290A4 (en) * 2018-11-27 2022-08-24 Akamai Technologies, Inc. TRUST-BASED, HIGH-PERFORMANCE, CONSENSUS-BASED DISTRIBUTED REGISTRATION SYSTEM
US11038878B2 (en) * 2019-03-14 2021-06-15 Hector Hoyos Computer system security using a biometric authentication gateway for user service access with a divided and distributed private encryption key
US11151276B1 (en) * 2019-04-15 2021-10-19 Trend Micro Incorporated Systems and methods for data certificate notarization utilizing bridging from private blockchain to public blockchain
CN110535938B (zh) 2019-08-29 2021-07-27 腾讯科技(深圳)有限公司 一种基于智能合约的数据处理方法、设备及存储介质
CN111353903B (zh) * 2020-02-26 2021-07-06 广东工业大学 一种网络身份保护方法、装置及电子设备和存储介质
US20210352077A1 (en) * 2020-05-05 2021-11-11 International Business Machines Corporation Low trust privileged access management
US11782823B2 (en) * 2020-07-27 2023-10-10 International Business Machines Corporation Automatically capturing weather data during engineering tests
US20220237565A1 (en) * 2021-01-25 2022-07-28 James M. Dzierzanowski Systems and methods for project accountability services
US20220311611A1 (en) * 2021-03-29 2022-09-29 International Business Machines Corporation Reputation profile propagation on blockchain networks
US20230179424A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Compressible blockchains

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019233951A1 (fr) * 2018-06-04 2019-12-12 Worldline Une application logicielle et un serveur informatique pour authentifier l'identité d'un créateur de contenu numérique et l'intégrité du contenu du créateur publié
CN111193730A (zh) * 2019-12-25 2020-05-22 上海沄界信息科技有限公司 一种IoT可信场景构建方法及装置
CN111641694A (zh) * 2020-05-19 2020-09-08 全链通有限公司 基于区块链的应用程序发布方法、设备及存储介质
CN111783149A (zh) * 2020-06-30 2020-10-16 北京海益同展信息科技有限公司 基于区块链的数据处理方法、***、处理设备及认证设备

Also Published As

Publication number Publication date
EP4044053A4 (en) 2022-10-05
WO2022088434A1 (zh) 2022-05-05
JP7334280B2 (ja) 2023-08-28
CN112347456A (zh) 2021-02-09
JP2023502820A (ja) 2023-01-26
KR20220079800A (ko) 2022-06-14
US20220215098A1 (en) 2022-07-07
KR102650220B1 (ko) 2024-03-20
EP4044053A1 (en) 2022-08-17

Similar Documents

Publication Publication Date Title
US11956371B2 (en) Recursive token binding for cascaded service calls
CN108259438B (zh) 一种基于区块链技术的认证的方法和装置
KR101903620B1 (ko) 블록체인 기반 분산 네트워크에서 피어의 신원을 확인하는 방법 및 이를 이용한 서버
US20220394026A1 (en) Network identity protection method and device, and electronic equipment and storage medium
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
WO2010082253A1 (ja) サーバ認証方法及びクライアント端末
CN110365684B (zh) 应用集群的访问控制方法、装置和电子设备
US9589130B2 (en) Application trust-listing security service
CN110691085B (zh) 登录方法、装置、密码管理***及计算机可读介质
US9660981B2 (en) Strong authentication method
CN109842616B (zh) 账号绑定方法、装置及服务器
CN114444134A (zh) 一种数据使用授权方法、***及装置
CN111565179B (zh) 身份校验方法、装置、电子设备及存储介质
CN112702419B (zh) 基于区块链的数据处理方法、装置、设备和存储介质
CN108390878B (zh) 用于验证网络请求安全性的方法、装置
JP2023533597A (ja) 電気自動車用充電ステーションの識別方法
CN110034922B (zh) 请求处理方法、处理装置以及请求验证方法、验证装置
CN112347456B (zh) 程序验证方法和装置、平台和用户终端及在线服务***
US11539697B1 (en) Method for controlling access to computer resources utilizing user device fingerprints
US20110191860A1 (en) Midlet Signing and Revocatoin
JP7445017B2 (ja) ユーザ識別子および署名収集を利用したモバイルアプリケーション偽造・変造探知方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体およびコンピュータ装置
CN115150086A (zh) 云服务基于生物特征的公钥的身份认证方法及设备
CN113849801A (zh) 单点登录方法、装置、计算机设备及存储介质
KR20180052479A (ko) 서명 체인을 이용한 유무선 공유기의 펌웨어 업데이트 시스템, 유무선 공유기 및 유무선 공유기의 펌웨어 업데이트 방법
KR102534012B1 (ko) 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법

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
CB02 Change of applicant information

Address after: 201111 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai

Applicant after: Dayu robot Co.,Ltd.

Address before: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Applicant before: Dalu Robot Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant