CN111966970A - 防止数字货币矿机固件回退的方法、装置和数字货币矿机 - Google Patents

防止数字货币矿机固件回退的方法、装置和数字货币矿机 Download PDF

Info

Publication number
CN111966970A
CN111966970A CN202010759336.1A CN202010759336A CN111966970A CN 111966970 A CN111966970 A CN 111966970A CN 202010759336 A CN202010759336 A CN 202010759336A CN 111966970 A CN111966970 A CN 111966970A
Authority
CN
China
Prior art keywords
ore
digital currency
operating system
kernel
firmware
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.)
Granted
Application number
CN202010759336.1A
Other languages
English (en)
Other versions
CN111966970B (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.)
Shenzhen MicroBT Electronics Technology Co Ltd
Original Assignee
Shenzhen MicroBT Electronics Technology 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 Shenzhen MicroBT Electronics Technology Co Ltd filed Critical Shenzhen MicroBT Electronics Technology Co Ltd
Priority to CN202010759336.1A priority Critical patent/CN111966970B/zh
Publication of CN111966970A publication Critical patent/CN111966970A/zh
Application granted granted Critical
Publication of CN111966970B publication Critical patent/CN111966970B/zh
Priority to PCT/CN2021/104888 priority patent/WO2022022247A1/zh
Priority to CA3164128A priority patent/CA3164128A1/en
Priority to US17/762,671 priority patent/US11663299B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施方式提出一种防止数字货币矿机固件回退的方法、装置和数字货币矿机。该方法包括:使能引导加载程序(BootLoader)读取一次性可编程存储器(eFuse)中的预定比特位的当前值;判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。本发明实施方式可以通过多种方式,环环相扣地防止固件回退。

Description

