CN101627390B - 用于程序状态数据在电子设备中的安全存储的方法 - Google Patents

用于程序状态数据在电子设备中的安全存储的方法 Download PDF

Info

Publication number
CN101627390B
CN101627390B CN2007800511880A CN200780051188A CN101627390B CN 101627390 B CN101627390 B CN 101627390B CN 2007800511880 A CN2007800511880 A CN 2007800511880A CN 200780051188 A CN200780051188 A CN 200780051188A CN 101627390 B CN101627390 B CN 101627390B
Authority
CN
China
Prior art keywords
program
execution environment
signature
program code
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007800511880A
Other languages
English (en)
Other versions
CN101627390A (zh
Inventor
J-E·埃克贝里
L·帕特洛
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN101627390A publication Critical patent/CN101627390A/zh
Application granted granted Critical
Publication of CN101627390B publication Critical patent/CN101627390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/108Source integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

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

Abstract

本发明涉及一种方法,在所述方法中,程序信息被获取到电子设备(100)中的执行环境(110)。所述程序信息至少包括程序代码(121)。所述程序信息和特定于设备的秘密值(114)的密钥被计算。所述密钥被用于在所述执行环境(110)中解密特定于程序的状态数据(170),以及在所述执行后加密已修改状态数据。

Description

用于程序状态数据在电子设备中的安全存储的方法
技术领域
本发明涉及电子设备安全。特别地,本发明涉及一种用于程序状态数据在电子设备中的安全存储的方法。
背景技术
在其中所有计算机程序和应用都是操作的潜在目标的世界中,对用户来说有必要能够确信无疑他们正在使用的程序保持与最初被安装或下载时一样。存在这样的风险:程序被用具有类似观感但收集并泄漏信息(例如向互联网)的程序代替。软件和数字媒体厂商还认识到未授权分发和产品篡改中涉及的风险。所述风险在计算机程序被用于控制现实资源的情况下尤为突出。
越来越多移动设备和计算设备被配备了可信任环境,即安全的程序执行环境。所述可信任环境被用于运行应用,该应用处理设备专用或输入的秘密(secret)。所述可信任环境中的数据可以被用于实现数字版权管理和复制保护。
然而,现有可信任环境中的问题是,程序和数据与可信任环境的所有者协作地被存储、更新和读取。所述所有者可以是设备制造商、业务提供商(xSP)或网络运营商。添加的任何新特征和程序需要来自可信任环境的所有者的验证。能够拥有这样的解决方案将是有益的,所述解决方案使第三方能够利用可信任环境来为过剩的可信任第三方程序提供基础。
发明内容
本发明涉及一种方法,包括:将程序信息获取到包括在电子设备中的执行环境,所述程序信息至少包括程序代码;计算特定于所述电子设备的秘密值和所述程序信息的至少一部分的机密性密钥;以及,以所述机密性密钥作为密钥对第一数据部分应用密码操作,所述第一数据部分包括到所述程序代码的第一输入数据部分或来自所述程序代码的第一输出数据部分,所述密码操作包括解密和加密中的至少一个。
本发明还涉及一种电子设备,所述电子设备包括执行环境,所述执行环境被配置为:获取程序信息,所述程序信息至少包括程序代码;计算特定于所述电子设备的秘密值和所述程序信息的至少一部分的机密性密钥;以及,以所述机密性密钥作为密钥对第一数据部分应用密码操作,所述第一数据部分包括到所述程序代码的第一输入数据部分或来自所述程序代码的第一输出数据部分,所述密码操作包括解密和加密中的至少一个。
本发明还涉及一种电子设备,所述电子设备包括:用于获取程序信息的装置,所述程序信息至少包括程序代码;用于计算特定于所述电子设备的秘密值和所述程序信息的至少一部分的机密性密钥的装置;用于以所述机密性密钥作为密钥对第一数据部分应用密码操作的装置,其中,所述第一数据部分包括到所述程序代码的第一输入数据部分或来自所述程序代码的第一输出数据部分,所述密码操作包括解密和加密中的至少一个。
本发明还涉及一种计算机程序,所述计算机程序包括当在数据处理系统上执行时适于实施以下步骤的代码:获取程序信息,所述程序信息至少包括程序代码;计算特定于所述电子设备的秘密值和所述程序信息的至少一部分的机密性密钥;以所述机密性密钥作为密钥对第一数据部分应用密码操作,所述第一数据部分包括到所述程序代码的第一输入数据部分或来自所述程序代码的第一输出数据部分,所述密码操作包括解密和加密中的至少一个。
在本发明的一个实施例中,从特定于所述电子设备的主秘密值(mastersecret value)获得特定于所述电子设备的所述秘密值。通过在所述执行环境中多样化所述主秘密值来获得用于在所述机密性密钥的计算中使用的秘密值。例如,可以通过计算所述程序信息(例如所述程序代码)的散列以及将所述散列连接到所述主秘密值来实施所述多样化。因此,所述执行环境以所述连接的散列和主秘密值作为自变量(argument)来计算单向函数(one-way function)并获得已多样化的秘密值,即,特定于所述电子设备的秘密值。
在本发明的一个实施例中,所述电子设备中的执行环境被配置为,在所述执行环境中以第二输入数据部分和所述第一输入数据部分执行所述程序代码以产生第二输出数据部分。所述执行环境计算所述第二输入数据部分、所述第二输出数据部分和所述程序信息的第二散列。因此,所述执行环境用第二私钥来加密所述第二散列以产生结果签名,其中,所述第二私钥关联于所述执行环境。
在本发明的一个实施例中,所述程序信息被获取到被配置为与所述电子设备通信的网络节点。所述网络节点产生第二输入数据部分。所述网络节点将所述程序信息和所述第二输入数据部分提供到所述电子设备。所述网络节点从所述电子设备获取第二输出数据部分,并且验证结果签名以确定包括在所述程序信息中的程序代码已经在所述电子设备中被执行。
在本发明的一个实施例中,所述网络节点从所述第二输出数据部分提取控制信息,并且用所述控制信息控制设备。所述设备可以直接连接到所述网络节点。所述设备例如可以是安全设备,例如锁系统或报警系统。
在本发明的一个实施例中,所述电子设备中的提供方实体在所述程序信息中提供对于所述执行环境的程序代码、第一公钥、程序名称、版本号和签名。所述执行环境用关联于第一私钥的所述第一公钥检查所述签名。所述执行环境至少从所述第一公钥、所述程序名称和所述版本号计算第一散列。所述提供方实体将所述第一输入信息部分提供给所述执行环境以用于所述程序代码的执行。所述执行环境使用单向函数从特定于所述电子设备的所述秘密值和所述第一散列计算机密性密钥。所述执行环境用所述机密性密钥解密所述第一输入信息部分,并且修改所述第一信息部分。最后,所述执行环境用所述机密性密钥加密所述第一输出信息部分。
在本发明的一个实施例中,所述提供方实体被配置为:获取所述程序代码;向所述程序代码提供所述第一公钥、所述程序名称和所述版本号以产生第二数据对象;以及用所述第一公钥签名所述第二数据对象以获取所述签名。这些任务还可以在与所述电子设备通信的网络节点中提供。
在本发明的一个实施例中,所述第一输入数据部分包括关联于所述程序代码的状态信息。
在本发明的一个实施例中,所述机密性密钥是对称密钥。在本发明的一个实施例中,所述机密性密钥是私钥和公钥对,并且用所述私钥进行加密以及用所述公钥来进行解密,或反之亦然。
在本发明的一个实施例中,所述执行环境是移动节点中的安全环境。
在本发明的一个实施例中,所述执行环境是安全环境,例如移动节点。
在本发明的一个实施例中,所述移动节点是移动通信系统中的移动台。
在本发明的一个实施例中,所述移动节点包括移动台或一般而言的移动终端。在本发明的一个实施例中,所述移动通信系统包括全球移动通信系统(GSM)网络和通用移动电话系统(UMTS)网络中的至少一个。在本发明的一个实施例中,所述系统包括无线局域网(WLAN)。在本发明的一个实施例中,所述系统还包括微波接入全球互通(WiMAX)网络。在本发明的一个实施例中,所述移动节点例如可以是具有用于支持不同接入类型的双模或多模功能的UMTS移动台或GSM移动台。
在本发明的一个实施例中,所述计算机程序被存储在计算机可读介质中。所述计算机可读介质可以是可移除存储卡、磁盘、全息存储器、光盘或磁带。
在本发明的一个实施例中,程序信息被获取到所述电子设备中的执行环境。所述程序信息至少包括程序代码。所述程序信息和设备特定的秘密值的密钥被计算。所述密钥被用于在所述执行环境中解密程序特定的状态数据以用于所述程序代码执行。所述密钥在执行之后被用于加密已修改状态数据。
以上描述的本发明的实施例可以相互任意组合地被使用。所述实施例中的几个可以被合并到一起以构成本发明的进一步实施例。本发明所涉及的一种方法、系统、电子设备或计算机程序可以包括以上描述的本发明的实施例中的至少一个。
本发明的好处涉及对于被提供给执行环境的程序代码的改进的安全性和安全应用的软件开发中改进的灵活性。
附图说明
为提供对本发明的进一步理解而被包括并且构成本说明书的一部分的附图示例性示出了本发明的实施例,并且与说明书一起有助于阐明本发明的原理。在附图中:
图1是示例性示出包括本发明的一个实施例中的安全执行环境的电子设备的框图;
图2是示例性示出包括本发明的一个实施例中的由程序代码计算散列的安全执行环境的电子设备的框图;
图3是示例性示出本发明的一个实施例中的对远程设备的安全控制的框图;
图4是示例性示出本发明的一个实施例中的用于安全程序执行的方法的流程图;以及
图5是示例性示出本发明的一个实施例中的电子设备的框图。
具体实施方式
现在将详细参考本发明的实施例,其中,所述实施例的示例在附图中被示例性示出。
图1是示例性示出包括本发明的一个实施例中的安全执行环境的电子设备的框图。在图1中存在电子设备100。电子设备100包括安全执行环境110和提供方实体112。在本发明的一个实施例中,提供方实体112与电子设备100分离,并且在远程节点(未示出)中执行。在提供方实体112中存储了至少一个程序记录,例如程序记录120、130和140。程序记录120包括计算机程序代码121、公钥122(PK)、程序名称123(N)、程序版本124(V)和该程序的数字签名125。程序记录可以较长期地存储在电子设备100中,或者可以仅在该程序记录即将在安全执行环境中被执行之前的时刻被接收到网络100。在提供方实体112中还存在输入数据150和程序记录状态170(DAT)。提供方实体112可以为至少一个程序记录存储程序状态。
图1中的起始点是提供方实体112提供程序记录120以用于在安全执行环境110中的执行。提供方实体112向程序代码121附加公钥122、该程序的名称和该程序的版本号124以产生已附加的程序代码。因此,提供方实体112使用对应于公钥122的第一私钥对所述已附加的程序代码进行数字签名,并且进一步将由此产生的签名附加到所述已附加的程序代码以产生程序记录120。已附加程序代码的数字签名例如包括对已附加程序代码的消息摘要的计算以及使用私钥对所述消息摘要进行加密以得到签名。提供方实体向安全执行环境110提供程序记录120、程序代码121的输入数据150和程序记录状态170以用于程序代码121的执行。提供方实体112还或者作为程序记录120的一部分或者作为单独的数据向安全执行环境110提供公钥122、程序名称123和版本号124。在本发明的一个实施例中,提供方实体112位于不同于电子设备100的网络节点中。
在安全执行环境110中,检查功能块101例如通过解密签名125并将已解密签名与使用安全执行环境110中的已附加程序代码重复计算出的消息摘要匹配,来验证程序记录120中的签名125是否是实际上使用对应于公钥122的私钥产生的。基于检查功能块101的成功,安全执行环境110由公钥122、程序名称123和版本号124计算散列函数102。散列函数102的结果被作为输入与电子设备100的唯一设备秘密114一起提供给单向功能块103。单向功能块103产生特定于程序记录的密钥180。密钥180可以是对称密钥。密钥180被用于在解密功能块104中解密程序记录状态170以产生已解密程序记录状态171。基于解密功能块104的完成,执行功能块105可以使用输入数据150和已解密程序记录状态171来执行程序代码121。已解密程序记录状态171包括在程序代码121的不同执行之间传送的信息。在程序代码121在执行功能块105中的执行期间,来自程序代码121的输出被收集作为输出160,并且被更改的程序记录状态被认为是已修改的程序记录状态172。在执行功能块105完成之后,输入150、程序代码121和输出160在散列功能块106中被散列以产生第二散列结果。该第二散列结果在签名功能块108中被使用第二私钥116加密以产生结果签名162(RES)。私钥116可以与可信任公钥相关。可以通过任何方式来形成信任关系,例如经由来自第三方的证书或经由设备的物理所有权。结果签名162提供这样的证明:即,输出160是使用拥有第二私钥116的安全执行环境中程序代码121中的输入150产生的。可以使用关联于第二私钥116的公钥来验证结果签名。第二私钥116可以关联于安全环境110和电子设备100或者安全环境110的所有者。已修改程序记录状态172被提供给加密功能块107,该加密功能块107使用密钥180来加密已修改程序记录状态172以产生新的已加密程序记录状态173。新的已加密程序记录状态173被提供给提供方实体112以便于直到程序记录120被重复提供用于执行之前的存储。
图2是示例性示出电子设备的框图,其包括本发明的一个实施例中的从程序代码计算散列的安全执行环境。在图2中存在电子设备200。电子设备200包括安全执行环境210和提供方实体212。在本发明的一个实施例中,提供方实体212与电子设备200分离,并且在远程节点(未示出)中执行。在提供方实体212中存储了至少一个程序记录,例如程序记录220、230和240。程序记录220至少包括计算机程序代码221。在提供方实体212中还存在输入数据250和程序记录状态270。提供方实体212可以为至少一个程序记录存储程序状态。
图2中的起始点是提供方实体212,其提供程序记录220以用于在安全执行环境210中的执行。提供方实体向安全执行环境210提供程序记录220、程序代码221的输入数据250和程序记录状态270以用于程序代码221的执行。在本发明的一个实施例中,提供方实体212位于不同于电子设备200的网络节点中。
安全执行环境210从程序代码221的至少一部分计算散列函数201。散列函数201的结果被作为输入与电子设备200的唯一设备秘密214一起提供给单向功能块202。单向功能块202产生特定于程序记录的密钥280。密钥280可以是对称密钥。密钥280被用于在解密功能块203中解密程序记录状态270以产生已解密程序记录状态271。基于解密功能块203的完成,执行功能块204可以使用输入数据250和已解密程序记录状态271来执行程序代码221。已解密程序记录状态271包括在程序代码221的不同执行之间传送的信息。在程序代码221在执行功能块204中的执行期间,来自程序代码221的输出被收集作为输出260,以及被更改的程序记录状态被认为是已修改程序记录状态272。在执行功能块204完成之后,输入250、程序代码221和输出260在散列功能块205中被散列,以产生第二散列结果。该第二散列结果在签名功能块207中被使用可与公钥证书相关的第二私钥216加密以产生结果签名262。结果签名262提供这样的证明:即,输出260是使用拥有第二私钥216的安全执行环境中程序代码221中的输入250产生的。可以使用关联于第二私钥216的公钥来验证结果签名。第二私钥216可以关联于安全执行环境210和电子设备200或者安全执行环境210的所有者。已修改程序记录状态272被提供给加密功能块206,该加密功能块206使用密钥280来加密已修改程序记录状态272以产生新的已加密程序记录状态273。新的已加密程序记录状态273被提供给提供方实体212以便于直到程序记录220被重复提供用于执行之前的存储。
图3是示例性示出本发明的一个实施例中的远程设备的安全控制的框图。在图3中存在包括移动节点360、移动网络370(MN)和互联网380的通信系统350。移动节点360的内部功能块用框362示例性示出。移动节点360包括通信实体363、安全执行环境364和提供方实体365。图3中的起始点是移动节点360想要向远程客户端382发出控制请求。远程客户端382例如控制对现实资源提供接入的设备。现实资源例如可以是住宅或车辆。如用箭头301所示,移动节点360向远程客户端382发送初始消息。该初始消息例如包括现时(nonce)即非重复的随机字符串、关联于移动节点360的公共用户身份和用于该设备的指令。基于接收到该初始消息,如用箭头302所示,远程客户端382向移动节点360发送认证请求。该认证请求包括质疑,其中,所述质疑进一步包括至少所述现时。所述质疑被移动节点360和提供方实体365接收。提供方实体365基于例如发送者和消息302的类型选择程序记录。提供方实体365将所选择的程序记录和质疑提供给安全执行环境364进行处理。如关联于图1所阐明的,来自安全执行环境364的结果包括输入、输出和结果签名。如用箭头303所示,所述输出和签名被从移动节点360提供给远程客户端382。基于使用关联于第二私钥的公钥验证该签名,远程客户端382根据在初始消息中获得的指令控制设备。
图4是示例性示出用于本发明的一个实施例中的安全程序执行的方法的流程图。
在步骤400,程序代码被获取到包括在电子设备中的提供方实体。所述电子设备可以还包括安全执行环境。所述程序代码可以例如是机器代码、字节代码、中间语言、虚拟机器代码、源代码、其任意组合或可以在安全执行环境中被处理的任意程序代码。
在步骤402,所述程序代码在提供方实体中被提供了第一公钥、程序名称和版本号。程序的名称、版本号和第一公钥可以被添加到所述程序代码的头部。程序名称、版本号和第一公钥还可以被附加到所述程序代码,或者被放置到不阻碍该程序代码的执行的程序代码部分。在本发明的一个实施例中,仅程序代码被提供给执行环境。
在步骤404,在提供方实体中用关联于第一公钥的第一私钥对已提供(furnished)程序代码进行签名。已提供程序代码的数字签名例如包括:已提供程序代码的消息摘要的计算,以及使用私钥对所述消息摘要进行加密以产生签名。所述签名也被提供给程序代码。产生的最终已提供程序代码被称为程序记录。
在步骤406,程序记录与已加密程序记录状态和输入数据一起被从提供方实体提供给安全执行环境。该提供可包括程序记录向包括安全执行环境的第二网络节点的发送,如果提供方实体和安全执行环境在不同节点中。程序记录和关联的输入数据和已加密程序记录状态可以被提供一个过程、功能块或方法调用或以若干部分来提供。输入数据部分可以被作为一个或几个自变量提供给任意数量的过程、部分、功能、模块、方法或等价计算机程序代码调用。
在步骤408,安全执行环境检查签名是否可以,即,其使用关联于第一私钥的公钥来验证签名。如果签名不行,则方法在步骤422继续。签名验证不是强制的。
在步骤410,安全执行环境从第一公钥、程序名称和可选地版本号的至少一部分计算散列值H1。
在本发明的一个实施例中,仅从程序代码来计算散列值H1。
在步骤412,在安全执行环境中使用散列值H1和唯一设备秘密,以便在单向函数中计算密钥K(V)。密钥K(V)是特定于所处理的程序记录的密钥。密钥K(V)可以是对称密钥或者公钥和私钥对。
在步骤414,在安全执行环境中使用密钥K(V),以便解密从提供方实体获取的程序记录状态。程序记录状态在安全执行环境之外被以已加密格式维护以防止数据的篡改。
在步骤416,来自程序记录的程序代码被在安全执行环境中执行,从而输入数据和程序记录状态被提供为对所述执行的输入。程序记录状态包括在程序代码的后续执行之间传送的信息。程序代码在安全执行环境中的执行提供输出数据。
在步骤418,在程序代码的执行期间被修改的程序记录状态被在安全执行环境中用密钥K(V)加密。已加密程序记录状态被向回提供给提供方实体进行存储。
在步骤420,通过签名散列H2来在安全执行环境中计算结果签名,其中,通过用第二私钥对输入数据、输出数据和程序代码进行散列来获得散列H2。结果签名与输出数据一起被从安全执行环境提供给提供方实体。
在步骤422,安全执行环境向提供方实体发出错误。
在本发明的一个实施例中,安全执行环境负责程序记录状态的存储。
在本发明的一个实施例中,没有存储程序记录状态。
图5是示例性示出本发明的一个实施例中的电子设备的框图。
在图5中示出了电子设备500。电子设备500包括处理器510、辅存储器520、主存储器530、显示器550和用户接口560。用户接口可以是例如键区(keypad)、键盘或控制杆或控制台。电子设备500还可以包括任意数量的其它处理器和任意数量的辅存储器单元。还可以存在具有单独地址空间的其它主存储器。电子设备500还包括网络接口540。处理器510执行至少部分地存储在主存储器530中的多个软件实体。主存储器530包括通信实体532、提供方实体534和安全执行环境536。实体534和536可以在功能上类似于图1中的实体110和112以及图2中的实体210和212。在本发明的一个实施例中,控制实体535、536和537的一部分被包括在电子设备500的操作系统中。
在图5中,电子设备500中的实体可以用多种方式来实现。其可以作为在电子设备的自带操作系统下被执行的进程来实现。所述实体可以作为单独的进程或线程来实现,或使得许多不同实体借助于一个进程或线程来实现。进程或线程可以是包括许多例程的程序块的实例,其中,所述例程即例如过程和函数。所述实体可以作为单独的计算机程序或作为包括实现所述实体的几个例程或函数的单一计算机程序来实现。所述程序块被存储在至少一个计算机可读介质中,例如存储器电路、存储卡、全息存储器、磁或光盘。一些实体可以作为链接到另一实体的程序模块来实现。图5中的实体还可以被存储在单独的存储器中,并且被单独的处理器执行,其中,所述单独的处理器例如经由电子设备中的消息总线或内部网络通信。这种消息总线的示例是外围部件互连(PCI)总线。所述内部网络可以是例如局域网。所述实体还可以部分上或整体上实现为硬件,例如ASIC或FPGA。
对于本领域的技术人员显而易见,随着技术的进步,本发明的基本概念可以用各种方法来实现。本发明及其实施例由此不限于以上描述的示例;相反,其可以在权利要求的范围内改变。

Claims (22)

1.一种用于电子设备安全的方法,包括:
将程序记录和程序记录状态获取到包含在电子设备中的执行环境中,所述程序记录至少包括程序代码,所述程序记录状态关联于所述程序代码;
获取特定于所述电子设备的秘密值;
由所述程序记录的至少一部分计算第一散列;
使用单向函数从所述第一散列和特定于所述电子设备的所述秘密值计算所述程序记录的机密性密钥;
用所述机密性密钥解密所述程序记录状态;
在所述执行环境中对所述程序代码的执行期间,将所述程序记录状态修改为修改的程序记录状态;以及
使用所述机密性密钥加密所述修改的程序记录状态。
2.根据权利要求1所述的方法,所述方法进一步包括:
在所述执行环境中用输入数据部分和所述修改的程序记录状态执行所述程序代码以产生输出数据部分;
计算所述输入数据部分、所述输出数据部分和所述程序记录的第二散列;以及
用第二私钥加密所述第二散列以产生结果签名,所述第二私钥关联于所述执行环境。
3.根据权利要求2所述的方法,其中,所述将程序记录和程序记录状态获取到包含在电子设备中的执行环境中包括:
将所述程序记录获取到网络节点;
在所述网络节点中产生所述输入数据部分;以及
将所述程序记录和所述输入数据部分提供给所述电子设备;并且
所述方法进一步包括:
将来自所述电子设备的输出数据部分获取到所述网络节点;以及
在所述网络节点中验证所述结果签名,以确定包括在所述程序记录中的程序代码已在所述电子设备中被执行。
4.根据权利要求3所述的方法,所述方法进一步包括:
所述网络节点从所述输出数据部分提取控制信息;
所述网络节点用所述控制信息控制其他设备。
5.根据前述权利要求1-4中任一个所述的方法,其中,将程序记录和程序记录状态获取到包含在电子设备中的执行环境中包括:在所述程序记录中向所述执行环境提供程序代码、第一公钥、程序名称、版本号和签名,其中在所述程序记录中提供的签名是通过至少使用与所述第一公钥对应的第一私钥对程序代码数字签名而获得的;并且
所述方法进一步包括:在计算所述第一散列之前,用关联于第一私钥的所述第一公钥检查所述在所述程序记录中提供的签名;并且
其中,计算所述第一散列包括至少由所述第一公钥、所述程序名称和所述版本号计算所述第一散列。
6.根据权利要求5所述的方法,其中,所述在所述程序记录中向所述执行环境提供程序代码、第一公钥、程序名称、版本号和签名包括:
获取所述程序代码;
为所述程序代码提供所述第一公钥、所述程序名称和所述版本号以产生数据对象;以及
用所述第一私钥签名所述数据对象以获得所述在所述程序记录中提供的签名。
7.根据前述权利要求1-4中任一个所述的方法,其中,所述机密性密钥是对称密钥。
8.根据权利要求5所述的方法,其中,所述机密性密钥是对称密钥。
9.根据权利要求6所述的方法,其中,所述机密性密钥是对称密钥。
10.根据前述权利要求1-4中任一个所述的方法,其中,所述执行环境是移动节点中的安全环境。
11.根据权利要求5所述的方法,其中,所述执行环境是移动节点中的安全环境。
12.根据权利要求6所述的方法,其中,所述执行环境是移动节点中的安全环境。
13.根据权利要求7所述的方法,其中,所述执行环境是移动节点中的安全环境。
14.根据权利要求8所述的方法,其中,所述执行环境是移动节点中的安全环境。
15.根据权利要求9所述的方法,其中,所述执行环境是移动节点中的安全环境。
16.一种用于电子设备安全的装置,包括:
用于将程序记录和程序记录状态获取到包含在电子设备中的执行环境中的装置,所述程序记录至少包括程序代码,所述程序记录状态关联于所述程序代码;
用于获取特定于所述电子设备的秘密值的装置;
用于由所述程序记录的至少一部分计算第一散列的装置;
使用单向函数从所述第一散列和特定于所述电子设备的所述秘密值计算所述程序记录的机密性密钥的装置;
用所述机密性密钥解密所述程序记录状态的装置;
用于在所述执行环境中对所述程序代码的执行期间,将所述程序记录状态修改为修改的程序记录状态的装置;以及
使用所述机密性密钥加密所述修改的程序记录状态的装置。
17.根据权利要求16所述的装置,所述用于电子设备安全的装置进一步包括:
用于在所述执行环境中用输入数据部分和所述修改的程序记录状态执行所述程序代码以产生输出数据部分的装置;
用于计算所述输入数据部分、所述输出数据部分和所述程序记录的第二散列的装置;以及
用第二私钥加密所述第二散列以产生结果签名的装置,所述第二私钥关联于所述执行环境。
18.根据权利要求17所述的装置,其中所述将程序记录和程序记录状态获在取到包含在电子设备中的执行环境中的装置包括:用于在所述程序记录中向所述执行环境提供程序代码、第一公钥、程序名称、版本号和签名的装置,其中在所述程序记录中提供的签名是通过至少使用与所述第一公钥对应的第一私钥对程序代码数字签名而获得的;并且
所述用于电子设备安全的装置进一步包括用关联于第一私钥的第一公钥检查所述在所述程序记录中提供的签名的装置;并且
其中,用于计算所述第一散列的装置包括用于至少由所述第一公钥、所述程序名称和所述版本号计算所述第一散列的装置。
19.根据权利要求18所述的装置,其中,在所述程序记录中向所述执行环境提供程序代码、第一公钥、程序名称、版本号和签名的装置包括:
用于获取所述程序代码的装置;
用于为所述程序代码提供所述第一公钥、所述程序名称和所述版本号以产生数据对象的装置;以及
用所述第一私钥签名所述数据对象以获得所述在所述程序记录中提供的签名的装置。
20.根据前述权利要求16-19中任一个所述的装置,其中,所述机密性密钥是对称密钥。
21.根据前述权利要求16-19中任一个所述的装置,其中,所述执行环境是移动节点中的安全环境。
22.根据权利要求20所述的装置,其中,所述执行环境是移动节点中的安全环境。
CN2007800511880A 2006-12-14 2007-12-04 用于程序状态数据在电子设备中的安全存储的方法 Active CN101627390B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/638,405 US8495383B2 (en) 2006-12-14 2006-12-14 Method for the secure storing of program state data in an electronic device
US11/638,405 2006-12-14
PCT/FI2007/050658 WO2008071836A1 (en) 2006-12-14 2007-12-04 Method for the secure storing of program state data in an electronic device

Publications (2)

Publication Number Publication Date
CN101627390A CN101627390A (zh) 2010-01-13
CN101627390B true CN101627390B (zh) 2012-10-10

Family

ID=39511299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800511880A Active CN101627390B (zh) 2006-12-14 2007-12-04 用于程序状态数据在电子设备中的安全存储的方法

Country Status (6)

Country Link
US (1) US8495383B2 (zh)
EP (1) EP2095288B1 (zh)
JP (1) JP2010514000A (zh)
KR (1) KR20090095635A (zh)
CN (1) CN101627390B (zh)
WO (1) WO2008071836A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495383B2 (en) 2006-12-14 2013-07-23 Nokia Corporation Method for the secure storing of program state data in an electronic device
EP3522580B1 (en) * 2007-10-16 2021-01-20 Nokia Technologies Oy Credential provisioning
US8601285B2 (en) * 2007-11-23 2013-12-03 Nokia Corporation Method for secure program code execution in an electronic device
DE112009004762T8 (de) * 2009-05-26 2012-11-15 Hewlett-Packard Development Co., L.P. System und verfahren zum durchführen einer verwaltungsoperation
JP2013069250A (ja) * 2011-09-26 2013-04-18 Toshiba Corp 記憶装置および書き込み装置
KR101503785B1 (ko) * 2013-10-10 2015-03-18 (주)잉카엔트웍스 동적 라이브러리를 보호하는 방법 및 장치
EP3153985A1 (en) * 2015-10-08 2017-04-12 Thomson Licensing Device and method for password generation in a user device
CN105760750B (zh) * 2016-02-01 2019-06-14 北京华胜天成科技股份有限公司 软件篡改识别方法和系统
FR3049090B1 (fr) * 2016-03-21 2021-06-25 Sebastien Jean Serge Dupont Dispositif d'authentification biometrique adaptatif par echographie, photographies en lumiere visible de contraste et infrarouge, sans divulgation, a travers un reseau informatique decentralise
CN108958761A (zh) * 2017-05-25 2018-12-07 中兴通讯股份有限公司 一种设备程序的处理方法及装置
US11323247B2 (en) * 2017-10-27 2022-05-03 Quantropi Inc. Methods and systems for secure data communication
US20220335118A1 (en) * 2019-03-21 2022-10-20 Capzul Ltd Detection and prevention of reverse engineering of computer programs
FR3094520B1 (fr) * 2019-03-25 2021-10-22 St Microelectronics Rousset Clé de chiffrement et/ou de déchiffrement
WO2021021949A1 (en) * 2019-07-29 2021-02-04 Intertrust Technologies Corporation Systems and methods for managing state
KR102453343B1 (ko) * 2022-07-26 2022-10-11 (주)나래데이터 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1309351A (zh) * 2000-02-14 2001-08-22 株式会社东芝 抗干预微处理器
CN1457169A (zh) * 2002-05-09 2003-11-19 株式会社东芝 内容发布/接收方法
CN1742247A (zh) * 2003-02-03 2006-03-01 诺基亚有限公司 用于加密的应用程序安装的结构

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
AU2001243365A1 (en) 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US7080249B1 (en) 2000-04-25 2006-07-18 Microsoft Corporation Code integrity verification that includes one or more cycles
US7117376B2 (en) 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US20030084332A1 (en) * 2001-10-26 2003-05-01 Koninklijke Philips Electronics N.V. Method for binding a software data domain to specific hardware
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7346780B2 (en) * 2002-04-03 2008-03-18 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US7681046B1 (en) * 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
US7373509B2 (en) * 2003-12-31 2008-05-13 Intel Corporation Multi-authentication for a computing device connecting to a network
TWI241818B (en) * 2004-06-10 2005-10-11 Ind Tech Res Inst Application-based data encryption system and method thereof
US7451325B2 (en) 2004-08-02 2008-11-11 At&T Intellectual Property I, L.P. Methods, systems and computer program products for detecting tampering of electronic equipment by varying a verification process
WO2006034399A2 (en) 2004-09-21 2006-03-30 Snapin Software Inc. Secure software execution such as for use with a cell phone or mobile device
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
WO2006131921A2 (en) * 2005-06-08 2006-12-14 Discretix Technologies Ltd. Method, device, and system of maintaining a context of a secure execution environment
US8438658B2 (en) 2006-02-02 2013-05-07 International Business Machines Corporation Providing sealed storage in a data processing device
US8190902B2 (en) 2006-02-27 2012-05-29 Microsoft Corporation Techniques for digital signature formation and verification
US8190917B2 (en) * 2006-09-12 2012-05-29 International Business Machines Corporation System and method for securely saving and restoring a context of a secure program loader
US8495383B2 (en) 2006-12-14 2013-07-23 Nokia Corporation Method for the secure storing of program state data in an electronic device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1309351A (zh) * 2000-02-14 2001-08-22 株式会社东芝 抗干预微处理器
CN1457169A (zh) * 2002-05-09 2003-11-19 株式会社东芝 内容发布/接收方法
CN1742247A (zh) * 2003-02-03 2006-03-01 诺基亚有限公司 用于加密的应用程序安装的结构

Also Published As

Publication number Publication date
EP2095288A4 (en) 2016-05-11
EP2095288A1 (en) 2009-09-02
CN101627390A (zh) 2010-01-13
KR20090095635A (ko) 2009-09-09
US20080148062A1 (en) 2008-06-19
JP2010514000A (ja) 2010-04-30
WO2008071836A1 (en) 2008-06-19
US8495383B2 (en) 2013-07-23
EP2095288B1 (en) 2019-01-23

Similar Documents

Publication Publication Date Title
CN101627390B (zh) 用于程序状态数据在电子设备中的安全存储的方法
CN1708942B (zh) 设备特定安全性数据的安全实现及利用
CN1985466B (zh) 使用分发cd按签署组向设备传递直接证据私钥的方法
CN100380274C (zh) 用于对上下文加密密钥进行备份和恢复的方法和系统
US8335925B2 (en) Method and arrangement for secure authentication
CN102546607B (zh) 在云上提供安全服务
CN110460439A (zh) 信息传输方法、装置、客户端、服务端及存储介质
CN101247232B (zh) 数据交换传输中基于数字签名的加密技术方法
CN112929172A (zh) 基于密钥库动态加密数据的系统、方法及装置
US20060095769A1 (en) System and method for initializing operation for an information security operation
CN109478214B (zh) 用于证书注册的装置和方法
US20170310479A1 (en) Key Replacement Direction Control System and Key Replacement Direction Control Method
CN102171652A (zh) 为电子装置提供可信软件的方法
CN111292041A (zh) 一种电子合同生成方法、装置、设备及存储介质
CN112434336A (zh) 基于区块链的电子病历共享方法、装置、系统及存储介质
CN112669147B (zh) 基于区块链的服务请求方法及装置
CN112332975A (zh) 物联网设备安全通信方法及系统
WO2021098152A1 (zh) 基于区块链的数据处理方法、装置及计算机设备
CN111181944B (zh) 通信系统及信息发布方法、装置、介质、设备
CN115242553A (zh) 一种支持安全多方计算的数据交换方法及系统
CN111010283B (zh) 用于生成信息的方法和装置
WO2020177109A1 (zh) 抽签处理方法、可信芯片、节点、存储介质和电子设备
CN111859351A (zh) 向芯片写入信息的方法、系统、服务器及存储介质
CN115208630B (zh) 基于区块链的数据获取方法、系统及区块链系统
CN114070584B (zh) 一种机密计算方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160121

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj