CN111868723A - 病毒免疫计算机***和方法 - Google Patents

病毒免疫计算机***和方法 Download PDF

Info

Publication number
CN111868723A
CN111868723A CN201880080693.6A CN201880080693A CN111868723A CN 111868723 A CN111868723 A CN 111868723A CN 201880080693 A CN201880080693 A CN 201880080693A CN 111868723 A CN111868723 A CN 111868723A
Authority
CN
China
Prior art keywords
computer
operating system
private key
symmetric private
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201880080693.6A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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
Priority claimed from US15/839,450 external-priority patent/US10614254B2/en
Priority claimed from US16/005,399 external-priority patent/US10642970B2/en
Application filed by Individual filed Critical Individual
Publication of CN111868723A publication Critical patent/CN111868723A/zh
Pending legal-status Critical Current

Links

Images

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

本发明提供一种方法和装置,在计算机上运行应用程序之前,通过要求对应用程序进行解密,来防止黑客代码感染应用程序。该设备是包括加密狗或可连接到计算机单独单元的计算机***。安全程序使用存储在加密狗中的第二密钥解密来解锁第一密钥。首次在计算机上安装新应用程序时,安全程序将使用解密的第一密钥来加密所安装的内容,以使加密的应用程序是该应用程序在任何非临时性计算机可读存储器中唯一可安装的版本。通过计算机。当给出启动应用程序的命令时,用第一密匙来加密该启动程序语言。

Description