防止数字货币矿机固件回退的方法、装置和数字货币矿机
技术领域
本发明属于数字货币技术领域,特别是涉及一种防止数字货币矿机固件回退的方法、装置和数字货币矿机。
背景技术
数字货币可以认为是一种基于节点网络和数字加密算法的虚拟货币。数字货币的核心特征主要包括:1、由于来自于某些开放的算法,数字货币没有发行主体;2、由于算法解的数量确定,数字货币的总量固定;3、由于交易过程需要网络中的各个节点的认可,因此数字货币的交易过程足够安全。随着超级计算机的快速发展,数字货币矿机已经从显卡矿机逐步走向更低功耗和更低成本的专用集成电路(Application Specific IntegratedCircuit,ASIC)矿机。目前,数字货币矿机一般运行厂商定制的固件,完成连接矿池、运行挖矿程序、并提供矿场运维接口等功能。
矿机的系统固件通常包括:(1)、引导加载程序,比如uboot;(2)、操作系统内核(kernel);(3)、文件系统(filesystem)。包含这三部分的完整固件通常被称为系统镜像。
升级后的系统固件通常具有更好的安全性。然而,目前存在回退到已破解的旧版本固件,并安装不良程序的恶意行为。如何防止数字货币矿机固件回退,是重大的技术问题。
发明内容
本发明实施例提出一种防止数字货币矿机固件回退的方法、装置和数字货币矿机。
本发明实施例的技术方案如下:
一种防止数字货币矿机固件回退的方法,该方法包括:
使能引导加载程序读取一次性可编程存储器中的预定比特位的当前值;
判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;
当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。
在一个实施方式中,所述引导加载程序调用矿机操作系统内核包括:引导加载程序向矿机操作系统内核传递非法启动参数;该方法还包括:
基于预定纠正方式将所述非法启动参数纠正为合法启动参数;
基于所述合法启动参数启动所述矿机操作系统内核。
在一个实施方式中,在启动所述矿机操作系统内核后,该方法还包括:
使能矿机操作系统内核在文件系统中检测预定文件;
其中当矿机操作系统内核在文件系统中检测到所述预定文件时,使能矿机操作系统内核加载所述文件系统;当矿机操作系统内核在文件系统中检测不到所述预定文件时,使能矿机操作系统内核不加载所述文件系统。
在一个实施方式中,所述矿机操作系统内核在文件系统中检测预定文件包括:
部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。
在一个实施方式中,该方法还包括:
使能所述病毒扫描引擎线程利用所述病毒库对所述数字货币矿机进行扫描;
使能所述病毒扫描引擎线程执行对应于扫描结果的预定处理,其中所述预定处理包括下列中的至少一个:
当基于扫描结果确定所述数字货币矿机存在异常时,发出报警提示;
当基于扫描结果确定所述数字货币矿机存在异常时,禁止运行挖矿程序;
当基于扫描结果确定所述数字货币矿机存在病毒时,删除所述病毒;
当基于扫描结果确定所述数字货币矿机存在病毒时,停止所述病毒的运行;
当扫描结果提示所述数字货币矿机存在病毒时,禁止运行挖矿程序。
在一个实施方式中,在检测到部署在文件系统中的病毒库后,该方法还包括:
使能病毒扫描引擎线程校验所述病毒库,其中当发现所述病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
在一个实施方式中,所述数字货币矿机固件升级后写入一次性可编程存储器的合法值,在数字货币矿机固件升级后的、首次启动引导加载程序时被写入所述一次性可编程存储器中。
一种防止数字货币矿机固件回退的装置,该装置包括:
读取模块,用于使能引导加载程序读取一次性可编程存储器中的预定比特位的当前值;
判断模块,用于判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;
处理模块,用于当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。
在一个实施方式中,处理模块,用于引导加载程序向矿机操作系统内核传递非法启动参数;该装置还包括:
内核启动模块,用于基于预定纠正方式将所述非法启动参数纠正为合法启动参数;基于所述合法启动参数启动所述矿机操作系统内核。
在一个实施方式中,该装置还包括:
文件系统加载模块,用于在启动所述矿机操作系统内核后,使能矿机操作系统内核在文件系统中检测预定文件;其中当矿机操作系统内核在文件系统中检测到所述预定文件时,使能矿机操作系统内核加载所述文件系统;当矿机操作系统内核在文件系统中检测不到所述预定文件时,使能矿机操作系统内核不加载所述文件系统。
在一个实施方式中,文件系统加载模块,用于使能部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。
在一个实施方式中,该装置还包括:
校验模块,用于在检测到部署在文件系统中的病毒库后,使能病毒扫描引擎线程校验所述病毒库,其中当发现所述病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
一种防止数字货币矿机固件回退的装置,包括:
存储器;
处理器;
其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上任一项所述的防止数字货币矿机固件回退的方法。
一种数字货币矿机,包括:
算力板;
控制板,包含:存储器和处理器;其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上任一项所述的防止数字货币矿机固件回退的方法;
其中所述算力板通过信号连接接口与所述控制板具有信号连接,所述算力板通过电源连接接口与电源具有电力连接。
一种计算机可读存储介质,其中存储有计算机可读指令,该计算机可读指令用于执行如上任一项所述的防止数字货币矿机固件回退的方法。
从上述技术方案可以看出,在本发明实施方式中,引导加载程序读取一次性可编程存储器中的预定比特位的当前值;判断当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;当判定当前值等于合法值时,使能引导加载程序调用矿机操作系统内核,当判定当前值不等于合法值时,使能引导加载程序不调用矿机操作系统内核。由此可见,本发明实施方式的升级后的固件通过修改一次性可编程存储器中预定比特位的值,可以有效防止数字货币矿机固件回退。
而且,本发明实施方式向矿机操作系统内核发送非法启动参数,旧版本的矿机操作系统内核由于无法纠正非法启动参数而不能正常启动,可以进一步防止数字货币矿机固件回退。
另外,本发明实施方式的矿机操作系统内核还可以通过检测文件系统中是否存在特有文件进一步防止固件回退。
可见,本发明实施方式可以基于多种防回退机制,环环相扣地防止固件回退。
附图说明
图1为本发明的防止数字货币矿机固件回退的方法的示范性流程图。
图2为本发明的防止数字货币矿机固件回退的示范性示意图。
图3为本发明的防止数字货币矿机固件回退的装置的示范性结构图。
图4为本发明具有存储器-处理器架构的、防止数字货币矿机固件回退的装置的示范性结构图。
图5为本发明数字货币矿机的示范性结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
申请人发现:随着矿机销量增多,市场上陆续出现被破解的、旧版本的矿机固件,比如可能在固件中增加短期可以提高矿机收益但长期上会影响矿机寿命的程序。有些用户受短期利益驱使会回退到这种旧版本矿机固件,导致矿机在保修期内就损坏,从而严重损害矿机厂商利益。
本发明提出一种防止数字货币矿机固件回退的技术方案,可以基于多种方式,环环相扣地防止固件回退。
图1为本发明的防止数字货币矿机固件回退的方法的示范性流程图。该方法适用于固件升级到新版本(比如当前最新版本)的数字货币矿机。
如图1所示,该方法包括:
步骤101:使能引导加载程序(BootLoader)读取一次性可编程存储器(eFuse)中的预定比特位的当前值。
当矿机上电后,首先启动引导加载程序,引导加载程序具体可以实施为uboot。然后,引导加载程序读取eFuse中的预定比特位的当前值。eFuse位于系统芯片(System OnChip,SOC)内。eFuse为SOC内部的非易失性存储器,eFuse中的每个比特位(bit)只能从0写为1,且只能写一次。而且,预定比特位在eFuse中的具体位置,比如可以由矿机厂商预先指定。
步骤102:判断当前值是否等于数字货币矿机固件升级后写入eFuse的合法值,其中当等于时,执行步骤103;当不等于时,执行步骤104。
在这里,数字货币矿机固件升级后写入eFuse的合法值,为固件升级到新版本(比如当前最新版本)后被写入eFuse的预定值。比如,该预定值的具体大小可以由矿机厂商预先确定,而对矿机用户是不可见的。
优选地,数字货币矿机固件升级后写入eFuse的合法值,可以在固件升级到新版本(比如当前最新版本)后,引导加载程序首次启动时被写入到eFuse中。
在本发明实施方式中,可以通过映射寄存器的方式从eFuse中读取值或写入值。
步骤103:使能引导加载程序调用矿机操作系统内核,并退出本流程。
在这里,当在步骤102中判定当前值等于合法值后,引导加载程序调用矿机操作系统内核,从而保证新版本的固件可以正常启动。
步骤104:使能引导加载程序不调用矿机操作系统内核。
在这里,当在步骤102中判定当前值不等于合法值后,则引导加载程序不调用矿机操作系统内核,从而使得旧版本的固件停止启动。
下面举例细化描述图1所示流程。
假定有旧版本的矿机固件A。在安装有矿机固件A的矿机正常启动过程中,矿机固件A中的引导加载程序读取eFuse中预定比特位的值,然后判断其值是否等于矿机固件A中的合法值(比如,0x01),不等于就不能正常启动固件,等于则正常启动固件。
当将矿机固件A升级到新版本的矿机固件B后,在升级到矿机固件B的矿机第一次启动过程中,矿机固件B中的引导加载程序读取eFuse中预定比特位的值,发现为矿机固件A中的合法值(即0x01)。然后,矿机固件B中的引导加载程序将该预定比特位的值修改为矿机固件B中的合法值(比如,0x03),并正常启动固件。后续该矿机的启动过程中,引导加载程序读取eFuse中预定比特位的值,如果发现为矿机固件B中的合法值(即0x03),则正常启动,如果发现不为矿机固件B中的合法值,则不启动。
假定该矿机的固件被刷机方式回退到矿机固件A(比如,直接烧录矿机固件A的已被破解的系统镜像,或通过网络方式回退到矿机固件A)。在被回退到矿机固件A的矿机启动过程中,矿机固件A中的引导加载程序读取eFuse中预定比特位的值,发现为0x03(因为升级到新版本的矿机固件B时,已经被改为0x03),则矿机固件A中的引导加载程序由于不将0x03视为合法值,因此无法继续启动。
可见,本发明实施方式通过修改eFuse预定比特位的值,可以有效防止数字货币矿机的固件回退。
在正常的固件启动过程中,引导加载程序会传递一系列启动参数给矿机操作系统内核,矿机操作系统内核基于该启动参数实现正常启动。基于该特点,申请人还发现:如果引导加载程序向矿机操作系统内核发送非法启动参数,新版本的矿机操作系统内核基于预定方式纠正非法启动参数,则新版本的矿机操作系统内核仍然可以正常启动,而旧版本的矿机操作系统内核无法纠正非法启动参数,则不能正常启动,从而可以进一步防止数字货币矿机固件回退。
在一个实施方式中,引导加载程序调用矿机操作系统内核包括:引导加载程序向矿机操作系统内核传递非法启动参数;该方法还包括:基于预定纠正方式将非法启动参数纠正为合法启动参数;基于合法启动参数启动矿机操作系统内核。
举例(1):启动参数可以包括内存镜像初始化进程的位置参数:rdinit。
假定rdinit的正确描述应该为:rdinit=/init。引导加载程序向矿机操作系统内核传递不同于该正确描述的非法启动参数,比如rdinit=/init1。新版本的矿机操作系统内核接收到该非法启动参数后,基于预定的纠正方式将“/init1”更正为“/init”,则可以恢复为合法启动参数(rdinit=/init),并基于合法启动参数正确查找到init程序,从而成功启动矿机操作系统内核。然而,旧版本的矿机操作系统内核接收到该非法启动参数后,由于缺乏纠正方式,因此无法正确查找init程序,从而不能够启动矿机操作系统内核。
举例(2):启动参数可以包括用于在SMP均衡调度算法中将一个或多个CPU孤立出来的参数:isolcpus。
假定isolcpus的正确描述应该为:isolcpus=1,2,3。引导加载程序向矿机操作系统内核传递非法启动参数,比如isolcpus=0,1,2,3。新版本的矿机操作系统内核接收到该非法启动参数后,基于预定的纠正方式将“0,1,2,3”更正为“1,2,3”,则可以恢复为合法启动参数(isolcpus=1,2,3),并基于合法启动参数使得CPU1、CPU2和CPU3孤立,而CPU0处理系统杂务,从而成功启动矿机操作系统内核。然而,旧版本的矿机操作系统内核接收到该非法启动参数后,由于缺乏纠正方式,CPU0、CPU1、CPU2和CPU3都被孤立不参与操作系统调度,从而不能够启动矿机操作系统内核。
以上示范性描述了启动参数的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
申请人还发现:矿机操作系统内核还可以通过检测文件系统中是否存在特有文件,进一步防止固件回退。
在一个实施方式中,在启动矿机操作系统内核后,该方法还包括:使能矿机操作系统内核在文件系统中检测预定文件;其中当矿机操作系统内核在文件系统中检测到预定文件时,使能矿机操作系统内核加载文件系统;当矿机操作系统内核在文件系统中检测不到预定文件时,使能矿机操作系统内核不加载文件系统。优选地,文件系统进一步被加密(比如使用LUKS进行加密),矿机操作系统内核正确解密文件系统后,再检测预定文件。
优选地,矿机操作系统内核在文件系统中检测预定文件包括:部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。当矿机操作系统内核在文件系统中检测不到病毒库时,矿机操作系统内核认定文件系统非法(比如,版本过旧),并因此不启动文件系统,从而防止不期望的固件版本回退。
可见,本发明实施方式不但进一步在矿机中实现病毒扫描功能,而且还可以将病毒库的存在与否作为文件系统合法性的判定依据,进一步防止不期望地启动版本过旧的文件系统。
另外,本发明实施方式的病毒库部署在用户空间中,从而便于升级维护病毒库。而且,病毒扫描引擎线程与病毒库独立,可以各自升级。
在一个实施方式中,该方法还包括:使能病毒扫描引擎线程利用病毒库对数字货币矿机进行扫描;使能病毒扫描引擎线程执行对应于扫描结果的预定处理。具体的,该预定处理至少包括:
(1)、当基于扫描结果确定数字货币矿机存在异常时,发出报警提示;
(2)、当基于扫描结果确定数字货币矿机存在异常时,禁止运行挖矿程序;
(3)、当基于扫描结果确定数字货币矿机存在病毒时,删除病毒;
(4)、当基于扫描结果确定数字货币矿机存在病毒时,停止病毒的运行;
(5)、当扫描结果提示数字货币矿机存在病毒时,禁止运行挖矿程序。
以上示范性描述了对应于扫描结果的预定处理的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
在一个实施方式中,在检测到部署在文件系统中的病毒库后,该方法还包括:使能病毒扫描引擎线程校验病毒库,其中当发现病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
具体地,病毒扫描引擎线程可以调用内核空间中的功能函数库以校验病毒库。比如,病毒扫描引擎线程从病毒库中解析出签名文件,并调用功能函数库中的解密函数对该签名文件执行解密,然后验证该签名文件是否合法,其中当签名文件合法时确定病毒库通过验证,当签名文件非法时确定病毒库不通过验证(被非法篡改),并当发现病毒库被篡改时,病毒扫描引擎线程禁止运行挖矿程序,从而保证挖矿工作的安全。
因此,当病毒扫描引擎线程发现病毒库被篡改时,禁止运行挖矿程序,进一步提高数字货币矿机的安全性。
优选地,病毒库中可以包含多种类型的文件,从而病毒扫描引擎线程可以利用病毒库对数字货币矿机进行各种类型的扫描以及后续处理。
举例(1):病毒库包含程序白名单;病毒扫描引擎线程利用病毒库对数字货币矿机进行扫描包括:病毒扫描引擎线程扫描用户空间中的在线运行程序,当确定在线运行程序不属于所述程序白名单时,将所述在线运行程序确定为病毒。当将在线运行程序确定为病毒后,可以停止在线运行程序的运行,并删除在线运行程序。
举例(2):病毒库包含需要保护的用户空间文件清单;病毒扫描引擎线程利用病毒库对所述数字货币矿机进行扫描包括:当病毒扫描引擎线程确定所述用户空间文件清单中的文件被篡改时,确定所述数字货币矿机存在异常。当确定数字货币矿机存在异常后,可以发出报警提示,并禁止运行挖矿程序。
举例(3):病毒库包含已知病毒特征;病毒扫描引擎线程利用病毒库对所述数字货币矿机进行扫描包括:当病毒扫描引擎线程在用户空间中扫描到包含所述已知病毒特征的、在线运行程序或非在线运行程序时,将所述在线运行程序或非在线运行程序确定为病毒。当将在线运行程序或非在线运行程序确定为病毒后,可以停止在线运行程序的运行,并删除在线运行程序或非在线运行程序。
举例(4):病毒库包含受保护网络端口以及受保护网络端口的授权访问程序列表;病毒扫描引擎线程利用病毒库对数字货币矿机进行扫描包括:当病毒扫描引擎线程在用户空间中扫描到访问所述受保护网络端口的、不属于授权访问程序列表的在线运行程序时,将在线运行程序确定为病毒。当将在线运行程序确定为病毒后,可以停止在线运行程序的运行,并删除在线运行程序。
以上示范性描述了利用病毒库对数字货币矿机进行各扫描以及后续处理的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。比如,病毒扫描引擎线程还可以进一步实现日志功能以跟踪杀毒状态。
图2为本发明的防止数字货币矿机固件回退的示范性示意图。
在图2中,首先升级数字货币矿机的固件,其中可以通过SD卡烧录镜像的方式,或网络升级包升级系统的方式实现固件升级。固件包括:(1)、uboot;(2)、内核;(3)、文件系统。升级之后,uboot、内核和文件系统都从旧版本更新到新版本。
当首次上电启动系统时,启动新版本的uboot,新版本的uboot判断eFuse的特定比特位是否有合法的默认值,如果合法,则写入对应于新版本的合法值(下次启动也会认为该值合法),其中可以通过映射寄存器的方式读写eFuse的特定比特位。因此,通过修改eFuse的特定比特位,实现锁定uboot,防止旧版本的固件启动。
另外,新版本的uboot向新版本的内核传递非法启动参数。新版本的内核针对该非法参数进行纠正,并实现正常启动。因此,通过传递非法启动参数,实现了锁定内核,进一步防止旧版本的固件启动。
接着,新版本的内核解密通过LUKS方式加密的文件系统,并判断其内部是否存在特定文件(比如病毒库)以验证文件系统是否为合法的文件系统。如果认为合法,则继续加载并正常运行文件系统,否则退出启动。因此,通过查询预定文件,实现锁定文件系统,进一步防止旧版本的固件启动。
上面描述了升级固件并正常启动的流程。下面说明第三方分别使用非新版本的uboot、内核和文件系统(比如,回退到旧版本的uboot、回退到旧版本的内核和回退到旧版本的文件系统)尝试启动的情况。
情况一:第三方使用旧版本的uboot的启动过程:
启动旧版本的uboot,旧版本的uboot读取特定比特位的值,因为SOC内的eFuse已经被新版本的uboot写入新的合法值,因此旧版本的uboot判断该值为非法,从而不能正常启动。
情况二:第三方使用新版本的uboot和旧版本的内核的启动过程:
启动新版本的uboot,新版本的uboot可以读取特定比特位的新的合法值,并向给旧版本的内核传递非法启动参数。然而,由于旧版本的内核没有对启动参数的纠正流程,因此无法正常启动。
情况三:第三方使用新版本的uboot和新版本的内核,文件系统采用旧版本的文件系统的启动过程:
启动新版本的uboot,新版本的uboot可以读取特定比特位的新的合法值,并向新版本的内核传递非法启动参数。新版本的内核可以纠正该非法启动参数,并加载旧版本的文件系统。然而,新版本的内核无法在旧版本的文件系统中查找到预定文件,因此无法正常启动。
可见,本发明实施方式可以通过多种方式,环环相扣地防止固件回退。
基于上述描述,本发明实施方式还提出了防止数字货币矿机固件回退的装置。
图3为本发明的防止数字货币矿机固件回退的装置的示范性结构图。
如图3所示,该装置300包括:
读取模块301,用于使能引导加载程序读取一次性可编程存储器中的预定比特位的当前值;
判断模块302,用于判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;
处理模块303,用于当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。
在一个实施方式中,处理模块303,用于引导加载程序向矿机操作系统内核传递非法启动参数;该装置300还包括:
内核启动模块304,用于基于预定纠正方式将所述非法启动参数纠正为合法启动参数;基于所述合法启动参数启动所述矿机操作系统内核。
在一个实施方式中,该装置300还包括:
文件系统加载模块305,用于在启动所述矿机操作系统内核后,使能矿机操作系统内核在文件系统中检测预定文件;其中当矿机操作系统内核在文件系统中检测到所述预定文件时,使能矿机操作系统内核加载所述文件系统;当矿机操作系统内核在文件系统中检测不到所述预定文件时,使能矿机操作系统内核不加载所述文件系统。
在一个实施方式中,文件系统加载模块305,用于使能部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。
在一个实施方式中,该装置300还包括:
校验模块306,用于在检测到部署在文件系统中的病毒库后,使能病毒扫描引擎线程校验所述病毒库,其中当发现所述病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
本发明实施方式还提出了具有存储器-处理器架构的、防止数字货币矿机固件回退的装置。
图4为本发明具有存储器-处理器架构的、防止数字货币矿机固件回退的装置的示范性结构图。
如图4所示,防止数字货币矿机固件回退的装置400,包括:
处理器401;存储器402;其中所述存储器402中存储有可被所述处理器401执行的应用程序,用于使得所述处理器401执行如上任一项所述的防止数字货币矿机固件回退的方法。
其中,存储器402具体可以实施为电可擦可编程只读存储器(EEPROM)、快闪存储器(Flash memory)、可编程只读存储器(PROM)等多种存储介质。处理器401可以实施为包括一或多个中央处理器或一或多个现场可编程门阵列,其中现场可编程门阵列集成一或多个中央处理器核。具体地,中央处理器或中央处理器核可以实施为CPU、MCU或数字信号处理器(DSP)。
本发明实施方式还提出了一种数字货币矿机。图5为本发明数字货币矿机的示范性结构图。
如图5所示,数字货币矿机包括:
算力板501;
控制板502,包含:存储器和处理器;其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得处理器执行如上任一项的防止数字货币矿机固件回退的方法;其中所述算力板501通过信号连接接口与所述控制板502具有信号连接,所述算力板501通过电源连接接口与电源503具有电力连接。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
本发明还提供了一种机器可读的存储介质,存储用于使一机器执行如本申请所述方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。用于提供程序代码的存储介质实施方式包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机或云上下载程序代码。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中的只示意性地表示出了与本发明相关部分,而并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”并不表示将本发明相关部分的数量限制为“仅此一个”,并且“一个”不表示排除本发明相关部分的数量“多于一个”的情形。在本文中,“上”、“下”、“前”、“后”、“左”、“右”、“内”、“外”等仅用于表示相关部分之间的相对位置关系,而非限定这些相关部分的绝对位置。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种防止数字货币矿机固件回退的方法,其特征在于,该方法包括:
使能引导加载程序读取一次性可编程存储器中的预定比特位的当前值;
判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;
当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。
2.根据权利要求1所述的防止数字货币矿机固件回退的方法,其特征在于,所述引导加载程序调用矿机操作系统内核包括:引导加载程序向矿机操作系统内核传递非法启动参数;该方法还包括:
基于预定纠正方式将所述非法启动参数纠正为合法启动参数;
基于所述合法启动参数启动所述矿机操作系统内核。
3.根据权利要求2所述的防止数字货币矿机固件回退的方法,其特征在于,在启动所述矿机操作系统内核后,该方法还包括:
使能矿机操作系统内核在文件系统中检测预定文件;
其中当矿机操作系统内核在文件系统中检测到所述预定文件时,使能矿机操作系统内核加载所述文件系统;当矿机操作系统内核在文件系统中检测不到所述预定文件时,使能矿机操作系统内核不加载所述文件系统。
4.根据权利要求3所述的防止数字货币矿机固件回退的方法,其特征在于,所述矿机操作系统内核在文件系统中检测预定文件包括:
部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。
5.根据权利要求4所述的防止数字货币矿机固件回退的方法,其特征在于,该方法还包括:
使能所述病毒扫描引擎线程利用所述病毒库对所述数字货币矿机进行扫描;
使能所述病毒扫描引擎线程执行对应于扫描结果的预定处理,其中所述预定处理包括下列中的至少一个:
当基于扫描结果确定所述数字货币矿机存在异常时,发出报警提示;
当基于扫描结果确定所述数字货币矿机存在异常时,禁止运行挖矿程序;
当基于扫描结果确定所述数字货币矿机存在病毒时,删除所述病毒;
当基于扫描结果确定所述数字货币矿机存在病毒时,停止所述病毒的运行;
当扫描结果提示所述数字货币矿机存在病毒时,禁止运行挖矿程序。
6.根据权利要求4所述的防止数字货币矿机固件回退的方法,其特征在于,
在检测到部署在文件系统中的病毒库后,该方法还包括:
使能病毒扫描引擎线程校验所述病毒库,其中当发现所述病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
7.根据权利要求1-6中任一项所述的防止数字货币矿机固件回退的方法,其特征在于,所述数字货币矿机固件升级后写入一次性可编程存储器的合法值,在数字货币矿机固件升级后的、首次启动引导加载程序时被写入所述一次性可编程存储器中。
8.一种防止数字货币矿机固件回退的装置,其特征在于,该装置包括:
读取模块,用于使能引导加载程序读取一次性可编程存储器中的预定比特位的当前值;
判断模块,用于判断所述当前值是否等于数字货币矿机固件升级后写入一次性可编程存储器的合法值;
处理模块,用于当判定所述当前值等于所述合法值时,使能引导加载程序调用矿机操作系统内核,当判定所述当前值不等于所述合法值时,使能引导加载程序不调用矿机操作系统内核。
9.根据权利要求8所述的防止数字货币矿机固件回退的装置,其特征在于,
处理模块,用于引导加载程序向矿机操作系统内核传递非法启动参数;该装置还包括:
内核启动模块,用于基于预定纠正方式将所述非法启动参数纠正为合法启动参数;基于所述合法启动参数启动所述矿机操作系统内核。
10.根据权利要求9所述的防止数字货币矿机固件回退的装置,其特征在于,该装置还包括:
文件系统加载模块,用于在启动所述矿机操作系统内核后,使能矿机操作系统内核在文件系统中检测预定文件;其中当矿机操作系统内核在文件系统中检测到所述预定文件时,使能矿机操作系统内核加载所述文件系统;当矿机操作系统内核在文件系统中检测不到所述预定文件时,使能矿机操作系统内核不加载所述文件系统。
11.根据权利要求10所述的防止数字货币矿机固件回退的装置,其特征在于,
文件系统加载模块,用于使能部署在矿机操作系统内核中的病毒扫描引擎线程,检测部署在文件系统中的病毒库。
12.根据权利要求11所述的防止数字货币矿机固件回退的装置,其特征在于,该装置还包括:
校验模块,用于在检测到部署在文件系统中的病毒库后,使能病毒扫描引擎线程校验所述病毒库,其中当发现所述病毒库被篡改时,使能病毒扫描引擎线程禁止运行挖矿程序。
13.一种防止数字货币矿机固件回退的装置,其特征在于,包括:
存储器;
处理器;
其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如权利要求1至7中任一项所述的防止数字货币矿机固件回退的方法。
14.一种数字货币矿机,其特征在于,包括:
算力板;
控制板,包含:存储器和处理器;其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如权利要求1至7中任一项所述的防止数字货币矿机固件回退的方法;
其中所述算力板通过信号连接接口与所述控制板具有信号连接,所述算力板通过电源连接接口与电源具有电力连接。
15.一种计算机可读存储介质,其特征在于,其中存储有计算机可读指令,该计算机可读指令用于执行如权利要求1至7中任一项所述的防止数字货币矿机固件回退的方法。
CN202010759336.1A 2020-07-31 2020-07-31 防止数字货币矿机固件回退的方法、装置和数字货币矿机 Active CN111966970B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010759336.1A CN111966970B (zh) 2020-07-31 2020-07-31 防止数字货币矿机固件回退的方法、装置和数字货币矿机
PCT/CN2021/104888 WO2022022247A1 (zh) 2020-07-31 2021-07-07 防止数据处理设备固件回退的方法、装置和数据处理设备
CA3164128A CA3164128A1 (en) 2020-07-31 2021-07-07 Method and apparatus for preventing rollback of firmware of data processing device, and data processing device
US17/762,671 US11663299B2 (en) 2020-07-31 2021-07-07 Method and apparatus for preventing rollback of firmware of data processing device, and data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010759336.1A CN111966970B (zh) 2020-07-31 2020-07-31 防止数字货币矿机固件回退的方法、装置和数字货币矿机

