WO2013023481A1 - 软件升级系统及方法、服务器和客户端 - Google Patents

软件升级系统及方法、服务器和客户端 Download PDF

Info

Publication number
WO2013023481A1
WO2013023481A1 PCT/CN2012/076984 CN2012076984W WO2013023481A1 WO 2013023481 A1 WO2013023481 A1 WO 2013023481A1 CN 2012076984 W CN2012076984 W CN 2012076984W WO 2013023481 A1 WO2013023481 A1 WO 2013023481A1
Authority
WO
WIPO (PCT)
Prior art keywords
upgrade
client
server
verification
configuration information
Prior art date
Application number
PCT/CN2012/076984
Other languages
English (en)
French (fr)
Inventor
刘刚
王福臣
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to EP20120824277 priority Critical patent/EP2743827A4/en
Priority to KR1020147000374A priority patent/KR20140019027A/ko
Priority to US14/232,705 priority patent/US20140156742A1/en
Publication of WO2013023481A1 publication Critical patent/WO2013023481A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Definitions

  • the present invention relates to the field of software upgrades, and in particular, to a software upgrade system and method, a server, and a client.
  • the traditional network architecture is C/S (Client/Server, client / Server), distinguishing the client from the server.
  • C/S Client/Server, client / Server
  • Each client software can make a request to the server or application server. Due to the large amount of software used C / S Architecture, client-side feature updates are usually implemented through software upgrades.
  • Software upgrade refers to the way software developers write in the form of patches after the software is released due to incomplete design or imperfect program functions. After the software is released, the program is modified by adding or adding new functions. The user updates these patches, ie the upgrade is complete. Software upgrades are designed to better meet user needs and prevent virus intrusions. Software upgrades are usually divided into manual upgrade and forced upgrade. After the new version is released, the client actively checks whether there is a new version, and then prompts the client whether it needs to be upgraded. The forced upgrade is often based on the client version. Distribution and new version of the quality situation or emergency vulnerability repair, and the version is carried out in a large-scale upgrade. Because some new functions often require the client to upgrade to the new version, and some software discover new security vulnerabilities after the release, in order to avoid the impact of proliferation, the client needs to start the first time. Force the upgrade feature to minimize the impact. Upgrades are only available to legitimate clients.
  • the traditional software upgrade process is: when the client starts, or obtains the user to initiate an upgrade request, sends the local software configuration and other version information to the server to query the upgrade related information, and receives the relevant upgrade configuration returned by the server, and downloads the upgrade data package according to the upgrade configuration. Or patch and verify.
  • the downloaded upgrade address may be hijacked, ie DNS (Domain Name System, Domain Name System) hijacking, which refers to the interception of domain name resolution requests within the hijacked network, analyzes the requested domain name, and releases requests outside the scope of the review, otherwise returns a fake IP (Internet) Protocol, the protocol for interconnection between networks The address or nothing is done to make the request unresponsive. The effect is that the specific network cannot respond or access the fake URL.
  • the server identity may be unreliable, causing the client to be attacked during the software upgrade process.
  • Software upgrade security is low.
  • a software upgrade system includes a client and an upgrade server, where the client is configured to report an upgrade request to the upgrade server; the upgrade server is configured to generate configuration information according to the upgrade request, and the client is further used to Initiating an authentication request, and obtaining a first verification content from the upgrade server according to the authentication request, where the upgrade server is further configured to compare the first verification content with the second verification content stored on the upgrade server Verification, returning verification success information to the client after passing the verification;
  • the upgrade server is further configured to digitally sign the configuration information and deliver the digitally signed configuration information to the client; the client is further configured to perform signature verification on the configuration information. After the configuration information is verified, the upgrade data package is downloaded from the upgrade server.
  • the client is further configured to: after the authentication request is initiated, pull a command script from the upgrade server according to the authentication request, and execute the command script to obtain the first verification content.
  • the client is further configured to store the returned verification success information, and not report the local information to the upgrade server for verification when the verification success information is detected next time, and the next detection is not detected.
  • the local information is reported to the upgrade server, and the upgrade server verifies the local information, and after the verification is passed, digitally signs the configuration information and delivers the digital signature configuration information.
  • the method further includes a statistics server and an upgrade configuration server, where the statistics server is configured to receive a result of downloading the upgrade data packet reported by the client, and generate upgrade statistics data; the upgrade configuration server is configured to synchronize the statistics server Upgrade the statistics and adjust the configuration of the upgrade based on the upgrade statistics.
  • the upgrade server performs digital signature on the configuration information, and the configuration information is encrypted by using a private key.
  • the configuration information needs to be performed by using a public key. Decrypt.
  • a software upgrade method includes the following steps:
  • the client reports the upgrade request and initiates an authentication request.
  • the client obtains the first verification content from the upgrade server according to the authentication request, and the upgrade server compares the first verification content sent by the client with the second verification content stored by the upgrade server, where After verification, the verification success information is returned to the client;
  • the upgrade server generates configuration information according to the upgrade request, and digitally signs the configuration information, and delivers the digitally signed configuration information to the client;
  • the client performs signature verification on the configuration information, and downloads the upgrade data packet from the upgrade server after the configuration information is verified to pass.
  • the method further comprises the steps of:
  • the client pulls the command script according to the authentication request, and executes the command script to obtain the first verification content.
  • the method further includes the step of: the client storing the returned verification success information;
  • the client does not report the local information for verification, and if not, the client reports the local information, and the upgrade server verifies the local information. If the verification is passed, the configuration information is digitally signed and the digitally signed configuration information is delivered to the client, otherwise the process ends.
  • the method further comprises the steps of:
  • the statistics server receives the result that the client reports the download upgrade data packet, and generates upgrade statistics data
  • the upgrade configuration server synchronizes the upgrade statistics, and adjusts the configuration of the upgrade amount according to the upgrade statistics.
  • the step of digitally signing the configuration information is to encrypt the configuration information by using a private key, and before the step of performing signature verification on the configuration information, the method further includes the step of: decrypting the configuration information by using a public key .
  • a network interface configured to communicate with the client requesting the upgrade, and obtain an upgrade request and an authentication request reported by the client;
  • a processor in communication with the network interface
  • a memory in communication with the processor for storing data and machine instructions, the processor invoking the machine instructions to perform a plurality of operations, the plurality of operations comprising:
  • a network interface configured to communicate with the server, and report an upgrade request to the server and initiate an authentication request
  • a processor in communication with the network interface
  • a memory in communication with the processor for storing data and machine instructions, the processor invoking the machine instructions to perform a plurality of operations, the plurality of operations comprising:
  • the verification success information is obtained;
  • the above software upgrade system and method server and client.
  • the client initiates an authentication request, and obtains the first verification content according to the authentication request, and the upgrade server compares the first verification content with the stored second verification content, and returns the verification success information to the client after the verification, and implements the upgrade.
  • the server authenticates the identity of the client.
  • the upgrade server generates configuration information according to the client's upgrade request, and digitally signs the configuration information to the client.
  • the client performs signature verification on the configuration information. After the verification is passed, the configuration server downloads the configuration information.
  • the upgrade of the data package ensures the legality of upgrading the server configuration information, and the client verifies the identity of the upgrade server.
  • the two-way authentication ensures the security of the software upgrade.
  • FIG. 1 is a schematic structural diagram of a software upgrade system in an embodiment
  • FIG. 2 is a schematic structural diagram of a software upgrade system in another embodiment
  • FIG. 3 is a flow chart of a software upgrade method in an embodiment
  • FIG. 5 is a schematic structural diagram of an upgrade server in an embodiment
  • FIG. 6 is a schematic structural diagram of a client in an embodiment.
  • a software upgrade system includes a client 110 and an upgrade server 120.
  • the client 110 is configured to report an upgrade request to the upgrade server 120. In order to ensure the identity of the client 110, upgrade the server. 120 The identity legality of the client 110 needs to be verified.
  • the client 110 is further configured to initiate an authentication request, and obtain the first verification content from the upgrade server 120 according to the authentication request. Upgrade server 120 And comparing the first verification content with the second verification content stored on the upgrade server 120, and returning the verification success information to the client 110 after passing the verification.
  • the client 110 is further configured to, after the authentication request is initiated, the upgrade server 120 according to the authentication request. Pulling the command script, executing the command script to obtain the first verification content, and sending the first verification content to the upgrade server 120.
  • the command script is the content returned by the upgrade server 120, and the client is required in the middle. 110 Perform a specific definition of the operation, such as requiring the client 110 to send an offset of the specified location of the file to the upgrade server 120, and the like.
  • the first verification content can be an offset to the location specified by the file.
  • the upgrade server 120 compares the first verification content with the second verification content by comparing the MD5 values of the two, if MD5 If the values match, the verification is successful.
  • client 110 is also operative to store the verified success information.
  • the local information is not reported to the upgrade server 120. authenticating. If the local authentication success information is detected, the local information is not required to be reported to verify the identity of the identity. This reduces the verification process and improves the efficiency of the upgrade.
  • the local information is reported to the upgrade server 120. authenticating.
  • the client 110 also reports the local information when reporting the upgrade request.
  • This local information can specify the offset of the location or client for the client file. Different local information.
  • the upgrade server 120 verifies the local information, and digitally signs the configuration information after the verification is passed, and delivers the digitally signed configuration information to the client 110. .
  • the upgrade server 120 calculates the MD5 value for the offset of the specified location of the file, and calculates the offset of the specified location of the file already on the upgrade server 120. The MD5 value compares two MD5 values. If they match, the client 110 is a legitimate client, otherwise it is an illegal client.
  • Upgrade server 120 It is further configured to generate configuration information according to the upgrade request, and digitally sign the configuration information and deliver the digitally signed configuration information to the client 110.
  • the configuration information may include an original version range of the upgrade, a target version of the upgrade, size information of the upgrade file, and a URL of the upgrade file download data ( Universal Resource Locator, Uniform Resource Locator address, description of the upgrade packet, Hash checksum of the upgrade file (such as MD5 or SHA) and so on.
  • MD5 is the fifth version of the Message Digest message digest algorithm, a hash function widely used in the field of computer security to provide message integrity protection;
  • SHA Secure Hash Algorithm
  • the algorithm is a process of receiving a plaintext and then converting it into a (usually smaller) ciphertext in an irreversible manner and converting them into a shorter, fixed-numbered output sequence, the hash value.
  • the upgrade server 120 digitally signs the configuration information by encrypting the configuration information with a private key. Upgrade server 120 The configuration information is encrypted with a private key to obtain a configuration information MD5 digest, and the MD5 digest is sent to the client 110. Digital signatures use asymmetric encryption algorithms such as RSA Algorithm or elliptic curve algorithm. The configuration information is digitally signed to ensure that the client confirms the source and configuration information of the configuration information and prevents it from being forged.
  • the client 110 is further configured to perform signature verification on the configuration information, and the upgrade server 120 after the configuration information is verified to pass. Download the upgrade package and verify the integrity and authenticity of the upgrade package.
  • the client 110 decrypts the configuration information by using the public key before performing signature verification on the configuration information.
  • Client 110 The configuration information is decrypted to obtain a configuration information MD5 digest.
  • the client 110 performs an MD5 digest on the configuration information, and decrypts the MD5 digest obtained by the public key with the client 110. If the configuration of the MD5 is compared, the configuration information sent by the server 120 is valid. Otherwise, the configuration information sent by the server 120 is invalid.
  • the client 110 upgrades from the server after the configuration information is verified. After downloading the upgrade data package, after downloading the upgrade data package, hashing the upgrade data packet to obtain an upgrade data packet summary, and obtaining the upgrade server 120 A summary of the configuration upgrade packet obtained by hashing the upgrade packet, the summary of the upgrade packet calculated at the client 110, and the obtained upgrade server 120 The calculated configuration upgrade packet summary is compared. If the match is met, the upgrade packet downloaded by the client 110 is legal, and the upgrade packet is forged.
  • the software upgrade system described above includes client 110 and upgrade server 120. Also included are the statistics server 130 and the upgrade configuration server 140.
  • the statistics server 130 is configured to receive the result of downloading the upgrade data packet reported by the client 110, and generate upgrade statistics. Client 110 After the download of the upgrade data package is completed, the result of downloading the upgrade data package and the result of installing the upgrade data package are reported to the statistics server 130. Statistics server 130 Also used to synchronize upgrade statistics to the upgrade configuration server 140 .
  • Upgrade the configuration server 140 A configuration for adjusting the amount of upgrade based on the upgrade statistics, that is, how many clients are allowed to be upgraded.
  • the upgrade configuration server 140 is also used to upgrade the server 120 Requirements for providing upgrade strategies and grayscale configurations.
  • the upgrade strategy specifically includes which versions to upgrade, the number of upgrades, geography, and IP. Limit rules, etc.
  • the upgrade strategy is determined by product and business needs.
  • Grayscale configuration refers to which clients are valid, which versions are valid, and so on.
  • a software upgrade method includes the following steps:
  • Step S310 the client reports the upgrade request and initiates an authentication request.
  • the upgrade request needs to be reported to the upgrade server.
  • the upgrade of the server requires authentication of the client identity, and the client initiates an authentication request and requests verification.
  • Step S320 The client obtains the first verification content from the upgrade server according to the authentication request, and the upgrade server compares the first verification content sent by the client with the second verification content stored by the upgrade server, and returns after passing the verification. Verify the success message to the client.
  • the upgrade server compares the first verification content with the second verification content by comparing the MD5 values of the two, if MD5 If the values match, the verification is successful, and the verification success information is returned to the client.
  • the client pulls the command script according to the authentication request, and executes the command script to obtain the first verification content.
  • the command script is the content returned by the upgrade server.
  • the middle contains specific definitions that require the client to perform operations. For example, the client is required to send the offset of the specified location of the file to the upgrade server.
  • the first verification content can be an offset to the location specified by the file.
  • Step S330 The upgrade server generates configuration information according to the upgrade request, and digitally signs the configuration information and delivers the digitally signed configuration information to the client.
  • the configuration information may include an original version range of the upgrade, a target version of the upgrade, size information of the upgrade file, and a URL of the upgrade file download data ( Universal Resource Locator, Uniform Resource Locator address, description of the upgrade packet, Hash checksum of the upgrade file (such as MD5 or SHA) and so on.
  • the step of digitally signing the configuration information is to encrypt the configuration information by a private key.
  • the upgrade server encrypts the configuration information with a private key to obtain configuration information.
  • Digital signatures use asymmetric encryption algorithms such as RSA Algorithm or elliptic curve algorithm.
  • the configuration information is digitally signed to ensure that the client confirms the source and configuration information of the configuration information and prevents it from being forged.
  • Step S340 the client performs signature verification on the configuration information, and downloads the upgrade data packet from the upgrade server after the configuration information is verified.
  • the method further includes the step of: decrypting the configuration information by using a public key.
  • the client decrypts the configuration information to obtain configuration information.
  • MD5 Summary At the same time, the client performs the MD5 digest on the configuration information, and the MD5 digest obtained by the public key decryption and the MD5 of the client configuration information are performed. If the configuration is consistent, the configuration information delivered by the upgrade server is legal. Otherwise, the configuration information delivered by the upgrade server is invalid.
  • the client downloads the upgrade data package from the upgrade server. After downloading the upgrade data package, the client needs to verify the integrity and authenticity of the upgrade data packet.
  • the upgrade packet summary is obtained by calculating the upgrade packet by hashing, and the configuration upgrade packet summary obtained by the upgrade server hashing the upgrade packet is obtained, and the upgrade packet summary and the obtained calculation result obtained by the client are obtained.
  • the summary of the configuration upgrade packet calculated by the upgrade server is compared. If the match is met, the upgrade packet downloaded by the client is legal, and the upgrade packet is forged.
  • the method further includes the step of: the client storing the returned verification success information.
  • the verification success information is generated. If yes, the client does not report the local information for verification; if not, the client reports the local information to the upgrade server, and the upgrade server verifies the local information.
  • the configuration information is digitally signed and the digitally signed configuration information is delivered to the client, otherwise it ends.
  • the client reports an upgrade request it also reports local information. This local information can specify the offset of the location of the client file or other different local information of the client.
  • the client When the client starts, it detects that the local authentication success information is present, and does not need to report the local information to verify its identity legality. This reduces the verification process and improves the efficiency of the upgrade.
  • a software upgrade method includes the steps of:
  • Step S410 The client reports the upgrade request and initiates an authentication request.
  • Step S420 The client obtains the first verification content from the upgrade server according to the authentication request, and the upgrade server compares the first verification content sent by the client with the second verification content stored on the upgrade server, and returns the verification after passing the verification. Success information to the client.
  • Step S430 The upgrade server generates configuration information according to the upgrade request, and digitally signs the configuration information and delivers the digitally signed configuration information.
  • the upgrade server generates configuration information and digitally signs the configuration information as described in the foregoing embodiment, and details are not described herein again.
  • Step S440 the client performs signature verification on the configuration information, and verifies whether the verification is passed. If yes, step S450 is performed, otherwise the process ends.
  • Step S450 The client downloads the upgrade data packet from the upgrade server.
  • Steps S410 to S450 are specifically described as steps S310 to S340, and are not described herein again.
  • Step S460 The statistics server receives the result of the client uploading the upgrade data packet, and generates upgrade statistics.
  • the result of downloading the upgrade data packet and the result of installing the upgrade data packet are reported to the statistics server, and the statistics server generates statistics according to the reported result.
  • Step S470 The upgrade configuration server synchronizes the upgrade statistics, and adjusts the configuration of the upgrade amount according to the upgrade statistics.
  • the statistics server is also used to synchronize upgrade statistics to the upgrade configuration server.
  • the upgrade configuration server is used to adjust the configuration of the upgrade amount according to the upgrade statistics, that is, how many clients are allowed to be upgraded.
  • the upgrade configuration server is also used to provide upgrade policies and grayscale configurations as required by the upgrade server.
  • the upgrade strategy specifically includes which versions to upgrade, the number of upgrades, and the area. IP restriction rules, etc.
  • the upgrade strategy is determined by product and business needs. Grayscale configuration refers to which clients are valid, which versions are valid, and so on.
  • server 200 includes network interface 210, processor 220, and memory 230.
  • the network interface 210 is used to communicate with the client requesting the upgrade, and obtain the upgrade request and the authentication request reported by the client.
  • Processor 220 is in communication with network interface 210.
  • Memory 230 and processor 220 communications, and for storing data and machine instructions, the processor 220 is in use of machine instructions to perform a plurality of operations. Multiple operations include:
  • the configuration information is generated according to the upgrade request, and the first verification content is sent to the client according to the authentication request, and the first verification content is compared with the stored second verification content, and the verification success information is returned to the client after the verification is passed.
  • the steps in this operation and the above software upgrade method The execution process of S320 is the same and will not be described here.
  • the configuration information is digitally signed and the digitally signed configuration information is sent to the client; when the client performs signature verification on the configuration information, and the configuration information is verified, the upgrade data packet is provided to the client.
  • the steps in this operation and the above software upgrade method The execution process of S330 and S340 is the same and will not be described here.
  • the plurality of operations further includes:
  • client 300 includes network interface 310, processor 320, and memory 330.
  • Network Interface 310 is used to communicate with the server providing the upgrade, and report the upgrade request to the server and initiate an authentication request.
  • Processor 320 is in communication with network interface 310.
  • the first verification content is obtained from the upgrade server according to the authentication request, and the verification success information is obtained after the first verification content is compared with the second verification content stored on the server and verified.
  • the steps in this operation and the above software upgrade method The execution process of S320 is the same and will not be described here.
  • the plurality of operations further includes:
  • the returned verification success information is stored, and the local information is not reported to the server for verification when the verification success information is detected next time, and the local information is reported to the server when the verification success information is not detected next time.
  • the above software upgrade system and method server and client.
  • the client initiates an authentication request, and obtains the first verification content according to the authentication request, and the upgrade server compares the first verification content with the stored second verification content, and returns the verification success information to the client after the verification, and implements the upgrade.
  • the server authenticates the identity of the client.
  • the upgrade server generates configuration information according to the client's upgrade request, and digitally signs the configuration information to the client.
  • the client performs signature verification on the configuration information. After the verification is passed, the configuration server downloads the configuration information.
  • the upgrade of the data package ensures the legality of upgrading the server configuration information, and the client verifies the identity of the upgrade server.
  • the two-way authentication ensures the security of the software upgrade.
  • the client initiates an authentication request, and pulls a command script, and executes the command script to obtain a first verification content
  • the upgrade server compares the first verification content with the second verification content to obtain verification success information, and returns the information to the client, and
  • the verification success information is stored on the client, and the client detects the verification success information when it is restarted, and does not need to send the local information again for verification, which reduces the verification process and improves the upgrade efficiency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种软件升级系统及方法、服务器和客户端。该方法包括以下步骤:客户端上报升级请求并发起鉴权请求;所述客户端根据所述鉴权请求从升级服务器得到第一验证内容,所述升级服务器将所述客户端发送的第一验证内容与所述升级服务器存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;所述升级服务器根据所述升级请求生成配置信息,并将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;所述客户端对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述升级服务器下载升级数据包。上述软件升级系统及方法、服务器和客户端,通过双向身份验证,大大提高了软件升级的安全性。

Description

软件升级系统及方法、服务器和客户端
【技术领域】
本发明涉及软件升级领域,特别涉及一种软件升级系统及方法、服务器和客户端。
【背景技术】
传统的网络架构是 C/S ( Client/Server ,客户端 / 服务器),将客户端与服务器区分开。每一个客户端软件都可以向服务器或应用程序服务器发出请求。因大量的软件采用 C/S 架构,客户端的功能更新通常通过软件升级来实现。
软件升级是指软件开发者在编写软件的时候,由于设计人员考虑不全面或程序功能不完善,在软件发行后,通过对程序的修改或加入新的功能后,以补丁的形式发布的方式。用户把这些补丁更新,即升级完成。软件升级是为了更好的满足用户的需求和防止病毒的入侵。软件升级通常分为手动升级和强制升级两种方式,手动升级是新版本发布后,客户端主动检查是否有新的版本,然后提示客户端是否需要升级;强制升级往往是服务商根据客户端版本分布和新版本的质量情况或者紧急漏洞修复,而进行的版本大规模升级。因为往往有些新的功能需要客户端配合升级到新的版本才使用,另外有些软件在发布后发现新的安全漏洞等原因,为了避免扩散造成更大的影响,需要客户端第一时间启 动强制升级功能,将影响降低到最小的程度。升级只给合法的客户端使用。
传统的软件升级过程是:客户端启动时或获取用户主动发起升级请求,将本地软件配置等版本信息发送到服务器查询升级相关信息,并接收服务器返回的相关升级配置,根据升级配置下载升级数据包或补丁,并校验。
由于软件的快速开发和迭代,版本更新和漏洞修复需要下载更新安装越来频繁。在软件升级过程中,下载升级的地址可能被劫持,即 DNS ( Domain Name System ,域名系统)劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的 IP ( Internet Protocol , 网络之间互连的协议 )地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。可能出现服务器身份不可靠,导致客户端在软件升级过程中受到攻击, 软件升级安全性低。
【发明内容】
基于此,有必要提供一种软件升级系统,提高软件升级的安全性。
一种软件升级系统,包括客户端和升级服务器,所述客户端用于上报升级请求到所述升级服务器;所述升级服务器用于根据所述升级请求生成配置信息,所述客户端还用于发起鉴权请求,根据所述鉴权请求从所述升级服务器得到第一验证内容,所述升级服务器还用于将所述第一验证内容与所述升级服务器上存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;
所述升级服务器还用于将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;所述客户端还用于对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述升级服务器下载升级数据包。
优选地,所述客户端还用于在发起鉴权请求后,根据所述鉴权请求从所述升级服务器拉取命令脚本,执行所述命令脚本得到所述第一验证内容。
优选地,所述客户端还用于存储返回的所述验证成功信息,以及在下次启动检测到所述验证成功信息时不上报本地信息到所述升级服务器进行验证,在下次启动未检测到所述验证成功信息时上报本地信息到所述升级服务器,所述升级服务器对所述本地信息进行验证,并在验证通过后将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端。
优选地,还包括统计服务器和升级配置服务器,所述统计服务器用于接收所述客户端上报的下载升级数据包的结果,并生成升级统计数据;所述升级配置服务器用于同步所述统计服务器的升级统计数据,并根据所述升级统计数据调整升级量的配置。
优选地,所述升级服务器对所述配置信息进行数字签名是通过私钥对所述配置信息进行加密,所述客户端对所述配置信息进行签名验证前需通过公钥对所述配置信息进行解密。
此外,还有必要提供一种软件升级方法,提高软件升级的安全性。
一种软件升级方法,包括以下步骤:
客户端上报升级请求并发起鉴权请求;
所述客户端根据所述鉴权请求从升级服务器得到第一验证内容,所述升级服务器将所述客户端发送的第一验证内容与所述升级服务器存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;
所述升级服务器根据所述升级请求生成配置信息,并将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;
所述客户端对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述升级服务器下载升级数据包。
优选地,还包括步骤:
所述客户端在发起鉴权请求后,根据所述鉴权请求拉取命令脚本,执行所述命令脚本得到所述第一验证内容。
优选地,还包括步骤:所述客户端存储返回的所述验证成功信息;
当下次启动检测是否存在所述验证成功信息,若是,则所述客户端不上报本地信息进行验证,若否,则所述客户端上报本地信息,所述升级服务器对所述本地信息进行验证,若验证通过,则将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端,否则结束。
优选地,还包括步骤:
统计服务器接收所述客户端上报下载升级数据包的结果,并生成升级统计数据;
升级配置服务器同步所述升级统计数据,并根据所述升级统计数据调整升级量的配置。
优选地,对所述配置信息进行数字签名的步骤为通过私钥对所述配置信息进行加密,对所述配置信息进行签名验证的步骤之前还包括步骤:通过公钥对所述配置信息进行解密。
此外,还有必要提供一种服务器,包括:
网络接口,用于与请求升级的客户端通讯,并获取所述客户端上报的升级请求及鉴权请求;
与所述网络接口通信的处理器;以及
与所述处理器通信的存储器,用于存储数据和机器指令,所述处理器调用所述机器指令以执行多个操作,所述多个操作包括:
根据所述升级请求生成配置信息,根据所述鉴权请求向所述客户端发送第一验证内容,并将所述第一验证内容与存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;
对所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;当所述客户端对所述配置信息进行签名验证,且所述配置信息被验证通过后,向所述客户端提供升级数据包。
此外,还有必要提供一种客户端,包括:
网络接口,用于与服务器通信,并向所述服务器上报升级请求以及发起鉴权请求;
与所述网络接口通信的处理器;以及
与所述处理器通信的存储器,用于存储数据及机器指令,所述处理器调用所述机器指令以执行多个操作,所述多个操作包括:
根据所述鉴权请求从所述升级服务器得到第一验证内容;
当所述第一验证内容与所述服务器上存储的第二验证内容进行比较验证且通过验证后,获取验证成功信息;
获取所述服务器根据所述升级请求生成且进行数字签名的配置信息,对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述服务器下载升级数据包。
上述软件升级系统及方法、服务器和客户端。客户端发起鉴权请求,根据鉴权请求得到第一验证内容,升级服务器将第一验证内容与存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到客户端,实现了升级服务器对客户端身份的验证,升级服务器根据客户端的升级请求生成配置信息,并对配置信息进行数字签名,下发给客户端,客户端对配置信息进行签名验证,验证通过后才从升级服务器下载升级数据包,保证了升级服务器配置信息的合法性,实现了客户端对升级服务器身份的验证,通过双向身份验证,大大提高了软件升级的安全性。
【附图说明】
图 1 为一个实施例中软件升级系统的结构示意图;
图 2 为另一个实施例中软件升级系统的结构示意图;
图 3 为一个实施例中软件升级方法的流程图;
图 4 为另一个实施例中软件升级方法的流程图;
图 5 为一个实施例中升级服务器的结构示意图;
图 6 为一个实施例中客户端的结构示意图。
【具体实施方式】
下面结合具体的实施例及附图对软件升级系统及方法的技术方案进行详细的描述。
如图 1 所示,在一个实施例中,一种软件升级系统,包括客户端 110 和升级服务器 120 。
客户端 110 用于上报升级请求到升级服务器 120 。为了保证客户端 110 的身份合法性,升级服务器 120 需对客户端 110 的身份合法性进行验证。客户端 110 还用于发起鉴权请求,根据该鉴权请求从升级服务器 120 得到第一验证内容。升级服务器 120 用于将该第一验证内容与升级服务器 120 上存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到客户端 110 。
客户端 110 还用于在发起鉴权请求后,根据该鉴权请求从升级服务器 120 拉取命令脚本,执行该命令脚本得到第一验证内容,并将该第一验证内容发送给升级服务器 120 。其中,命令脚本为升级服务器 120 返回的内容,中间包含需要客户端 110 执行操作的具体定义,如要求客户端 110 将文件指定位置的偏移量发送给升级服务器 120 等。第一验证内容可为文件指定位置的偏移量。
升级服务器 120 对第一验证内容与第二验证内容比较可通过计算两者的 MD5 值进行比较验证,若 MD5 值相符合,则验证成功。
在优选的实施例中,客户端 110 还用于存储返回的该验证成功信息。在客户端 110 下次启动时,检测到该验证成功信息时不上报本地信息到升级服务器 120 进行验证。检测到本地存在验证成功信息,则不需上报本地信息进行验证其身份合法性。如此减少了验证过程,提高了升级效率。
在客户端 110 下次启动时,若未检测到该验证成功信息时,上报本地信息到升级服务器 120 进行验证。当客户端 110 启动时,客户端 110 在上报升级请求时,同时还上报本地信息。该本地信息可为客户端文件指定位置的偏移量或客户端 110 的本地其他不同信息。升级服务器 120 对本地信息进行验证,并在验证通过后将该配置信息进行数字签名且下发所述数字签名后的配置信息到客户端 110 。以本地信息为文件指定位置的偏移量为例,升级服务器 120 对文件指定位置的偏移量计算 MD5 值,并将升级服务器 120 上已有的文件指定位置的偏移量计算 MD5 值,将两个 MD5 值进行比较,若相符合,则客户端 110 为合法客户端,否则为非法客户端。
升级服务器 120 还用于根据升级请求生成配置信息,并将该配置信息进行数字签名且下发该数字签名后的配置信息到客户端 110 。
该配置信息可包括升级的原始版本范围、升级的目标版本、升级文件的大小信息、升级文件下载数据的 URL ( Universal Resource Locator ,统一资源定位符)地址、升级数据包的描述信息、升级文件的 Hash (哈希)校验信息(如 MD5 或 SHA )等。其中, MD5 是 Message Digest 消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护; SHA ( Secure Hash Algorithm )是一种数据加密算法,美国国家标准和技术局发布的国家标准 FIPS PUB 180-1 ,一般称为 SHA-1 ,该算法是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,并把它们转化为长度较短、位数固定的输出序列即散列值的过程。
升级服务器 120 对配置信息进行数字签名是通过私钥对配置信息进行加密。升级服务器 120 对配置信息进行私钥加密,得到配置信息 MD5 摘要,并将该 MD5 摘要发送给客户端 110 。数字签名采用非对称加密算法,如 RSA 算法或椭圆曲线算法。对配置信息进行数字签名是为了保证客户端用以确认配置信息的来源和配置信息的完整性并防止被人进行伪造。
客户端 110 还用于对该配置信息进行签名验证,在该配置信息被验证通过后从升级服务器 120 下载升级数据包,并验证该升级数据包的完整性及真伪。
客户端 110 对该配置信息进行签名验证前需通过公钥对配置信息进行解密。客户端 110 对该配置信息进行解密后得到配置信息 MD5 摘要。同时,客户端 110 对配置信息做 MD5 摘要,将通过公钥解密得到的 MD5 摘要与客户端 110 对配置信息做的 MD5 摘要比较,若相符合,则升级服务器 120 下发的配置信息合法,否则升级服务器 120 下发的配置信息不合法。
客户端 110 在配置信息验证通过后从升级服务器 120 下载升级数据包,下载完升级数据包后,对升级数据包进行哈希运算得到升级数据包摘要,同时获取到升级服务器 120 对升级数据包进行哈希运算得到的配置升级数据包摘要,将在客户端 110 计算得到的升级数据包摘要与获取的在升级服务器 120 计算得到的配置升级数据包摘要进行比较,如相符合,则客户端 110 下载的升级数据包合法,为真的,否则升级数据包为伪造的。
如图 2 所示,在一个实施例中,上述软件升级系统,除了包括客户端 110 和升级服务器 120 ,还包括统计服务器 130 和升级配置服务器 140 。
统计服务器 130 用于接收客户端 110 上报的下载升级数据包的结果,生成升级统计数据。客户端 110 完成下载升级数据包后,向统计服务器 130 上报本次下载升级数据包的结果以及安装该升级数据包的结果。统计服务器 130 还用于将升级统计数据同步给升级配置服务器 140 。
升级配置服务器 140 用于根据所述升级统计数据调整升级量的配置,即允许升级多少客户端的数量。升级配置服务器 140 还用于按照升级服务器 120 的要求,提供升级策略和灰度配置。升级策略具体包括升级哪些版本、升级的数量、地域、 IP 限制规则等。升级策略由产品和业务需求确定。灰度配置是指对哪些客户端有效、哪些版本有效等。
如图 3 所示,在一个实施例中,一种软件升级方法,包括以下步骤:
步骤 S310 ,客户端上报升级请求并发起鉴权请求。
客户端升级时,需上报升级请求到升级服务器,同时升级服务器需对客户端身份进行验证,客户端要发起鉴权请求,请求验证。
步骤 S320 ,该客户端根据该鉴权请求从升级服务器得到第一验证内容,该升级服务器将该客户端发送的第一验证内容与该升级服务器存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到该客户端。
升级服务器对第一验证内容与第二验证内容比较可通过计算两者的 MD5 值进行比较验证,若 MD5 值相符合,则验证成功,将该验证成功信息返回给客户端。
在发起鉴权请求后,客户端根据该鉴权请求拉取命令脚本,执行所述命令脚本得到第一验证内容。其中,命令脚本为升级服务器返回的内容,中间包含需要客户端执行操作的具体定义,如要求客户端将文件指定位置的偏移量发送给升级服务器等。第一验证内容可为文件指定位置的偏移量。
步骤 S330 ,该升级服务器根据该升级请求生成配置信息,并将该配置信息进行数字签名且下发该数字签名后的配置信息到该客户端。
该配置信息可包括升级的原始版本范围、升级的目标版本、升级文件的大小信息、升级文件下载数据的 URL ( Universal Resource Locator ,统一资源定位符)地址、升级数据包的描述信息、升级文件的 Hash (哈希)校验信息(如 MD5 或 SHA )等。
在优选的实施例中,对配置信息进行数字签名的步骤为通过私钥对配置信息进行加密。升级服务器对配置信息进行私钥加密,得到配置信息 MD5 摘要,并将该 MD5 摘要发送给客户端。数字签名采用非对称加密算法,如 RSA 算法或椭圆曲线算法。对配置信息进行数字签名是为了保证客户端用以确认配置信息的来源和配置信息的完整性并防止被人进行伪造。
步骤 S340 ,该客户端对该配置信息进行签名验证,在该配置信息被验证通过后从该升级服务器下载升级数据包。
在对该配置信息进行签名验证的步骤之前还包括步骤:通过公钥对配置信息进行解密。客户端对该配置信息进行解密后得到配置信息 MD5 摘要。同时,客户端对配置信息做 MD5 摘要,将通过公钥解密得到的 MD5 摘要与客户端对配置信息做的 MD5 摘要比较,若相符合,则升级服务器下发的配置信息合法,否则升级服务器下发的配置信息不合法。
客户端在配置信息验证通过后从升级服务器下载升级数据包,下载完升级数据包后,还需验证升级数据包的完整性及真伪。通过计算升级数据包进行哈希运算得到升级数据包摘要,同时获取到升级服务器对升级数据包进行哈希运算得到的配置升级数据包摘要,将在客户端计算得到的升级数据包摘要与获取的在升级服务器计算得到的配置升级数据包摘要进行比较,如相符合,则客户端下载的升级数据包合法,为真的,否则升级数据包为伪造的。
在优选的实施例中,在步骤 S320 之后还包括步骤:客户端存储返回的该验证成功信息。
下次启动检测是否存在该验证成功信息,若是,则客户端不上报本地信息进行验证;若否,则客户端上报该本地信息到升级服务器,升级服务器对该本地信息进行验证,若验证通过则将该配置信息进行数字签名且下发所述数字签名后的配置信息到客户端,否则结束。客户端在上报升级请求时,同时还上报本地信息。该本地信息可为客户端文件指定位置的偏移量或客户端的本地其他不同信息。
当客户端启动时,检测到本地存在验证成功信息,则不需上报本地信息进行验证其身份合法性。如此减少了验证过程,提高了升级效率。
优选的实施例中,如图 4 所示,一种软件升级方法包括步骤:
步骤 S410 ,客户端上报升级请求并发起鉴权请求。
步骤 S420 ,客户端根据该鉴权请求从升级服务器得到第一验证内容,该升级服务器将该客户端发送的第一验证内容与升级服务器上存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到客户端。
步骤 S430 ,升级服务器根据对升级请求生成配置信息,并将该配置信息进行数字签名且下发该数字签名后的配置信息。
升级服务器生成配置信息及对配置信息进行数字签名如上述实施例中描述,在此不再赘述。
步骤 S440 ,客户端对该配置信息进行签名验证,验证是否通过,若是则执行步骤 S450 ,否则结束。
步骤 S450 ,客户端从升级服务器下载升级数据包。
步骤 S410 至步骤 S450 具体的描述如上述步骤 S310 至步骤 S340 ,在此不再赘述。
步骤 S460 ,统计服务器接收客户端上报下载升级数据包的结果,并生成升级统计数据。
客户端完成下载升级数据包后,向统计服务器上报本次下载升级数据包的结果以及安装该升级数据包的结果,统计服务器根据上报结果生成统计数据。
步骤 S470 ,升级配置服务器同步该升级统计数据,并根据该升级统计数据调整升级量的配置。
统计服务器还用于将升级统计数据同步给升级配置服务器。升级配置服务器用于根据所述升级统计数据调整升级量的配置,即允许升级多少客户端的数量。升级配置服务器还用于按照升级服务器的要求,提供升级策略和灰度配置。升级策略具体包括升级哪些版本、升级的数量、地域、 IP 限制规则等。升级策略由产品和业务需求确定。灰度配置是指对哪些客户端有效、哪些版本有效等。
如图 5 所示,在一个实施例中,服务器 200 包括网络接口 210 、处理器 220 及存储器 230 。网络接口 210 用于与请求升级的客户端通讯,并获取客户端上报的升级请求及鉴权请求。处理器 220 与网络接口 210 通信。存储器 230 与处理器 220 通信,且用于存储数据和机器指令,处理器 220 待用机器指令以执行多个操作。多个操作包括:
根据升级请求生成配置信息,根据鉴权请求向客户端发送第一验证内容,并将第一验证内容与存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到客户端。该操作与上述软件升级方法中的步骤 S320 的执行过程相同,在此不再赘述。
对所配置信息进行数字签名且下发数字签名后的配置信息到客户端;当客户端对所述配置信息进行签名验证,且所述配置信息被验证通过后,向客户端提供升级数据包。该操作与上述软件升级方法中的步骤 S330 及 S340 的执行过程相同,在此不再赘述。
在一个实施例中,多个操作还包括:
接收客户端上报的下载升级数据包的结果,并生成升级统计数据。
同步升级统计数据,并根据升级统计数据调整升级量的配置。
上述两个操作分别与上述软件升级方法中的步骤 S460 和 S470 的执行过程相同,在此不再赘述。
如图 6 所示,客户端 300 包括网络接口 310 、处理器 320 及存储器 330 。网络接口 310 用于与提供升级的服务器通信,并向服务器上报升级请求以及发起鉴权请求。处理器 320 与网络接口 310 通信。存储器 330 与处理器 320 通信,且用于存储数据和机器指令,处理器 320 调用机器指令以执行多个操作。多个操作包括:
根据鉴权请求从升级服务器得到第一验证内容,当第一验证内容与服务器上存储的第二验证内容进行比较验证且通过验证后,获取验证成功信息。该操作与上述软件升级方法中的步骤 S320 的执行过程相同,在此不再赘述。
获取服务器根据升级请求生成且进行数字签名的配置信息,对配置信息进行签名验证,在配置信息被验证通过后从服务器下载升级数据包。该操作与上述软件升级方法中的步骤 S330 及 S340 的执行过程相同,在此不再赘述。
在一个实施例中,多个操作还包括:
存储返回的验证成功信息,以及在下次启动检测到验证成功信息时不上报本地信息到服务器进行验证,在下次启动未检测到所述验证成功信息时上报本地信息到所述服务器。
上述软件升级系统及方法,服务器和客户端。客户端发起鉴权请求,根据鉴权请求得到第一验证内容,升级服务器将第一验证内容与存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到客户端,实现了升级服务器对客户端身份的验证,升级服务器根据客户端的升级请求生成配置信息,并对配置信息进行数字签名,下发给客户端,客户端对配置信息进行签名验证,验证通过后才从升级服务器下载升级数据包,保证了升级服务器配置信息的合法性,实现了客户端对升级服务器身份的验证,通过双向身份验证,大大提高了软件升级的安全性。
另外,采用客户端发起鉴权请求,并拉取命令脚本,执行该命令脚本得到第一验证内容,升级服务器将第一验证内容与第二验证内容比较得到验证成功信息,返回给客户端,并将验证成功信息存储在客户端上,客户端在再次启动时检测到该验证成功信息,就不需要再次发送本地信息进行验证,减少了验证过程,提高了升级效率。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (18)

  1. 一种软件升级系统,包括客户端和升级服务器,所述客户端用于上报升级请求到所述升级服务器;所述升级服务器用于根据所述升级请求生成配置信息,其特征在于:所述客户端还用于发起鉴权请求,根据所述鉴权请求从所述升级服务器得到第一验证内容,所述升级服务器还用于将所述第一验证内容与所述升级服务器上存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;所述升级服务器还用于将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;所述客户端还用于对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述升级服务器下载升级数据包。
  2. 根据权利要求1所述的软件升级系统,其特征在于,所述客户端还用于在发起鉴权请求后,根据所述鉴权请求从所述升级服务器拉取命令脚本,执行所述命令脚本得到所述第一验证内容。
  3. 根据权利要求1所述的软件升级系统,其特征在于,所述客户端还用于存储返回的所述验证成功信息,以及在下次启动检测到所述验证成功信息时不上报本地信息到所述升级服务器进行验证,在下次启动未检测到所述验证成功信息时上报本地信息到所述升级服务器,所述升级服务器对所述本地信息进行验证,并在验证通过后将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端。
  4. 根据权利要求1所述的软件升级系统,其特征在于,还包括统计服务器和升级配置服务器,所述统计服务器用于接收所述客户端上报的下载升级数据包的结果,并生成升级统计数据;所述升级配置服务器用于同步所述统计服务器的升级统计数据,并根据所述升级统计数据调整升级量的配置。
  5. 根据权利要求1所述的软件升级系统,其特征在于,所述升级服务器对所述配置信息进行数字签名是通过私钥对所述配置信息进行加密,所述客户端对所述配置信息进行签名验证前需通过公钥对所述配置信息进行解密。
  6. 一种软件升级方法,包括以下步骤:
    客户端上报升级请求并发起鉴权请求;
    所述客户端根据所述鉴权请求从升级服务器得到第一验证内容,所述升级服务器将所述客户端发送的第一验证内容与所述升级服务器存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;
    所述升级服务器根据所述升级请求生成配置信息,并将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;
    所述客户端对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述升级服务器下载升级数据包。
  7. 根据权利要求6所述的软件升级方法,其特征在于,还包括步骤:
    所述客户端在发起鉴权请求后,根据所述鉴权请求拉取命令脚本,执行所述命令脚本得到所述第一验证内容。
  8. 根据权利要求6所述的软件升级方法,其特征在于,还包括步骤:所述客户端存储返回的所述验证成功信息;
    当下次启动检测是否存在所述验证成功信息,若是,则所述客户端不上报本地信息进行验证,若否,则所述客户端上报本地信息到所述升级服务器,所述升级服务器对所述本地信息进行验证,若验证通过,则将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端,否则结束。
  9. 根据权利要求6所述的软件升级方法,其特征在于,还包括步骤:
    统计服务器接收所述客户端上报下载升级数据包的结果,并生成升级统计数据;
    升级配置服务器同步所述升级统计数据,并根据所述升级统计数据调整升级量的配置。
  10. 根据权利要求6所述的软件升级方法,其特征在于,对所述配置信息进行数字签名的步骤为通过私钥对所述配置信息进行加密,对所述配置信息进行签名验证的步骤之前还包括步骤:通过公钥对所述配置信息进行解密。
  11. 一种服务器,其特征在于,包括:
    网络接口,用于与请求升级的客户端通讯,并获取所述客户端上报的升级请求及鉴权请求;
    与所述网络接口通信的处理器;以及
    与所述处理器通信的存储器,用于存储数据和机器指令,所述处理器调用所述机器指令以执行多个操作,所述多个操作包括:
    根据所述升级请求生成配置信息,根据所述鉴权请求向所述客户端发送第一验证内容,并将所述第一验证内容与存储的第二验证内容进行比较验证,在通过验证后返回验证成功信息到所述客户端;
    对所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端;当所述客户端对所述配置信息进行签名验证,且所述配置信息被验证通过后,向所述客户端提供升级数据包。
  12. 根据权利要求11所述的服务器,其特征在于,所述多个操作还包括:
    对所述客户端上传的本地信息进行验证,并在验证通过后将所述配置信息进行数字签名且下发所述数字签名后的配置信息到所述客户端。
  13. 根据权利要求11所述的服务器,其特征在于,所述多个操作还包括:
    接收所述客户端上报的下载升级数据包的结果,并生成升级统计数据;
    同步所述升级统计数据,并根据所述升级统计数据调整升级量的配置。
  14. 根据权利要求11所述的服务器,其特征在于,对所述配置信息进行数字签名是通过私钥对所述配置信息进行加密。
  15. 一种客户端,其特征在于,包括:
    网络接口,用于与服务器通信,并向所述服务器上报升级请求以及发起鉴权请求;
    与所述网络接口通信的处理器;以及
    与所述处理器通信的存储器,用于存储数据及机器指令,所述处理器调用所述机器指令以执行多个操作,所述多个操作包括:
    根据所述鉴权请求从所述升级服务器得到第一验证内容,当所述第一验证内容与所述服务器上存储的第二验证内容进行比较验证且通过验证后,获取验证成功信息;
    获取所述服务器根据所述升级请求生成且进行数字签名的配置信息,对所述配置信息进行签名验证,在所述配置信息被验证通过后从所述服务器下载升级数据包。
  16. 根据权利要求15所述的客户端,其特征在于,所述多个操作还包括:在发起鉴权请求后,根据所述鉴权请求从所述服务器拉取命令脚本,执行所述命令脚本得到所述第一验证内容。
  17. 根据权利要求15所述的客户端,其特征在于,所述多个操作还包括:
    存储返回的所述验证成功信息,以及在下次启动检测到所述验证成功信息时不上报本地信息到所述服务器进行验证,在下次启动未检测到所述验证成功信息时上报本地信息到所述服务器。
  18. 根据权利要求15所述的客户端,其特征在于,所述多个操作还包括:
    对所述配置信息进行签名验证前需通过公钥对所述配置信息进行解密。
PCT/CN2012/076984 2011-08-18 2012-06-15 软件升级系统及方法、服务器和客户端 WO2013023481A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20120824277 EP2743827A4 (en) 2011-08-18 2012-06-15 SYSTEM AND METHOD FOR SOFTWARE UPGRADE, AND SERVER AND CLIENT
KR1020147000374A KR20140019027A (ko) 2011-08-18 2012-06-15 소프트웨어 업그레이드 시스템과 방법 및 서버와 클라이언트
US14/232,705 US20140156742A1 (en) 2011-08-18 2012-06-15 System and method for updating software, server and client thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2011102379610A CN102955700A (zh) 2011-08-18 2011-08-18 软件升级系统及方法
CN201110237961.0 2011-08-18

Publications (1)

Publication Number Publication Date
WO2013023481A1 true WO2013023481A1 (zh) 2013-02-21

Family

ID=47714732

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/076984 WO2013023481A1 (zh) 2011-08-18 2012-06-15 软件升级系统及方法、服务器和客户端

Country Status (5)

Country Link
US (1) US20140156742A1 (zh)
EP (1) EP2743827A4 (zh)
KR (1) KR20140019027A (zh)
CN (1) CN102955700A (zh)
WO (1) WO2013023481A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546576A (zh) * 2013-10-31 2014-01-29 中安消技术有限公司 一种嵌入式设备远程自动升级方法和系统
CN103716395A (zh) * 2013-12-26 2014-04-09 贝壳网际(北京)安全技术有限公司 软件更新方法及更新服务器
WO2015121423A1 (en) * 2014-02-17 2015-08-20 Wireswiss Gmbh Methods, frameworks and devices supporting designer-developer collaboration and rapid software application design iteration
CN107506259A (zh) * 2017-06-26 2017-12-22 努比亚技术有限公司 系统修复方法、终端及管理方法、服务器及存储介质

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292277B2 (en) * 2009-12-18 2016-03-22 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
CN103218553B (zh) * 2013-03-08 2016-01-20 深圳数字电视国家工程实验室股份有限公司 一种基于可信平台模块的授权方法和系统
KR20140124157A (ko) * 2013-04-16 2014-10-24 삼성전자주식회사 무선 네트워크에서 키 하이어라키 생성 장치 및 방법
CN103297429B (zh) * 2013-05-23 2016-12-28 北京大学 一种嵌入式升级文件传输方法
CN103354496A (zh) * 2013-06-24 2013-10-16 华为技术有限公司 一种公钥密码的处理方法、装置及系统
CN103778367A (zh) * 2013-12-30 2014-05-07 网秦(北京)科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
KR102139546B1 (ko) * 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
US9575741B2 (en) * 2014-03-20 2017-02-21 Google Technology Holdings LLC Methods and devices for wireless device-to-device software upgrades
EP3139902A2 (en) 2014-05-06 2017-03-15 The Procter & Gamble Company Fragrance compositions
US10509639B2 (en) * 2014-06-04 2019-12-17 Rimini Street, Inc. Automatic software-update framework
US9383989B1 (en) 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
US10282187B2 (en) * 2014-07-03 2019-05-07 Oracle International Corporation Efficient application patching in heterogeneous computing environments
GB201413836D0 (en) 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US10101987B2 (en) * 2015-03-11 2018-10-16 Echelon Corporation Method and system of processing an image upgrade
US9886263B2 (en) * 2015-03-24 2018-02-06 Oracle International Corporation Techniques for efficient application configuration patching
CN104866307B (zh) * 2015-05-14 2018-04-27 百度在线网络技术(北京)有限公司 一种应用程序的修复方法和装置
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
GB2540961B (en) 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
CN105872848B (zh) * 2016-06-13 2019-01-08 北京可信华泰信息技术有限公司 一种适用于非对称资源环境的可信双向认证方法
CN107704280B (zh) * 2016-11-15 2020-08-04 平安科技(深圳)有限公司 应用程序升级方法及系统
CN106789012B (zh) * 2016-12-21 2020-04-24 珠海市魅族科技有限公司 一种生产线烧录固件的方法及装置
CN106790083B (zh) * 2016-12-22 2018-05-18 掌阅科技股份有限公司 Dns劫持的检测方法、装置和移动终端
CN107124431B (zh) * 2017-06-22 2020-03-06 浙江数链科技有限公司 鉴权方法、装置、计算机可读存储介质和鉴权系统
CN109286599A (zh) * 2017-07-20 2019-01-29 北京展讯高科通信技术有限公司 数据安全防护方法、智能设备、服务器及可读存储介质
CN108229142B (zh) * 2017-12-28 2020-12-15 中国人民银行数字货币研究所 一种基于数字货币钱包终端对钱包进行升级的方法和装置
CN110351316A (zh) * 2018-04-04 2019-10-18 北京华大信安科技有限公司 一种软件远程升级方法及装置
CN108881312A (zh) * 2018-08-24 2018-11-23 北京京东尚科信息技术有限公司 智能合约升级方法、系统和相关设备以及存储介质
CN109214168B (zh) * 2018-08-27 2020-08-18 阿里巴巴集团控股有限公司 固件升级方法及装置
CN111371734A (zh) * 2018-12-26 2020-07-03 美的集团股份有限公司 身份校验及升级方法、介质、云平台、设备和升级服务器
CN113326059B (zh) * 2020-02-28 2024-04-26 腾讯科技(深圳)有限公司 一种资源更新方法、装置及存储介质
CN112306505A (zh) * 2020-06-28 2021-02-02 北京沃东天骏信息技术有限公司 用于安装程序的方法和装置
CN111970689A (zh) * 2020-06-29 2020-11-20 百度在线网络技术(北京)有限公司 Ota数据包的生成方法、装置及电子设备
CN112583578B (zh) * 2020-11-25 2023-03-24 青岛海信传媒网络技术有限公司 一种显示设备的安全升级方法及显示设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694031A (zh) * 2004-04-30 2005-11-09 微软公司 限制软件更新的方法和系统
CN101223729A (zh) * 2005-06-28 2008-07-16 易通卡有限公司 对移动支付设备进行更新
CN101984691A (zh) * 2010-10-25 2011-03-09 东莞宇龙通信科技有限公司 系统内置软件的升级方法和移动终端

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
EP1243998B1 (en) * 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7552341B2 (en) * 2004-09-01 2009-06-23 Microsoft Corporation Licensing the use of software on a particular CPU
US20070094654A1 (en) * 2005-10-20 2007-04-26 Microsoft Corporation Updating rescue software
CN100385855C (zh) * 2006-03-31 2008-04-30 华为技术有限公司 集中远程自动升级软件的系统及其方法
CN100514943C (zh) * 2007-05-24 2009-07-15 中国联合网络通信集团有限公司 一种即时消息客户端升级管理方法及系统
CN101557308B (zh) * 2009-05-06 2012-01-18 成都市华为赛门铁克科技有限公司 一种文件的升级方法及终端设备
CN101951391A (zh) * 2010-04-13 2011-01-19 杭州海康威视系统技术有限公司 监控设备远程升级的方法、装置及系统
US8484474B2 (en) * 2010-07-01 2013-07-09 Rockwell Automation Technologies, Inc. Methods for firmware signature

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694031A (zh) * 2004-04-30 2005-11-09 微软公司 限制软件更新的方法和系统
CN101223729A (zh) * 2005-06-28 2008-07-16 易通卡有限公司 对移动支付设备进行更新
CN101984691A (zh) * 2010-10-25 2011-03-09 东莞宇龙通信科技有限公司 系统内置软件的升级方法和移动终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2743827A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546576A (zh) * 2013-10-31 2014-01-29 中安消技术有限公司 一种嵌入式设备远程自动升级方法和系统
CN103546576B (zh) * 2013-10-31 2017-08-11 中安消技术有限公司 一种嵌入式设备远程自动升级方法和系统
CN103716395A (zh) * 2013-12-26 2014-04-09 贝壳网际(北京)安全技术有限公司 软件更新方法及更新服务器
CN103716395B (zh) * 2013-12-26 2017-10-10 北京猎豹移动科技有限公司 软件更新方法及更新服务器
WO2015121423A1 (en) * 2014-02-17 2015-08-20 Wireswiss Gmbh Methods, frameworks and devices supporting designer-developer collaboration and rapid software application design iteration
CN107506259A (zh) * 2017-06-26 2017-12-22 努比亚技术有限公司 系统修复方法、终端及管理方法、服务器及存储介质

Also Published As

Publication number Publication date
US20140156742A1 (en) 2014-06-05
EP2743827A4 (en) 2015-04-29
KR20140019027A (ko) 2014-02-13
EP2743827A1 (en) 2014-06-18
CN102955700A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
WO2013023481A1 (zh) 软件升级系统及方法、服务器和客户端
CN109561066B (zh) 数据处理方法、装置、终端及接入点计算机
US8418242B2 (en) Method, system, and device for negotiating SA on IPv6 network
US9135444B2 (en) Trusted platform module (TPM) assisted data center management
US7299354B2 (en) Method to authenticate clients and hosts to provide secure network boot
US11706037B2 (en) Achieving certificate pinning security in reduced trust networks
CA2774648C (en) Modular device authentication framework
JP4824813B2 (ja) アプリケーションの認証
EP3687107B1 (en) Information assurance (ia) using an integrity and identity resilient blockchain
WO2019085531A1 (zh) 一种终端联网认证的方法和装置
US20080065880A1 (en) Securing a communications exchange between computers
WO2014044170A1 (zh) 本地服务单元认证安卓客户端应用程序的方法
US20080189695A1 (en) Updating of Data Instructions
CN110677240A (zh) 通过证书签发提供高可用计算服务的方法及装置
EP1163589A1 (en) Authentication enforcement using decryption and authentication in a single transaction in a secure microprocessor
US20140317400A1 (en) System and method for validation and enforcement of application security
CN109525565B (zh) 一种针对短信拦截攻击的防御方法及系统
JP2020526146A (ja) 第1のアプリケーションと第2のアプリケーションとの間の対称型相互認証方法
WO2024031868A1 (zh) 一种基于属性加密的设备安全认证方法及其相关装置
US20220006654A1 (en) Method to establish an application level ssl certificate hierarchy between master node and capacity nodes based on hardware level certificate hierarchy
US11588852B2 (en) Vulnerability validation using attack payloads
JP5516595B2 (ja) セキュリティ確保されたコンテンツ保護システムを利用する方法、装置、およびシステム
US8452968B2 (en) Systems, methods, apparatus, and computer readable media for intercepting and modifying HMAC signed messages
US20230254111A1 (en) Automated validation of data sources in a managed network
WO2012146081A1 (zh) 信息安全设备中远程升级密钥管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12824277

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20147000374

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14232705

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012824277

Country of ref document: EP