病毒免疫计算机***和方法
技术领域
在信息安全领域,公开了一种***和方法,以防止在计算机上执行黑客代码,从而改善计算机上数据的功能,操作和安全性。
背景技术
当前,计算机程序(也称为可执行代码)被配置为在特定操作***中执行,并且用于特定操作***的可执行代码可以在运行该特定操作***的任何机器中执行。
在运行该操作***的任何计算机中执行针对特定操作***的任何可执行代码(无论是否恶意)。通过这种方式可以使单个程序(即可执行代码)一次编写并在运行相同操作***的任何计算机中执行。
这是当前使用的机制,也是我们在日常生活中使用的现代计算机技术(例如,硬件/软件的组合)的核心。
世界上每个国家的绝大多数人每天都使用某种类型的计算机-服务器计算机,可携带计算机,台式计算机,手机,平板计算机的形式或使用计算机技术的任何设备:硬件和软件。
在发达国家,大多数人非常依赖计算机,从而帮助我们完成日常生活中的所有任务,如果没有计算机的帮助,大多数人将无法正常工作。例如,如果我们不使用移动设备中的电子地图,许多人现在无法从一个城市到另一个城市。
所使用的大多数计算机程序(也称为“软件应用程序”或仅称为“应用程序”)是为了我们的生活的便利,我们应该它们的存在而感到高兴。但是,还有其他一些针对单个目的进行编程的不良应用程序,这些程序给我们的日常生活造成破坏。它们被称为计算机病毒,计算机蠕虫,广告软件,钓鱼软件,勒索软件等(每个此类不良应用程序在本文中都可以称为黑客代码,计算机病毒或病毒)。
在密码术语中,加密是对消息或信息进行编码的过程,使得只有经过授权的个体才能访问它。加密本身并不能防止干扰,但是会把可理解的内容进行编译。在加密方案中,使用加密算法对目标信息或消息(称为纯文本)进行加密,生成密文,只有解密后才能读取。
由于某些技术原因,加密方案通常使用由算法生成的伪随机加密密钥。原则上可以在不拥有密钥的情况下解密消息,但是,对于精心设计的加密方案,需要大量的计算资源和技能支持,有时,这可能需要花费很多年的计算时间并且使用非常昂贵且功能强大的计算机来达到解密目的,这在大多数情况下是不可行的或者经济上是不可能负担的。但是另一方面,具有解密密钥的授权消息接收者可以使用由始发者/消息的发送者提供给消息接收者的密钥来容易地解密消息。
基本上,加密是一种用于隐藏消息的形式,以使该消息的实际/原始内容不提供给不应该知道实际消息/内容的中间人。例如,如果消息将是:“9”,并且预先约定的方法是在消息发送之前将“7”的值乘以该消息,则一旦将“7”乘以“9”,则结果将为“63”。任何阅读此消息的人都不会知道实际值是“9”,但是一旦目标接收者接收到值“63”,则所需要做的就是将接收到的值除以7,结果将为“9”—原始值。
当然,该示例非常简单,但是它给出了加密如何工作的原理。在实际的计算机加密中,使用了非常复杂的方法。有些使用计算机的逻辑功能或复杂的数学算法来达到加密功能。目前正在使用或将来要发明的任何一种可用的加密机制都可以用来实现对未编码的软件代码进行加密并对已加密的软件代码进行解密的目的。但是为了清楚起见,一种更复杂的计算机加密原理会被简短的介绍。
使用公开的方法改***件安装和操作***(120)的行为,并且将不同于当前已知或使用中的现有技术的操作***。在现有技术的操作***中,操作***通过创建所有必需的过程以供日后执行,然后获取未加密的软件代码并将其安装在计算机上,然后将其未加密地保存在计算机的非暂态存储中。
现有技术的软件执行涉及对用户输入进行操作以请求其上安装了未加密软件的计算机参与操作***以读取软件可执行代码并促使中央处理单元执行它,从而启动软件的操作。
现有技术软件的计算机感染是可能的,因为安装在计算机中的任何程序都是单一格式。因此,病毒可以与任何其他程序相同的方式安装和执行,并且通常在用户不察觉或操作***检测不到或未报告任何异常的情况下将其引入计算机。
在现有技术的病毒执行中,中央处理单元不区分正在执行哪种软件代码,它可以是好代码(例如记帐软件)或坏代码(例如病毒),因此,可以在用户不察觉的情况下执行病毒,或者操作***可以检测到或报告任何异常情况。
发明内容
一计算机***包括一计算机和一存储设备,该存储设备是与启动计算机所需的组件的一独立单元。该存储设备具有存储设备对称私钥的第一非暂时性计算机存储介质。该计算机包括一中央处理单元,一地址总线和一第二非暂时性计算机存储介质,在所述第二非暂时性计算机上存储有加密的操作***对称私钥和安全程序。
该安全程序可操作为:从存储设备取回设备对称私钥;以及用设备对称私钥解密加密的操作***对称私钥;阻止计算机将设备对称私钥或解密的操作***对称私钥存储在任何非暂时性计算机存储介质中;要求计算机在计算机上首次安装一应用程序时,使用解密的操作***对称私钥对应用程序进行加密,以使加密的应用程序是该应用程序在任何非暂态计算机可读存储器的唯一安装版本,且通过该计算机可访问;启用计算机,每次给出命令启动应用程序,使用解密的操作***对称私钥来解密执行该命令所需的加密应用程序的第一部分,并将解密的内容存储在计算机可访问的随机存取存储器中;要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后解密的内容存储在计算机可访问的随机存取存储器中;除非首先获得明确授权,否则在首次访问设备对称私钥以生成解密的操作***对称私钥后,禁止访问设备对称私钥。并将解密的内容存储在计算机可以访问的随机存取存储器中;要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后解密的内容存储在计算机可访问的随机存取存储器中;除非首先获得明确授权,否则在首次访问设备对称私钥以生成解密的操作***对称私钥后,禁止访问设备对称私钥。并将解密的内容存储在计算机可以访问的随机存取存储器中;要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后解密的内容存储在计算机可访问的随机存取存储器中;除非首先获得明确授权,否则在首次访问设备对称私钥以生成解密的操作***对称私钥后,禁止访问设备对称私钥。要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后解密的内容存储在计算机可访问的随机存取存储器中;除非首先获得明确授权,否则在首次访问设备对称私钥以生成解密的操作***对称私钥后,禁止访问设备对称私钥。要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后解密的内容存储在计算机可访问的随机存取存储器中;除非首先获得明确授权,否则在首次访问设备对称私钥以生成解密的操作***对称私钥后,禁止访问设备对称私钥。
可选地,安全程序还可以用于防止计算机运行尚未首先使用解密的操作***对称私钥加密的应用程序的任何部分。
可选地,安全程序还可以用于将加密的应用程序存储在计算机可访问的随机存取存储器中。
可选地,该安全程序还可以用于:通过使中央处理单元执行地址总线值和解密的操作***对称私钥的长度之间的模数操作数以产生余数,来产生模数值;将1的值与余数相加,得到相加的余数;使用添加的余数值指向解密的操作***对称私钥中的字节值;并要求中央处理单元使用字节值对存储在随机存取存储器中的加密应用程序进行解密。
可选地,安全程序还可以用于在计算机启动之后要求计算机在运行该可执行代码之前,对驻留在该计算机可访问的随机存取存储器中的任何可执行代码进行解密,其中,解密的操作***对称私钥用于解密所述可执行代码。
可选地,安全程序还可以用于将存储设备限制为集成到计算机主板中的微芯片。
可选地,该安全程序还可以通过实施选自计算机的操作***,从计算机的操作***向存储设备发送自动信号,并执行以下操作的过程来防止访问设备对称私钥:用户在计算机的物理位置进行手动输入,从计算机的基本输入和输出***生成自动信号并将其发送到安全设备,自动激活三态开关,并使操作***更改一个被识别为防止这种访问的命令的标志。
可选地,存储设备的第一非暂时性计算机存储介质选自由电子芯片和可移动光盘组成的组。
可选地,存储设备是集成到计算机中的电子芯片。
可选地,存储设备包括电子芯片中的第一电子三态开关;其中安全程序还可以操作来激活第一电子三态开关,以防止访问设备对称私钥。
可选地,存储设备在电子芯片中包括第二电子三态开关;其中安全程序还可以操作来激活第二电子三态开关,以防止从计算机可访问的随机存取存储器中读取设备对称私钥。
在替代实施例中,存储设备可与计算机一起使用。该存储设备包括非暂时性计算机存储介质,中央处理单元,数据总线和地址总线。非暂时性计算机存储介质存储可用于解密加密的程序代码的密钥。加密的程序代码存储在计算机可以访问的随机访问存储器中。密钥包括多个字节,每个字节都有一个字节值。中央处理单元可通过数据总线和地址总线连接到随机存取存储器。非暂时性计算机存储介质存储可在存储设备的中央处理单元上操作的计算机代码,以识别计算机可访问的,具有可执行代码的加密字节的,可访问的指定位置;以及,在可执行代码的加密字节的地址位置和密钥的长度之间执行模操作数,以得出余数;在余数上加一个,得到一个求和值;在密钥的多个字节中获取字节的字节值,所述字节位于总和值;从计算机可访问的随机存取存储器中的指定位置开始,使用获取的字节值来解密加密的可执行代码,其中,这种使用产生解密的可执行代码;并执行解密的可执行代码。所述字节位于求和值;从计算机可访问的随机存取存储器中的指定位置开始,使用获取的字节值来解密加密的可执行代码,其中,这种使用产生解密的可执行代码;并执行解密的可执行代码。所述字节位于求和值;从计算机可访问的随机存取存储器中的指定位置开始,使用获取的字节值来解密加密的可执行代码,其中,这种使用产生解密的可执行代码;并执行解密的可执行代码。
本文公开的第一优选方法可用于控制将多个操作***加载到可由计算机访问的随机存取存储器中。该计算机包括第一非暂时性计算机存储介质,第二非暂时性计算机存储介质,第三非暂时性计算机存储介质,随机存取存储器,中央处理单元,基本输入/输出***和一个开关。该方法包括以下步骤:将第一密钥存储在第一非暂时性计算机存储介质中,该第一密钥可用于对操作***对称私钥进行加密以及对加密的操作***对称私钥进行解密;以及在第二非暂时性计算机存储介质中将加密的操作***存储在计算机上;将加密的操作***对称私钥存储在第二非暂时性计算机存储介质中;在第三非暂时性计算机存储介质中,在计算机上存储非加密操作***;设置开关,以使基本输入/输出***能够将加密操作***或非加密操作***加载到随机存取存储器中;配置计算机加电,然后实施步骤,包括使第一密钥可从第一非暂时性计算机存储介质提供给基本输入/输出***;当开关设置为使基本输入/输出***能够加载加密的操作***时,指示基本输入/输出***从第二个非暂时性计算机存储介质中读取加密的操作***,并使用第一个密钥对加密的操作***对称私钥进行解密,派生解密的操作***对称私钥并使用解密后的操作***对称私钥,用于按照中央处理单元的要求解密加密的操作***;并且,当将开关设置为使基本输入/输出***能够从第三非暂时性计算机存储介质加载非加密操作***时,指示基本输入/输出***禁止访问第一密钥,然后读取第三非暂时性计算机存储介质中的非加密操作***,
本文公开的第二优选方法可用于通过使计算机免于受到由于软件病毒或存储器软件代码注入造成的软件程序的感染,来改善计算机的操作。该方法包括以下步骤:将操作***托管在计算机可访问的非暂时性计算机存储介质中;通过网络连接在计算机上接收加密的操作***对称私钥;在计算机上解密加密的操作***对称私钥,以得出解密的操作***对称私钥;在首次安装软件程序时,使用解密的操作***对称私钥对软件程序进行加密,从而创建加密的软件程序,该软件程序是计算机上软件程序的唯一已安装版本;当执行启动软件程序的命令时,要求操作***使用解密后的操作***对称私钥来解密启动软件程序所需的加密软件程序的第一部分;要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分.
可选地,第二优选方法包括将第一部分和任何第二部分存储在计算机可访问的随机存取存储器中的步骤。
用于改善计算机的操作的第三种优选方法是为计算机提供免受软件病毒或存储软件代码注入的软件程序感染的免疫力,这些软件实现步骤包括在非暂态计算机中托管操作***计算机可访问的存储介质;通过网络连接在计算机上接收加密的操作***对称私钥;在计算机上解密加密的操作***对称私钥,以得出解密的操作***对称私钥;在首次安装软件程序时,使用解密的操作***对称私钥对软件程序进行加密,从而创建加密的软件程序,该软件程序是计算机上软件程序的唯一已安装版本;当执行启动软件程序的命令时,要求操作***使用解密后的操作***对称私钥来解密启动软件程序所需的加密软件程序的第一部分;要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分;将被解密的第一部分和第二部分存储在计算机可访问的随机存取存储器中。要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分;将被解密的第一部分和第二部分存储在计算机可访问的随机存取存储器中。要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分;将被解密的第一部分和第二部分存储在计算机可访问的随机存取存储器中。
可选地,第三优选方法包括以下步骤:阻止操作***运行任何先前未使用解密的操作***对称私钥加密的可执行代码。
技术问题
为一个操作***编程的任何可执行代码段将能够在处理该操作***的任何计算机上运行,并且设计为在一个操作***上执行的计算机病毒(例如MICROSOFT WINDOWS)将在运行该操作***的任何计算机上运行。WINDOWS操作***。并且,如果可执行代码恰巧是病毒,则使用运行WINDOWS,病毒将在装有WINDOWS操作***的任何计算机上运行。
发生这种情况的原因是操作***以一种古老的方式起作用,它不会区分无害的和有害的可执行代码。
计算机病毒利用此缺陷,在全球范围内造成数十亿美元的损失,目前,没有任何解决方案可以阻止其传播。当病毒感染一台计算机时,它可以轻松感染任何数量的其他计算机,并在计算机之间传播。然后,在很多时候,被感染的计算机被用于在特定位置的拒绝服务攻击(即通用缩写为DOS),服务器计算机或网站上进行协同的网络攻击。
随着时间的流逝,黑客问题在全球范围内变得越来越严重,他们一直在寻找可能造成最大损失的手段。一旦受感染的服务器落入黑客的手,受感染的服务器的数据和知识产权损失有时会达到数百万美元。在某些情况下,黑客的代码可能会使组织瘫痪。在其他时候,它有能力在政治上产生影响-可能会改变选举进程和社会自由。
每天在世界范围内,通过网络攻击,直接黑客攻击,网络钓鱼等将黑客代码引入计算机。黑客代码可能会破坏政治进程。这种破坏的一个例子是盗窃和发布与美国民主党有关的信息,据报道这样做是为了影响2016年美国总统大选。
据报道,许多全球网络攻击以“勒索软件”的形式展开,在2017年削弱了74个国家/地区的政府和企业运营。一旦计算机感染了勒索软件,该病毒就会加密受感染计算机的文件。然后,控制勒索软件的黑客要求赎金以恢复受感染的计算机。
目前处理计算机病毒的方法是通过创建一个防病毒软件,该软件在与计算机操作***配合工作时检查计算机的行为,并在创建,打开和读取文件时检查文件。要使防病毒软件起作用,首先需要具有病毒结构,只有在病毒广为人知且已经传播到并损坏了许多计算机之后,才有可能实现这种结构。
在第一次攻击发生之前,防病毒软件在防止现代计算机黑客攻击方面几乎没有用。一个问题是,一旦黑客找到了在受感染计算机上运行的软件缺陷,在很多情况下,黑客就会针对受感染计算机专门设计的有害代码。一旦将代码注入正在运行的进程中,黑客就可以完全控制计算机。现有防病毒程序存在的一个问题是,要使某个防病毒程序有用,就需要扫描计算机的内存以找到入侵的病毒。但是,由于计算机的设计方式,如果有任何程序扫描正在运行的进程,则该进程可能就会崩溃。
病毒对计算机而言是流感病毒对人类而言,而抗病毒对计算机而言则是流感药物对人类而言。
现有技术中缺少的并实际上需要的是一种计算机病毒疫苗,其在病毒或计算机黑客被激活之前充当保护计算机的屏障。现有技术的抗病毒程序既昂贵又麻烦,需要复杂的软件。它们是计算机医学,仅在感染或黑客入侵已经发生之后才有效。
解决方案
该解决方案是在硬件和操作***级别上的一种方法和机制,其通过使每台计算机具有自己的序列代码(例如人类DNA)来停止在计算机中引入病毒,并且一旦用于操作***对每个可执行代码进行编码的代码,因此,即使两台计算机都运行在同一操作***上运行的同一软件,也不会在另一台计算机上执行来自一台计算机的一段编码的代码。此外,诸如病毒之类的不具有任何类型的编码的可执行代码将不能在利用本文公开的任何设备或方法的计算机中执行。
解决方案在于以下限制:只能在计算机上执行程序的授权加密版本,即其数字DNA。此限制可防止任何黑客代码或其他计算机感染病毒在计算机上运行。目前无法以这种方式保护计算机。在此过程中,计算机所有者可以放心使用。所公开的设备和方法将节省大量的人力资源,用于计算机安全和维护。
本文公开的优选方法和设备能够以低成本保护任何种类的计算设备,而不会减慢设备的功能。它可以停止将注入的代码运行到正在运行的软件中,也可以停止运行任何类型的计算机病毒。本文公开的优选方法和设备是计算机疫苗防护罩,其在病毒感染和计算机黑客入侵发生之前将其阻止。
有益效果
本文公开的设备和方法涉及硬件/软件组合以对可执行的计算机软件代码进行加密/解密,以禁止在计算机中执行非计算机部分的代码,从而阻止各种计算机病毒的传播首先是不允许在计算机中安装或执行外部软件代码,从而进行黑客攻击。
所公开的方法和设备使用户能够避免支付当前与防病毒软件和其他黑客防护方法或设备相关的费用,尽管这些费用目前看来对于防止病毒或有害代码在任何种类的计算机(例如,个人计算机)中执行是必要的,台式机,服务器,移动设备等):它对于运行任何类型的操作***(WINDOWS,UNIX,LINUX,APPLE操作***)的任何网络计算机(无论是否有线,无线,Internet,服务器等)都有重要用途。
与可能仅在病毒已经传播感染并损害许多计算机之后才生效的当前一代防病毒技术不同,本文所公开的方法和设备通过在计算机病毒可能引起计算机病毒感染之前将其禁用来防止其成为计算机的可操作部分。对计算机的任何损坏。
附图说明
附图示出了根据本公开的病毒免疫计算机***和方法的优选实施例。附图中的附图标记始终一致地使用。图2中的新参考标号被赋予200个序列号。类似地,在每个随后的附图中给新的附图标记以图号开头的对应的序列号。
图1示出了具有加密解密密钥的设备的电路。
图2A示出了使用操作***的计算机操作***加密/解密密钥设备。
图2B示出了操作***在加电时已从具有加密解密密钥的设备读取加密/解密密钥,然后禁用具有加密解密密钥的设备之后的图2A的另一实施例以免其他程序读取它。
图3示出了使用加密/解密密钥来加密产生数字DNA的非编码程序代码,然后将其存储在计算机的非暂时性计算机存储介质上的操作***。
图4示出了使用加密/解密密钥来解密图3中的数字DNA的操作***。
图5示出了两个值的异或。
图6继续图5所示的异或的图示
图7示出了现有技术的计算机病毒。
图8A示出了保存在计算机中的数字DNA(也称为加密软件)。
图8B示出了由中央处理单元执行的数字DNA解密。
图8C示出了使用公开的设备和方法来停止计算机病毒。
图9示出了实现所公开的设备和方法的计算机电路。
图10A示出了次级对称加密密钥,该次级对称加密密钥被计算机的操作***用作操作***对称私钥,或者被应用程序用作程序对称私钥。
图10B示出了具有加密-解密密钥的新设备的安装过程以及计算机专用密钥的创建。
图10C示出了计算机操作***的加密对称私钥的加密。
图10D示出了在图10C中加密的计算机操作***对称私钥的解密。
图11A示出了在单个计算机中使用私钥的多个虚拟机。
图11B是图11A的另一实施例,示出了服务器计算机处的数据库表。
图12A示出了在单个加密狗/计算机板(也称为DEDK)中使用私钥的多个虚拟机。
图12B示出了第一计算机从第二计算机接收操作***对称私钥。
图12C示出了第一计算机从第二计算机接收操作***程序对称私钥。
图13A示出了服务器计算机处用于将多个虚拟机私钥移植到新计算机的数据库表。
图13B示出了使用图13A的数据库表并提供安全性而无需使用DEDK的服务器计算机。
图14示出了仅使用软件来实现改进的且无病毒的计算机可操作性的实施例。
图15示出了现有技术中如何发生代码黑客。
图16示出了现有技术的代码执行。
图17示出了使用本文公开的设备和方法存储在计算机随机存取存储器中的代码执行。
图18示出了使用公开的优选实施例的代码执行实施例。
图19示出了禁用黑客的随机存取存储器注入的代码。
图20示出了现有技术的操作***的加载。
图21示出了利用本文公开的方法加载主操作***。
图22示出了从一个实施例的软件狗加载操作***。
图23示出了人体与计算机之间的比较。
图24示出了用于防止黑客代码感染计算机上的应用程序的方法的优选实施例。
图25图示了用于防止黑客代码感染计算机上的应用程序的方法的可选附加步骤。
图26示出了用于防止黑客代码感染计算机上的应用程序的方法的其他可选附加步骤。
图27图示了安全程序中的优选操作。
图28示出了图27的安全程序中的可选操作。
图29图示了图27的安全程序中的更多可选操作
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
本描述的结构为,首先通过呈现方法和设备的简要揭露,然后是带有示例的更全面详细的揭露。
简要披露
本文公开了防止计算机的黑客代码感染的方法和设备。首先参考图1至图23讨论优选设备,图1至图23示出了优选设备的组件及其功能。
第一首选设备
第一优选设备是图2A所示的计算机***(205)。计算机***(205)包括存储设备。该存储设备在本文中可以被称为DEDK或具有加密解密密钥的设备(100)。
存储设备是与启动计算机(130)所需的组件的一独立单元。该存储设备包括第一非暂时性计算机存储介质(104),在该设备上存储有设备对称私钥,该设备对称私钥在本文中可互换地称为加密/解密密钥(103)。
设备对称私钥,即加密/解密密钥(103),可用于解密加密的操作***对称私钥(1007-E),以便产生解密的操作***对称私钥(1007)。
计算机***(205)包括计算机,该计算机至少具有中央处理单元(905),地址总线和第二非暂时性计算机存储介质,在第二非暂时性计算机存储介质上存储有加密的操作***对称私钥(1007-E)和执行操作的安全程序(2700)。这些操作最好包括SP检索操作(2705);和SP解密操作(2710);SP排除操作(2715);SP第一要求操作(2720);SP使能操作(2725);SP第二要求操作(2730);和SP阻止操作(2735)。
SP取回操作(2705)是可操作性以取回设备对称私钥,即从存储设备,例如,从具有加密解密的设备(100)中取回加密/解密密钥(103)。
SP解密操作(2710)是用于使用设备对称私钥即使用加密/解密密钥(103)对加密的操作***对称私钥(1007-E)进行解密的操作性,以产生解密的操作***对称私钥(1007)。
SP排除操作(2715)是可操作性,以阻止该计算机,在此也称为第一计算机(130),存储设备对称私钥,例如,使用加密/解密密钥(103),或任何非暂时性计算机存储介质(例如第二非暂时性计算机存储介质(350))中的解密的操作***对称私钥(1007)。
SP第一要求操作(2720)是可操作性,以在首次安装应用程序时即在计算机上安装非编码软件(310)时要求计算机使用解密的操作***对称专用密钥(1007)来加密应用程序,以使加密的应用程序(在本文中也称为电子DNA(300))是该应用程序在可被该电脑访问的任何非暂时性计算机可读存储器上的唯一安装版。
SP启用操作(2725)是可操作性地启用电脑,每次给出命令以启动应用程序时,使计算机能够使用解密的操作***对称私钥(1007)来解密加密的应用程序的第一部分程序需要执行该命令,并将解密后的内容存储在计算机可以访问的随机存取存储器(925)中。
SP第二要求操作(2730)可操作性以要求计算机使用解密的操作***对称私钥(1007)以随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分并将随后解密的内容存储在计算机可访问的随机存取存储器(925)中。
SP防止操作(2735)是可操作性,以防止在首次访问设备对称私钥以产生解密的操作***对称私钥之后,使用加密/解密密钥(103)来访问设备对称私钥。密钥(1007),除非首先获得明确授权。
在图28和图29中图示了至少9个优选但可选的软件程序操作(OSP)。在图28和图29中,带有安全程序(2700)的框的虚线表示每个可选操作。可选的软件程序操作包括:OSP第一阻止操作(2805);OSP存储操作(2810);OSP模运算(2815);OSP需求操作(2820);OSP限制操作(2825);OSP第三阻止操作(2905);OSP首次激活操作(2910);和OSP第二次激活操作(2915)。
OSP第一阻止操作(2805)是可操作性,以防止还没有首先使用解密的操作***对称私钥对计算机(也称为第一计算机(130))运行应用程序的任何部分(1007)。
OSP存储操作(2810)是将加密的应用程序存储在第一计算机(130)可访问的随机存取存储器(925)中的操作性。
OSP模量操作(2815)是通过使中央处理单元(905)执行地址总线值与解密的操作***对称私钥的长度之间的模数操作数来导出模数的操作,以产生模数值。余;将1的值与余数相加,得到相加的余数;使用添加的余数值指向解密的操作***对称私钥中的字节值;并要求中央处理单元使用字节值对存储在随机存取存储器中的加密应用程序进行解密。
OSP要求操作(2820)是可操作性,以要求计算机在计算机启动之后,在运行该可执行代码之前,对驻留在该计算机可访问的随机存取存储器中的任何可执行代码进行解密,其中解密后的操作***对称私钥用于解密所述可执行代码。
OSP限制操作(2825)是用于将存储设备限制为集成到计算机的母板中的微芯片的可操作性。
OSP第三阻止操作(2905)是可操作性,以通过执行选自以下的过程来防止对设备对称私钥的访问:从计算机的操作***产生自动信号并将其发送到存储设备,根据用户在计算机物理位置上的手动输入进行操作,从计算机的基本输入和输出***生成自动信号并将其发送到安全设备,自动激活三态开关,并使操作***更改密码。标记中的值表示为防止这种访问的命令。
OSP首次激活操作(2910)是激活第一电子三态开关以便防止访问设备对称私钥的操作性。
OSP第二激活操作(2915)是激活第二电子三态开关以防止从计算机可访问的随机存取存储器读取设备对称私钥的操作性。
优选方法
公开了图24所示的第一优选方法(2400),用于防止黑客代码感染第一计算机(130)上的应用程序。如图25所示,第二优选方法(2500)公开了对计算机操作***进行加密的实施例,该计算机操作***也被认为是应用程序。
术语“应用程序”,“软件应用程序”,“软件应用程序”,“软件/驱动程序”,“非编码软件(310)”和“计算机软件文件”是指并且包括相同的事物,并且本文可互换使用。这些术语被定义为包括旨在直接为用户或在某些情况下为另一个应用程序执行特定功能的任何程序。应用程序使用计算机操作***的服务和其他支持程序。
图26所示的第三优选方法(2600)使用计算机的组件来实现防止病毒感染软件程序的改进。除了可选步骤是3M存储步骤(2635)并且3M排除步骤(2640)不是可选的以外,第四优选方法具有与第三优选方法(2600)相同的所有步骤。
设备和功能
实现本文公开的方法的优选设备在某种意义上是存储设备,因为它是存储加密/解密密钥(103)的第一非暂时性计算机存储介质(104),在本文中该加密/解密密钥可以被称为作为EDK。该存储设备在本文中可以被称为DEDK或带有加密-解密密钥的设备(100)。
带加密解密密钥的设备(100)可以是任何***设备或内置设备的形式,包括例如电子微芯片,第一计算机(130),计算机板/刀片,可移动存储介质,通用串行总线设备,计算机中央处理单元内的电路,与第一计算机(130)通信的服务器计算机(1000)或可通过蓝牙连接的移动设备等。
带加密解密设备的密钥(100)的目的是通过与提供以下操作的解密的操作***对称私钥(1007)一起工作来改善第一计算机(130)的功能和操作。具有阻止黑客代码(1550)的可操作性的装置的第一计算机(130),一旦被注入到安装在第一计算机(130)上的软件程序中,即一旦注入到数字DNA(300)中,该计算机便可以工作。在第一次将软件程序(330)首次安装之后,与解密的操作***对称私钥(1007)结合使用的带有加密-解密-密钥的设备(100)提供了对原本可操作的软件病毒感染的免疫力计算机(130)。
加密/解密密钥(103)是对称私钥,可用于对衍生出解密的操作***对称私钥(1007)并使用解密的操作***对称私钥的加密操作***私钥(1007-E)进行解密用于软件程序(330)的加密/解密的密钥(1007)。该对称私钥,即加密/解密密钥(103),存储在第二非暂时性计算机存储介质(350)上,为了将其与其他存储器区分开来,将其称为第一非暂时性计算机存储介质(104),该计算机存储介质(104)安装在与第一计算机(130)的操作所需的组件分开的单元(也称为外壳)内。第一非暂时性计算机存储介质(104)是DEDK的组成部分。第一非暂时性计算机存储介质(104)对于第一计算机(130)的操作不是必需的。
第一计算机(130)包括第二非暂时性计算机存储介质(350)。与第一非暂时性计算机存储介质(104)不同,该第二非暂时性计算机存储介质(350)对于第一计算机(130)的操作是必需的。第二非暂时性计算机存储介质(350)用于存储加密的操作***私钥(1007-E),并用于存储可用于完成至少5个任务的计算机代码:
第一任务是使单元所连接的第一计算机(130)能够使用设备对称私钥,即加密/解密密钥(103),来对加密的操作***对称私钥(1007-E)进行解密产生解密的操作***对称私钥(1007),然后,在第一次安装软件程序(330)时,使用解密的操作***对称私钥(1007)对软件程序(330)进行加密,从而创建第一加密软件程序,在本文中被称为数字DNA(300)。
图8A涉及图3,并且示出了优选的示例在实施例中,加密软件文件存储在第一计算机(130)的存储介质中,即图3所示的第二非暂时性计算机存储介质(350)中。操作***(120)保留加密/解密值“0123456789”的副本(在内存位置(120-A)中),该副本用于对加密的操作***对称私钥(1007-E)进行解密,从而得出解密的操作***对称私钥(1007)。然后,操作***使用解密的操作***对称私钥(1007)来加密包括可选报头识别码(320)和未编码软件(310)的软件程序(330)。可执行程序,即非编码软件(310),可以被称为良好的可执行软件和非编码软件(310)。
如果使用了可选的报头识别码(320),并且该可选的报头识别码不存在或无效,则操作***(120)随时会在随机存取存储器中加载未编码的软件(310)(第一计算机(130)的925),或者操作***(120)将数字DNA(300)加载到第一计算机(130)的随机存取存储器(925)中,操作***(120)将停止加载,并有选择地生成错误。
第二任务是在每次启动第一加密软件程序即数字DNA时,要求第一计算机(130)使用设备对称私钥,即加密/解密密钥(103)。300),以对加密的操作***对称私钥(1007-E)进行解密,从而得出解密的操作***对称私钥(1007)。然后,操作***(120)使用解密的操作***对称私钥(1007)解密数字DNA(300)(即,第一加密的软件程序),以产生第一解密的软件程序,该程序是与未编码的软件(310)和解密的可选标头识别码(320)相同。
图8B涉及图4,并且是第二任务的示例,其实质上是图8A所示的第一任务的逆转。在操作***(120)加载数字DNA(300)之后,操作***(120)使用加密/解密密钥(103)的存储位置(120-A)中的值到加密的操作***对称私钥(1007-E)得出解密的操作***对称私钥(1007)。然后,使用解密的操作***对称私钥(1007)的操作***(120)解密数字DNA(300),以导出原始软件代码,即非编码软件(310)。然后,中央处理单元(905)在第一计算机(130)的随机存取存储器(925)中执行(也称为运行)非编码软件(310)。
第三任务是在第一计算机上执行第一解密的软件程序(130)。
前三个任务可以概括为操作***(120)在软件程序的安装时进行加密以产生第一加密的软件程序,即数字DNA(300)或加密的软件程序。然后,操作***保存数字DNA(300)(即,如图1A所示的第一个加密的软件程序)。然后,操作***在软件程序的运行时对数字DNA进行解密(300),以再现操作***/中央处理单元理解的非编码软件(310),然后执行非编码软件(310)(参见图8B)。
第四任务是在首次访问设备对称私钥以产生解密的操作***对称私钥中的第一个(1007)之后,防止访问设备对称私钥(除非首先获得明确授权)。操作***(120)使用解密的操作***对称私钥(1007)来***程序。
该第四任务防止任何类型的软件直接访问带有加密解密密钥的设备(100)。防止访问消除了黑客可能会编写具有特定目的的代码(1550),以读取带有加密解密密钥的设备(100)上的加密/解密密钥(103)或使用加密/解密密钥的可能性。解密密钥(103)对解密的操作***对称私钥(1007-E)进行解密,以得出解密的操作***对称私钥(1007),然后使用解密的操作***对称私钥(1007)对要在其中运行的软件代码进行加密第一计算机(130),即黑客的代码(1550)。
第五任务是防止在第一计算机(130)上运行尚未用解密的操作***对称私钥(1007)加密的任何软件程序。该任务确保仅加密的应用软件在第一计算机(130)上可执行。
在一些优选实施例中,第一非暂时性计算机存储介质(104)被并入选自电子芯片,计算机板,无线通信设备即移动设备(1430)的组中的组件中央存储单元,存储在第二非暂时性计算机存储介质(350)中的第一计算机(130)中的加密加密/解密密钥(可以是加密的操作***对称专用密钥(1007-E))。(905),随机存取存储器辅助设备(952),服务器计算机(1000)与第一计算机(130)和通用串行总线设备(也称为加密狗)的通信。
在一个优选实施例中,具有加密-解密密钥的设备(100),也称为存储设备,也称为DEDK,可以是包含该单元的电子芯片。在该实施例中,还优选地在电子芯片中包括本身是电子的定时器/触发器(105A),该电子芯片被配置为激活电子三态开关(105B),以防止设备对称私钥从第一转移。当电子芯片加电时,第二次非暂时性计算机存储介质(104)再次进入带有加密解密密钥的设备(100)的锁存器(111)。
锁存器,也称为触发器,是一种非暂时性的电子存储介质(也称为存储设备),只要该设备通电,就可以存储一位数据。锁存器具有设置/重置线,该设置/重置线控制存储器的内容,高或低信号的设置或重置。尽管在本文中以锁存器(111)作为示例,但是意图是将保存值并允许清除该值的任何类型的非暂时性存储存储器是可接受的替代。由于每个锁存器(111)存储一位数据,因此对于加密/解密密钥(103)的每个字节需要八个锁存器(111)。例如,key_a(110A)需要八个闩锁存储器(111),并且同样适用于key_b(110B),key_c(110C)和key_z(110D)。
其示例在图1中,其中门控制电路(105)包括计时器/触发器(105A)。电子三态开关(105B)的作用类似于物理世界中将被关闭或打开的任何门。电子三态开关(105B)就像灯泡开关一样,一旦关闭,它就会通过照明灯泡的电线让电流通过,当打开时,它会关闭灯泡。类似地,电子三态开关(105B)在闭合时控制沿一个方向行进的电子信号的流动,而在断开时控制电子信号的流动。计时器/触发器(105A)是一种电子电路,用于在发生某种情况后触发信号,在此特定示例中,是指在计算机打开或重置后的一定时间(例如几毫秒后)。
在替代实施例中,一种存储设备,即,用于存储安全密钥的设备,该安全密钥用作对运行在第一计算机(130)中的程序的输入,该设备具有加密-解密密钥(100)已连接。术语“安全密钥”表示任何值,并且作为示例包括加密/解密密钥(103)。
带加密解密密钥的设备(100)包括安装在可被加密的单元中的第一非暂时性计算机存储介质(104)操作性地连接到第一计算机(130)。当在本文中使用时,“非暂时性计算机存储介质”是指并且包括由非暂时性有形介质形成并且不包括暂时性传播信号的任何计算机可读介质。该单元与操作第一计算机(130)所需的组件分开。第一计算机(130)的操作意味着能够打开计算机,能够在计算机屏幕上操纵鼠标,并且能够使用鼠标或键盘进行选择。单位与第一计算机(130)操作所必需的组件意味着第一计算机(130)将能够启动而不必访问该单元。
在优选实施例中,安全密钥可用作在连接有存储设备的第一计算机(130)上运行的计算机代码的输入数据,该安全密钥存储在第一非暂时性计算机存储介质(104)上)。在该实施例中,用于第一计算机(130)的操作的代码可操作为:从带有加密装置的锁存器(111)中读取安全密钥的副本,该安全密钥即加密/解密密钥(103)。解密密钥(100);以及使用复制的加密/解密密钥(110)作为输入数据;并阻止访问在第一计算机(130)第一次访问加密/解密密钥(103)以运行任何程序之后,第二次访问加密/解密密钥(103)。
可选地,非暂时性计算机存储介质被并入选自电子芯片,计算机板,中央处理单元(905),无线通信设备即移动设备(1430)的组件中),随机存取存储器辅助设备(952),服务器计算机(1000)与第一计算机(130)和通用串行总线设备通信。
该替代实施例还可以可选地包括结合有存储设备的电子芯片和该电子芯片中的电子三态开关(105B),该电子三态开关被配置为防止第二次访问安全密钥。在另一个替代实施例中,存储设备被配置为解密存储在第一计算机(130)的随机存取存储器(925)中的软件代码。所述存储设备还被配置为防止黑客的代码(1550)被注入到服务器(1510)中的运行进程(1545)中。该存储设备包括非暂时性计算机存储介质,随机存取存储器,中央处理单元,数据总线和地址总线。非暂时性计算机存储介质包括可用于解密衍生出解密的操作***对称私钥(1007)的加密的操作***密钥(1007-E)的密钥。然后,操作***(120)使用解密的操作***对称私钥(1007)来解密存储在随机存取存储器中的程序代码。中央处理单元可以与服务器(1510)的操作所需的单元相同,而不必是仅由存储设备使用的独立单元。密钥包括多个字节,其中,多个字节中的每个字节具有字节值。中央处理单元通过数据总线和地址总线连接到随机存取存储器。中央处理器编程为:通过地址总线上的值识别随机存取存储器中的指定位置;从存储在计算机随机存取存储器中的指定位置取一个加密字节;在地址总线处的随机存取存储器位置值和解密的操作***对称私钥的长度之间执行模运算数,以得出余数;然后将一的值加到导出的余数值中,以获取解密后的操作***对称私钥的多个字节中的字节的字节值;使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。从存储在计算机随机存取存储器中的指定位置取一个加密字节;在地址总线处的随机存取存储器位置值和解密的操作***对称私钥的长度之间执行模运算数,以得出余数;然后将一的值加到导出的余数值中,以获取解密后的操作***对称私钥的多个字节中的字节的字节值;使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。从存储在计算机随机存取存储器中的指定位置取一个加密字节;在地址总线处的随机存取存储器位置值和解密的操作***对称私钥的长度之间执行模运算数,以得出余数;然后将一的值加到导出的余数值中,以获取解密后的操作***对称私钥的多个字节中的字节的字节值;使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。在地址总线处的随机存取存储器位置值和解密的操作***对称私钥的长度之间执行模运算数,以得出余数;然后将一的值加到导出的余数值中,以获取解密后的操作***对称私钥的多个字节中的字节的字节值;使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。在地址总线处的随机存取存储器位置值和解密的操作***对称私钥的长度之间执行模运算数,以得出余数;然后将一的值加到导出的余数值中,以获取解密后的操作***对称私钥的多个字节中的字节的字节值;使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。使用获取的字节值解密从读访问存储器的指定位置获取的加密字节,从而产生解密的字节;并且,使用解密的字节。
使用术语“操作***私钥”,应广义地解释为包括:解密的操作***对称私钥。如果使用术语“解密的操作***私钥”,则应广义地解释为包括:解密的操作***对称私钥。如果单独使用术语“私钥”,则应广义地解释为包括:“对称私钥”。
详细披露
在本文公开的方法和设备的整个示例中,优选的共同限制是仅操作***和/或驱动程序能够访问加密/解密密钥,此后称为加密/解密密钥(103)并使用它。术语“操作***”旨在具有广泛的范围,并应解释为包括操作***和任何授权程序,例如:驱动程序,安装程序,登录程序等。在此上下文中,旨在引用“操作***”执行涉及获取和使用加密/解密密钥(103)的动作,以表示并包括由操作***内运行的授权程序对操作***进行单独或与操作***组合执行的动作,以及使用加密/解密密钥(103)。
在优选实施例中,中央处理单元(905)进行解密。术语“中央处理单元”的使用旨在包括诸如操作***(120)和/或软件驱动(935)之类的任何软件以及诸如随机存取存储器辅助装置(952)之类的硬件,或者包括以下各项的任何硬件和/或软件:将与中央处理单元(905)一起工作以在第一计算机(130)或服务器(1510)中实现软件的加密/解密。
此外,有时会提到服务器(1510),有时会提到第一计算机(130)。但是,如果提到服务器(1510),则应广义地解释为包括第一计算机(130)。如果提到第一计算机(130),则应广义地解释为包括服务器(1510)。图9的教导将被广义地解释为包括服务器(1510),第一计算机(130)或具有执行任何种类的程序代码的中央处理单元(905)的任何计算设备。具有加密解密密钥的设备(100)的使用应广义地解释为在服务器(1510)中使用,在第一计算机(130)中使用,在具有以下功能的任何计算设备中使用:执行任何类型的程序代码的中央处理单元。
如果在此指定使用加密/解密密钥(103)执行加密或解密的步骤,则该步骤旨在广义地解释为包括使用加密/解密密钥(103)或使用加密/解密密钥的性能。加密/解密密钥(120-A)的副本,或使用解密的操作***对称私钥(1007)。另外,如果指定使用加密/解密密钥(110)执行加密或解密过程,则该过程旨在包括使用加密/解密密钥(103)或使用加密/解密密钥的副本的性能。解密密钥(120-A),或使用解密的操作***对称私钥(1007)。
在优选实施例中,每个第一计算机(130)具有一个自己的加密/解密密钥(103)。加密/解密密钥(103)只能由第一台计算机(130)的操作***(120)从第一台计算机(130)上的带有加密解密设备的设备(100)处进行访问。启动或重置第一台计算机(130)。一旦操作***(120)访问了加密/解密密钥(103),操作***(120)就从带有加密-解密-密钥的设备的锁存器(111)中清除加密/解密密钥的副本。(100),以防止对具有加密解密密钥的设备(100)进行任何进一步的程序访问,从而防止对加密/解密密钥的任何第二次或后续读取(103)。
优选地,具有加密/解密密钥(103)的具有加密-解密密钥的电子设备(100)包括使其能够使加密/解密密钥(103)仅可被读取一次的机制。由操作***和任何其他授权程序组成,包括程序:一个或多个驱动程序以及在操作***和带加密解密密钥的设备(100)之间进行接口的其他程序。优选地,这将防止第一计算机(130)的操作***(120)执行的任何后续读取,以及操作***(120),驱动程序,中央处理单元(905)的组合的读取,或基本输入/输出***(2130)。用于随后读取加密/解密密钥(103)的规则优选地相对于驾驶员的操作,授权的程序和操作***适用。如果在中央处理单元(905)内或在中央处理单元(905)的完全控制下实现了具有加密/解密密钥(103)的带有加密/解密密钥的电子设备(100)。具有加密解密密钥的电子设备(100)的禁用是不必要的。
在一些实施例中,软件驱动(935)可以获得对复制的加密/解密密钥(110)的访问,而不是操作***(120)或除操作***(120)之外的访问。并且软件驱动程序(935)可以对加密的操作***对称私钥(1007-E)进行所有解密,然后使用派生的解密的操作***对称私钥(1007)对软件程序进行加密(330),然后传递最终结果到操作***(120),以保存在第二非暂时性计算机存储介质(350)上或由中央处理单元(905)执行。软件驱动程序(935)可以获取复制的带有加密解密密钥的设备(100)的锁存器(111)加密/解密密钥(110),并负责从锁存器(111)清除复制的加密/解密密钥(110)。一旦软件驱动(935)按照操作***(120)的请求读取了复制的加密/解密密钥(110),则软件驱动(935)可以从操作***读取加密的操作***对称私钥(1007-E)第二非暂时性计算机存储介质(350),然后从第一计算机(130)的第二非暂时性计算机存储介质(350)读取数字DNA(300)。然后,使用解密的操作***对称私钥(1007)的软件驱动(935)可以解密数字DNA(300),并使解密的软件程序作为可执行代码***作***(120)访问(例如,非编码软件(310))。另外,在安装时,软件驱动(935)可以使用解密的操作***对称私钥(1007)对软件代码进行加密,以产生加密代码(1710),即数字DNA(300),然后传递数字DNA(300)到操作***(120),然后操作***(120)将加密代码(1710)和软件程序(330)存储在第二非暂时性计算机存储介质(350)中的一文件中在第一计算机(130)中或在第一计算机(130)中的随机存取存储器(925)。
优选地,由第一计算机(130)从带有加密解密密钥的设备(100)的锁存器(111)读取加密/解密密钥(103)的副本的操作仅进行一次在计算机加电时,或者在计算机重置时,或者在程序重置第一台计算机时(130)。在第一次读取复制的加密/解密密钥(110)之后,无论是通过程序还是通过计算机,都将禁用第二次将加密/解密密钥(103)传输到锁存器(111)的功能。这种禁用使任何其他程序都无法从带有加密解密密钥的设备(100)读取复制的加密/解密密钥(110),除非在计算机复位时,在计算机加电时或在程序复位时。在第一次从锁存器(111)读取复制的加密/解密密钥(110)之后,然后从锁存器(111)删除复制的加密/解密密钥(110)。删除或清除复制的内容来自锁存器(111)的加密/解密密钥(110)防止从带有加密-解密密钥的设备(100)进行第二次复制,从而防止黑客的代码(1550)访问复制的加密/解密密钥(110)。可以通过带有加密解密设备的密钥(100)或通过访问带有加密解密设备的设备的组件(100)来自动实现这种删除和阻止。优选地,这种删除和预防是在软件驱动(935)和/或操作***(120)从锁存器(111)读取它之后立即完成。当操作***(120)或软件驱动(935)从锁存器(111)中读取复制的加密/解密密钥(110)时,读取的加密/解密密钥值成为复制的在操作***(120)或软件驱动程序(935)或两者的控制下的加密/解密密钥(120-A)-一旦提及术语“操作***”,应广义地解释为包括软件驱动(935)或授权程序。当上下文允许时,术语“软件驱动(935)”旨在被广义地解释为包括操作***(120)或授权程序。
在从具有加密解密密钥的设备(100)读取复制的加密/解密密钥(110)之后,加密和解密的过程最好在没有任何用户干预的情况下进行,并且不需要用户提供用户的密码。凭据之前的凭据,例如用户的标识和密码加密/解密启动。
操作***(120)优选地使用复制的加密/解密密钥(120-A)来解密衍生出解密的操作***对称私钥(1007)的加密操作***对称私钥(1007-E),然后使用解密的操作***对称私钥(1007)对未编码的软件(310)进行加密,以生成加密程序,即数字DNA(300)。然后,操作***(120)将数字DNA(300)存储在第一计算机(130)的第二非暂时性计算机存储介质(350)中。然后,操作***(120)使用解密的操作***对称私钥(1007)解密数字DNA(300),以产生非编码软件(310)。
在另一个实施例中,操作***(120)从第一计算机(130)第二非暂时性计算机存储介质(350)提取数字DNA(300),并将其随机存储在第一计算机(130)中访问内存(925)。并且一旦中央处理单元(905)从计算机的随机存取存储器(925)请求数字DNA(300)的字节,则所请求的字节被解密并返回到中央处理单元(905)以供使用。
在一个实施例中,一旦用户购买了可拆卸的带有加密解密密钥的设备(100),并且该设备包含加密/解密密钥(103)。然后,用户将带有加密解密设备的密钥(100)附加到用户操作的第一台计算机(130)上,并且用户从第一台计算机(130)注册带有加密解密设备的密钥,制造商的服务器计算机(1000)使用密钥(100)。在注册时,制造商的服务器计算机(1000)的数据库表(1000A)已经包含可选的软件驱动(1001)。具有加密解密密钥的设备(100)的序列号(1002);具有加密解密密钥的设备(100)的具有加密解密密钥的设备ID(1003),
然后,用户向第一计算机(130)的操作***(120)提供用户的标识,用户的密码以及带有设备的设备的带有加密解密密钥的设备ID(1003),加密解密密钥(100)。
接下来:操作***(120)通过第一安全链接(1010)将用户提供的信息发送到服务器计算机(1000)。一旦服务器计算机(1000)将接收到的带有加密解密密钥JD的设备的带有加密解密密钥的ID与存储在其中的带有加密解密密钥的ID(1003)进行匹配服务器计算机(1000)数据库表(1000A),然后服务器计算机(1000)创建解密的操作***对称私钥(1007),并将接收到的用户ID(1005),用户密码(1006)和解密的操作***对称私钥(1007)到服务器计算机(1000)数据库表(1000A),完成注册。
注册之后,服务器计算机(1000)使用加密/解密密钥(103)对解密的操作***对称私钥(1007)进行加密,以得出加密的操作***对称私钥。然后,服务器计算机(1000)通过第一安全链路(1010)将可选软件驱动(1001)发送到第一计算机(130),该第一计算机(130)连接到具有加密解密密钥的设备(100))。服务器计算机(1000)还将加密的操作***对称私钥(1007-E)发送给带有加密解密密钥ID的设备(1003)的操作***(120):在接收到它们之后,操作带有加密解密密钥ID的设备(1003)的***(120)然后将接收到的加密操作***对称私钥(1007-E)存储在图2的第二非暂时性计算机存储介质(350)中。
图1与图2A,图2B,图9,图10A,图11A和图12A有关。图1示出了带加密解密设备的密钥(100)的优选组件的示例。带有加密解密密钥的设备(100)存储加密/解密密钥(103)。该存储装置优选地是非暂时性计算机存储介质,只读存储器,闪存和/或电可编程只读存储器。
带加密解密密钥的设备(100)优选地包括门控制电路(105),其控制第一非暂时性计算机存储介质(104)和锁存器(111)之间的信号流。具有加密解密密钥的设备(100)的第一非暂时性计算机存储介质(104)优选具有非暂时性存储单元((103A),(103B),(103C)和(103C))。非暂时性存储单元保持加密/解密密钥(103)的值。锁存器(111)优选包括非暂时性锁存器存储单元(110A),(110B),(110C)和(110D)保存了加密/解密密钥(103)。
优选地,门控制电路(105)包括定时器/触发器(105A)。计时器/触发器(105A)是一种电子电路,用于在发生某种情况后触发信号,在这种特定情况下,是在计算机打开或重置后的一段时间(例如几毫秒或几秒),或更长。
当存在计时器/触发器(105A)时,门控制电路(105)进一步包括电子三态开关(105B),该电子三态开关(105B)的操作类似于墙壁开关到灯泡的操作。当墙壁开关关闭时,电流流经电线,点亮灯泡。打开时,墙壁开关将停止通电并关闭灯泡。因此,电子三态开关(105B)在闭合时允许电子信号的流动。当断开时,电子三态开关(105B)禁用电子信号流。
定时器/触发器(105A)是示例,但是存在许多其他方式来设计带有加密-解密密钥的设备(100),以实现与此处的说明相同的最终结果。因此,给出的示例不应被限制为唯一的方式,而是设备与带有加密解密密钥的设备(100)一起操作的一种方式。
在计算机被打开或复位之后,连接到电子三态开关(105B)的定时器/触发器(105A)的输出线将变高,即值为“′I”。并且在高状态信号的情况下,电子三态开关(105B)自动闭合(参见图2A栅极控制电路(105))。在关闭状态下,每个非暂态存储单元(103A),(103B),(103C),持有加密/解密密钥(103)的(103D)和(103D)将被传送到锁存存储器(111)的非暂时性锁存存储器单元(110A),(110B),(110C)和(110D)。Key_1(103A)将被传送到存储位置Key_a(110A)。Key_2(103B)将被传送到存储位置Key_b(110B)。Key_3(103C)将被传送到存储位置Key_b(110C)。并且,Key_n(103D)将是传输到存储位置Key_z(110D)。
在经过指定的时间阈值之后,定时器/触发器(105A)从高“1”(即,正数)变为低“0”。一旦发生这种情况,电子三态开关(105B)的输出将变为高阻抗,这意味着带有加密解密密钥的设备(100)与第一台计算机(130)的其余电路断开连接如图2B所示,栅极控制电路(105)。
来自加密/解密密钥(103)的信号值将仅在定时器/触发器(105A)处于高状态(即,正)时通过电子三态开关(105B),在定时器/触发器之前(105A)通过从正状态“1”变为低“0”来激活。在其激活之后,电子三态开关(105B)关闭并且没有信号再次通过它,除非计算机((130)图2A)经过断电和加电或重置。
仅示出了在Key_1(103A)和Key_a(110A)之间的一个门控制电路(105),但是优选地,每个键(103B),(103C)和(103D)将具有一个,将每个链接到其单元在锁存器(111)中保存有加密/解密密钥(103)。优选地,在(103B)与(110B)之间存在一个栅极,在(103C)与(110C)之间具有一个栅极,并且在(103D)与(110D)之间具有一个栅极。
为了简单并且为了清楚和简洁的目的,在大多数实施例的解释中,仅参考加密/解密密钥(103)。应该理解为这包括加密/解密密钥(103)的副本以及在操作***(120)的控制下存储在随机存取存储器(925)中的副本(120-A),两者均被定义为加密/解密密钥(103)。
在带有加密解密设备的密钥(100)中,在基本输入/输出***(2130)存储在只读存储器中的情况下,也可以存在三态存储库(136)以保护计算机。图9中所示的ROM BIOS(基本输入/输出***),需要访问具有加密解密密钥的设备(100),并禁止程序读取存储的加密解密密钥(103)。如果有必要,则ROM BIOS,例如基本输入/输出***(2130),向计时器/触发器(132)发出信号。一旦计时器/触发器(132)以低信号“0”激活,则三态存储体(136)被设置为高阻抗状态,从而使信号流(134)无法使锁存器(111)到达输出。(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROMBIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。一旦计时器/触发器(132)以低信号“0”激活,则三态存储体(136)被设置为高阻抗状态,从而使信号流(134)无法使锁存器(111)到达输出。(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。一旦计时器/触发器(132)以低信号“0”激活,则三态存储体(136)被设置为高阻抗状态,从而使信号流(134)无法使锁存器(111)到达输出。(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。三态存储体(136)被设置为高阻抗状态,从而使信号流(134)离开锁存器(111)到达输出(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。三态存储体(136)被设置为高阻抗状态,从而使信号流(134)离开锁存器(111)到达输出(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。并且第一计算机(130)中的任何程序都不会读取所存储的加密/解密密钥(103)的输出。计时器/触发器(132)也可以设计成在经过一段时间后启动或触发。如果以此方式完成,则可能不需要ROM BIOS,例如基本输入/输出***(2130),因为可以将计时器/触发器(132)设计为在短时间内启动,这将不会启用程序,从***的设备中,通过三态存储体(136)有足够的时间来从带有加密解密密钥的设备(100)读取输出(138)。
当可启动光盘或任何可启动设备***第一台计算机(130)时,可能会发生这种情况。这种动作将使基本输入/输出***(2130)(也称为ROM BIOS)能够从基本输入/输出***(2130)读取外部设备而不是操作***中的操作***。***(120),它是第一计算机(130)上的实际授权操作***。如果发生这种情况,则通过外部操作***执行的程序将能够轻松读取存储的加密/解密密钥(103)并将其发送给黑客,黑客随后将能够编写病毒并使用被盗的内容对其进行加密加密/解密密钥(103),生成计算机的数字DNA,然后将病毒注入并存储在第一台计算机上(130)。
替代地,如果基本输入/输出***(2130)直接(参见第一虚线(131))连接到三态存储体(136)或通过另一种类型,则可能不需要计时器/触发器(132)电子门/电路的功能,以便实现与使用定时器/触发器(132)相同的功能。
带加密解密密钥的设备(100)的电路可以比上面讨论的复杂得多。上面的讨论是为了简单起见而提出的,而不是以任何方式使优选实施例难以理解。该电路可以被不同地设计,例如,例如,当不存在门控制电路(105)时,则用于关闭具有加密解密密钥的设备(100)的用于门机制的装置可以集成在其他地方。无论位置在哪里,都有某种大门,类似的逻辑或动作最好存在。如果不存在门或类似动作,则用户可以简单地从第一台计算机(130)移除或禁用带有加密解密密钥的设备(100),例如当通过计算机安装该设备时。端口,例如通用串行总线端口。如果带有加密解密密钥的设备(100)是光盘读取器中光盘的一部分,则可以从读取器中弹出光盘。
示范计算机电路
图9示出了用于第一计算机(130)和第二计算机(130A)(图12A和图13B)以及服务器计算机(1000)的优选硬件,其包括负责操作的中央处理单元(905)第一台计算机(130)的位置。一旦第一计算机(130)通电或复位,中央处理单元(905)就启动存储在基本输入/输出***(2130)中的程序代码,如图9和图21-22所示。ROM BIOS,即基本输入/输出***,具有执行后的软件代码,该软件代码指示中央处理单元(905)从所示的第二非暂时性计算机存储介质(350)加载操作***(120)。在图3-4,图9和图21-22中,将其存储到随机存取存储器(925)中。
在将操作***(120)加载到随机存取存储器(925)中之后,基本输入/输出***(2130)的指令代码将控制权转移到操作***(120)的第一个字节,并且***(120)接管第一计算机(130)的操作。然后,操作***(120)访问第二非暂时性计算机存储介质(350),并将软件驱动(935)加载到随机访问存储器(925)中。软件驱动(935)与操作***(120)一起工作。在第一台计算机(130)通电或重置时,带有加密解密密钥的设备(100)最好是连接的一个单独的单元(请参阅第一单头箭头线(200))到第一台计算机(130)或焊接到第一台计算机(130)母板上,通过三态开关,即门控制电路(105)(如果存在)启动其加密/解密密钥(103)到锁存器(111)的传输。之后,操作***(120)读取(请参阅第一双箭头线(121))加密/解密密钥(110)。在读取了加密/解密密钥(103)的副本之后,作为栅极控制电路(105)的三态开关被关闭(如果尚未关闭)。在读取加密/解密密钥(110)的副本之后,操作***(120)从锁存器(111)清除加密/解密密钥(110)的副本。在操作***(120)的控制下,读取的加密/解密密钥(110)的副本成为加密/解密密钥(120-A)的副本(参见图2B)。
接下来,操作***(120)使用加密/解密密钥(120-A)的副本对加密的操作***对称私钥(1007-E)进行解密,从而得出解密的操作***对称私钥(1007)。然后,操作***(120)使用(参见第二十五个单向箭头线(957))对软件程序(330)进行加密,以导出其数字DNA(300),并在第一个数字DNA(300)上进行安装。第二临时计算机存储介质(350)中的计算机(130)作为唯一安装的软件版本(参见图3)。另外,操作***(120)在运行时解密(参见第二十五号单向箭头线(957))数字DNA(300),以产生其未加密的软件,即软件程序(330)。图4)。
根据需要,软件驱动(935)就像操作***(120)一样,使用解密的操作***对称私钥(1007)来加密(参见第二十四个单头箭头线(956))。软件程序(330)导出其数字DNA(300)并将数字DNA(300)作为唯一安装的软件版本安装在第二非临时计算机存储介质(350)中的第一台计算机(130)上图3)。而且,软件驱动(935)(参见第二十五个单向箭头线(957))在运行时解密数字DNA(300),以产生其未加密的软件,即软件程序(330)(参见图4)。
可以通过使用与中央处理单元(905)一起工作的随机存取存储器辅助(952)来实现实施例。或者,实施例可以通过采用与操作***(120),软件驱动(935),只读存储器协同工作的中央处理单元(905)来放弃对随机存取存储器辅助装置(952)的使用,例如,基本输入/输出***(2130)和嵌入式宏操作***(955)(或用于对中央处理单元(905)执行加密/解密的任何其他形式的程序)。如果以这种方式实现,则加密/解密密钥(103)将是中央处理单元(905)的组成部分,并且被嵌入式宏操作***(955)用来单独地或与中央处理器一起执行加密/解密。处理单元(905)。如果以这种方式实现,则操作***(120)和/或软件驱动(935)将程序可执行代码和/或数据发送为加密/解密到中央处理单元(905)和中央处理单元(905)将程序可执行代码和/或数据传递到嵌入式宏操作***(955),以加密非编码软件(310),或数字DNA解密(300)。或者,用于在存储在第一计算机(130)的随机访问存储器(925)中之前对未编码的软件(310)进行加密,或者用于存储在第一计算机(130)的随机访问存储器(925)中的数字DNA(300)的解密。第一台计算机(130)。
值得注意的是,宏操作***(955)的使用是可选的,因为相同的功能可以由操作***(120)和/或软件驱动程序(935)与中央处理器协同工作来实现处理单元(905)和随机存取存储器辅助(952)。嵌入式宏操作***(955)的使用,虽然是可选的,但是将释放中央处理单元(905),从而提高加密/解密速度。如果使用嵌入式宏操作***(955),则操作***(120)和/或软件驱动(935)可以将一个无论是否加密传递给嵌入式宏操作***(955)以用于加密/解密。如果使用嵌入式宏操作***(955),它将执行中央处理单元(905)的模运算,或多个字节。
为了防止代码注入到随机访问存储器(925)中,可选的随机访问存储器辅助(952)访问(请参阅第二个单向箭头线(954))解密的操作***对称私钥(1007)对第一计算机(130)的随机存取存储器(925)中加载的软件进行加密/解密。可以实现一些实施例,其中,如果有的话,则通过(参见第二个单向箭头线(954))和/或由中央处理单元(905)通过的(参见第二十三个)随机访问存储器辅助(952)。-带箭头的箭头线(906)访问解密的操作***对称私钥(1007),并将其用于对存储在第一计算机(130)的随机访问存储器(925)中的软件代码进行加密/解密。
当第一计算机(130)进行其操作时,它可能不时地通过例如I/O端口(915)请求和/或接收外部数据。这样的外部数据可以是来自无线连接(例如,蓝牙连接)(1450)或来自服务器计算机(1000)的数据。本文描述的硬件未描述硬件的完整计算机软件包。所公开的基础知识无意使优选实施例晦涩难懂,因为本领域技术人员众所周知,未讨论许多其他常见组件,例如:鼠标,键盘,屏幕等。本文描述的硬件未描述硬件的完整计算机软件包。所公开的基础知识无意使优选实施例晦涩难懂,因为本领域技术人员众所周知,未讨论许多其他常见组件,例如:鼠标,键盘,屏幕等。本文描述的硬件未描述硬件的完整计算机软件包。所公开的基础知识无意使优选实施例晦涩难懂,因为本领域技术人员众所周知,未讨论许多其他常见组件,例如:鼠标,键盘,屏幕等。
此外,图9所示的布置可以是安装在能够具有所有指定功能(例如:加密和解密)的另一台计算机内部的计算机板,而不是操作***(120)。如果该布置被实现为计算机板,则具有加密解密密钥的设备(100)可以是计算机板的组成部分。
在计算机中停止病毒感染的设备
图2A是图1的补充,并且示出了优选实施例。图2A描绘了具有加密-解密-密钥的设备(100)连接(参见第一单向箭头线(200))到第一计算机(130)。带有加密解密装置的密钥(100)具有:第一非暂时性计算机存储介质(104),其保持加密/解密密钥(103)的永久性副本;以及锁存器(111),其具有以下特征:加密/解密密钥(103)。锁存器(111)可以是带有加密解密设备的密钥(100)的组成部分,或者可以位于其他地方,而不是带有加密解密设备的密钥(100)的一部分。
带加密解密密钥的设备(100)可以是电子设备(例如,微芯片),光盘读取器中的光盘,通用串行总线设备,可插拔计算机卡/刀片,移动设备(1430),与第一计算机(130)通信的计算机(例如服务器或任何其他计算机)或任何允许将加密/解密密钥(103)传输到锁存器的设备(111),并从第一计算机(130)的锁存器(111)到随机存取存储器(925),并在第一计算机(130)上用于与解密的操作***对称私钥协同工作的目的(1007)用于产生第一计算机(130)的数字DNA。术语“微芯片”应广义地解释为包括在中央处理单元(905)内,基本输入/输出***(2130)的一部分中实现或存储或编程于其中的带加密解密密钥的设备(100)。电子微芯片,或者是随机存取存储器辅助(952)或宏操作***(955)的一部分。
如果使用光盘读取器中的光盘,或移动设备(1430)或与第一计算机(130)通信的计算机(例如,服务器或任何其他计算机),则一些优选实施例无需硬件分配具有加密-解密密钥的设备(100)的完整电路,就可以实现本发明的方法。稍后将解释此机制。
带加密解密密钥的设备(100)优选地包括计算机可读存储器,即,存储密钥的物理组件。加密/解密密钥(103),它可以是仅写入一次的只读存储器,也可以是可以多次写入的闪存,也可以是任何类型的非暂时性计算机存储介质。
门控制电路(105)是可选的,因为可以使用其他方式提供相同的功能,例如可以由操作***(120)或带加密解密的设备设置的标志。密钥(100)以指示已提供加密/解密密钥(103)。
在第一台计算机(130)通电时,带加密解密密钥的设备(100)会激活,并且如果门控制电路(105)(可选)在使用中,它将启用传输带有加密解密密钥的设备(100)的加密/解密密钥(103)从第一非暂时性计算机存储介质(104)到锁存器(111)。接下来,激活ROMBIOS,即基本输入/输出***(2130),并将其依次将操作***(120)加载到随机存取存储器(925)中。一旦操作***(120)开始运行,它将读取存储在带有加密解密设备的密钥(100)的锁存器(111)中的加密/解密密钥(103)。然后,操作***(120)在第一计算机(130)的随机存取存储器(925)中存储(参见第一双箭头线(121))加密/解密密钥(103)。此后,操作***(120)进行并从锁存器(111)清除加密/解密密钥(103)的副本,如图2B所示。
带加密解密密钥的设备(100)可以被配置为排除加密/解密密钥的第二次传送(103)。一旦具有加密解密密钥的设备(100)通过门控制电路(105)将加密/解密密钥(103)传送到具有加密解密密钥的设备(100)的锁存器(111),则带有加密解密密钥的设备(100)会发出一个标志或关闭门控制电路(105),以指示加密/解密密钥(103)是第一次传输,因此阻止了第二次传输。例如,在第一计算机(130)加电时,具有加密解密密钥的设备(100)的寄存器可以具有标志值“0”以指示加密/解密密钥(103)尚未转移。然后,在加密/解密密钥(103)已经被传送到锁存器(111)之后,它将把寄存器中的标志值设置为“1”。此后,任何后续请求都将被忽略,因为标志值设置为“”。并且,如果使用标志模式,则将不需要栅极控制电路(105)。
硬件可以由以下步骤控制,其中,操作***(120)或任何授权程序仅从一次带有加密解密密钥的设备(100)读取加密/解密密钥(103)。可替代地,可以通过以下步骤来控制该步骤:其中多次读取加密/解密密钥(103),只要读取一次以上,就不会导致第一计算机(130)的安全性受到损害。
带加密解密密钥的设备(100)可以是智能手机或另一台具有通过其无线(也称为Wi-Fi)或蓝牙连接或网络连接与该计算机通信的软件的计算机。在与图13B和图14有关的公开内容中更充分地解释了该方法。
图2B示出了图2A的另一概览。之后将加密/解密密钥(103)传输到带有加密/解密密钥的设备(100)的锁存器(111),打开门控制电路(105),如图中缺少箭头所示(参见门控制电路(105))。在操作***(120)或软件驱动程序(935)或两者(从现在开始称为操作***(120))之后,从锁存器(111)读取加密/解密密钥(103)的副本。),则操作***(120)继续进行并清除锁存器(111),以便第二次对操作***(120)不可用。当清除时,这表示操作***(120)与带有加密解密密钥的设备(100)不再有任何连接-缺少第一双箭头线(121),门控制电路(105)断开并且锁存器(111)缺少值“0123456789”。操作***(120)具有可用的复制的加密/解密密钥(120-A)。并且如图所示,具有加密解密密钥的设备(100)仍被连接/***(参见图2B和第一单向箭头线(200))到第一计算机(130)中,但是对于所有因此,它在技术上与第一计算机(130)的电子电路断开连接。
图3是图2A和图2B的又一实施例,其描绘了在第一计算机(130)上安装软件程序(330)的过程。该软件程序是不具有任何编码的软件程序(也称为非编码软件(310)),与当今现有技术中常用的同类软件相同,并且可以安装在运行该操作***的任何计算机中。是为该程序设计的。示例包括记帐软件或文字处理器,或电子表格软件,网站代码文件,JavaScript代码文件,驱动程序,批处理代码文件,脚本代码文件等。
继续参考图3。它描绘了在第一计算机(130)上安装非编码软件(310)的过程中使用的实施例。再次提醒,未编码软件(310)是没有任何编码的常规软件,它是与现有技术完全相同的现有软件,并且可以在具有以下特征的任何计算机中运行(即,可以执行)。对其进行了编程的未编码软件(310)的操作***。
存储介质保存软件(340)可以是光盘的形式,或者可以从在线可信源下载(由第三单向箭头线(301)指示)。存储介质保存软件(340)保存将由第一计算机(130)中的中央处理单元(905)执行的非编码软件(310)。可选的报头识别码(320)也参与非编码软件(310)的安装过程。操作***(120)生成可选的报头识别码(320)。可选的标头识别码(320)可以具有任何字符串值,例如“VALIDATED DNA”或操作***(120)***的任何类型的值,以及操作***(120)稍后将使用哪个操作***来识别该软件在转换成其数字DNA格式后是否已被篡改。如果提到操作***(120)正在执行软件代码,则应广义地解释为是指中央处理单元(905)是执行软件代码的操作***,而操作***(120)正在执行软件代码。硬件和软件的管理,并与中央处理单元(905)协同工作。
图3示出了通过网络连接(由第三单头箭头线(301)指示)接收未编码的软件(310)。然后,软件程序(330)成为未编码的软件(310),其可通过与操作***(120)的计算机连接(参见第四单箭头线(302))来使用。操作***(120)可以在将其转换为第一计算机(130)数字DNA(300)之前,将可选的报头识别码(320)添加到形成软件程序(330)的非编码软件(310)中。使用复制的加密/解密密钥(120-A),该密钥在操作***(120)的控制下。
然后,操作***(120)使用复制的加密/解密密钥(120-A)并对接收到的加密的操作***对称私钥(1007-E)进行解密(请参阅第五个单向箭头线(303))。派生解密的操作***对称私钥(1007)(参见第六个单向箭头线(304)),然后操作***(120)使用解密的操作***对称私钥(1007)加密软件程序(330),产生(参见第七个单向箭头线(305))第一加密的软件程序,数字DNA(300),其对于第一台计算机(130)是唯一的。然后,操作***(120)将数字DNA(300)发送(请参阅第八个单头箭头线(306))到第一台计算机(130),并且第一台计算机(130)进行保存(请参阅第九个单头箭头)。箭头线(307))在第二非暂时性计算机存储介质(350)中的数字DNA(300),如图3所示。
现在,对数字DNA(300)进行编码/加密,并且如果不首先对其进行解密,则不能按原样执行,因为第一计算机(130)的中央处理单元(905)只能执行/使用未编码的DNA软件(310))。但是数字DNA(300)被编码,并且如果中央处理单元(905)试图照原样执行,则数字DNA(300)将不会具有中央处理单元(905)可以理解的格式。
可选的报头识别码(320)可以与非编码软件(310)分离。两者都可以驻留在具有相同名称和不同文件扩展名的两个不同文件中,两者都可以在单个文件中或可选的标头标识码中(320)。可选的报头识别码(320)和未编码的软件(310)都将用加密/解密密钥(103)进行加密。可以在不对可选报头识别码(320)进行加密的情况下实现。
图4示出了图3的相反过程,其涉及数字DNA的解密(300)。图4示出了将数字DNA(digital-DNA)(300)转换回非编码软件(310)。一旦用户或操作***(120)或第一计算机(130)中的另一个程序请求执行数字DNA(300),则操作***(120)与第一计算机进行通信(130),并从第一计算机(130)请求存储在第二非暂时性计算机存储介质(350)中的数字DNA(300)。接着,第一台计算机(130)访问第二台非暂时性计算机存储介质(350)通过连接(请参阅第十个单箭头线(400))并使链接可用(通过链接A(请参见第十一条单向箭头线)(401)),并将链接B(请参见第十二个单箭头线(402))、数字DNA(300)连接到请求操作***(120)。
操作***(120)使用复制的加密/解密密钥(120-A)并解密(如果尚未解密)加密的操作***对称私钥(1007-E)(请参阅第十三单头箭头线)(403))导出解密的操作***对称私钥(1007)(请参阅第十四个单头箭头线(404))。然后,操作***(120)使用解密的操作***对称私钥(1007)对数字DNA(300)进行解密(参见第十五个单向箭头线(405)),以产生非编码软件(310),并且可选报头识别码(320),它是最初加密的软件程序(330)。接下来,操作***(120)可选标头识别码(320),如果包含短语“经验证的DNA(VALIDATED DNA)”,然后操作***(120)知道数字DNA(300)未被篡改。最后,操作***(120)将非编码软件(310)加载(参见第十六个单向箭头线(406))未编码软件(310)到第一台计算机(130)的随机存取存储器(925)中(参见第一个将未编码软件(310)的起始位置传递到中央处理单元(905)的双点划线箭头(407),并且中央处理单元(905)执行未编码软件(310)的提取根据需要,来自随机存取存储器(925)的非编码软件(310)的指令。如果不存在可选的报头识别码(320)或不包含短语“VALIDATED DNA”,则操作***(120)可以禁止加载可执行程序,即,未编码的软件(310),通过不将其加载到随机存取存储器中(925),从而在执行之前将其禁用。可选报头识别码(320)还可以包括验证码,例如非编码软件(310)的字节数(即,长度)或用于验证文件的任何其他方式类似于加密之前的未编码软件(310)内容的校验和(校验和是从数字数据块中导出的小尺寸数据,目的是检测可能在其传输或存储过程中引入的错误)。如果包括验证码,则操作***(120)执行未编码软件的校验和(310),并与可选报头识别码的校验和进行校验(320),以验证文件是否为仍然原始加密的软件程序(330)。
可选的报头识别码(320)还可以包括验证码,例如未编码软件(31 0)的字节数(即长度)或用于验证文件的任何其他方式,例如加密之前未编码软件(310)内容的校验和(校验和是从数字数据块中提取的小尺寸数据,目的是检测可能在其传输或存储过程中引入的错误)。如果包括验证码,则操作***(120)执行未编码软件的校验和(31 0),并与可选报头识别码的校验和进行校验(320),以验证文件是否仍然是最初加密的软件程序(330)。可选的标头识别码(320)也可以包括其他信息,例如软件制造商,软件序列号,软件版本等。
基本编码示例
解释用于导出数字DNA的基本加密过程(300)。假设用于加密的模式是加密密钥值与要加密的值的乘积,而解密是要解密的值与加密密钥值的除法。如果假定非编码软件(310)是可以由中央处理单元(905)执行的代码值“9”。但是,一旦用加密/解密密钥(103)对未编码软件(310)进行加密,并假设加密/解密密钥(103)的值为“7”。然后,将该值“7”与作为值“9”的非编码软件(310)相乘后,最终结果将变为“63”(是数字DNA(300))。一旦中央处理单元(905)读取了数字DNA(300)((“63”的值)),它就不会理解它,因为它已被加密,因此,它将无法处理和执行它。
但是,由于操作***(120)已复制值为“7”的加密/解密密钥(120-A),操作***(120)要做的全部工作就是使用值“7”执行解密,这与加密相反并且,由于加密涉及将“7”与“9”相乘以获得值“63”,因此操作***(120)或中央处理单元(905)将取值“63”并将其除以值“7”(它是加密/解密密钥(103))并检索实际值“9”(它是非编码软件)。一旦获得中央处理单元理解的值“9”,就将值“9”加载到随机存取存储器(925)中,然后由中央处理单元(905)执行。
当在安装了数字DNA软件的第一台计算机(130)上发出运行软件的请求时,操作***(120)首先对数字DNA软件进行解密,然后由中央处理器执行。
计算机感染病毒通常是在用户不知情的情况下发生的,并且对操作***没有任何指示。然而,采用本文公开的设备或方法的计算机中存在的病毒将是未编码的,并且如果在第一计算机上执行了执行未编码的病毒的请求(130),将发生两件事:1)由于操作***(120)在执行之前对数字DNA代码进行解密,以及2)由于解密与加密相反。因此,一旦发起执行未编码病毒代码的请求,操作***(120)或中央处理单元(905)将在其执行之前首先对其进行解密,但是一旦未编码代码被解密,它将被执行。它将被编码,也就是说,它将被加密并转换为第一计算机(130)的数字DNA,然后在执行之前存储到第一计算机(130)的随机存取存储器(925)中。但是中央处理单元(905)仅执行未编码的软件程序代码,一旦中央处理单元(905)尝试执行病毒数字DNA,则中央处理单元(905)将无法理解该病毒,从而中止操作病毒-数字DNA。一旦提到术语操作***(120)进行加密/解密,应当广义地解释为包括中央处理单元(905)和/或宏操作***(955)。而且,一旦提到术语中央处理单元(905)进行加密/解密,就应广义地解释为包括操作***(120)和/或宏操作***(955)。
病毒验证示例
假设安装在第一台计算机(130)上的未编码病毒的值为“70”,同样,如前所述,假定加密涉及要加密的值与加密/解密密钥值的乘积解密涉及将加密值除以加密/解密密钥值。一旦命令操作***(120)发起未编码病毒的执行,由于中央处理单元(905)-图9将仅执行被解密的指令,则操作***(120)解密该文件。使用复制的加密/解密密钥(120-A)的非编码病毒,该密钥在此示例中的值为“7”。操作***(120)将病毒代码的值“70”除以“7”,其产生值“10”(其是病毒数字DNA),然后将病毒数字DNA加载到随机存取存储器中(925)。一旦中央处理单元(905)尝试执行值“10”,则执行失败,因为中央处理单元(905)仅理解未编码的指令值。
加密/解密计算机逻辑算法
上面的病毒无效示例是非常基本的加密/解密算法。首选的计算机算法将使用更复杂的算法:具有数百个数值中非常大的值的数学公式,或具有非常大的加密密钥的计算机逻辑。优选地,加密将使用计算机逻辑XOR(异或)产生一个值。
计算机仅理解电子信号,并且它们以低信号为零“0”和高信号为“1”的形式表示。因此,说英语的人容易理解的任何内容对计算机来说都是毫无意义的。例如,在计算机可以理解字母“a”之前,需要对其执行两个步骤:首先,将其转换为代表字母“a”的数字表;然后数字值将转换为由零和一表示的值,这是计算机可以理解的值。首先将“a”转换为其数值“97”。然后,在接下来的步骤中,将值“97”转换为计算机可以理解的二进制值“01100001”。
二进制值“01100001”(每个“0”或“1”被称为位)表示值“97”。从右边开始的第一个值代表“1”的值,而每个后续值到字节的左边,则代表先前值乘以“2”(这是二进制值表示,因为计算机只能理解“0”和“1”(二进制)。最后,将二进制值表示形式下所有值为“1”的值相加。让我们看看它是
Figure GDA0002673766700000371
由于如果在最终转换中未添加二进制值“0”,则如果数字为低值,则可以仅由字节值的前半部分(即,最右边的四个数字)表示位),这就是下一个示例中显示的内容:为简单起见,仅使用半个字节。
图5示出了两个半字节值被该计算机的电子电路异或。从顶部开始的第二行(510),最右边的值“9”与从顶部开始的第三行(520),最右边的值“7”进行异或。异或(XOR)操作使用它将处理的值的二进制表示形式,即异或(XOR)。在异或运算中,一旦两个二进制值逐位进行异或,如果两个位相同,即如果两个位均为“0”或两个位均为“1”,则结果值为“1”另一方面,如果两个值中的任何一个不同,即,如果一个为“0”而另一个为“1”,则结果值为0。
例如,在右端从顶部(510)开始的第二行中示出的值“9”由字节值“00001001”表示,并且值“7”是“00000111”。对于这些示例,由于我们的示例使用较小的值,而我们使用的是半字节值,因此会忽略最左边的四个位值。XOR是加密/解密中最常用的方法,因为结果值与两个要进行XOR运算的值的长度相同,并且计算机很容易完成XOR操作,因为它涉及比较,这是计算机非常快的。
一旦将两个值进行异或,并且在第二次异或运算中将异或结果应用于原始值中的任一个,则运算结果将产生缺失值-该值不参与异或运算。
图5的顶行(500)示出了其下每个比特的参考值。例如,在右端从顶部(510)的第二行中显示的值为“9”,具有四个位。并且,如果我们分析顶行(500),而顶行的第二行(510)在“1”下的位值为“1”,在“8”下的位值为“1”,则表示“9”的值(8+1=9)。值“9”(510)表示程序页(参见图3非编码软件(310)),并且从总和(4)得出从上至下第三行中的下一个值为“7”(520)。+2+1=7),代表加密/解密密钥(103)。一旦将“9”的值与“7”的值进行异或,则在顶部第四行中的结果为“14”(530)。“14”的值是从和(8+4+2=14)得出的。“14”的值是数字DNA(300)。此过程说明了计算机如何使用其电子逻辑加密两个值。
图6具有第一行(600),其与图5的顶部行(500)相同。第二行(610)最右边的结果“14”代表数字DNA(300)。将结果“14”与第三行(620)的最右边的值“7”进行异或,该第三行是加密/解密密钥(103)。将值“14”与值“7”异或的结果以中央处理单元(4)的格式导出第四行(630)中的值“9”,该值代表未编码的软件(310)在格式化的中央处理单元(905)处可被读取。
如果计算机病毒的值为“70”,它将被转换为二进制格式,如下所示:
Figure GDA0002673766700000391
如果第一台计算机(130)中存在病毒“01000110”,则只有在操作***(120)或中央处理单元(905)首先以加密/解密值解密病毒后,才能执行该病毒键(103),为“7”,二进制为“00000111”。此操作是:
Figure GDA0002673766700000392
一旦病毒被转换为数字DNA值“190”,则中央处理单元(905)将不能执行它,因为中央处理单元(905)仅理解病毒的原始值“70””,而不是其数字DNA值“190”,因此该病毒已被禁用而没有对第一台计算机造成任何损害(130)。解密也是一种加密,更像是反向加密。
计算机病毒基础
为了使计算机病毒成功并扩散,它需要具有两种能力:首先,它需要能够在运行为其编程的操作***的任何计算机上执行自身;其次,它需要能够感染软件程序和/或在其他计算机上复制自身。一旦现有技术的计算机运行包含计算机病毒的现有技术的软件程序,则现有技术的计算机也将运行该病毒。这是因为该病毒是现有软件程序(即好的代码)的一部分,该过程称为“感染”。如果病毒能够自我复制,则它将等待适当的时间来传递其有效负载,并且在大多数情况下,它是恶意的。
如果预期的良好代码为“9”且病毒代码为“70”,则计算机病毒通常会将其自身***诸如“709”之类的良好代码“9”中-通常在软件文件的开头(计算机病毒“70”位于良好软件代码“9”之前)。现有技术的操作***一旦被感染文件,就继续处理包含计算机病毒“70”和良好软件代码“9”的完整文件。它将首先读取“70”,将病毒代码加载到随机存取存储器中,然后由中央处理器执行它,然后,它将加载并执行实际的正确代码“9”。现有技术的操作***和中央处理单元不会将计算机病毒“70”与实际的良好计算机软件代码“9”区分开来,因为两者:好的代码“9”和坏的病毒代码“70”与操作***的代码格式相同。刚刚描述的过程可能发生在文件中,也可能发生在计算机的随机访问内存中运行的过程中。
上面的示例说明了使用短值表示一段良好代码并使用短值指定不良病毒代码的过程,但是通常,程序(良软件代码和病毒代码)都将有很多字节长,有时为数千或数百万个字节。
现有技术的计算机病毒
图7示出了被计算机病毒感染的现有技术计算机***的操作。在图7中,计算机病毒(710)位于良好软件代码(720)之前的受感染计算机软件文件(700)的开头。一旦被现有技术的操作***加载了受感染的计算机软件文件(700),中央处理单元将首先执行计算机病毒(710),并且随着现有技术的中央处理单元的进行,它将执行良好的软件。代码(720)。一旦请求执行受感染的计算机软件文件(700),现有技术的操作***将读取:不良软件代码,计算机病毒代码(710)和良好软件代码(720)。然后,现有技术的操作***会将两者都加载到计算机的随机存取存储器中;然后最后,中央处理单元将同时执行这两个操作,并且每个都将执行每个程序要执行的活动。良好的软件代码(720)进行了预期的不良行为,而计算机病毒(710)进行了预期的不良行为。这仅是因为:计算机病毒的可执行代码(710)和可执行代码,好的软件代码(720)都处于同一可理解的编译代码中,而现有技术的中央处理单元可以理解该编译代码。
安装软件代码
图8A与图3有关,并且示出了其中第一计算机(130)的操作***(120)保存用于软件程序(即,非编码软件)的数字DNA(300)的过程(310)))存储在第一计算机(130)的第二非暂时性计算机存储介质(350)中。带有加密解密装置的密钥(100)在其第一非暂时性计算机存储介质上保持具有值为“0123456789”的加密/解密密钥(103)。在操作***(120)的控制和使用下,值“0123456789”的副本被保存在第一计算机(130)的随机存取存储器(925)中的存储位置(120-A)中。操作***(120)从第二非暂时性计算机存储介质(350)读取(参见第十七个单箭头线(801))非编码软件(310),并使用复制的加密/解密密钥(120-A)解密(参见第十八个单向箭头线(802))加密的操作***对称私钥(1007-E),以得到解密的操作***对称私钥(1007),然后操作***(120)使用解密的操作***对称私钥(1007)对产生数字DNA(300)的非编码软件(310)(即良好的可执行软件)进行加密。然后将数字DNA(300)保存在第一计算机(130)的第二非第二非暂时性计算机存储介质(350)中。然后,操作***(120)使用解密的操作***对称私钥(1007)对未编码的软件(310)进行加密,以生成数字DNA(300)(即,良好的可执行软件)。然后将数字DNA(300)保存在第一计算机(130)的第二非第二非暂时性计算机存储介质(350)中。然后,操作***(120)使用解密的操作***对称私钥(1007)对未编码的软件(310)进行加密,以生成数字DNA(300)(即,良好的可执行软件)。然后将数字DNA(300)保存在第一计算机(130)的第二非第二非暂时性计算机存储介质(350)中。
使用公开的方法执行软件代码和设备
图8B涉及图4,并且示出了与图8A的加密过程相反的解密过程。在该示例中,在操作***(120)加载数字DNA(300)以供执行的时刻(参见第十九个单向箭头线(803))。操作***(120)使用存储在存储器位置(120-A)中的加密/解密密钥(103)的副本解密(参见第二十个单向箭头线(804)),以对称方式加密加密的操作***。私钥(1007-E)导出解密的操作***对称私钥(1007)。然后,操作***(120)使用解密的操作***对称私钥(1007)对数字DNA进行解密(300),从而得出非编码软件的可执行代码(310)。然后,中央处理单元(905)执行存储在第一计算机(130)的随机存取存储器(925)中的非编码软件(310)。
操作***(120)或中央处理单元(905)使用的过程的两个主要加密/解密步骤优选包括:1)在安装时,操作***(120)对未编码的软件(310)进行加密产生数字DNA(300),然后将其保存(见图8A);2)在运行时,操作***(120)解密数字DNA(300),产生操作***/中央处理单元能够理解的非编码软件(310),然后执行它(见图8B)。
停止计算机病毒
图8C示出了将病毒或蠕虫(800C)引入第一计算机(130)。一旦操作***(120)接收到执行病毒或蠕虫的代码的请求(800C),操作***(120)就加载病毒的可执行代码(参见第二十一条单头箭头线(805))。或蠕虫(800C),并使用加密/解密密钥(120-A)的副本解密(请参阅第二十二个单头箭头线(806)),以得到派生密钥的加密操作***对称私钥(1007-E)。解密的操作***对称私钥(1007)。然后,使用解密的操作***对称私钥(1007)的操作***(120)继续解密病毒或蠕虫(800C)。并且一旦被解密,解密的病毒代码(810C)就变得不可用,并且一旦中央处理单元(905)尝试执行它,中央处理单元(905)就识别出该代码不是可理解的格式,因此前进到忽略加密的代码,或终止该过程,因为它对于操作***(120)或中央处理单元(905)的格式不正确。因此,病毒被破坏了。
假设病毒是蠕虫。蠕虫是一种病毒,在感染网络中的一台计算机之后,它会迁移到其他计算机,从而全部感染它们。同样,假定在现有技术的计算机中或在黑客入侵现有技术的计算机中安装受感染的软件的同时将其引入网络中的一台连接的计算机中。在由现有技术的计算机执行病毒蠕虫之后,它将迁移到网络中的其他连接的计算机,但是一旦到达托管数字DNA的另一台计算机,它将在蠕虫病毒执行之前出现问题。如果新计算机托管了数字DNA,则新计算机的操作***(120)将首先使用其自己的设备使用加密解密密钥(这是另一种加密形式)的值解密蠕虫,
如果病毒或蠕虫(800C)以链接的形式通过电子邮件发送给了不受怀疑的用户,则一旦单击该链接,便会将用户重定向到恶意网站,或者以受感染的电子邮件的形式-邮件附件。在用户单击链接或感染附件以启动蠕虫之后,再次在执行蠕虫之前,第一台计算机(130)的操作***(120)将首先使用加密/解密密钥(103)对病毒蠕虫进行解密,然后病毒蠕虫将其代码更改为乱码(请参见图8C和解密的病毒代码(810C)),并且一旦中央处理单元(905)尝试执行它,中央处理单元就会知道它是未经授权的代码,会产生错误,或者干脆销毁它。就像在网络中一样,在该计算机中,蠕虫病毒执行/处理之前,蠕虫病毒被清除,因此感染和/或破坏被阻止。
图8A和图8B中公开的加密/解密过程仅出于说明目的,而不是加密/解密的实际结果。例如,数字DNA(300)不是可执行代码,即非编码软件(310)和解密的操作***对称私钥(1007)之间的实际XOR(或任何形式的加密)。类似地,在图8C中,病毒或蠕虫(800C)与解密的操作***对称私钥(1007)之间没有实际的加密。由于存在许多可用的加密算法和许多执行加密的方法,即使执行了实际的加密,结果也会有所不同。
此外,加密技术已经很好地建立,并且由于存在许多可以用于执行本文公开的方法的目的的加密/解密方法。
在一些优选的实施方案中,存在三个序列:
1)在未编码软件(310)的安装时间使用的操作***(120)对可执行代码进行加密,即,对未编码软件(310)进行加密,从而产生数字DNA(300),如图所示在图8A中。然后,操作***(120)将数字DNA(300)保存在第一计算机(130)的第二非暂时性计算机存储介质(350)。和,
2)在中央处理单元(905)执行数字DNA(300)之前,中央处理单元(905)或操作***(120)对数字DNA(300)进行解密,生成未加密的可执行代码(中央处理单元(905)理解的非编码软件(310),然后中央处理单元(905)执行它(可执行代码也称为图8B的非编码软件(310))。
3)如果请求操作***(120)加载未加密的病毒可执行代码(800C),则操作***(120)对其进行解密(如本文所控制和描述的操作***的行为是首先解密加密的可执行代码在中央处理单元执行之前)将病毒代码转换为计算机的数字DNA(参见图8C和解密的病毒代码)(810C),并且一旦中央处理单元(905)试图执行解密的病毒代码(810C),该病毒就变成了不可执行的高低***,因为中央处理单元(905)仅执行未加密的代码。
在其他优选实施例中,还存在三个序列:
1)如图8A所示,操作***(120)在可执行代码(即,非编码软件(310))的安装时对可执行代码进行加密以产生数字DNA(300)。然后,操作***(120)将数字DNA(300)保存在计算机的第二非暂时性计算机存储介质(350)中。
2)在中央处理单元执行数字DNA(300)之前,操作***(120)将加密版本存储在随机存取存储器(925)中,并从随机存取存储器(925)解密加密版本,根据中央处理单元(905)的请求。然后,中央处理单元(905)执行数字DNA(300)作为解密的可执行代码。该数字DNA(300)也被称为图8B的非编码软件(310)。
3)如果请求中央处理单元(905)执行存储在随机存取存储器(925)中的病毒或蠕虫(800C)的可执行代码,由于该可执行代码必须在之后下载,所以将不被加密启动时,操作***(120)将首先解密病毒或蠕虫(800C)。使用本文公开的优选方法的操作***的行为是在执行之前首先解密加密的可执行代码。如图8C所示,该解密动作将病毒或蠕虫的代码(800C)转换为官码(gobbledygook),即解密的病毒代码(810C)。一旦中央处理单元(905)执行被解密的病毒代码(810C)感染的数字DNA(300),由于中央处理单元(905)仅执行其首先解密的代码,因此病毒被禁用。虽然操作***(120)被描述为执行数字DNA(300)的解密,但这旨在包括由中央处理单元(905)或由宏操作***(955)或宏操作***(955)和中央处理单元(905)的组合。
如图3和图4的可选报头识别码(320)存在并且有效,则一旦被请求文件执行,则操作***(120)如下处理:一旦操作***(120)解密数字DNA(300),操作***(120)将从非编码软件(310)中取回可选的报头识别码(320),并验证其存在和有效。如果存在并且有效,则操作***将未编码软件(310)的加密版本放置在第一计算机(130)的随机存取存储器(925)中,以由该第一计算机(130)的中央处理单元(905)执行。如果标头识别码不存在或无效,则忽略执行软件文件的请求并生成错误。如果该软件恰好是病毒,则一但该病毒被解密,该操作***(120)将不能定位该可选的报头识别码(320),且该病毒被失效。
带有加密解密密钥的设备(100)可以由第一计算机(130)的操作***(120)用于其他目的,例如用于保存敏感信息,,而该敏感信息必须被第一计算机(130)的操作***(120)有效获取。
另外,带有加密解密设备的密钥(100)可以由操作***(120)用于加密任何类型的文件,并且不限于软件文件。例如,操作***可以使用加密/解密密钥(103)对包含敏感数据(例如用户的电子邮件和其他个人数据)的数据库文件进行加密。
此外,如果具有加密解密密钥的设备(100)被实现为独立的计算机板,则它可以是板上的完整计算机(参见图9)(第一计算机(130)和带有加密解密密钥的设备(100)),并将该板安装到计算机中。
如果带有加密解密的设备的密钥(100)用于加密数据,则可以在操作***级别开发软件库并将其与开发的软件集成在一起,从而使软件能够调用功能代码在库中传递要加密的数据,并且操作***(120)使用加密/解密密钥(103)对接收到的数据进行加密以生成加密数据,然后将加密数据传递回软件,然后软件将其保存到数据库或文件中。解密将同样起作用,软件将加密的数据传递给操作***(120),并且操作***(120)将解密的数据返回给软件。
所谓软件,是指应被广义地解释而不是仅适用于已编译的代码,它可以是批处理文件,脚本文件,***文件,已解释的代码文件,已编译的代码文件等。它是任何类型的文件,操作***,中央处理单元或解释器程序将按照能够执行其功能的方式进行解释或执行。
安装带有加密-解密密钥的设备
在优选实施例之一中,在安装产生数字DNA之前,使用二级对称加密解密密钥对未编码的软件程序进行加密,然后将数字DNA作为唯一安装的软件程序进行安装,并在解密之前对数字DNA进行解密数字DNA执行。在优选实施例中,加密/解密密钥(103)用于加密第二对称私钥(1070)。次要对称私钥可以是操作***使用的单个加密解密密钥(解密的操作***对称私钥(1007)),也可以是软件程序使用的唯一加密解密密钥(成为程序对称私钥(1075))。操作***对称私钥也称为解密的操作***对称私钥(1007)。
如果第二对称私钥(1070)被分配给操作***(解密的操作***对称私钥(1007))。操作***将使用与解密的操作***对称私钥(1007)相同的操作***对称私钥,在操作***的控制下对所有软件程序进行加密和解密。
如果将次级对称加密解密密钥分配给软件程序(然后成为程序对称私钥(1075)),则控制该软件程序的操作***将使用该程序对称私钥(1075)进行以下操作:分配了程序对称私钥(1075)的软件程序的加密和解密。
然后,操作***使用加密/解密密钥(103)来加密和解密操作***对称私钥。如果第二对称对称私钥(1070)已分配给操作***。
如果将次级对称私钥(1070)分配给软件程序(成为程序对称私钥(1075)),则操作***可以通过以下两种方式之一进行操作:(1)操作***可以使用加密/解密密钥(103)对程序对称私钥(1075)进行加密和解密;或(2)操作***可以使用操作***对称私钥对程序对称私钥进行加密和解密(1075),该对称对称密钥与解密的操作***对称私钥(1007)相同。
一旦加密了作为操作***对称私钥或程序对称私钥(1075)的辅助对称私钥(1070),就将辅助对称私钥(1070)存储在第二非临时性计算机存储中第一计算机(130)的介质(350)。
通过使用第二对称对称私钥(1070),可以灵活地将操作***和/或软件程序从第一台计算机(130)移植到第二台计算机(130A),而不会损害安全性并且不将数字DNA(300)限制到单个计算机,例如第一计算机(130)。
术语:软件程序(330),软件代码或应用程序,或未编码的软件程序,或未编码的软件,或未编码的应用程序,或可执行程序,或可执行软件或可执行应用程序,或程序,应用程序,软件,解释软件或解释程序在本文中的含义相同。
图10A示出了优选实施例。第二对称私钥(1070)可以被分配给操作***(120)作为操作***对称私钥。而且,第二对称私钥(1070)可以被分配给软件程序(330)作为程序对称私钥(1075)。
此外,第二对称私钥(1070)可以同时分配给操作***(120)作为操作***对称私钥,并在操作***(120)的控制下分配给软件程序(330)作为程序对称私钥(1075)。
如果将第二对称私钥(1070)既分配给操作***(120),又分配给软件程序(330),则将有两个加密解密密钥。第一个是操作***对称私钥,它是全局的,由操作***(120)在操作***(120)的控制下用于加密和***程序(330),和/或用于加密解密对称密钥。在操作***(120)的控制下分配给一个或多个软件程序的一个或多个程序对称私钥(1075)。第二个是程序对称私钥(1075),其在操作***(120)的控制下对于每个软件程序(330)是唯一的。
仍然可能仅将次要对称私钥(1070)分配给软件程序(330)。并且如果以这种方式实现,则每个软件程序(330)将具有在操作***(120)的控制下对于每个软件程序(330)唯一的程序对称私钥(1075)。操作***(120)将不具有解密的操作***对称私钥(1007)。操作***(120)将使用加密/解密密钥(103)来加密和解密每个软件程序(330)的程序对称私钥(1075)。
图10B示出了在第一计算机(130)中首次使用带有加密解密密钥的设备(100)的安装过程。服务器计算机(1000)具有用于制造的每个带有加密-解密密钥的设备(100)的数据库表(1000A)。该表包含已售出的带有加密解密密钥的设备(100)的序列号(1002),该序列号与带有加密解密密钥的设备ID(1003)和加密/解密相关联键(103),以及至少一个可选的软件驱动(1001)。不需要可选的软件驱动(1001),因为软件的加密/解密在第一计算机(130)处完成,并且可以排他地由操作***(120)完成。而且,如果使用可选软件驱动程序(1001),则优选地它在光盘上可用,或者可以从服务器计算机(1000)下载或在另一***设备上提供。该表包含已售出的带有加密解密密钥的设备(100)的序列号(1002),该序列号与带有加密解密密钥的设备ID(1003)和加密/解密相关联键(103),以及至少一个可选的软件驱动程序(1001)。不需要可选的软件驱动(1001),因为软件的加密/解密在第一计算机(130)处完成,并且可以排他地由操作***(120)完成。而且,如果使用可选软件驱动程序(1001),则优选地它在光盘上可用,或者可以从服务器计算机(1000)下载或在另一***设备上提供。该表包含已售出的带有加密解密密钥的设备(100)的序列号(1002),该序列号与带有加密解密密钥的设备ID(1003)和加密/解密相关联键(103),以及至少一个可选的软件驱动程序(1001)。不需要可选的软件驱动(1001),因为软件的加密/解密在第一计算机(130)处完成,并且可以排他地由操作***(120)完成。而且,如果使用可选软件驱动程序(1001),则优选地它在光盘上可用,或者可以从服务器计算机(1000)下载或在另一***设备上提供。至少加上可选的软件驱动程序(1001)。不需要可选的软件驱动(1001),因为软件的加密/解密在第一计算机(130)处完成,并且可以排他地由操作***(120)完成。而且,如果使用可选软件驱动程序(1001),则优选地它在光盘上可用,或者可以从服务器计算机(1000)下载或在另一***设备上提供。至少加上可选的软件驱动程序(1001)。不需要可选的软件驱动(1001),因为软件的加密/解密在第一计算机(130)处完成,并且可以排他地由操作***(120)完成。而且,如果使用可选软件驱动程序(1001),则优选地它在光盘上可用,或者可以从服务器计算机(1000)下载或在另一***设备上提供。
用户首先将带有加密解密密钥的设备(100)***(请参阅第一个单向箭头线(200))到第一台计算机(130)中(如果该计算机没有其电路的一部分)。这将启动注册过程。用户在服务器计算机(1000)上进行注册,并通过操作***(120)或安装驱动程序提供用户ID(1005),用户密码(1006)和带加密解密密钥的设备-ID(1003)。然后,操作***(120)通过第一安全链接(1010)将输入的信息发送到服务器计算机(1000)。
然后,服务器计算机(1000)使用接收到的带有加密解密密钥的设备ID(1003)作为密钥,以使其能够获取数据库表(1000A)。输入的信息(例如,用户的ID(1005)和用户的密码(1006))被保存在服务器计算机(1000)的数据库表(1000A)中。接下来,服务器计算机(1000)创建第二对称私钥(1070),在这种情况下,该第二对称私钥被分配给操作***(120)作为解密的操作***对称私钥(1007)。服务器计算机(1000)对解密的操作***对称私钥(1007)进行加密,从而得出加密的操作***对称私钥(1007-E)。服务器计算机(1000)获取可选的软件驱动程序(1001),
一旦操作***(120)从服务器计算机(1000)接收到传输,则操作***(120)从锁存器(111)中检索(参见第一双箭头线(121)),加密/解密密钥(110)在操作***(120)的控制下成为存储在第一计算机(130)的随机存取存储器(925)中的复制的加密/解密密钥(120-A)。如图2B,图3-4,图8A,图8B和图8C所示。然后,操作***(120)此后从锁存器(111)清除加密/解密密钥。然后,操作***(120)将软件驱动程序和加密的操作***对称私钥作为加密的操作***对称私钥(1007-E)保存在第一计算机(130)和第二非暂时性计算机存储介质(350)。根据需要,使用加密/解密密钥(120-A)的操作***对加密的操作***对称私钥(1007-E)进行解密,从而得出一解密的操作***对称私钥(1007),然后操作***(120)使用解密的操作***对称私钥(1007),用于加密和解密。
多个虚拟机的某些实现实施例
在替代实施例中,是一种在虚拟机环境中实现某些优选实施例的方法(例如,托管一个或多个供应商(例如MICROSOFT WINDOWS,LINUX,APPLE OS,UNIX等),使用程序对机器/计算机进行虚拟化,并且每个操作***都可以完全控制计算机的硬件),其中每个操作***都有自己的专用加密/解密密钥,并且每个操作***都向服务器计算机注册(1000)。
在多操作***环境中,存在主操作***,并且它承载一个或多个操作***作为虚拟操作***。主操作***托管一个名为“虚拟机”的程序,而虚拟机程序又托管该虚拟操作***。每个虚拟机都在主操作***的控制下,每个虚拟机又控制着它托管的虚拟操作***。
由于通常将操作***从驻留计算机移植到另一计算机,因此重要的是,加密/解密密钥应独立于其当前驻留的计算机。利用图11A,图12A和图13B的布置,如果一个或多个或所有操作***被移植到另一台计算机,则所需要的仅仅是所移植的操作***与服务器计算机(1000)进行通信。通知操作***要移植到的新计算机,并且服务器计算机(1000)用操作***已移植到的新计算机的加密/解密密钥对操作***对称私钥进行加密然后服务器计算机(1000)向操作***发送操作***加密的对称私钥。
图11A示出了承载三个操作***的第一计算机(130):作为主操作***的操作***(120);在第一虚拟机(130B)的控制下,第一虚拟操作***B(120B);第二虚拟操作***N(120N)在第二虚拟机(130N)的控制下。第一虚拟机(130B)和第二虚拟机(130N)在主操作***(例如,操作***(120))的控制下。
图11B示出了用于图11A所示的第一计算机(130)中的布置的数据库表(1000A)。数据库表(1000A)具有用户ID(1005),用户密码(1006),以及与虚拟机当前所在的计算机(第一台计算机(130))关联的序列号(1002)。在数据库表(1000A)中找到三个附加字段,它们是每个操作***的标识:操作***JD(1111),其标识图11A的操作***(120);第一虚拟操作***BJD(1112),其标识图11A的第一虚拟操作***B(120B);第二虚拟操作***NJD(1113),其标识图11A的第二虚拟操作***N(120N)。
图11B进一步示出了附加的数据库表(1000B),并且该数据库表(1000B)通过每个操作***标识与数据库表(1000A)相关联(参见第二虚线双箭头(1101))。例如,操作***JD(1111),第一虚拟操作***JD(1112)和第二虚拟操作***NJD(1113)。解密的操作***对称私钥(1007)与操作***JD(1111)相关联。解密的第一虚拟操作***对称私钥B(1008)与第一虚拟操作***BJD(1112)相关联。第二虚拟操作***私钥N(1009)与第二虚拟操作***NJD(1113)相关联。
图11A与图11B有关,并且两者均通过安全连接而连接,即如图10A所示的第一安全链接(1010)。为了清楚起见,在图11A或图11B中不存在第一安全链接(1010)。
另一个说明性示例利用操作***(120),但是相同的解释适用于第一虚拟操作***B(120B)和第二虚拟操作***N(120N)。在图11A的第一计算机(130)上的操作***(120)的注册时间,操作***(120)通过图10A所示的第一安全链路(1010)向服务器计算机(1000)发送。用户ID(1005),用户密码(1006)和带有加密解密密钥的设备ID(1003)。在服务器计算机(1000)接收到操作***(120)发送的信息之后,服务器计算机(1000)根据需要保存在数据库表(1000A)中,这在解释图10A时已经说明。
然后,服务器计算机(1000)创建操作***JD(1111)和已解密的操作***对称私钥(1007),然后创建关系(请参见两个表之间的第二条双头双向虚线(1101))(数据库表(1000A)和数据库表(1000B)。)接下来,使用加密/解密密钥(103)的服务器计算机(1000)对解密后的操作***对称私钥(1007)进行加密,得到对称的加密操作***。最后,服务器计算机(1000)通过第一安全链路(1010)将操作***JD(1111)和加密的操作***对称密钥返回到操作***(120),一旦操作***(120)接收到两者,操作***(120)将操作***JD(1111)和加密的操作***对称密钥作为加密的操作***对称私钥E7(1007-EA)保存在第一计算机(130)的第二非暂时性计算机存储介质(350)。
图13B等效于图12A。图12A的布置示出了每个操作***直接从第二计算机(130A)的锁存器A(111AB)访问加密/解密密钥A(110AB)的副本的每个操作***。图13B的布置示出了每个操作***访问服务器计算机(1000)以获得加密的操作***对称私钥,因此,第二计算机(130A)不具有带加密解密设备的设备(100AB)。
图13A是图11B的数据库表(1000A)的另一实施例。而且,图13A与图12A和图13B有关。图13A示出了服务器计算机(1000)处的新数据库表布置,其中服务器计算机(1000)容纳了新近恢复并托管移植的操作***的先前的第一计算机(130)和第二计算机(130A)。数据库表(1000A)已被分成数据库表(1300)和数据库表(1310)。
数据库表(1000A)通过带加密-解密-密钥A-ID的设备和序列号与数据库表(1300)有关系(请参见第三双虚线箭头(1303)):序列号(1002)与带有加密解密密钥A的设备ID(1003)相关;序列号A(1002A)与带加密解密密钥A-ID的设备(device-with-encryption-decryption-keyA-ID)(1003A)相关联。
数据库表(1300)通过序列号和加密/解密密钥与数据库表(1310)具有关系(参见第四虚线双箭头线(1313)):加密/解密密钥(103)与序列号(1002)有关;加密/解密密钥A(103AB)与序列号A(1002A)相关联。
数据库表(1000A)也与数据库表(1000B)之间具有关联(请参见第二双点划线箭头(1101)),该关系是通过操作***私钥和操作***标识来附加的:操作***对称私钥(1007)与操作***JD(operating system JD)(1111)相关;解密后的第一虚拟操作***对称私钥B(1008)与第一虚拟操作***BJD(the first virtual operating system BJD)(1112)相关;第二虚拟操作***私钥N(the second virtual operating system private keyN)(1009)与第二虚拟操作***N_ID(the second virtual operating system N_ID)(1113)相关。
以操作***(120)为例。在操作***(120)从第一计算机(130)被移植到第二计算机(130A)之后,向第二计算机(130A)的注册开始。操作***(120)通过第五安全连接(1342)与服务器计算机(1000)联系,向服务器计算机(1000)提供:用户ID(1005);用户ID(1005)。用户密码(1006);第二计算机(130A)的具有加密解密密钥A-ID的设备(the device-with-encryption-decryption-keyA-ID)(1003A);和操作***JD(Operating system JD)(1111)。
服务器计算机(1000)接收到它们之后,服务器计算机(1000)将执行以下操作:(a)使用数据库表(1000A)与数据库表(1000A)之间的关系(请参见第三双虚线箭头(1303))数据库表(1300);使用数据库表(1300)和数据库表(1310)之间的关系(参见第四双虚线箭头线(1313));还使用数据库表(1000A)和数据库表(1000B)之间的关系(请参见第二双虚线箭头(1101));(b)使用接收到的带有加密-解密-密钥的设备A-ID(1003A)提取第二台计算机(130A)的序列号A(1002A),后者依次提取第二台计算机的加密/解密密钥A(103AB)(130A);(c)使用接收到的操作***JD(1111)的服务器计算机(1000)获取用于操作***(120)的解密的操作***对称私钥(1007);(d)使用所获取的加密/解密密钥A(103AB)的服务器计算机(1000)对已获取的解密的操作***对称私钥(1007)进行加密,以得出加密的操作***私钥,(e)服务器计算机(然后,通过第五安全连接(1342)将加密的操作***私钥返回到第二计算机(130A)处的操作***(120);(f)操作***(120)然后将接收到的加密的操作***专用密钥保存为加密的操作***对称专用密钥E7(1007-EA)。操作***(120)的以上说明也适用于第一虚拟操作***B(120B)和第二虚拟操作***N(120N)。(e)服务器计算机(1000)然后通过第五安全连接(1342)将加密的操作***私钥返回到第二计算机(130A)处的操作***(120);(f)操作***(120)然后将接收到的加密的操作***专用密钥保存为加密的操作***对称专用密钥E7(1007-EA)。操作***(120)的以上说明也适用于第一虚拟操作***B(120B)和第二虚拟操作***N(120N)。(e)服务器计算机(1000)然后通过第五安全连接(1342)将加密的操作***私钥返回到第二计算机(130A)处的操作***(120);(f)操作***(120)然后将接收到的加密的操作***专用密钥保存为加密的操作***对称专用密钥E7(1007-EA)。操作***(120)的以上说明也适用于第一虚拟操作***B(120B)和第二虚拟操作***N(120N)。
在图13A和图13B的布置中,第二计算机(130A)可以使用图13A的布置。如果使用图12A的布置,则根据加密和解密的要求,操作***(120)从具有加密解密密钥的设备A(100AB)中检索加密/解密密钥A(110AB)的副本。解密衍生出解密的操作***对称私钥(1007)的加密操作***对称私钥E7(1007-EA),然后使用解密的操作***对称私钥(1007)加密衍生出数字操作***的软件程序(330)DNA(300),并将数字DNA(300)保存在第二台计算机(130A)的第五台非暂时性计算机存储介质(1230)中,作为唯一的软件版本,解密衍生出软件程序(330)的数字DNA(300),并将软件可执行代码,即非编码软件(310)存储在第二计算机(130A)的随机存取存储器(925)中,以由第二计算机(130A)执行。第二计算机(130A)的中央处理单元(905)。如果图13A的布置与图13B的第二计算机(130A)一起使用,则不需要使用带有加密解密密钥A的设备(100AB),并且将在下面简要说明。
重要的是,注意到图9的硬件适用于包括第一计算机(130),第二计算机(130A),服务器计算机(1000)等在内的所有计算设备。此外,加密和解密用于图3和图4的教导的方法也适用于图12A和图13B的教导。
图10C示出了服务器计算机(1000)处的创建和加密操作***对称私钥的过程。服务器计算机(1000)创建与解密的操作***对称私钥(1007)相同的操作***对称私钥,然后生成操作***对称私钥的可选校验和(1040),该校验和是可选的密钥,该密钥与解密的操作***对称私钥(1007)相同。可选的校验和(1040)将使第一计算机(130)处的操作***(120)能够识别解密的操作***对称私钥(1007)在加密时是否被调整。服务器计算机(1000)使用加密/解密密钥(103)对操作***对称私钥和派生的可选校验和(1040)进行加密(请参见第二十六个单头箭头线(1025))(请参见第二十七个单头箭头线(1030))加密的操作***对称私钥(1007-E)。然后,服务器计算机(1000)通过第一安全链路(1010)将加密的操作***对称私钥(1007-E)传输到第一计算机(130)的操作***(120)。
图10D示出了第一计算机(130)处的处理。在第一计算机(130)的操作***(120)接收到加密的操作***对称私钥(1007-E)之后,操作***(120)将加密的操作***对称私钥(1007-E)存储在第二计算机(130)上。-第一计算机(130)的非暂时性计算机存储介质(350),以供以后使用。图10C示出了在服务器计算机(1000)处执行的操作***对称私钥的加密,并且图10D示出了在第一计算机(130)处执行的加密操作***对称私钥的解密,但是,两者:加密和解密-可以在服务器计算机(1000)上执行,也可以在第一台计算机(130)上执行。
然后,在需要时,第一计算机(130)上的操作***(120)使用使用加密/解密密钥(103)(该密钥是从带有加密解密密钥的设备(100)中提取的,或者是从移动设备(1430)接收的))(请参阅图14),或从服务器计算机(1000)(请参见图13C))解密(请参阅第二十八个单头箭头线(1045)),以得到加密的操作***对称私钥(1007-E)(参见第二十九个单头箭头线(1050))解密的操作***对称私钥(1007)和可选的校验和(1040)。操作***(120)产生校验和,其中解密的操作***对称私钥(1007)得出校验和值,并使用导出的校验和值,验证导出的校验和值是否与解密的可选校验和相匹配。
图11A与图11B有关。如图11A所示,每个虚拟操作***通过安全连接(例如,在网络上或在互联网上)与服务器的主,主操作***通信。第一台计算机(130)。出于示例性的解释,对于主操作***,我们将使用操作***(120),对于虚拟机,我们将使用第一个虚拟机(130B),对于虚拟操作***,我们将使用第一虚拟操作***B(120B)。相同的解释适用于第二虚拟机(130N)和第二虚拟操作***N(120N)。并且该方法可以通过以下两种方式之一实现:
(1)随着第一虚拟机(130B)的启动,第一虚拟操作***B(120B)或在第一虚拟操作***B(120B)的控制下在第一虚拟机(130B)中运行的驱动程序进行连接通过与操作***(120)的第二安全连接(1100)进行加密,并在操作***(120)的控制下请求加密/解密密钥(120-A)的副本。然后,操作***(120)将加密/解密密钥(120-A)的副本返回到在第一虚拟机(130B)中运行的第一虚拟操作***B(120B)。在第一虚拟操作***B(120B)接收到请求的加密/解密密钥副本(120-A)之后,第一虚拟操作***B(120B)对加密的第一虚拟操作***对称私钥B(1008-E)解密,以导出或产生解密的第一虚拟操作***对称私钥B(1008)。然后,第一虚拟操作***B(120B)在安装前,使用解密的第一虚拟操作***对称私钥B(1008)对软件程序(330)进行加密,以导出程序的数字DNA(300)并保存该数字DNA。(300)作为安装在第一计算机(130)上或存储在第一计算机(130)的第二非暂时性计算机存储介质(350)中的软件程序(330)的唯一版本。
(2)随着第一虚拟机(130B)的启动,在第一虚拟机(120B)的控制下,第一虚拟机(120B)或在第一虚拟机(130B)中运行的驱动程序进行连接通过与操作***(120)的第二安全连接(1100),并将加密的第一虚拟操作***对称私钥B(1008-E)发送到操作***(120)。在操作***(120)接收到加密的第一虚拟操作***对称私钥B(1008-E)之后,操作***(120)使用加密/解密密钥(120-A)的副本来解密加密的第一虚拟操作***。***对称私钥B(1008-E)派生或产生解密的第一虚拟操作***对称私钥B(1008)。然后,操作***(120)将解密后的第一虚拟操作***对称私钥B(1008)返回给第一虚拟操作***B(120B)。然后,第一虚拟操作***B(120B)使用解密的第一虚拟操作***对称专用密钥B(1008)在安装时对软件程序(330)进行加密,以得到软件程序(330)的数字DNA(300)。然后,第一虚拟操作***B(120B)将作为软件程序(330)的唯一安装版本的数字DNA(300)保存在第一计算机(130)的第二非暂时性计算机存储介质(350)。然后,第一虚拟操作***B(120B)将在软件程序(330)的运行时根据需要使用解密的第一虚拟操作***对称私钥B(1008)来解密数字DNA(300)。
对第一虚拟机(130B)和第一虚拟操作***B(120B)的相同解释适用于第二虚拟机(130N)和第二虚拟操作***N(120N)。除此之外,第二虚拟操作***N(120N)通过第三安全连接(1105)与操作***(120)进行通信。
图12A示出了另一个优选实施例,其中,三个操作***已经被移植到新计算机,第二计算机(130A)上。一个附加了新的/第二个带有加密解密设备的密钥A(100AB),带有第四个非暂时性计算机存储介质A(104AB),其中存储着值为“9876543210”的新的加密/解密密钥A(103AB)(请参阅第30条单头实线箭头(100B)至第二台计算机(130A)。对于具有加密解密的第一设备密钥(100)的相同解释适用于具有加密解密的第二设备密钥A(100AB),并且为了避免重复将不再赘述。
图12A还示出了由第一虚拟机(130BB)托管的第一虚拟操作***B(120B)和由第二虚拟机(130NN)托管的第二虚拟操作***N(120N),并且两个虚拟机都在第二计算机(130A)的主操作***(例如,操作***(120))的控制。
每个操作***访问锁存器A(111AB)并直接获得加密/解密密钥A(110AB)的副本。操作***(120)访问锁存存储器A(111AB),并通过连接获取加密/解密密钥A(110AB)的副本(请参见第一双箭头线(121)),并使用加密/解密密钥A(110AB)的副本。解密密钥A(110AB)来解密加密的操作***对称私钥E7(1007-EA)。第一虚拟操作***B(120B)访问锁存器A(111AB),并通过连接(1200)获得加密/解密密钥A(110AB)的副本(请参阅第三双箭头线),并使用加密/解密密钥A(110AB)解密加密的第一虚拟操作***对称私钥B8(1008-EA)。
在这种布置中,访问闩锁存储器A(111AB)的每个操作***都有可能已经在带有加密解密设备的密钥A(100AB)之前注册的密钥值(未示出)和一旦在第二台计算机上电或重置(130A)或启动操作***时,操作***将密钥值传递给具有加密解密密钥的设备A(100AB),并且在带有加密解密密钥A的设备(100AB)与它存储的密钥值匹配,然后带有加密解密密钥A的设备(100AB)将加密/解密密钥A(110AB)的副本释放给请求的操作***。如果以这种方式实现,则可能不需要清除加密解密密钥A(100AB)。
重要的是注意到,每次将操作***私钥的提及解释为对称私钥,即:相同的密钥(单密钥)用于加密和解密。另外,图12A和图13B所示的所有操作***以及它们各自的操作***标识和它们各自的加密的操作***对称私钥被永久地存储在第二计算机130A,第五非暂时性计算机存储介质1230中,如图12B和图12C所示。
图12B示出了替代实施例,其中涉及两台计算机:第一计算机(130)创建操作***对称私钥而不是服务器计算机(1000)。在该实施例中,当安装操作***(120)时,第一计算机(130)上的操作***(120)创建操作***对称私钥,该对称私钥与解密的操作***对称私钥(1007)相同,并使用加密/解密密钥(103)加密操作***对称私钥,取得加密的操作***对称私钥(1007-E)。然后,一但在该第一计算机(130)的该操作***(120)被移植(也被指作为发送及传输)至该第二计算机(130A)且被存储于该第二计算机(130A)的所述第五非暂时性计算机存储介质(the fifth non-transitory computer storage medium)(1230).该第二计算机(130A)的该操作***(120)以两种方式的其中一种处理:
(1)第二计算机(130A)的操作***(120)使用加密/解密密钥(103)经由第四安全连接(1220)与第一计算机(130)和第一计算机(130)进行通信)对加密的对称操作***对称私钥(1007-E)进行解密,从而得出解密的操作***对称私钥(1007)。然后,第一计算机(130)经由第四安全连接(1220)将解密的操作***对称私钥(1007)发送到第二计算机(130A)。然后,第二计算机(130A)的操作***(120)使用第二计算机(130A)的加密/解密密钥A(103AB)对操作***对称私钥进行加密,从而得出加密的操作***对称私钥E7(1007-EA)。
(2)第二计算机(130A)的操作***(120)经由第四安全连接(1220)经由第四安全连接(1220)与第一计算机(130)和第一计算机(130)进行通信向第二计算机(130A)发送加密的操作***对称私钥(1007-E)。第二计算机(130A)的操作***(120)使用第二计算机(130A)的加密/解密密钥A(103AB)对加密的操作***对称私钥(1007-E)进行加密,从而得出两次加密的操作***对称私钥键。然后,操作***(120)通过第四安全连接(1220)与第一计算机(130)通信,并将两次加密的操作***对称私钥发送给第一计算机(130)。然后,使用加密/解密密钥(103)的第一台计算机(130)解密两次加密的操作***对称私钥,得出加密的操作***对称私钥E7(1007-EA),然后通过第四台计算机获得第一台计算机(130)安全连接(1220)将加密的操作***对称私钥E7(1007-EA)返回到第二计算机(130A)的操作***(120)。最后,操作***(120)将加密的操作***对称私钥E7(1007-EA)存储在第二计算机(130A)的第五非暂时性计算机存储介质(1230)中。步骤(b)中使用的加密过程可以使用XOR运算(如上文结合图5和图6的说明所解释的那样)或使用将使步骤成为可能的任何其他加密方法来执行。
回顾在步骤(b)发生的情况:当操作***(120)驻留在第一台计算机(130)上时,解密的操作***对称私钥(1007)用加密/解密密钥(103)加密。第一计算机(130)的密码是加密的操作***对称私钥(1007-E)。一旦操作***(120)移植到第二台计算机(130A)并且第二台计算机(130A)的操作***(120)对已经加密的操作***对称密钥(1007-E)进行加密,第二加密过程将得出两次加密的操作***对称私钥。使用两个加密/解密密钥对两次加密的操作***对称私钥进行加密:第一台计算机(130)的加密/解密密钥(103)和第二台计算机(130)的加密/解密密钥。第二计算机(130A)的加密/解密密钥A(103AB)。一旦第一计算机(130)用加密/解密密钥(103)解密了两次加密的操作***对称私钥,第一计算机(130)就简单地从两次加密的操作***对称私钥中删除了其加密/解密密钥(103)。密钥,保留加密的操作***对称私钥E7(1007-EA)。
一旦操作***(120)从第一计算机(130)移植到第二计算机(130A),并且在第二计算机(130A)接收到解密的操作***对称私钥(1007),则新可以将软件程序安装在第二台计算机(130A)中。如果操作***(120)已经接收到加密的操作***对称私钥E7(1007-EA),则操作***(120)继续进行并解密该加密的操作***对称私钥E7(1007-EA),得出解密的操作***对称私钥(1007)。使用解密的操作***对称私钥(1007)的操作***(120)对导出数字DNA(300)的软件程序进行加密。
在替代实施例中,计算机中安装的每个程序将具有唯一的对称私钥。在程序安装时,操作***为正在安装的程序创建唯一的程序对称私钥。然后,操作***使用唯一的程序对称私钥对导出该程序唯一的数字DNA的程序进行加密(即,唯一的程序数字DNA),然后安装唯一的程序数字DNA作为唯一安装的程序。程序在计算机的非临时性计算机存储介质中的副本。
然后操作***使用计算机的加密/解密密钥对唯一程序对称私钥进行加密,从而得出加密的唯一程序对称私钥。然后,操作***将加密的唯一程序对称私钥与该程序相关联,并将加密的唯一程序对称私钥保存在计算机的非临时性计算机存储介质中。加密的唯一程序对称私钥优选地被保存在与安装的非编码软件(310)相关联的可选报头识别码(320)中。在可选实施例中,操作***可以使用其操作***对称私钥对程序对称私钥进行加密和解密。
当操作***接收到执行程序的唯一程序数字DNA的请求时,操作***使用计算机的加密/解密密钥对加密的唯一程序对称私钥进行解密,从而得到解密的唯一程序对称私钥。然后,操作***使用解密后的唯一程序对称私钥对唯一程序数字DNA进行解密,以导出要执行的程序代码。用于解释操作***对称私钥的相同解释也适用于唯一程序对称私钥。
该实施例是重要的,并且在将程序用于一台计算机(即,第二台计算机)托管该程序但对程序执行的请求到达另一台计算机(即,第一台计算机)。并且通过具有其唯一程序对称私钥的每个程序,一旦执行该程序的请求到达第一计算机,并且第一计算机请求并从第二计算机接收该程序和唯一程序对称私钥,则第一台计算机将能够解密加密程序的数字DNA并执行程序的数字DNA,而不会影响安全性。
图12C示出了刚刚描述的替代实施例。在程序A(未示出)在第二计算机(130A)上的安装时间。第二计算机(130A)创建程序对称私钥(1075)。然后,第二计算机(130A)使用程序对称私钥(1075)(对程序A对称且唯一)(未示出),对程序A(未示出)进行加密以得到程序数字DNA(1152)。
使用加密/解密密钥A(103AB)的第二计算机(130A)对程序对称私钥(1075)进行加密,从而得出加密的程序对称私钥(1075E)。然后,第二计算机(130A)在其第五非暂时性计算机存储介质(1230)上存储程序数字DNA(1152)和加密的程序对称私钥(1075E)。
当执行程序数字DNA的请求(1152)到达第一计算机(130)的操作***(120)时,第一计算机(130)通过第四安全连接(1220)请求程序-第二计算机(130A)的数字DNA(1152)。然后,第二计算机(130A)通过第四安全连接(1220)将程序对称私钥(1075)和程序数字DNA(1152)返回给第一计算机(130)。一旦第一计算机(130)的操作***(120)接收到程序对称私钥(1075)和程序数字DNA(1152),第一计算机(130)的操作***(120)就使用其加密/解密密钥(103)对程序对称私钥(1075)进行加密,从而得出加密程序B对称专用密钥(1075E2)。然后,操作***(120)将加密的程序B对称专用密钥(1075E2)和程序数字DNA(1152)保存在第一计算机(130)第二非临时计算机存储介质(350)中。第一计算机(130)的操作***(120)进行并使用程序对称专用密钥(1075)在程序数字DNA(1152)的运行时根据需要解密程序数字DNA(1152)。
在另一个实施例中,一旦第一计算机(130)的操作***(120)从第二计算机(130A)请求程序数字DNA(1152),第二计算机(130A)便通过第四安全连接(1220)将程序数字DNA(1152)和加密程序B对称专用密钥(1075E)返回到第一计算机(130)的操作***(120)。一旦第一计算机(130)的操作***(120)从第二计算机(130A)接收到程序数字DNA(1152)和加密程序B对称专用密钥(1075E),则第一计算机(120)的操作***(120)130)用第一计算机(130)的加密/解密密钥(103)加密加密程序B对称专用密钥(1075E),以得到两次加密的程序对称私有密钥。并且第一计算机(130)的操作***(120)经由第四安全连接(1220)将两次加密的程序对称私钥发送给第二计算机(130A)。一旦第二计算机(130A)从第一计算机(130)接收到两次加密的程序对称私钥,第二计算机(130A)使用其加密/解密密钥A(103AB)对两次加密的程序对称私钥进行解密,得到加密的程序对称私钥(1075E2)。然后,第二计算机(130A)通过第四安全连接(1220)将加密的程序对称私钥(1075E2)发送到第一计算机(130)。
已经提到第二计算机(130A)而不提及操作***,但是众所周知,没有操作***,第二计算机(130A)将不起作用。此外,值得一提的是,图9的教导覆盖第二计算机(130A)和任何计算设备,并且图9的教导示出了操作***(120)。如果在第二计算机(130A)与程序数字DNA(1152)一起发送加密的程序对称私钥(1075E)的情况下实现此替代实施例,则不必一定要使用第四安全连接(1220)因为第一计算机(130)和第二计算机(130A)之间的所有传输都是加密数据,所以如果没有拦截,则不可能解密。
每当提到“操作***对称私钥”时,都应广义地解释为也包括“程序对称私钥”。而且,在使用“程序对称私钥”的任何时候,都应广义地解释为也包括“操作***对称私钥”。如已经说明的那样,两者都是从次级对称加密解密密钥派生的,因此,两者在功能上都是相似的。由于用于两者的机制涉及相同的加密/解密步骤,唯一的变化是对称私钥的使用方式。操作***对称私钥由操作***在操作***的控制下用于所有程序。虽然程序对称私钥是该程序唯一的,
通过每个具有自己的对称私钥的程序,将使程序能够在云环境中的计算机周围移动,而无需公开操作***对称私钥。也可以想象每个程序都有一个对称私钥,并且承载程序的操作***也具有其自己的操作***对称私钥。并且,如果以这种方式实现,则操作***将使用其操作***对称私有密钥在操作***的控制下加密每个程序对称私有密钥。
仅用于实现某些优选的实施方式
该软件装置非常适合于保护服务器计算机,膝上型计算机或任何种类的可移动移动设备,而无需购买具有加密/解密密钥的物理设备。在这种布置中,具有加密解密密钥的设备被在移动设备或非移动计算机(例如,服务器计算机)中实现的软件代替。从而节省了获取和安装带有加密/解密密钥的设备的时间,同时节省了制造,运输和分配的费用。为了讨论的简单,申请人参考图1的实施例的移动设备(1430)。图14的实施例与图13B的实施例的服务器计算机(1000)和服务器计算机(1000)相关联,并且意图将讨论解释为适当时也适用于移动和非移动设备。
图13B的优选实施例进一步示出了在第二计算机(130A)上不需要具有加密解密密钥A的设备(100AB)(也称为DEDK)的环境中的一些实施例的使用或第一台计算机(130)-仅软件实现,而不是硬件和软件。服务器计算机(1000)具有与第一计算机(130)的带有加密解密密钥的设备(100)和用于第一计算机(130)的带有加密解密密钥的设备A(100AB)相同的目的。第二台计算机(130A)。
然后,服务器计算机(1000)通过相同的安全连接将到请求操作***的加密/解密密钥A(103AB)返回到请求操作***。并且,一旦发出请求的操作***接收到加密/解密密钥A(103AB),接收方操作***便对其加密的操作***对称私钥进行解密,从而得出其各自的解密的操作***私钥:即,操作***(120)对其加密的操作***进行解密对称私钥(1007-EA)派生其解密的操作***对称私钥(1007);第一虚拟操作***B(120B)对其加密的第一虚拟操作***对称私有密钥B(1008-EA)进行解密,从而得出其解密的第一虚拟操作***对称私有密钥B(1008);和,第二虚拟操作***N(120N)解密其加密的第二虚拟操作***对称私钥N(1009-EA),以得出其第二虚拟操作***私钥N(1009)。然后,每个操作***在安装时都使用其解密的操作***对称私钥来加密软件程序(330),并在运行时解密该软件代码。
在优选实施例的仅软件实现的该实施例中,服务器计算机(1000)成为具有加密解密密钥A的设备(100AB);序列号A(1002A)表示第二计算机(130A)。
图14同样地图13B示出了替代实施例,用于实现相同病毒保护的方法仅通过使用软件而不是软件和硬件的组合来实现。在这种布置中,移动计算机或非移动计算机都持有软件应用程序,并且要保护的计算机(即客户端计算机)也持有软件应用程序。第一计算机(130)中的软件应用优选地在其中执行可执行代码的加密,并因此用作软件驱动(935)。
图14与图2A,图9,图10B,图11A,图12A和图13B一致,并且其示出了另一实施例,该实施例使得能够利用仅使用软件,即不使用物理硬件设备(例如,具有加密解密密钥的设备(100))。用户的移动设备(1430)成为带有加密解密密钥的设备(100)。服务器计算机(1000)通过第八安全连接与移动设备(1430)通信(1460)。服务器计算机(1000)还通过第九安全连接(1470)与用户的第一计算机(130)通信。移动设备(1430)通过诸如蓝牙连接(1450)的无线连接与第一计算机(130)通信。
用户访问服务器计算机(1000)并通过第八安全连接(1460)从服务器计算机(1000)的数据库表(1000A)中获得新的应用程序(1409),该应用程序成为软件应用程序(1440)在移动设备中(1430)。用户还从服务器计算机(1000)上的数据库表(1000A)下载可选的软件驱动程序(1001)到第一计算机(130)中,并且它成为第一计算机(130)上的软件驱动程序(935)。在讨论图10A时,数据库表(1000A)与制造商的服务器计算机(1000)中的数据库表(1000A)相同,并且添加了一些新的项目/字段。缺少序列号(1002),因为在本实施例的仅软件实现中没有物理设备。代替序列号(1002),移动设备的ID。
用户向服务器计算机(1000)注册软件应用程序(1440),向服务器计算机(1000)提供用户ID(1005)和用户密码(1006)。服务器计算机(1000)将用户的ID(1005)和用户的密码(1006)保存到其数据库表(1000A)中。
然后,服务器计算机(1000)创建移动设备JD(1407),加密/解密密钥(103)和对称的私有密钥M(1408),对称的私有密钥M(1408)用于加密和解密,然后保存它们在服务器计算机(1000)的数据库表(1000A)中。移动设备JD(1407)用于识别充当具有加密解密密钥的设备(100)的设备。移动设备JD(1407)具有与用于识别物理设备的序列号(1002)相同的目的,即,具有加密解密密钥的设备(100)。
在“对称密钥”中或其变体中的术语“对称”,例如在“对称私钥模式”中,是本领域中众所周知的术语,并且用于表示使用单个加密密钥加密和解密。
相反,在非对称加密方案(也称为公共密钥加密)中,需要两个密钥:私有密钥和公共密钥。消息发件人使用私钥对消息进行加密;希望解密使用私钥加密的消息的任何人都可以使用公钥。
在本文公开的设备和方法的优选实施例中,使用设备对称私钥方案。这意味着优选地,相同的密钥被用于对产生加密的软件程序的原始软件程序进行加密,以及对加密的软件程序进行解密以再现原始软件程序。
在图14中,使用对称私钥M(1408)的服务器计算机(1000)对加密/解密密钥(103)进行加密,从而产生加密/原始加密/解密密钥。
然后,服务器计算机(1000)通过第八安全连接(1460)将移动设备JD(mobiledevice JD)(1407)和已加密的加密/解密密钥(103)发送到移动设备(1430)。在接收之后,移动设备(1430)将接收到的加密/解密密钥另存为加密原始加密/解密密钥(1404A),并且将接收到的移JD(mobileJD)(1407)作为移动设备ID的第一副本(first-copy-of mobile-device_ID)(1407A),在移动设备(1430)非临时性介质(未示出)的一文件(1400B)。
用户通过软件驱动(935)使用第一台计算机(130)(软件驱动也可以是从服务器计算机(1000)下载的单独的软件应用程序,例如新应用程序(1409)或类似的东西。为简单起见,将使用软件驱动程序)提供用户的ID(1005),用户的密码(1006)和该移动设备ID的第一副本(the-copy-of-mobile-device_ID)(1407A),以及第一台计算机(130)日志通过第九安全连接(1470)进入服务器计算机(1000)。服务器计算机(1000)在接收到从第一台计算机(130)发送的信息之后,创建具有加密解密密钥ID的设备(1003),并将其与移动设备JD相关联(1407),然后保存该具有加密解密密钥ID设备(device-with-encryption-decryption-key-ID)(1003)在该设备-数据库表(1000A)。
然后,该服务器计算机(1000)经由第九安全连接(1470)将具有加密解密密钥ID的设备(1003)和加密/解密密钥(103)发送到第一计算机(130)。加密/解密密钥(103)在随后的步骤中用于解密加密的原始加密/解密密钥(the encrypted-original-encryption/decryption-key)(1404A)。
并且,一旦第一计算机(130)从服务器计算机(1000)接收到它们,则第一计算机(130)将文件或数据库表(1400A)保存在第二非暂时性计算机存储介质(350)中第一计算机(130):接收到的该移动设备ID的第一副本(1407A)作为该移动设备ID的第二副本(second-copy-of-mobile-device_ID)(1407AM);接收的加密/解密密钥(103)作为加密/解密密钥的副本(103AM);并且将接收到的带有加密解密密钥ID的设备(1003)作为带有加密解密密钥ID的设备的副本(1003AM)。
之后,第一计算机(130)和移动设备(1430)与服务器计算机(1000)通信并向其注册,然后移动设备(1430)和第一计算机(130)准备通过通信链路(例如,蓝牙连接(1450))彼此通信。移动设备(1430)上的用户在第一计算机(130)上启动软件应用(1440)和软件驱动(935)。然后,第一计算机(130)和移动设备(1430)使用通信链路(例如,蓝牙连接)通过软件应用(1440)和软件驱动(935)进行通信。通信链接,例如蓝牙连接(1450),可以是任何类型的链接:有线或无线。
然后,用户将移动设备的第一副本ID(1407A)输入到移动设备(1430)中,或者软件应用程序(1440)可以将其呈现给用户选择。然后,移动设备(1430)通过蓝牙连接(1450)将该移动设备的第一副本ID(1407A)和加密的原始加密/解密密钥(1404A)发送到第一计算机(130)。
一旦第一计算机(130)从移动设备(1430)接收了移动设备的第一副本ID(1407A)和加密的原始加密/解密密钥(1404A),第一计算机(1304A)130)将接收到的第一份移动设备ID(1407A)与第二份非暂时性计算机存储介质(350)中存储的第二份移动设备ID(1407AM)进行比较。第一台计算机(130),如果匹配,则第一台计算机(130)执行以下操作:
1)将确认发送回客户端设备,即移动设备(1430),并且一旦移动设备(1430)接收到确认,它就结束与第一计算机(130)的通信。
2)解密接收到的加密原始加密/解密密钥(1404A)具有加密/解密密钥的副本(103AM)取得一解密的对称私钥M(decrypted symmetric private keyM)(1408)。
3)在安装新的软件以产生数字DNA(300)时,使用解密的对称私钥M(1408)对任何新软件进行加密,然后将数字DNA(300)保存在该第一计算机(130)的该第二个非暂时性计算机存储介质(350)作为唯一安装的软件副本,在其执行之前解密第一计算机(130)的数字DNA(300)。
如果移动设备发生任何事情(1430),使得加密的原始加密/解密密钥(1404A)不可用,或者如果需要加密的原始加密/解密密钥(1404A),另一个移动设备,则最好实现以下事件序列:
1)用户使用提供用户ID的第一计算机(130)登录(1005)和用户密码(1006)。
2)第一计算机(130)向用户提供移动设备的第二副本ID(1407AM)。
3)用户在新的移动设备中安装新的应用程序,通过新的应用程序将新的移动设备连接到服务器计算机(1000),并通过第八安全连接(1460)提供到服务器计算机(1000)用户ID(1005),用户密码(1006)和移动设备ID(1407),该移动设备JD是从第一计算机(130)接收的该移动设备ID的该第二副本(1407AM)的副本。
4)服务器计算机(1000)利用对称私钥M(1408)对加密/解密密钥(103)进行加密,该对称专用密钥M(1408)导出加密的加密/解密密钥。
5)然后,服务器计算机(1000)经由第八安全连接(1460)将加密的加密/解密密钥发送到新的移动设备。
6)然后,新的移动设备将加密的文件与移动设备JD(1407)加密/解密密钥,并将加密的加密/解密密钥另存为加密原始加密/解密密钥(1404A),移动设备JD(1407)保存为移动设备JD的第一副本(1407A)在新的移动设备的非临时存储中。
7)其后,新的移动设备将能够如先前那样例如使用蓝牙连接(1450)与第一计算机(130)进行通信。
如果实施例在移动设备(1430)上实现,并且第一计算机(130)没有无线或蓝牙连接(1450),则可以采用通用串行总线设备***第一计算机(130),并用于在第一计算机(130)和移动设备(1430)之间进行通信。或者,移动设备(1430)和第一计算机(130)可以通过服务器计算机(1000),有线或无线连接进行通信。
已经示出了移动设备和客户端,但是可以在两个移动设备之间,或者在两个客户端之间,或者在两个服务器之间来实现它。只要任何类型的两个计算设备都能通信,它就可以通信。
如果第一计算机(130)托管一个或多个虚拟机托管一个或多个虚拟操作***,则图13B的说明也适用于图14。在这样的实施方式中,每个虚拟操作***从移动设备(1430)请求并接收加密/解密密钥的副本(103AM),并使用它来对加密的虚拟操作***对称私钥进行解密,从而得到解密的虚拟操作***。对称私钥,用于加密和解密虚拟操作***托管的代码。
代码注入型黑客
除了大量的计算机文件形式的病毒之外,黑客在其武器库中还具有另一种破坏性的黑客方法,即将代码注入服务器的运行进程中。代码注入也可以在用户的客户端计算机中完成,但是本公开的重点与服务器计算机有关,但是仍然可以影响客户端计算机。
图15示出了当今普遍使用的远程代码注入黑客的方法。黑客客户端(1500)的黑客使用黑客-服务器-访问-连接(1515)(请参见第五双箭头线)访问服务器(1510)并尝试发现任何软件中的缺陷,即运行进程(1545),在服务器(1510)上运行或服务器(1510)中可能存在的任何硬件缺陷。
的在该黑客客户端(1500)的黑客运行客户端软件(1530),同时通过黑客服务器接入连接(hacker-server-access-connection)(1515)(请参见第五个双箭头线,该黑客服务器接入连接(1515))和该服务器(1510),充当服务器(1510)的窗口(1525)。一旦发现服务器(1510)中的缺陷,黑客就将黑客代码(1550)从该窗口(1525)发送到服务器(1510)上正在运行的进程(1545)(请参阅第一个虚线单头箭头线)(1527))。此过程称为:代码注入。一旦使用终端软件的黑客(1530)进入服务器(1510),黑客就可以随意采取任何行动,并且在大多数情况下,可以这样做,而不会在受感染的服务器(1510)中留下任何痕迹。
黑客将可执行代码,即黑客的代码(1550)注入受感染的计算机(例如服务器(1510))中的手段是黑客访问服务器(1510)上正在运行的进程(1545)。黑客的代码(1550)通常与运行进程(1545)的格式相同,并且服务器(1510)和中央处理单元上的操作***无法区分随机存取存储器中的这两个代码服务器(1510)。因此,将两者都当作是服务器(1510)上运行的运行中进程(1545)的本机预期代码来执行。
现有技术的代码执行
计算机理解电子信号,并且以低信号(其为零“0”)和高信号(其为一个“1”)的形式表示。在计算机的中央处理单元处理由计算机程序员编写的格式的程序代码之前,将对程序代码进行编译,并将程序代码的每条指令转换为计算机可以理解的格式:零和一。零和一也可以转换为等效的十六进制格式。以下说明采用十六进制格式。
十六进制格式是使用十六位数格式转换值的形式,我们之前已经讨论过的半字节。例如,人类使用十进制,因为我们手中有十个手指,因此使用基数十进制是合适的。由于计算机仅使用零和一,因此使用二进制***。
但是如前所述,计算机体系结构处理以2为底的零和一。值以1开头,然后1乘以2(以2为底),变成4。四乘以二,变成八。八乘以二变成十六,代表半字节。一个字节有“8”位,代表“0-255”的十进制值。
十六进制格式表示半字节值,并且从“0-9”开始表示十进制值“0-9”。从“10-16”开始的十进制等效值表示如下:“A=10”,“B=11”,“C=12”,“D=13”,“E=14”和“F=15”。因此,从“0”到“15”的数字是“16”(十六进制)。
十六进制表示仍然不是二进制表示,但是它是使程序员能够解释计算机存储器中的基础二进制值是什么的表示。
作为示例,“EF”的十六进制值是“239”的等效十进制值。十六进制值“EF”的转换:“E=14-十进制”和“14=1 no-二进制”;“F=15-十进制”和“15=1111-二进制”。因此,十六进制值变为二进制值:“11101111”,即“239”的值。十六进制值“EF”成为存储在计算机内存中并由计算机中央处理单元执行的二进制值“11101111”。我们将使用十六进制值,但是应该理解,计算机的随机存取存储器中存储的是它的二进制等效值。
图16示出了服务器(1510)中的随机存取存储器中的示例代码。具有等效代码(1600)的运行过程(1545)。并且黑客的代码(1550)具有等同于黑客的代码(1610)。运行过程的代码等效物(1600)和黑客的代码等效物(1610)是服务器(1510)的中央处理单元正在使用/执行的计算机可执行代码。等价代码(1600)表示由服务器(1510)的中央处理单元执行的运行过程(1545)的实际计算机代码。等同于黑客的代码(1610)代表黑客的代码(1550),也代表由服务器的中央处理单元执行的实际计算机代码(1510)
如图所示,正在运行的进程(1545)的等效代码(1600)的格式与针对黑客的代码(1550)等效的黑客代码(1610)的代码格式。服务器的中央处理单元(1510)不会将预期的等效代码(1600)与好的代码与非预期的代码(黑客的等效代码(1610))区分开,因此,服务器的中央处理单元(1510)两者都执行。加密随机访问存储器数据。
图17示出了使用本文公开的优选方法来执行存储在计算机的随机存取存储器中的加密代码和数据的执行。如上面关于图16所解释的,运行过程(1545)具有等价的代码(1600),黑客的代码(1550)具有等价的代码(1610)。用解密的操作***对称私钥(1007)加密等效代码(1600),从而产生加密代码(1710)。加密代码(1710)成为与运行过程(1545)等效的新代码,其被存储到服务器(1510)的随机存取存储器(925)中,以由服务器(1510)的中央处理单元(905)执行。
加密/解密密钥(103)的每个字节用于对运行过程(1545)的等效代码(1600)的一个字节进行加密(例如,通过在本示例中进行XOR运算),从而产生一个字节的加密代码(1710)存储在服务器(1510)的随机存取存储器(925)中。加密代码(1710)成为与运行过程(1545)等效的新加密代码。如图所示,黑客的代码(1550)按原样存储而没有任何加密,因为黑客无法访问解密的操作***对称私钥(1007)。
从随机访问存储器中执行加密的代码
当停止将代码注入到在第一计算机(130)的随机存取存储器(925)中运行的进程(例如程序)中时,操作***(120)的功能可以不同于已经解释的用于停止病毒感染的功能软件程序(330)。
如已经说明的,在应用用于阻止非编码软件(310)的病毒感染的优选方法,该操作***(120)解密加密的软件文件(例如,数字DNA(300))并存储解密的版本,该未编码的软件(310)被存储到第一计算机(130)的随机存取存储器(925)中。该第一计算机(130)的提及将被解释为覆盖该第二计算机(130A),该服务器(1510)或任何计算设备。
为了提供更严格的计算机保护,优选的方法必须防止将黑客的代码(1550)注入到第一计算机(130)的随机存取存储器(925)中的运行进程中。
代替操作***(120)解密加密的软件程序,即数字DNA(300),并将未编码的软件(310)存储在第一计算机(130)的随机存取存储器(925)中),则操作***(120)解密可选标头识别码(320),如果有效,例如包含短语“验证的DNA(VALIDATED DNA)”,则操作***(120)删除可选标头识别码-密码(320)并将加密版本软件文件代码数字DNA(300)存储到第一计算机(130)的随机存取存储器(925)中。
图18示出了该优选方法,其中中央处理单元(905)与随机存取存储器辅助(952)协同工作,以处理存储在第一计算机(130)的随机存取存储器(925)中的加密代码。中央处理单元(905)的地址总线(1850),数据总线(1806)和读/写线(1805)连接到随机存取存储器辅助装置(952)。每当中央处理单元(905)需要用于处理的代码(例如,数据),或执行的代码(例如,计算机指令代码)或要存储在随机存取存储器(925)中的数据时,中央处理单元(905)在读/写线上设置信号(1805)。在我们的示例性说明中,如果读/写线(1805)的值为“0”,则表示从随机存取存储器(925)读取,如果读/写线的值为“1”,则为高。
中央处理单元(905)将读/写线(1805)设置为表示读取的“0”,并且还将值放置在地址总线(1850)上,以指示随机存取存储器(925)中的位置,该中央处理单元(905)意图读取。随机存取存储器辅助装置(952)处理并计算解密的操作***对称私钥(1007)的哪个字节值将用于解密由中央处理单元(905)寻址的值的随机存取存储器(925)中的加密存储字节已被放置地址总线(1850)。
使用加密密钥对加密的连续字符串进行加密和解密是容易的。首先,将字符串的第一个字节值从加密字符串的第一个字节到最后一个字节,对要加密/解密的字符串字节逐个应用加密密钥的第一个值,然后从从加密密钥的开始一直到结束,直到整个字符串都被加密/解密为止。例如,要加密的字符串“1234”,加密密钥“12”。在第一遍,要用加密密钥的字节“12”对要加密的字符串的字节“12”进行加密。在第二遍,用加密字符串的字节“12”对要加密的字符串的字节“34”进行加密。
但是,对存储在第一计算机(130)的随机存取存储器(925)的随机位置中的数据字节进行加密和解密需要复杂的算法,以识别加密密钥的哪个字节用于加密和解密精确的存储字节由中央处理单元(905)寻址的位置。该算法的解释如下。
随机存取存储器辅助装置(952)在地址总线线路(1850)的值与得出该系数值的解密的操作***对称私钥(1007)的长度之间取模(例如,随机存取存储器)地址总线上的地址(1850)解密的操作***对称私钥(1007)的MOD长度。然后,将'T的值与所导出的模量值相加,从而得出求和值。然后,使用相加后的值指向解密的操作***对称私钥的位置(1007)。使用所解密的操作***对称私钥(1007)的各个值,其中派生的求和值已指向该对称私钥(1007),以解密由中央地址总线(1850)寻址的随机存取存储器(925)的位置字节值处理单元(905)。
如果假设由中央处理单元(905)寻址的随机存取存储器(925)的位置是第一位置,则位置零(二进制***从代表第一位置的零开始)与“6A”的加密值。随机存取存储器辅助设备(952)取解密后的操作***对称私钥(1007)的长度为“4”和位置地址为“0”之间的模数,模数操作数结果将为“0”(零)(0 mod 4=0),并将的值加到导出的模量结果(0+1=1)。然后,将已解密的操作***对称私钥(1007)的值“C4”的第一个字节用于XOR(可以使用任何其他加密方案)操作以解密(请参见第三十秒单头箭头(1820))得出解密值的值“6A”(请参阅第十三条单向箭头线(1830))。然后,随机存取存储器辅助装置(952)使用数据总线(1806)将解密后的值“AE”返回到中央处理单元(905),并且中央处理单元(905)执行指令值“AE”(1855)。)。
接下来,中央处理单元(905)请求位置“1”处的下一个字节,该位置代表第一计算机(130)的随机存取存储器(925)中的第二位置。然后,随机存取存储器辅助设备(952)在字节位置“1”和解密的操作***对称私钥(1007)长度之间取一个模数,该模数为“4”,从而得出模数值“′I”(1 mod 4=1)然后将的值与导出的模量值相加,得出“2”的总模量值(1+1=2)。然后,随机存取存储器辅助设备(952)使用解密的操作***对称私钥(1007)的第二个字节“DA”,并在XOR操作中(请参阅第34个单头箭头线(1825))对字节进行解密-得出解密值的字节存储位置“2”的值“18”(请参阅第三十五个单向箭头线(1835年))。然后,随机存取存储器辅助装置(952)使用数据总线线路(1806)将所导出的解密后的“C2”的值返回至中央处理单元(905)。
优选地,随机存取存储器辅助设备(952)具有到第一计算机(130)的随机存取存储器(925)的直接访问连接(参见第二双箭头线(953)),并且还具有直接访问(请参阅第二个单向箭头线(954))到解密的操作***对称私钥(1007)的副本。中央处理单元(905)还具有对解密的操作***对称私钥(1007)的直接访问(参见第二十三条单头箭头线(906))。在这种安排下,中央处理单元(905)将能够读取解密的操作***对称私钥(1007),并对存储在第一台计算机(130)的随机存取存储器(925)中的加密数字DNA(300)进行解密),并根据需要进行任何加密,以保存到随机存取存储器中(925)。此外,在这种布置中,中央处理单元(905)可以与操作***(120)或软件驱动(935)结合工作,以按照一个和/或另一个的请求执行加密和解密。
如果这样实现,则在中央处理单元(905)访问解密的操作***对称私钥(1007)并使用解密的操作***对称私钥(1007)进行加密和解密的情况下,中央处理器步骤(905)将执行针对随机存取存储器辅助(952)所述的模运算。然后,因为中央处理单元(905)执行与随机存取存储器辅助装置(952)相同的功能,所以将不需要随机存取存储器辅助装置(952)。另外,可选地,与中央处理单元(905)一起工作的单元可以使用宏操作***(955)或任何嵌入式软件来执行算法和加密/解密。
随机存取存储器辅助器(952)也可以用于加密/***文件也可以导出数字DNA。
随机存取存储器辅助器(952)和中央处理单元(905)可以集成到单个单元中。
还可以在中央处理单元(905)具有包括集成到其中的随机存取存储器辅助(952)的智能随机存取存储器控制器的情况下实现。
从随机访问存储器中执行注入的代码
图19示出了一旦将未加密的黑客的代码(1550)(例如,表示为等同于黑客的代码(1610))注入随机访问存储器(925),将会发生什么。由于随机访问存储器辅助装置(952)的行为是在将其返回到中央处理单元(905)之前,先从随机访问存储器(925)解密数字DNA代码(也称为加密程序代码)。为了执行等效的黑客代码(1610),到达第一台计算机(130)的中央处理单元(905),并且随机存取存储器辅助设备(952)到达了该计算机,
一旦中央处理单元(905)尝试并且未能执行垃圾黑客代码(1900),则中央处理单元(905)禁用随机存取存储器(925中的垃圾黑客代码(1900))。产生中断错误。操作***(120)向用户产生错误,从而结束了混乱的黑客代码(1900)的执行,从而防止了打算由黑客的代码(1550)实施的动作。可替代地,可以在没有随机存取存储器辅助的情况下执行该操作(952)。可以使用在随机存取存储器(925)上运行的软件驱动(935)来执行与执行加密/解密密钥(103)的长度和随机存取存储器的预期位置地址的模运算相同的功能。(925)然后使用从加密/解密密钥(103)检索到的字节对来自随机存取存储器(925)的软件代码进行加密/解密。或者,也可以使用宏操作***(955)(见图9)(如果存在)来执行模数运算和/或对中央处理单元进行数据和/或可执行程序代码的加密/解密。905),从而提高了第一计算机(130)的运行速度。宏操作***(955)可以由随机存取存储器(925)执行,或由一独立的处理单元与该中央处理单元(905)协同工作。
现有技术的操作***加载
图20示出了一旦计算机首次开启,就如本领域中当前执行的那样加载操作***。基本上有两种加载操作***的方法。在第一种方法中,在计算机加电时,固化的基本输入/输出***(ROM-BIOS)(2030)将存储在计算机硬盘(2020)中的操作***加载到随机存取存储器中,以供执行。
在第二种方法中,计算机通过***附件(例如,装有操作***的光盘或软件狗(2000))启动。当启动时将光盘或软件狗(2000)连接到计算机时,ROM-BIOS(2030)首先访问加密狗(2000),并确定操作***是否存在并正确配置了操作***。加密狗(2000)。如果操作***存在于光盘或加密狗(2000)中并且已正确配置,则在计算机启动时,ROM-BIOS(2030)从光盘或加密狗(2000)加载操作***并进行存储用于在计算机的随机存取存储器中执行。
现有技术从加密狗(2000)加载操作***的明显缺点是,一旦将操作***加载到随机存取存储器中,光盘或加密狗(2000)上就会存在任何计算机病毒。,将与操作***一起自动加载到随机存取存储器中的计算机中。一旦到达那里,计算机病毒就会继续传播并感染计算机。一旦此类病毒感染了计算机硬盘(2020)上的操作***,就可以在执行操作***之前先执行该病毒。基本上,当这种情况发生时,病毒会在计算机硬盘(2020)中的操作***加载之前就控制了计算机。
操作***加载
图21示出了使用本文公开的新方法来加载操作***的优选实施例。连接的加密狗具有第一开关(2105),如果闭合,则该第一开关指示基本输入/输出***(2130)加载存储在加密狗的第三非暂时性计算机存储介质中的操作***。第二非暂时性计算机存储介质(350)上的操作***还具有第二开关(2135),如果关闭,则该开关指示基本输入/输出***(2130)来加载存储在第一计算机(130)的第二非暂时性计算机存储介质(350)中的操作***。
根据图21中的图示,第一开关(2105)关闭(如,断开),第二开关(2135)接通(如,闭合)。在该图示中,使用加密/解密密钥(103)的基本输入/输出***(2130)从第二非暂时性计算机存储介质(350)读取加密的操作***(120-E)并使用加密/解密密钥(103)对加密的操作***对称私钥(1007-E)进行解密,得出解密的操作***对称私钥(1007),然后使用解密的操作***对称私钥(1007)对加密的操作***(120)进行解密-E)导出操作***(120),然后将已经解密以执行的操作***(120)存储在第一计算机(130)的随机存取存储器(925)中。
在替代实施例中,基本输入/输出***(2130)将加密的操作***(120-E)加载到第一计算机(130)的随机存取存储器(925)中。然后,一旦指示中央处理单元(905)执行加密的操作***(120-E),则使用加密/解密密钥的基本输入/输出***(2130)(或随机存取存储器辅助(952))(103)解密导出的操作***对称私钥(1007-E)的加密的操作***对称密钥(1007-E),然后使用解密的操作***对称私钥(1007)进行加密的操作***(120)的解密-E)使用与模数相同的机制,如上面关于图18的讨论中所解释的。可替代地,基本输入/输出***(2130)将加密的操作***加载到随机存取存储器(925)中,并且解密由随机存取存储器辅助装置(952)执行,如以上关于图18的讨论中所解释的。
图22示出了本文公开的新方法的优选实施例,一旦第一开关(2105)被接通,则将加密狗连接到基本输入/输出***(2130)并且第二开关(2135)被断开,从第二非暂时性计算机存储介质(350)断开加密的操作***(120-E)的加载能力。在这种布置中,基本输入/输出***(2130)关闭/断开具有加密解密密钥的设备(100)与计算机的连接。
有两种方式来实现对加密狗的基本输入/输出***(2130)的处理。可以实现第一种方式,使得基本输入/输出***(2130)不允许加载存储在第三非暂时性计算机存储介质(2100)中的操作***。
以第二种方式,基本输入/输出***(2130)允许将存储在加密狗的第三非暂时性计算机存储介质(2100)中的操作***加载到加密狗的随机存取存储器(925)中。第一台计算机(130)。
如果实现了第二种方式,并且如果加密狗恰好被计算机病毒感染,并且如果计算机病毒感染了计算机,则如上所述,一旦计算机加电,就会加载操作***图21。由于未加密,因此该病毒将被禁用。如果计算机病毒恰好是操作***感染者,并且感染了存储在第一计算机(130)的第二非临时计算机存储介质(350)中的操作***(120),则一旦第一计算机(130)被以图10的布置重新开始。21岁该计算机病毒将被禁用,因为存储在第一台计算机(130)的第二个非临时性计算机存储介质(350)中的加密操作***(120-E)已加密,并且操作***加载程序软件例程将正常运行,因为它会被基本输入/输出***解密(2130)。然后这将导致感染病毒代码被禁用,因为感染病毒代码缺乏加密,并且一旦基本输入/输出***(2130)对其进行解密,它就变得乱码。
优选地,第一开关(2105)或第二开关(2135)一次仅闭合一个开关:如果一个闭合,则另一个闭合。在优选实施例中,两个开关不同时闭合或断开。可能使用单个开关(如果打开)加载一个操作***,如果关闭,则加载另一个操作***。
已经示出了加密狗,但是它可以是光盘读取器中的光盘或连接到计算机并且可由基本输入/输出***访问的任何其他插件设备。
另外,存储在第一计算机(130)的第二非临时计算机存储介质(350)中的加密操作***(120-E)通常是主操作***,加密狗上的附加操作***是通常是辅助操作***。
第一开关(2105)和第二开关(2135)可以是机械的或电子的。如果为机械式,则将手动设置开关。如果是电子的,则可以手动设置或通过软件设置开关。
基本输入/输出***(2130)是第一台计算机(130)的中央处理单元(905)在启动时使用的任何软件(无论是否嵌入式),以解密加密的操作***(120-E)存储在派生操作***(120)的第一计算机(130)的第二非暂时计算机存储介质(350)中,并将操作***(120)加载到第一计算机(130)的随机存取存储器(925)中),或将存储在加密狗的第三非暂时性计算机存储介质(2100)中的操作***加载到第一台计算机(130)的随机存取存储器(925)中,并禁用带加密解密密钥的设备(100)。基本输入/输出***(2130)可以是第一计算机(130)的一部分,或在中央处理单元(905)中,或存储在ROM(例如,该基本输入/输出***(2130)),闪存(flash memory),电可擦可编程只读存储器(Electrical Erasable Programmable ReadOnly Memory),等。
优选方法
图24示出了优选方法实施例,即第一优选方法(2400)。作为解释本公开的一般规则,本文中使用的序数(例如,“第一”,“第二”,“第三”等)是为了提供唯一名称而不是暗示任何优先等级。
在图24中示出了第一优选方法(2400)。第一优选方法(2400)用于改善计算机(也称为第一计算机(130))的操作,以使第一计算机(130)不受软件病毒对软件程序(330)的感染。称为病毒代码(810C),或通过内存软件代码注入。内存软件注入实质上是将病毒代码(810C)注入计算机内存,例如随机访问内存(925),通常是通过网络连接。
第一优选方法(2400)包括:托管步骤(2405);一接收步骤(2410);解密步骤(2415);加密步骤(2420);第一加载步骤(2425);第二加载步骤(2430);排除步骤(2435)和可选的RAM步骤(2440)。RAM步骤(2440)的可选状态在图24中由虚线表示。
托管步骤(2405)将操作***(120)托管在第一计算机(130)可访问的非暂时性计算机存储介质中。非暂时性计算机存储介质也被称为第一非暂时性计算机存储介质(104)。
接收步骤(2410)在第一计算机(130)处通过网络连接接收加密的操作***对称私钥(1007-E)。在附图中,网络连接在箭头连接盒中示出,例如在图12B中,并且由双向连接指示,双向连接由第四安全连接(1220)的双向箭头表示。
解密步骤(2415),该解密步骤(2415)在第一计算机(130)上解密加密的操作***对称私钥(1007-E),以得出解密的操作***对称私钥(1007)。
加密步骤(2420):在首次安装软件程序(330)时,使用解密的操作***对称私钥(1007)对软件程序(330)进行加密,从而创建加密的软件程序,即DNA(300),这是第一台计算机(130)上软件程序(330)的唯一安装版本。
当执行启动软件程序(330)的命令时,第一次加载步骤(2425)发生,要求操作***(120)使用解密的操作***对称私钥(1007)来***的第一部分。启动软件程序(330)所需的加密软件程序,即数字DNA(300)。
第二加载步骤(2430),要求第一计算机(130)使用解密的操作***对称私钥(1007),以随后解密加密软件程序的任何第二部分,即数字DNA(300)),这在第一部分的操作过程中是必需的。
排除步骤(2435)阻止操作***(120)运行以前未使用解密的操作***对称私钥(1007)加密的任何可执行代码。
RAM步骤(2440)是可选的,其将第一部分和被解密的任何第二部分存储在第一计算机(130)可访问的随机存取存储器(925)中。
图25示出了优选方法实施例,称为第二优选方法(2500)。第二优选方法(2500)是一种用于控制将多个操作***加载到可由计算机访问的随机存取存储器(925)中的方法,该计算机在本文中也称为第一计算机(130),该第一计算机(130)包括第一非暂时性计算机存储介质(104),第二非暂时性计算机存储介质(350),第三非暂时性计算机存储介质,随机存取存储器(925),中央处理单元(905),基本输入/输出***(2130)和一个开关,也称为第一开关(2105)。
第二优选方法(2500)具有第一存储步骤(2505);第二存储步骤(2510);第三存储步骤(2515);第四存储步骤(2520),设置步骤(2525)和配置步骤(2530)。
第一存储步骤(2505)正在存储第一密钥,该第一密钥与第一非暂时性计算机存储介质中的加密/解密密钥(103)相同。第一密钥,即加密/解密密钥(103),可用于对操作***对称私钥进行加密。操作***对称私钥也被称为解密的操作***对称私钥(1007)。第一密钥还可用于解密加密的操作***对称私钥(1007-E)。
第二存储步骤(2510)将加密的操作***(120-E)存储在第二非暂时性计算机存储介质(350)中的第一计算机(130)上。
第三存储步骤(2515)将加密的操作***对称私钥(1007-E)存储在第二非暂时性计算机存储介质(350)中。
第四存储步骤(2520)是将非加密操作***(120-NE)存储在第三非暂时性计算机存储介质(2100)中的第一计算机(130)上。
设置步骤(2525)正在设置第一开关(2105)和第二开关(2135),以使基本输入/输出***(2130)能够加载加密的操作***(120-E)或非加密操作***(120-NE)放入随机存取存储器(925)。
配置步骤(2530)正在配置第一计算机(130)加电,然后实施取决于第一开关(2105)的规定条件的以下替代动作之一。
第一个动作是使第一密钥,即加密/解密密钥(103)在第一非临时性计算机存储介质(104)可供基本输入/输出***(2130)使用第二开关(2135)设置为使基本输入/输出***(2130)能够加载加密的操作***(120-E),并指示基本输入/输出***(2130)读取加密的操作***(120-E)E)从第二非暂时性计算机存储介质(350)并使用第一密钥对加密的操作***对称私钥(1007-E)进行解密,从而得出(即产生)解密的操作***对称私钥(1007)和根据中央处理单元(905)的请求,使用解密的操作***对称私钥(1007)解密加密的操作***(120-E)。
当将第一开关(2105)设置为使基本输入/输出***(2130)能够从第三非暂时性计算机存储介质中加载非加密操作***(120-NE)时,发生第二个动作。2100),指示基本输入/输出***(2130)禁止访问第一个键,例如,加密/解密密钥(103),然后从第三非暂时性计算机存储介质(2100)中读取未加密的操作***(120-NE),然后将未加密的操作***(120-NE)存储在第一计算机(130)可访问的随机存取存储器(925)。
图26示出了优选方法实施例,称为第三优选方法(2600)。第三优选方法(2600)包括:3M托管步骤(2605);以及3M接收步骤(2610);3M解密步骤(2615);3M加密步骤(2620);3M部分解密步骤(2625);3M后续解密步骤(2630);3M存储步骤(2635);以及可选地,3M排除步骤(2640)。图26中的可选步骤以虚线示出,其指示其可选状态。
图26示出了优选方法实施例,在此被称为第三优选方法(2600)。第三优选方法(2600)是用于改善计算机(本文中也称为第一计算机(130))的操作的方法。第三优选方法为第一计算机(130)提供了免受软件病毒(也称为病毒或蠕虫(800C))或存储器软件代码注入的软件程序(330)感染的免疫力。内存软件注入实质上是将病毒或蠕虫(800C)注入计算机内存,例如随机访问内存(925),通常是通过网络连接。
第三优选方法(2600)包括3M托管步骤(2605);3M接收步骤(2610);3M解密步骤(2615);3M加密步骤(2620);3M部分解密步骤(2625);3M后续解密步骤(2630);3M存储步骤(2635);以及可选地,3M排除步骤(2640)。
3M托管步骤(2605)将操作***(120)托管在第一计算机(130)可以访问的非暂时性计算机存储介质中。非暂时性计算机存储介质也被称为第一非暂时性计算机存储介质(104)。
3M接收步骤(2610)在第一计算机(130)处通过网络连接接收加密的操作***对称私钥(1007-E)。在附图中,网络连接在箭头连接盒中示出,例如在图12B中,并且由双向连接指示,双向连接由第四安全连接(1220)的双向箭头表示。
3M解密步骤(2615)正在第一计算机(130)上对加密的操作***对称私钥(1007-E)进行解密,以得出解密的操作***对称私钥(1007)。
3M加密步骤(2620)是在首次安装软件程序(330)时使用解密的操作***对称私钥(1007)对软件程序(330)进行加密,并由此创建加密的软件程序作为数字DNA(300)。数字DNA(300)是计算机上软件程序(330)的唯一安装版本,即计算机上不存在未加密的软件程序。
3M部分解密步骤(2625)在执行启动软件程序(330)的命令时发生,要求操作***(120)使用解密后的操作***对称私钥(1007)来***的第一部分。启动该软件程序所需的加密软件程序,即数字DNA(300);
3M后续解密步骤(2630)要求第一计算机(130)使用解密的操作***对称私钥(1007)来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分,即数字DNA(300)。
3M存储步骤(2635)将被解密的第一部分和任何第二部分存储在可由第一计算机(130)访问的随机存取存储器(925)中。
3M排除步骤(2645)是可选的并且由虚线表示。这是防止操作***(120)运行任何之前未被解密的操作***对称私钥(1007)加密的可执行代码的步骤。
在第四优选方法中,执行与第三优选方法(2600)相同的步骤,不同之处在于3M存储步骤(2635)是可选的,并且需要3M排除步骤(2645)。
计算机与人类之间的比较
还可以通过在第一计算机(130)和人类之间的比较来说明本文公开的新方法和设备。第一计算机(130)可以在计算机病毒不利地影响计算机的正常运行并且人类感染病毒不利地影响人类的健康的意义上与人体进行比较。
图23示出了这种比较。首先,与现有技术进行比较,然后最后以优选实施例进行比较。左边是人,右边是计算机。
步骤(1):人类感染病毒-计算机感染计算机病毒。
步骤(2):人类病毒传播给其他人-一种计算机病毒传播给其他计算机。
步骤(3):被感染的人躺在床上并损失了几天的工作-被感染的计算机无法完全运行。
步骤(4):一个有病的人去看医生-计算机技术员去看了受感染的计算机。
步骤(5):医生为生病的人开药-技术人员在受感染的计算机上运行防病毒软件。和,
步骤(6):人类服用了处方药并得到了治愈-防病毒软件可以清洁计算机,并且计算机可以恢复正常运行。
一旦发明了一种抗病毒的疫苗,该病毒就不再影响人类-本文所公开的装置和方法比疫苗更有效。疫苗只能阻止一种旨在阻止的病毒。但是,一旦将数字DNA应用于计算机,各种计算机病毒都将不再影响计算机。
结论
如本文所公开的用于启用计算机病毒预防的过程优选地通过硬件和软件的组合来执行。如果将病毒注入具有加密解密设备的设备(100)的计算机中,则会以未加密的形式将其注入已加密的计算机数字DNA中。为了在计算机上运行,病毒必须通过使用加密/解密密钥(103)的解密步骤来运行,以解密加密的操作***对称私钥(1007-E),从而得出解密的操作***对称私钥(1007),然后使用解密的操作***对称私钥(1007)解密计算机病毒,将其变成乱码。在执行病毒之前,这破坏了病毒的可操作性。
所公开的方法和设备不需要特别设计的软件应用程序。因此,可以在任何计算机上使用处于原始未编码状态的相同操作应用程序。然而,使用本文公开的方法和设备安装的每个操作应用程序都被安装到加密状态,即第一计算机(130)的数字DNA(300)。
只要第一计算机(130)可以访问带有加密解密密钥的设备(100),本文公开的方法和设备将在任何可操作的应用程序上工作。
当在具有带加密解密设备的密钥的计算机中执行处于加密状态的操作应用程序时(100),加密/解密密钥(103)首先用于解密加密的操作***对称私钥(1007-E),以得出解密的操作***对称私钥(1007),然后使用解密的操作***对称私钥(1007)进行解密执行操作应用程序所需的内容。
本文公开的优选方法和设备对于所有可操作应用程序仅需要单个加密密钥(例如,解密的操作***对称私钥(1007)),该加密密钥必须使用操作***对称私钥来安装。与解密的操作***对称私钥(1007)相同。每个已安装的操作应用程序都需要一个密钥,而不是已安装程序的多个加密密钥。此外,此单个密钥保持加密状态,并且无法从任何运行的进程中使用,并且仅可用于授权软件。
解密的操作***对称私钥(1007)是用于加密和解密的私钥***(对称),而不是其中私钥用于加密和公钥的公钥***(非对称)用于解密。如果要使用公用密钥***,则专用密钥将是用于加密软件代码的密钥,而公用密钥将被计算机用于解密加密的软件代码。拥有私钥的任何人都将能够加密病毒程序,并且加密的病毒程序将在计算机中解密,因为计算机使用公钥进行解密。因此,公共密钥***允许将计算机病毒引入计算机。
解密后的操作***对称私钥(1007)未被未加密地存储在计算机的硬盘上,因为如果密钥要被未加密地存储在计算机的硬盘中,那么任何人都可以随后将其复制然后使用它来加密要在计算机中运行的软件病毒,或者使用它来加密要注入到计算机运行过程中的代码。
在任何一种情况下:使用存储在计算机硬盘中的公共密钥或未加密的密钥将增加病毒感染和计算机安全性丧失的可能性。
本文公开的优选方法和设备执行已经被转换为计算机的数字DNA的软件代码。如果未编码的程序作为软件文件存在于计算机中,则该文件将不会被第一计算机(130)的中央处理单元(905)执行。或者,如果可执行软件代码是第一计算机(130)的随机存取存储器(925)中的未编码处理,则中央处理单元(905)将不执行它。仅由于操作***(120)和中央处理单元(905)的行为与当前使用计算机方法和技术的情况不同,才会发生此功能。
在优选实施例中,在操作***(120)将软件文件加载到第一计算机(130)的随机存取存储器(925)之前,它将对其进行解密,并且如果它没有有效的数字-DNA格式,操作***(120)不会将其加载到第一台计算机(130)的随机存取存储器(925)中。如果其具有有效的数字DNA格式,则操作***(120)将加载加密版本,即数字DNA(300)。对于加载到第一计算机(130)的随机存取存储器(925)中的未编码软件代码也是如此,一旦其被解密,它将采用中央处理单元(905)不知道的格式。操作***(120)通过读取加密软件代码(即,数字DNA(300))的可选标头标识代码(320)部分来指定其是否具有有效格式,
在另一个实施例中,操作***(120)解密数字DNA(300),即第一加密软件程序,并将其加载到第一计算机(130)的随机存取存储器(925)中,以及如果在解密之前,该软件恰巧是未编码的版本,它将被加密,因此计算机将无法运行它。
本文公开的优选方法和设备自动运行而无需用户干预来***用于操作***的加密/解密操作的加密和/或解密密钥,或提供用户的密码和/或解密密钥。加密/解密操作的标识和/或密码。并且不需要在带有加密解密设备的密钥内使用专用的中央处理单元来:管理启用或禁用带有加密解密设备的密钥(100);以及或者,启用或禁用带有加密解密设备的密钥(100)内的加密/解密密钥(103);或在带有加密解密设备的设备中将代码(可能是可执行文件或数据)从一个存储位置移动到另一个存储位置(100);或者,将加密/解密密钥(103)从具有加密解密设备的密钥(100)内的一个存储位置移动到另一存储位置;或或要求用户手动执行操作***对称私钥的加密/解密。
优选地,具有加密解密密钥的设备(100)易于构建且成本低廉,而无需使用具有加密解密密钥的设备(100)的安全性来对设备进行降级,并且操作不需要单独的计算机代码。
优选地,中央处理单元(905)进行从随机存取存储器(925)读取或存储到数据/代码的请求,但是不进行实际的加密/解密。加密/解密是通过芯片或软件完成的,该芯片或软件既不是当前中央处理单元体系结构的一部分,也不是中央处理单元当前运行在中央处理单元技术中所必需的。
在本公开的范围内,可以在将来设计的中央处理单元(905)中实现非优选的方法和设备,并且可以通过实际的中央处理来完成加密/解密单位。如果实施到中央处理单元中,则加密/解密密钥(103)可以是中央处理单元的一部分,就像寄存器是每个中央处理单元的一部分一样,加密/解密密钥(103)可以存储到中央处理单元内部的特殊寄存器中。如果加密/解密可以由实际的中央处理单元完成,将加密的操作***对称私钥(1007-E)传递到中央处理单元(905)以进行解密,从而得到解密的操作***对称私钥(1007),然后中央处理单元(905)使用导出的解密的操作***对称私钥(1007)进行加密/解密。
如果实施到中央处理单元(905)中,则优选地嵌入式宏操作***(955)或类似程序可以执行代表中央处理单元(905)进行加密/解密操作,使中央处理单元(905)摆脱可能占用大量资源的模运算,从而加快了第一计算机(130)的操作
公开了中央处理单元(905)正在执行加密/解密应该广义地解释为包括中央处理单元(905),随机存取存储器辅助(952)和/或嵌入式宏操作***(955)的组合。或中央处理单元(905),存储器管理控制器和/或嵌入式宏操作***(955)的组合。如果在存储器管理控制器上实现了带有加密解密密钥的设备(100)。或中央处理单元(905)与任何其他程序(例如,操作***或驱动程序,基本输入/输出***或嵌入式宏操作***(955))的组合,或用于与之同步工作的计算机芯片中央处理单元(905)对中央处理单元(905)发送的代码进行加密,以存储在第一计算机(130)的随机存取存储器(925)中。
本文公开的优选方法和设备可以用API(首字母缩写代表应用程序接口)来实现,其中诸如代码解释器之类的程序平台解释可执行代码(或任何其他种类的程序),例如PHP,ASP.NET。,JSP等),平台程序获取解密的文件代码,并传递给API,然后使用加密/解密密钥(103)对API进行加密,然后将其发送回平台,或者平台发送加密的文件-编码并接收解密的。
每当提及存储在计算机可访问的随机访问存储器(925)中的程序代码时,术语“计算机可访问的随机访问存储器”应广义地解释为包括计算机可访问的任何随机访问存储器,包括中央处理单元缓存中的随机存取存储器。
如果在图21的实施例中使用了安全程序,则将对该安全程序进行加密,并且使用解密的操作***对称私钥(1007)对驻留在只读存储器中的基本输入/输出***软件进行解密,从而得到解密后的安全程序。安全程序,然后启动解密后的安全程序的执行。
如果在图21的实施例之外的实施例中使用安全程序,则将不对安全程序进行加密。优选地,如果未加密,则安全程序将以软件驱动(935)的形式与操作***(120)相关联,该软件驱动与操作***(120)或操作***(120)的模块部分协同工作。。
术语“计算机”或术语“服务器”是可互换的,并且被广义地定义为使得当使用第一计算机(130)或第二计算机(130A)时,可以用服务器(1510)代替,以及反之亦然。
在整个公开中提到了加密/解密密钥(103),应广义地解释为表示加密/解密密钥(103)存储在第一个非永久性存储单元的非暂时性存储单元中具有加密解密密钥的设备(100)的临时计算机存储介质(104),并且也将在操作***(120)的控制下广义地解释为包括复制的加密/解密密钥(120-A)。已经提到了复制的加密/解密密钥(110),应广义地解释为意味着复制的加密/解密密钥(110)存储在设备的锁存器(111)的锁存器存储单元中-使用加密解密密钥(100),或在操作***(120)的控制下作为复制的加密/解密密钥(120-A)。
每当以下缩写出现在附图或公开中时,它们代表:RAM=读访问存储器;OS=操作***;ROM=只读内存;I/O=输入和输出;加密/解密密钥=对称加密/解密密钥;BIOS=基本输入输出***。
宏操作***(955)将广义地解释为包括与中央处理单元(905)或随机存取存储器辅助(952)一起工作以在计算机中执行加密和/或解密操作的任何嵌入式软件。。
每当在本公开或附图中使用术语操作***对称私钥时,应将其广义地解释为包括程序对称私钥并包括解密的操作***对称私钥。每当在本公开或附图中使用术语程序对称私钥时,将其广义地解释为包括操作***对称私钥并包括解密的操作***对称私钥。每当在本公开或附图中使用术语“解密的操作***对称私钥”时,将其广义地解释为包括操作***对称私钥并且包括程序对称私钥。与程序对称私钥相同的加密和解密步骤也与程序对称私钥一起使用。
每当使用术语加密/解密密钥时,应广义地解释为包括对称加密/解密密钥。无论何时使用术语设备私钥,都应广义地解释为包括设备对称私钥。包括附图的上述实施例是示例,其提供使用本文公开的方法和设备的各种实施例的图示。其他实施例对于本领域技术人员将是显而易见的。因此,本发明的范围由所附权利要求书及其合法等同物而不是由给出的实施例确定。
工业应用
本发明应用于计算机工业。

Claims (17)

1.一种计算机***,包括:
一存储设备,其是与计算机启动所需的组件中一独立的单元,所述存储设备包括:
一第一非暂时性计算机存储介质,所述第一非暂时性计算机存储介质存储:
一设备对称私钥,该设备对称私钥可用于对加密的操作***对称私钥进行解密,以产生解密后的操作***对称私钥;
一计算机,包括一中央处理单元,一地址总线和一第二非暂时性计算机存储介质,在所述第二非暂时性计算机存储介质上存储了所述加密的操作***对称私钥和一安全程序,所述安全程序用于:
从所述计算机储存设备中取回所述设备对称私钥;
用所述设备对称私钥对加密的所述操作***对称私钥进行解密,以产生所述解密后的操作***对称私钥;
阻止所述计算机将所述设备对称私钥或所述解密的操作***对称私钥存储在任何非暂时性计算机存储介质中;
请求所述计算机在计算机上首次安装应用程序时,使用所述解密的操作***对称私钥对所述应用程序进行加密,以使所述加密的应用程序是所述应用程序在任何非暂态计算机上的唯一安装版本计算机可访问的可读存储器;
启用计算机,每次给出命令启动所述应用程序,使用所述解密的操作***对称私钥来解密需要执行该命令的加密应用程序的第一部分,并将所述解密后的内容存储在计算机可访问的随机存取存储器中;
请求所述计算机使用所述解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密应用程序的任何第二部分,并将随后所述解密的内容存储在计算机可访问的随机存取存储器中;
并防止在设备访问后访问所述设备对称私钥除非首先获得明确授权,否则首先访问对称私钥以生成所述解密的操作***对称私钥。
2.根据权利要求1所述的计算机***,其中,所述安全程序进一步可操作于防止所述计算机运行所述应用程序的尚未首先使用所述解密的操作***对称私钥进行加密的任何部分。
3.根据权利要求1所述的计算机***,其中,所述安全程序进一步将所述加密的应用程序存储在所述计算机可访问的所述随机存取存储器。
4.根据权利要求3所述的计算机***,其中,所述安全程序进一步操作于:
通过使所述中央处理单元执行在地址总线值与所述解密的操作***对称私钥的长度之间的模数操作数来产生模数值,以得出余数;
将1的值与余数相加,得到相加的余数;
使用添加的余数值指向解密的操作***对称私钥中的字节值;
并要求中央处理单元使用字节值对存储在随机存取存储器中的加密应用程序进行解密。
5.根据权利要求1所述的计算机***,其中,所述安全程序进一步用于在运行所述可执行代码之前,要求所述计算机在计算机启动之后解密驻留在可由计算机访问的随机存取存储器中的任何可执行代码,其中,解密的操作***对称私钥用于解密所述可执行代码。
6.根据权利要求1所述的计算机***,其中,所述安全程序进一步用于将所述存储设备限制为集成到所述计算机的母板中的微芯片。
7.根据权利要求1所述的计算机***,其特征在于,所述安全程序进一步通过实施选自计算机的操作***的过程来防止访问所述设备对称私钥,所述过程包括产生并从所述计算机的操作***向所述计算机的操作***发送自动信号。存储设备,由用户在计算机的物理位置上的手动输入操作,从计算机的基本输入和输出***生成自动信号并将其发送到安全设备,自动激活三态开关并导致操作***将标志中的值更改为一个命令,以防止此类访问。
8.根据权利要求1所述的计算机***,其中,所述存储设备的所述第一非暂时性计算机存储介质选自电子芯片和可移动光盘。
9.根据权利要求1所述的计算机***,其中,所述存储设备是集成到所述计算机中的电子芯片。
10.根据权利要求9所述的计算机***,还包括:
电子芯片中的第一电子三态开关,其中安全程序还可以操作来激活第一电子三态开关,以防止访问设备对称私钥。
11.根据权利要求10所述的计算机***,其特征在于,还包括:
电子芯片中的第二电子三态开关;以及
第二电子三态开关,其中安全程序还可以操作来激活第二电子三态开关,以防止从计算机可访问的随机存取存储器中读取设备对称私钥。
12.一种可与计算机一起使用的存储设备,该存储设备包括:
非暂时性计算机存储介质,中央处理单元,数据总线和地址总线;
非暂时性计算机存储介质,包括可用于解密加密的程序代码,该加密的程序代码存储在计算机可访问的随机存取存储器中,密钥包括多个字节,其中,多个字节中的每个字节具有字节值;
存储设备的中央处理单元可以通过数据总线和地址总线连接到随机存取存储器;
非暂时性计算机存储介质,其存储可在存储设备的中央处理单元上操作的计算机代码,该计算机代码用于:
识别随机访问存储器中的指定位置,该位置可由具有可执行代码的加密字节的计算机访问;
在可执行代码的加密字节的地址位置和密钥的长度之间执行模操作数,以得出余数;
在余数上加一个,得到一个求和值;
在密钥的多个字节中获取字节的字节值,所述字节位于总和值;使用所获取的字节值来解密从计算机可访问的随机存取存储器中的指定位置开始的加密的可执行代码,其中这种使用产生解密的可执行代码;
并执行解密的可执行代码。
13.一种用于控制将多个操作***加载到随机访问存储器中可由计算机访问的的方法,该计算机包括第一非临时计算机存储介质,第二非临时计算机存储介质,第三非临时计算机存储介质,随机存取存储器,中央处理单元,基本输入/输出***和开关,该方法包括以下步骤:
将第一密钥存储在第一非暂时性计算机存储介质中,该第一密钥可用于对操作***对称私钥进行加密以及对加密后的密钥进行解密操作***对称私钥;
在第二非暂时性计算机存储介质中将加密的操作***存储在计算机上;
在第二非暂时性计算机存储介质中存储加密的操作***对称私钥;
在第三非暂时性计算机存储介质中的计算机上存储非加密操作***;
设置开关,以使基本输入/输出***能够将加密操作***或非加密操作***加载到随机存取存储器中;
配置计算机加电,然后实施步骤,包括:
使第一密钥从第一非暂时性计算机存储介质可用于基本输入/输出***;
当开关设置为使基本输入/输出***能够加载加密的操作***时,指示基本输入/输出***从第二非暂时性计算机存储介质中读取加密的操作***,并使用第一密钥对加密的操作***对称私钥进行解密,从而得出解密的操作***对称私钥并使用解密后的操作***对称私钥,用于按照中央处理单元的要求解密加密的操作***;
并且,当将开关设置为允许基本输入/输出***从第三非暂时性计算机存储介质加载非加密操作***时,指示基本输入/输出***禁止访问第一密钥,然后读取第三非暂时性计算机存储介质中的非加密操作***。
14.一种用于改进计算机的操作的方法,以使计算机免受软件病毒或存储器软件代码注入对软件程序的感染,该方法包括以下步骤:
将操作***托管在非暂时性计算机中计算机可访问的存储介质;
通过网络连接在计算机上接收加密的操作***对称私钥;
解密加密的操作***对称私钥并在计算机获得解密的操作***对称私钥;
在首次安装软件程序时,使用解密的操作***对称私钥对软件程序进行加密,从而创建加密的软件程序,该软件程序是计算机上软件程序的唯一已安装版本;
执行命令以启动软件程序时,要求操作***使用解密的操作***对称私钥来解密启动软件程序所需的加密软件程序的第一部分;
要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分;
并阻止操作***运行以前未使用解密的操作***对称私钥加密的任何可执行代码。
15.根据权利要求14所述的方法,还包括以下步骤:将被解密的第一部分和任何第二部分存储在计算机可访问的随机存取存储器中。
16.一种用于改进计算机的操作的方法,以使计算机免受软件病毒或存储器软件代码注入对软件程序的感染,该方法包括以下步骤:
将操作***托管在非暂时性计算机中计算机可访问的存储介质;
通过网络连接在计算机上接收加密的操作***对称私钥;
解密加密的操作***对称私钥并在计算机获得解密的操作***对称私钥;
在首次安装软件程序时,使用解密的操作***对称私钥对软件程序进行加密,从而创建加密的软件程序,该软件程序是计算机上软件程序的唯一已安装版本;
执行命令以启动软件程序时,要求操作***使用解密的操作***对称私钥来解密启动软件程序所需的加密软件程序的第一部分;
要求计算机使用解密的操作***对称私钥来随后解密在第一部分的操作期间所需的加密软件程序的任何第二部分;
将被解密的第一部分和第二部分存储在计算机可访问的随机存取存储器中。
17.根据权利要求16所述的方法,其特征在于,还包括以下步骤:阻止所述操作***运行任何先前未使用所述解密的操作***对称私钥加密的可执行代码。
CN201880080693.6A 2017-12-12 2018-09-14 病毒免疫计算机***和方法 Pending CN111868723A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US15/839450 2017-12-12
US15/839,450 US10614254B2 (en) 2017-12-12 2017-12-12 Virus immune computer system and method
US16/005399 2018-06-11
US16/005,399 US10642970B2 (en) 2017-12-12 2018-06-11 Virus immune computer system and method
US16/008779 2018-06-14
US16/008,779 US10346608B2 (en) 2017-12-12 2018-06-14 Virus immune computer system and method
PCT/US2018/051196 WO2019118031A1 (en) 2017-12-12 2018-09-14 Virus immune computer system and method

Publications (1)

Publication Number Publication Date
CN111868723A true CN111868723A (zh) 2020-10-30

Family

ID=66696936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880080693.6A Pending CN111868723A (zh) 2017-12-12 2018-09-14 病毒免疫计算机***和方法

Country Status (4)

Country Link
US (3) US10346608B2 (zh)
EP (1) EP3724803A4 (zh)
CN (1) CN111868723A (zh)
WO (1) WO2019118031A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120227098A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Sharing user id between operating system and application
US11102203B1 (en) * 2018-10-02 2021-08-24 Silego Technology Inc. Method of authenticating a device
US11314886B1 (en) * 2021-04-02 2022-04-26 CyLogic, Inc. Secure decentralized P2P filesystem

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
WO2001008345A1 (en) * 1999-07-22 2001-02-01 Open Security Solutions, Llc A computer system and process for accessing an encrypted and self-decrypting digital information product
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的***和方法
GB0324315D0 (en) * 2001-03-28 2003-11-19 Reardon David C Apparatus and method for computer and network security
CN1571947A (zh) * 2001-09-14 2005-01-26 计算机联合思想公司 病毒检测***
CN102637250A (zh) * 2006-12-29 2012-08-15 英特尔公司 用于验证处理***部件的方法和装置
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的***和方法
CN106982186A (zh) * 2016-01-16 2017-07-25 周念东 一种联机安全密钥保护方法和***

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847902A (en) 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
CA1238427A (en) 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
CA2414251A1 (en) * 2000-05-19 2002-03-14 Self Repairing Computers, Inc. A computer with switchable components
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
US6857067B2 (en) * 2000-09-01 2005-02-15 Martin S. Edelman System and method for preventing unauthorized access to electronic data
US6941284B2 (en) 2000-11-30 2005-09-06 Pitney Bowes Inc. Method for dynamically using cryptographic keys in a postage meter
JP4349788B2 (ja) 2002-10-31 2009-10-21 パナソニック株式会社 半導体集積回路装置
JP4585276B2 (ja) * 2004-11-01 2010-11-24 株式会社日立製作所 ストレージシステム
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US20060294395A1 (en) 2005-06-28 2006-12-28 Ogram Mark E Executable software security system
US8935416B2 (en) * 2006-04-21 2015-01-13 Fortinet, Inc. Method, apparatus, signals and medium for enforcing compliance with a policy on a client computer
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI
US9195858B2 (en) 2009-08-04 2015-11-24 Seagate Technology Llc Encrypted data storage device
US20110113235A1 (en) * 2009-08-27 2011-05-12 Craig Erickson PC Security Lock Device Using Permanent ID and Hidden Keys
US8789042B2 (en) * 2010-09-27 2014-07-22 Mips Technologies, Inc. Microprocessor system for virtual machine execution
US9609020B2 (en) * 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US20140075517A1 (en) * 2012-09-12 2014-03-13 GM Global Technology Operations LLC Authorization scheme to enable special privilege mode in a secure electronic control unit
US10228926B2 (en) * 2016-01-28 2019-03-12 T-Mobile Usa, Inc. Remote support installation mechanism
US10546119B2 (en) * 2016-11-14 2020-01-28 Mastercard International Incorporated Methods for securely storing sensitive data on mobile device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666411A (en) * 1994-01-13 1997-09-09 Mccarty; Johnnie C. System for computer software protection
WO2001008345A1 (en) * 1999-07-22 2001-02-01 Open Security Solutions, Llc A computer system and process for accessing an encrypted and self-decrypting digital information product
GB0324315D0 (en) * 2001-03-28 2003-11-19 Reardon David C Apparatus and method for computer and network security
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的***和方法
CN101114326A (zh) * 2001-04-09 2008-01-30 凤凰技术有限公司 用于计算机装置验证的***和方法
CN1571947A (zh) * 2001-09-14 2005-01-26 计算机联合思想公司 病毒检测***
CN102637250A (zh) * 2006-12-29 2012-08-15 英特尔公司 用于验证处理***部件的方法和装置
CN103460195A (zh) * 2011-02-11 2013-12-18 西门子医疗保健诊断公司 用于安全软件更新的***和方法
CN106982186A (zh) * 2016-01-16 2017-07-25 周念东 一种联机安全密钥保护方法和***

Also Published As

Publication number Publication date
US20200242235A1 (en) 2020-07-30
US10346608B2 (en) 2019-07-09
US20200159911A1 (en) 2020-05-21
EP3724803A4 (en) 2021-09-15
EP3724803A1 (en) 2020-10-21
WO2019118031A1 (en) 2019-06-20
US10664588B1 (en) 2020-05-26
US20190180027A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
US10516533B2 (en) Password triggered trusted encryption key deletion
JP4774049B2 (ja) セキュアなプラットフォーム間およびプラットフォーム内通信のための方法およびプログラム
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US10970421B2 (en) Virus immune computer system and method
US20160180081A1 (en) Systems And Methods For Security In Computer Systems
US20210382985A1 (en) Virus immune computer system and method
KR20170057279A (ko) 보안 입력 메커니즘 기반 관리자 모드를 위한 방법
US20200242235A1 (en) Virus immune computer system and method
US20180004946A1 (en) Regulating control transfers for execute-only code execution
US20150264047A1 (en) Method and system for providing secure communication between multiple operating systems in a communication device
US10592697B1 (en) Virus immune computer system and method
US10614232B2 (en) Storing and using multipurpose secret data
Bhudia et al. RansomClave: ransomware key management using SGX
ES2929581T3 (es) Método para evitar ataques de programas de secuestro de datos en sistemas informáticos
US20140137196A1 (en) Method for internet transactions
Boursalian et al. BootBandit: A macOS bootloader attack
Malipatlolla Sustainable Trusted Computing: A Novel Approach for a Flexible and Secure Update of Cryptographic Engines on a Trusted Platform Module
Ruan et al. The Engine: Safeguarding Itself before Safeguarding Others
Langley A Practical UNIX Capability System
Malware Know Your Enemy: Containing Conficker

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201030

WD01 Invention patent application deemed withdrawn after publication