Publications (2)

Publication Number Publication Date
CN111966970A true CN111966970A (zh) 2020-11-20
CN111966970B CN111966970B (zh) 2021-05-07

Family

ID=73363849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010759336.1A Active CN111966970B (zh) 2020-07-31 2020-07-31 防止数字货币矿机固件回退的方法、装置和数字货币矿机

Country Status (4)

Country Link
US (1) US11663299B2 (zh)
CN (1) CN111966970B (zh)
CA (1) CA3164128A1 (zh)
WO (1) WO2022022247A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022022247A1 (zh) * 2020-07-31 2022-02-03 深圳比特微电子科技有限公司 防止数据处理设备固件回退的方法、装置和数据处理设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991305A (zh) * 2000-10-10 2007-07-04 Dbt美洲有限公司 自动化连续拖运系统
CN101004691A (zh) * 2007-01-23 2007-07-25 北京映翰通网络技术有限公司 一种固件程序升级的方法与装置
CN101398765A (zh) * 2007-09-24 2009-04-01 联发科技股份有限公司 用于更新固件的方法以及固件更新装置
US20140180665A1 (en) * 2006-01-04 2014-06-26 Andriy Naydon Transparent Intellectual Network Storage Device
WO2015183355A2 (en) * 2014-02-24 2015-12-03 Western Digital Technologies, Inc. Encryption key selection
CN105183515A (zh) * 2015-09-02 2015-12-23 深圳一电科技有限公司 云台固件升级的方法及装置
CN106528123A (zh) * 2016-10-26 2017-03-22 珠海全志科技股份有限公司 一种基于eFuse模块的SoC启动方法和装置
CN107491328A (zh) * 2017-08-02 2017-12-19 广东美的暖通设备有限公司 固件程序升级方法、系统及电器设备
CN108595198A (zh) * 2018-04-18 2018-09-28 南京方寸微电子科技有限公司 一种安全的固件更新方法
CN108681520A (zh) * 2018-06-28 2018-10-19 北京比特大陆科技有限公司 一种数据处理模组、电路、算力板、矿机以及挖矿系统
CN109508535A (zh) * 2018-10-30 2019-03-22 百富计算机技术(深圳)有限公司 固件安全认证方法、装置和支付终端

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7181610B2 (en) * 2003-10-07 2007-02-20 Intel Corporation Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension
US20070162964A1 (en) * 2006-01-12 2007-07-12 Wang Liang-Yun Embedded system insuring security and integrity, and method of increasing security thereof
US7676671B2 (en) * 2006-10-31 2010-03-09 Hewlett-Packard Development Company, L.P. System for multi-profile boot selection of an embedded device
US20090024784A1 (en) * 2007-07-20 2009-01-22 Wang Liang-Yun Method for writing data into storage on chip and system thereof
US11514996B2 (en) * 2017-07-30 2022-11-29 Neuroblade Ltd. Memory-based processors
US10810311B2 (en) * 2017-09-21 2020-10-20 Samsung Electronics Co., Ltd. Internet-of-things module
TWI647610B (zh) * 2017-11-14 2019-01-11 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
JP7341784B2 (ja) * 2019-08-09 2023-09-11 キオクシア株式会社 ストレージ装置
CN111221553A (zh) 2019-12-31 2020-06-02 深圳优地科技有限公司 一种固件升级的方法及装置
CN111966970B (zh) 2020-07-31 2021-05-07 深圳比特微电子科技有限公司 防止数字货币矿机固件回退的方法、装置和数字货币矿机

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991305A (zh) * 2000-10-10 2007-07-04 Dbt美洲有限公司 自动化连续拖运系统
US20140180665A1 (en) * 2006-01-04 2014-06-26 Andriy Naydon Transparent Intellectual Network Storage Device
CN101004691A (zh) * 2007-01-23 2007-07-25 北京映翰通网络技术有限公司 一种固件程序升级的方法与装置
CN101398765A (zh) * 2007-09-24 2009-04-01 联发科技股份有限公司 用于更新固件的方法以及固件更新装置
WO2015183355A2 (en) * 2014-02-24 2015-12-03 Western Digital Technologies, Inc. Encryption key selection
CN105183515A (zh) * 2015-09-02 2015-12-23 深圳一电科技有限公司 云台固件升级的方法及装置
CN106528123A (zh) * 2016-10-26 2017-03-22 珠海全志科技股份有限公司 一种基于eFuse模块的SoC启动方法和装置
CN107491328A (zh) * 2017-08-02 2017-12-19 广东美的暖通设备有限公司 固件程序升级方法、系统及电器设备
CN108595198A (zh) * 2018-04-18 2018-09-28 南京方寸微电子科技有限公司 一种安全的固件更新方法
CN108681520A (zh) * 2018-06-28 2018-10-19 北京比特大陆科技有限公司 一种数据处理模组、电路、算力板、矿机以及挖矿系统
CN109508535A (zh) * 2018-10-30 2019-03-22 百富计算机技术(深圳)有限公司 固件安全认证方法、装置和支付终端

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022022247A1 (zh) * 2020-07-31 2022-02-03 深圳比特微电子科技有限公司 防止数据处理设备固件回退的方法、装置和数据处理设备
US11663299B2 (en) 2020-07-31 2023-05-30 Shenzhen Microbt Electronics Technology Co., Ltd. Method and apparatus for preventing rollback of firmware of data processing device, and data processing device

Also Published As

Publication number Publication date
CN111966970B (zh) 2021-05-07
CA3164128A1 (en) 2022-02-03
US20220414189A1 (en) 2022-12-29
WO2022022247A1 (zh) 2022-02-03
US11663299B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
US20200302057A1 (en) Verifying controller code
US8904162B2 (en) Methods and apparatus for performing secure BIOS upgrade
CN105205401B (zh) 基于安全密码芯片的可信计算机系统及其可信引导方法
US9432397B2 (en) Preboot environment with system security check
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US9852298B2 (en) Configuring a system
US8898797B2 (en) Secure option ROM firmware updates
US20080126779A1 (en) Methods and apparatus to perform secure boot
CN106919859B (zh) 基本输入输出系统保护方法和装置
US8788839B1 (en) Securely replacing boot loaders
US9245122B1 (en) Anti-malware support for firmware
US9262631B2 (en) Embedded device and control method thereof
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
CN111966970B (zh) 防止数字货币矿机固件回退的方法、装置和数字货币矿机
CN111967004B (zh) 数字货币矿机的病毒扫描方法、装置和数字货币矿机
KR20130027026A (ko) 외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템
CN111597558B (zh) 一种基于文件多镜像的嵌入式操作系统可信引导方法及系统
CN117349849A (zh) 芯片启动方法和芯片
CN115906046A (zh) 可信计算系统及基于可信计算系统的度量方法
CN111695164B (zh) 电子设备及其控制方法
CN117932623B (zh) 一种操作系统安全引导方法及系统
JP6564549B1 (ja) 正当性認証起動管理システム
EP1447733A1 (en) Data processing system and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant