CN102630085A - 通信装置和安全模块 - Google Patents

通信装置和安全模块 Download PDF

Info

Publication number
CN102630085A
CN102630085A CN2012100232654A CN201210023265A CN102630085A CN 102630085 A CN102630085 A CN 102630085A CN 2012100232654 A CN2012100232654 A CN 2012100232654A CN 201210023265 A CN201210023265 A CN 201210023265A CN 102630085 A CN102630085 A CN 102630085A
Authority
CN
China
Prior art keywords
security module
program
imaging system
instruction
scanning imaging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100232654A
Other languages
English (en)
Other versions
CN102630085B (zh
Inventor
小桧山清之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN102630085A publication Critical patent/CN102630085A/zh
Application granted granted Critical
Publication of CN102630085B publication Critical patent/CN102630085B/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
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了通信装置和安全模块。一种通信装置包括:安全模块;设在安全模块外部的第一存储设备,存储用于利用存储在安全模块中的密码密钥与通信装置外部的装置加密通信的程序;设在安全模块中的检测单元,检测对程序的篡改;以及设在安全模块中的设定单元,当检测到对程序的篡改时禁止加密通信。

Description

通信装置和安全模块
技术领域
这里公开的实施例涉及通信装置和安全模块。
背景技术
例如移动终端之类的终端的规格和软件结构被保持秘密。利用完好性得到确保的安全模块(例如防篡改模块)可以确保例如真实的密码密钥(cryptographic key)之类的机密信息的安全性。安全模块的一个示例是订户身份模块(SIM)卡。
例如,为了与终端通信,外部装置判定接收到的通信内容是否被用完好性得到确保的真实密码密钥加密,从而判定通信内容是否是真实的。
相关技术在日本早期专利公布No.2004-129227和日本专利No.4408601中公开。
例如,由于智能电话终端的规格或软件结构可被公开给公众,所以终端中的软件可被分析并篡改。由于使用软件的接口也被公开给公众,所以利用非真实软件可以读取内部结构未被篡改的安全模块中的机密信息。
由于非真实软件可发送利用真实密码密钥加密的伪造通信内容到外部装置,所以外部装置可能不能判定通信内容的真实性。
发明内容
根据一个实施例,一种通信装置包括:安全模块;设在安全模块外部的第一存储设备,存储用于利用存储在安全模块中的密码密钥与通信装置外部的装置加密通信的程序;设在安全模块中的检测单元,检测对程序的篡改;以及设在安全模块中的设定单元,当检测到对程序的篡改时禁止加密通信。
这种结构可减少对安全模块的窥探或者可减少对安全模块中的数据的篡改。
本发明的额外优点和新颖特征部分将在接下来的描述中记载,部分将在本领域的技术人员考查以下内容时或在通过实践本发明而学习时变得更显而易见。
附图说明
图1A、1B和1C各自示出了示例性通信;
图2示出了示例性的通信装置;
图3示出了示例性的安全模块;
图4示出了示例性的通信装置;
图5示出了示例性的安全模块;
图6示出了示例性的安全模块;
图7示出了通信装置的示例性操作;
图8示出了通信装置的示例性操作;
图9示出了示例性的扫描程序;
图10示出了示例性的扫描程序;
图11示出了示例性的扫描程序;
图12示出了示例性的扫描程序;
图13示出了示例性的扫描程序生成/更新处理;
图14示出了示例性的扫描程序生成处理;
图15示出了示例性的扫描程序生成处理;
图16示出了示例性的扫描程序更新处理;
图17示出了示例性的扫描程序更新处理;
图18示出了示例性的程序修改;
图19示出了示例性的程序修改;
图20示出了示例性的程序修改;
图21示出了示例性的程序修改;
图22示出了示例性的程序修改;
图23示出了示例性的程序修改;
图24示出了示例性的混排(shuffling)处理;
图25A至25C示出了示例性的程序修改;
图26示出了示例性的计算程序;
图27示出了示例性的认证处理;
图28示出了示例性的加密许可处理;
图29示出了示例性的认证序列;
图30示出了示例性的认证序列;
图31示出了加密通信的示例性序列;
图32示出了加密通信的示例性序列;并且
图33示出了示例性的加密通信。
具体实施方式
图1A至1C示出了示例性通信。通信可在通信装置和中心之间执行。图1A至1C的每一幅中示出的通信装置101包括安全模块102。通信装置101还可包括程序(例如加密通信程序),用于通过使用安全模块102中的密码密钥(例如密码密钥K)来执行加密通信。在加密通信中,通信内容被加密。例如,在加密通信程序中,要发送的通信内容被利用密码密钥K加密,或者接收到的通信内容被利用密码密钥K解密。用于加密的密钥和用于解密的密钥可以是相互不同的。
利用加密通信程序,通信装置101通过网络110与例如中心103这样的外部装置执行加密通信。加密通信程序例如可包括书籍定购软件、电子书定购软件或者电子货币接收软件。通信装置101可通过网络110耦合到破解者的计算机104。
安全模块102可具有保护内部信息免受外部引用的结构。这种结构的一个示例是具有防篡改模块结构(TRM结构)的大规模集成电路(LSI)。这种结构可减少对安全模块102的窥探或者减少对安全模块102中的数据的篡改。
安全模块102可保存真实的密码密钥K。与密码密钥K相对应的解密密钥可以是密码密钥K。当密码密钥K和解密密钥相互不同时,安全模块102可保存解密密钥。安全模块102可保存与与其执行通信的中心103的密码密钥相对应的解密密钥。
安全模块102可周期性地监视例如目标程序TP之类的程序是真实的程序还是经篡改的非真实程序。目标程序TP可以是通信装置101中的加密通信程序。
在判定目标程序TP是真实程序时,安全模块102向目标程序TP提供用于对通信内容加密的密码密钥K。在判定目标程序TP是非真实程序时,安全模块102被置于如下状态:在该状态中,通信装置101中的目标程序TP不能利用密码密钥K执行加密通信。
当建立了不能利用密码密钥K执行加密通信的状态时,例如,安全模块102可拒绝从非真实程序发出的密码密钥K读取请求或通信内容加密请求。例如,安全模块102的功能可被停止,直到重启为止。或者,安全模块102可向通信装置101发送停止非真实程序的请求以终止非真实程序。
中心103可与通信装置101执行加密通信。中心103可保存与中心102中的密码密钥K相对应的解密密钥。例如,当安全模块102中的密码密钥K是秘密密钥时,中心103处的解密密钥可以是安全模块102的公钥。例如,安全模块102中的密码密钥K和中心103处的解密密钥可由共同的密钥实现。
中心103可判定接收到的内容是否被用密码密钥K加密了,来判定通信内容是否是真实的。例如,当中心103利用与密码密钥K相对应的解密密钥适当地解密了接收到的内容时,中心103可判定接收到的内容是真实的通信内容。
如图1A中所示,当真实程序在通信装置101中适当地运行时,安全模块102可判定目标程序TP是真实程序。安全模块102可向该真实程序提供用于对相应的通信内容加密的密码密钥K。该真实程序可通过使用真实的密码密钥K来对通信内容进行加密并且可将经加密的内容发送到中心103。
基于通信内容是否已被用真实的密码密钥K加密,中心103检查通信内容。例如,当中心103利用与密码密钥K相对应的解密密钥适当地解密了通信内容时,中心103可判定接收到的内容是真实的。基于接收到的通信内容,例如,中心103处的用户可向通信装置101的用户发送书籍或者可为该书籍收取费用。
如图1B中所示,真实程序可被从破解者的计算机104发送到通信装置101的非真实程序所覆盖。非真实程序例如可以是通过篡改书籍销售软件而产生的程序。非真实程序可伪造在通信装置101的用户购买时输入的递送地址,并且因此,用户购买的书籍可被窃取。
如图1C中所示,当非真实程序在通信装置101中运行时,安全模块102可判定目标程序TP是非真实程序。在判定目标程序TP是非真实程序时,安全模块102可被置于如下状态:在该状态中,通信装置101中的目标程序TP不能利用密码密钥K执行加密通信。从而,非真实程序可不能利用真实的密码密钥K来对伪造的通信内容加密。
虽然真实程序利用真实的密码密钥K对通信内容加密,但非真实程序不可利用真实的密码密钥K对伪造的通信内容加密。结果,中心103不会错误地将伪造的通信内容识别为从真实程序发送来的通信内容,通信的完好性可得到确保。
图2示出了示例性的通信装置。图2示出了通信装置101的硬件配置。通信装置101包括处理器201、只读存储器(ROM)202、随机访问存储器(RAM)203和硬盘驱动器(HDD)204。通信装置101还包括接口205、显示器206和安全模块102。通信装置101的元件可通过总线200互连。
处理器201可控制整个通信装置101。ROM 202可存储程序,例如引导程序。RAM 203可用作处理器201的工作区域。在处理器201的控制下,HDD 204可控制向内置的硬盘写入数据/从内置的硬盘读取数据。
接口205可耦合到网络110,例如局域网(LAN)、广域网(WAN)或因特网,并且可通过网络110耦合到另一装置。接口205作为网络110与内部元件之间的接口,以控制来自外部装置的数据的输入/输出。接口205例如可包括调制解调器和LAN适配器。
显示器206例如显示光标、图标、工具箱、文档、图像或功能性信息的数据等等。显示器206的示例可包括阴极射线管(CRT)显示器、TFT(薄膜晶体管)液晶显示器和等离子显示器。
安全模块102从HDD 204中读取目标程序TP并且生成或更新用于扫描目标程序TP以检测篡改的扫描程序。安全模块102将目标程序TP和扫描程序加载到RAM 203中,执行加密或解密,或者生成随机数。安全模块102可以安全的方式保存密码密钥K或用户标识信息。
安全模块102也可保存真实的密码密钥K或用户标识信息,并且通信装置101可执行加密或解密或生成随机数。安全模块102根据来自通信装置101的请求而输出密码密钥K或用户标识信息。安全模块102可设置在通信装置101内部或外部。
图3示出了示例性的安全模块。图3中所示的安全模块可以是图2中所示的安全模块102。安全模块102包括处理器301、接口302、密码电路303、RAM 304、ROM 305、闪存306以及随机数生成电路307。
处理器301控制安全模块102或执行计算。接口302通过总线300耦合到通信装置101中的元件以与外部装置通信。密码电路303对数据或程序加密或者对经加密的数据或经加密的程序解密。
RAM 304可以是用作处理器301的工作区域的主存储器。ROM 305可以是存储程序和数据的非易失性存储器。ROM 305可存储真实密码密钥K或用户标识信息。闪存306可以是非易失性存储器,其中存储的数据或存储的程序可被改写。随机数生成电路307生成随机数。
例如,通过将安全模块102结合到单芯片LSI中,如图3中所示,不可从外部篡改安全模块102。例如,安全模块102可具有TRM结构。TRM结构物理地或逻辑地保护半导体芯片(例如安全模块102)免遭内部分析和篡改。例如,一粘性很高且强力的涂层可被施加到安全模块102内的一部分。利用这种结构,当安全模块102被移除时,安全模块102的内部电路可破损。也可提供虚假导线。
图4示出了示例性的通信装置。图4中所示的通信装置101包括处理器201、ROM 202、RAM 203、HDD 204、接口205、显示器206和安全模块102。在图4中,与图2中所示的元件基本相同或相似的元件被用相同的标号表示,并且对其的描述被省略或减少。
图4中所示的安全模块102包括用于执行加密或解密或生成随机数的LSI 401和用于以安全方式保存密码密钥K或用户标识信息的SIM卡402。LSI 401从SIM卡402中读取密码密钥K并且适当地对密码密钥K加密或解密。
图5示出了示例性的安全模块。图5中所示的安全模块可以是图4中所示的安全模块102。图5中所示的安全模块102包括LSI 401和SIM卡402。LSI 401包括处理器301、接口302、密码电路303、RAM 304、ROM 305、闪存306和随机数生成电路307。SIM卡402以安全方式保存密码密钥K和用户标识信息。在安全模块102中,LSI 401和SIM卡402经由接口302互连以执行通信。在图5中,与图3中所示的元件基本相同或相似的元件被用相同的标号表示,并且对其的描述被省略或减少。
当安全模块102是包括多个芯片并且被用树脂加固的单个模块时,如图5中所示,第三方对安全模块102的篡改可被减少。
图6示出了示例性的安全模块。安全模块102包括检测单元601、设定单元602、存储单元603、生成单元604、修改单元605、判定单元606、获得单元607、密码单元608以及输出单元609。
检测单元601检测对程序的篡改。该程序可被保存在通信装置101的存储设备中。该程序可使用安全模块102中保存的密码密钥K来与通信装置101外部的装置(例如中心103)执行加密通信。例如,该程序可包括目标程序TP。
例如,扫描程序可在通信装置101中对存储在通信装置101的存储设备的特定存储区域中的程序运行扫描程序。检测单元601基于存储单元603中存储的代码和通信装置101执行的扫描程序运行的结果,来检测对该特定存储区域中存储的程序的篡改。该特定存储区域可以是RAM 203中的包括目标程序TP的扫描目标区域,例如可以是扫描目标区域230。扫描程序可以是用于检测对目标程序TP的篡改的程序,例如可以是扫描程序SP。扫描程序可在通信装置101内运行。
该代码可以是目标程序TP的程序代码并且扫描程序运行的结果可以是对目标程序TP的程序代码的给定计算结果。该给定计算例如包括四则运算、逻辑运算、校验和计算或使用散列函数的散列值计算。检测单元601检测对目标程序TP的基于破解的篡改。
例如,检测单元601基于扫描程序对通信装置101中的存储设备中的特定存储区域中存储的程序和存储单元603中存储的代码的运行结果,来检测对特定存储区域中存储的程序的篡改。扫描程序可在安全模块102内运行。检测单元601检测对目标程序TP的基于破解的篡改。由于检测单元601在完好性得到确保的安全模块102中运行扫描程序,所以可以减少对扫描程序的破解。
检测单元601可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时操作。
设定单元602将安全模块102置于程序不可利用密码密钥K执行加密通信的状态中。
例如,当检测单元601检测到对程序的篡改时,设定单元602可停止密码单元608、输出单元609或所有功能。设定单元602还可设定安全模块102,以使其不响应从被检测到篡改的目标程序TP发出的密码密钥K读取请求或通信内容加密请求。从而,被检测到篡改的目标程序TP不可利用密码密钥K执行加密通信。
例如,判定单元606可判定将自身伪装为通信装置101的破解者计算机104正与安全模块102通信。设定单元602可停止密码单元608、输出单元609或所有功能。设定单元602可执行设定以使得安全模块102不可与破解者的计算机104通信。
设定单元602可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时操作。
存储单元603存储程序特有的代码。程序特有的代码可包括目标程序TP的程序代码或者对程序代码的特定计算的结果。特定计算例如可包括四则运算、逻辑运算、校验和计算或使用散列函数的散列值计算。
例如,存储单元603可保存通信装置101中的RAM 203中的或安全模块102中的RAM 304中的目标程序TP。存储单元603可存储安全模块102中的RAM 304中保存的目标程序TP特有的代码。
存储单元603可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时操作。
生成单元604生成用于执行扫描处理以生成程序特有的代码的扫描程序。生成单元604随机地更新用于生成与特有代码实质上相同或相似的代码的扫描程序。扫描程序可获得目标程序TP的程序代码或者可输出对所获得的程序代码的特定计算的结果。
例如,生成单元604生成用于在通信装置101处执行扫描处理的扫描程序并且生成用于检测对目标程序TP的篡改的代码,该代码是目标程序TP所特有的。安全模块102中的生成单元604生成用于访问通信装置101的存储设备的扫描程序。结果,可以减少破解者对扫描程序的破解。
例如,生成单元604可周期性地或不定期地更新扫描程序。生成单元604可减少破解者对扫描程序的破解。
生成单元604可通过执行“模糊处理”(obfuscation)、“扫描目标区域的改变”、“扫描目标地址的顺序的改变”、“扫描计算结果的添加”或“扫描程序的地址的添加”来更新扫描程序。由于对扫描程序的更新,减少了破解者对扫描程序的解译或篡改。
生成单元604可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时操作。
修改单元605利用具有实质上相同的功能并且具有不同的解密系统的程序来覆盖程序。例如,修改单元605通过执行模糊处理、加密或混排来修改目标程序TP。结果,可以减少破解者对目标程序TP的解译。
修改单元605可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时或者在修改单元605经由接口302被控制时操作。
判定单元606测量从向通信装置101中的处理器201输出程序运行请求时起到从处理器201获得响应为止的时间量。判定单元606判定测量到的时间量是否大于或等于与通信装置101中的处理器203和安全模块102之间的物理距离相对应的允许时间量。
例如,当对于运行目标程序的请求被输出到通信装置101中的处理器201时,设置在安全模块102中的定时器开始时间测量。安全模块102测量到获得响应为止的时间量,并且还判定测量到的时间量是否大于或等于允许时间量。
将自身伪装为通信装置101的破解者计算机104可与安全模块102通信。定时器测量到的时间量可变得大于基于通信装置101中的处理器301与安全模块102之间的物理距离估计的时间量。从而,基于测量到的时间量,判定单元606判定是否破解者在假扮通信装置101的合法用户。
判定单元606可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时或者在判定单元606经由接口302被控制时操作。
获得单元607在发送数据之前获得程序要发送到外部装置的数据。获得单元607从程序获得对密码密钥K的输出请求。
例如,获得单元607经由接口302获得对密码密钥K的输出请求和要从目标程序TP发送到中心103的通信内容。获得单元607获得要加密的通信内容。
获得单元607可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时或者在获得单元607经由接口302被控制时操作。
密码单元608使用密码密钥K来对由获得单元607获得的通信内容加密。密码密钥K例如可以是安全模块102的秘密密钥或者是与中心103共同的共同密钥。密码单元608可在不输出密码密钥K的情况下对通信内容加密。
密码单元608可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时操作。
输出单元609将密码密钥K输出到程序。例如,当获得单元607获得对输出密码密钥K的请求时,输出单元609将密码密钥K输出到目标程序TP。
输出单元609可在处理器301运行图3中所示的诸如ROM 305、RAM 304或闪存306之类的存储设备中存储的程序时或者在输出单元609经由接口302被控制时操作。
安全模块102对经获得单元607和输出单元609处理的数据加密。可以减少破解者对安全模块102和通信装置101中的处理器301之间的通信信道上的数据的破解。
安全模块102经由具有或不具有硬件扫描功能接口耦合到通信装置101以检查通信装置101中的目标程序TP的真实性。
安全模块102可经由没有硬件扫描功能的接口例如USB接口耦合到通信装置101。安全模块102可经由USB接口向USB兼容软件(例如驱动器)发出对扫描存储器中的扫描目标区域的请求。通过该扫描,可以检查目标程序TP的真实性。
该USB兼容软件可被破解。例如,通信装置101中的软件可被覆盖并且指示未覆盖的结果可被发回。结果,扫描可能未被有效地执行。
图7示出了通信装置的示例性操作。例如,安全模块102被编码并存储在HDD 204中的目标程序,例如经编码的目标程序E(TP)。安全模块102中的密码电路303将经编码的目标程序E解密成目标程序TP。安全模块102将经解密的目标程序TP写出到RAM 203中的扫描目标区域230中。目标程序TP可被保存在安全模块102中。
当存储在HDD 204中的目标程序TP未被加密时,安全模块102可在不对目标程序TP解密的情况下将目标程序TP写出到RAM 203中的扫描目标区域230中。
安全模块102可通过使用修改程序PP来修改目标程序TP。例如,目标程序TP可被修改为具有与目标程序TP基本相同的功能并且具有与目标程序TP基本不同的处理操作或过程。作为目标程序TP的一部分的经修改的程序片段可被保存在安全模块102中。当安全模块102中的程序片段未被引用时,在通信装置101中不可运行目标程序TP。通过该修改,计算程序可被写入到目标程序TP。
安全模块102可周期性地或不定期地运行用于随机且自动地生成/更新扫描程序SP的生成程序GP。例如,可以随机地自动生成具有扫描目标程序TP的功能并且执行每次不同的处理操作的扫描程序SP。
例如,可以按几毫秒到若干分钟的间隔周期性地自动生成扫描程序SP,或者可以按随机间隔不定期地自动生成扫描程序SP。该间隔可被设定得短于破解者进行篡改要花费的时间量。
生成程序GP可以随机地改变例如扫描目标区域230、扫描目标地址的顺序、扫描计算、用于将扫描计算结果返回给安全模块102的计算处理、扫描程序SP的代码或者在通信装置101的存储器中的位置。由于对扫描程序SP的随机且自动的生成/更新处理,即由生成程序GP执行的处理,是在安全模块102内运行的,所以可以减少对生成处理的分析。
当生成程序GP生成或更新扫描程序SP时,安全模块102中的最新扫描程序SP可扫描目标程序TP,从而更新扫描结果R1。扫描结果R1可被存储在RAM 304或闪存306中。扫描结果R1可以是与目标程序TP相对应的特有代码。
处理器201请求驱动器231将扫描程序SP加载到RAM 203中的非扫描目标区域中。驱动器231把从安全模块102发送来的扫描程序SP存储在RAM 203中的非扫描目标区域中。
存储在RAM 203中的扫描程序SP对扫描目标区域230中的目标程序TP进行扫描,从而获得扫描结果R2。扫描结果R2经由驱动器231被报告给安全模块102。
安全模块102接收从驱动器231发送来的扫描结果R2。在接收到扫描结果R2时,认证程序AP将安全模块102中保存的扫描结果R1与接收到的扫描结果R2相比较。
当扫描结果相互匹配时,目标程序TP可能未被篡改。当目标程序TP被覆盖时,安全模块102例如向处理器201发出停止目标程序TP的运行的指令。处理器201可基于该指令而停止目标程序TP。
当在一定时间段中都未从驱动器231接收到扫描结果R2时,安全模块102可向处理器201发出停止目标程序TP的运行的指令。
安全模块102可反复地执行上述处理,直到目标程序TP的操作被停止为止。
由于扫描程序SP被安全模块102操作周期性地或不定期地随机生成/更新,所以可以保护通信装置101中的可改写存储器空间中存储的扫描程序免遭破解。
利用虚假扫描程序在一定量的时间中可以分析并覆盖扫描程序SP。由于安全模块102周期性地或不定期地随机修改扫描程序SP,所以利用虚假扫描程序来分析扫描程序或覆盖它的时间量可能是不足的。
安全模块102可经由具有硬件扫描功能的接口例如DMA(直接存储器访问)接口耦合到通信装置101。
图8示出了通信装置的示例性操作。安全模块102获得存储在HDD204中的经加密的程序E(TP)。安全模块102中的密码电路303将经编码的目标程序E解密成目标程序TP。安全模块102将经解密的目标程序TP写在RAM 203中的扫描目标区域230中。目标程序TP可被保存在安全模块102中。
安全模块102可周期性地或不定期地运行用于自动地随机生成/更新扫描程序SP的生成程序GP。例如,可以随机地自动生成具有扫描目标程序TP的功能并且具有不同的处理操作的扫描程序SP。
例如,可以按几毫秒到若干分钟的间隔周期性地自动生成生成程序GP,或者可以按随机间隔不定期地生成生成程序GP。该间隔可被设定得短于破解者进行篡改要花费的时间量。
生成程序GP可以随机地改变例如扫描目标区域230、扫描目标地址的顺序、扫描计算、用于将扫描计算结果返回给安全模块102的计算处理、扫描程序SP的代码或者在通信装置101中的存储器中的位置。由于对扫描程序SP的随机且自动的生成/更新处理,即由生成程序GP执行的处理,是在安全模块102内运行的,所以可以减少对生成的处理的窥探和分析。
当生成程序GP生成或更新扫描程序SP时,安全模块102使用最新的扫描程序SP来扫描目标程序TP,从而更新扫描结果R1。扫描结果R1可被存储在RAM 304或闪存306中。扫描结果R1可以是与目标程序TP相对应的特有代码。
利用DMA,安全模块102中的扫描程序SP访问扫描目标区域230并且扫描目标程序TP,从而获得扫描结果R2。扫描结果R2可被保存在安全模块102中。
认证程序AP将保存在安全模块102中的扫描结果R1与扫描结果R2相比较。
当扫描结果相互匹配时,目标程序TP可能未被篡改。当目标程序TP被覆盖时,安全模块102例如向处理器201发出停止目标程序TP的运行的通知。处理器201可基于该通知而停止目标程序TP。
安全模块102可反复地执行上述处理,直到目标程序TP的操作被停止为止。
由于是在不使用通信装置101中的处理器201或任何驱动器的情况下提供扫描程序SP的,所以可以保护扫描程序SP以防止通过对驱动器的破解来对其进行篡改。
图9至12示出了示例性的扫描程序。在图9至12中,位置号“xx”和“xxxx”表示与扫描目标区域相关联的逻辑地址。
图9中所示的扫描程序SP扫描目标程序TP。例如,值“1”、“2”、“3”、“4”、“5”可分别被存储在存储器位置11、12、13、14、15。在地址1至5,存储器位置11至15处的内容分别被写入到存储器位置1001至1005。在地址6,写入的值被相加,并且在地址7,加法结果例如“15”被写入到存储器位置1010。
在地址8,执行向存储器位置1010处的内容“15”加上“+80”的计算,并且使结果值经历计算“*5”,从而获得(15+80)×5=475。在地址9,地址8处的计算结果“475”被写入到存储器位置1011,并且在地址10,存储器位置1011处的内容“475”被报告给安全模块102。
安全模块102保存初步扫描的扫描结果。当初步扫描的扫描结果和扫描目标区域230中的目标程序TP的扫描结果基本相互匹配时,目标程序TP可能未被篡改。当初步扫描的扫描结果和扫描目标区域230中的目标程序TP的扫描结果相互不匹配时,目标程序TP可能已被篡改。在此情况下,可发出停止目标程序TP的指令。
在图10中所示的扫描程序SP中,要从其读取图9中所示的扫描程序SP中的地址1至5处的值的扫描目标地址被从存储器位置11至15改变到存储器位置21至25。由于存储器位置21至25处的值被读取,所以要报告给安全模块102的扫描结果可不同于图9中所示的扫描结果。
在图11中所示的扫描程序SP中,图9中所示的扫描程序SP的扫描目标地址的顺序被改变并且依赖于扫描目标地址的顺序的改变的计算被改变。例如,地址1至5处的扫描目标地址的顺序被改变。此外,地址6的计算可被随机覆盖。报告给安全模块102的扫描结果可不同于图9中所示的扫描结果。
由于图11中所示的扫描程序SP未被保存在特定的存储区域中,所以图12中所示的扫描程序SP不可运行扫描。安全模块102指定保存扫描程序SP的地址。
例如,在地址1至5,保存扫描程序SP的地址(例如扫描程序SP的开头地址)可被加到从其读取值的扫描目标地址的值。当安全模块102保存的图12中所示的扫描程序SP的扫描结果R1和扫描目标区域230中的目标程序TP的扫描结果R2基本相互匹配时,扫描程序SP被加载在预定的位置,从而目标程序TP可能不曾被篡改。
当扫描结果相互不匹配时,目标程序TP被停止,因为扫描程序SP可能被保存在了另外的位置。
当存储扫描程序SP的存储器位置不同时,扫描结果不同。可以减少用于分析被写入在不同的存储器位置的扫描程序SP的操作的破解。
图13示出了示例性的扫描程序生成/更新处理。安全模块102中的处理器301运行生成程序GP,从而生成/更新扫描程序SP。
安全模块102等待直到一定量的时间过去。例如,该一定量时间的测量是由写入到RAM 203中的扫描目标区域230的目标程序TP的运行的开始而触发的。该一定量的时间例如可以是几毫秒到若干分钟。可以在几毫秒到若干分钟的范围中随机设定该一定量的时间。
当该一定量的时间过去时,在操作S1302中,安全模块102判定是否生成了扫描程序SP。当没有生成扫描程序SP时,处理前进到操作S1303,在该操作中安全模块102例如如图14或15中所示生成扫描程序。随后,在操作S1304中,安全模块102将所生成的扫描程序SP写入到RAM 203中的非扫描目标区域。
在操作S1305中,安全模块102通过使用所生成的扫描程序SP来扫描目标程序TP。扫描结果可被保存在安全模块102中,例如保存在RAM304或闪存306中。处理随后返回到操作S1301。
当扫描程序SP已被生成时,处理前进到操作S1306,在该操作中安全模块102随机地判定是要更新扫描程序SP还是要生成另一扫描程序SP。当在操作S1307中判定要生成另一扫描程序SP时,处理前进到操作S1303。当在操作S1307中判定要更新扫描程序SP时,处理前进到操作S1308,在该操作中例如可运行图16和17中所示的扫描程序更新处理。在操作S1304中,经更新的扫描程序SP可被写入到RAM 203中的非扫描目标区域。
在操作S1305中,安全模块102通过使用经更新的扫描程序SP来扫描目标程序TP。扫描结果可被保存在安全模块102中,例如保存在RAM304或闪存306中。处理随后返回到操作S1301。
例如,在目标程序TP结束时,目标程序TP被从扫描目标区域230中删除并且安全模块102结束扫描程序生成/更新。
图14示出了示例性的扫描程序生成处理。图14中所示的扫描程序生成处理可对应于图13中所示的扫描程序生成处理,例如操作S1303。在操作S1401中,安全模块102在安全模块102外的RAM 203中设定扫描目标区域230[As,Ae]和写入目的地区域[Bs,Be]。扫描目标区域230[As,Ae]的大小可以与目标程序TP的大小或目标程序TP的一部分的大小基本相同。
当扫描目标区域230[As,Ae]的大小和目标程序TP的一部分的大小基本相同时,每次扫描程序被生成时,扫描目标区域230[As,Ae]被设定在一不同的范围中。例如,每次扫描程序被生成时,扫描目标区域230[As,Ae]可被移位。
在操作S1402中,安全模块102在安全模块102中的RAM 304或闪存306中,例如安全模块内区域,设定大于扫描目标区域230的存储器区域[Ms,Me]。在操作S1403中,安全模块102设定各种变量的初始值。i可以是具有初始值1的变量。Ai可以是扫描目标区域230中的任意地址并且其初始值可以是第一地址As。Bi可以是写入目的地区域中的任意地址并且其初始值可以是第一地址Bs。
Mi可以是安全模块内区域中的任意地址并且其初始值可以是第一地址Ms。Yi可以是在扫描程序SP中使用的地址并且初始值可以是Bi。在操作S1404中,安全模块102向安全模块内区域中的存储器位置Mi写入用于读取存储器位置Ai处的内容并将该内容写入到存储器位置Bi的扫描指令。
在操作S1405中,安全模块102判定是否满足Ai>Ae。Ae可以是扫描目标区域230中的最末地址。当不满足Ai>Ae时,在操作S1406中递增i,并且处理返回到操作S1404。当满足Ai>Ae时,处理前进到例如图15中所示的操作S1501。
图15示出了示例性的扫描程序生成处理。图15中所示的扫描程序生成处理可对应于图13中所示的扫描程序生成处理,例如操作S1303。例如,在图14中所示的操作S1405之后,在操作S1501中递增安全模块内区域中的存储器位置Mi。随后,在操作S1502中,判定是否满足Mi>Me-2。
当不满足Mi>Me-2时,在操作S1503中将变量j的初始值设定为1(即j=1)。在操作S1504中,随机地设定计算方法Zj。该计算方法例如可包括四则运算、逻辑运算、校验和计算或使用散列函数的散列值计算。使用计算方法Zj的计算可被称为“Zj计算”。
在操作S1505中,安全模块102递增j。在操作S1506中,安全模块102判定是否满足j=y,其中y可以是地址Yi的数目,例如安全模块内区域中的存储器位置Mi的数目。
当在操作S1506中不满足j=y时,处理返回到操作S1504。当在操作S1506中满足j=y时,处理前进到操作S1507,在该操作中安全模块102向存储器位置Mi写入扫描指令Z(Mi),用于对存储器位置Y1处的内容和存储器位置Y2处的内容执行Z1计算、对Z1计算的结果和存储器位置Y3处的内容执行Z2计算,……,并且对Z(y-2)计算的结果和存储器位置Yy处的内容执行Z(y-1)计算。
在操作S1508中,安全模块102递增Mi。在操作S1509中,安全模块102向存储器位置Mi写入用于将扫描指令Z(Mi-1)的计算结果写入到存储器位置Bi+1的扫描指令。然后处理返回到操作S1501。
当在操作S1502中满足Mi>Me-2时,处理前进到操作S1510,在该操作中安全模块102向存储器位置Mi写入用于将存储器位置Bi+1处的内容报告给安全模块102的扫描指令。然后处理前进到图13中的操作S1304。在扫描程序生成处理中,例如,在操作S1303中,扫描程序SP可被周期性地或不定期地随机生成。
图16示出了示例性的扫描程序更新处理。图16中所示的扫描程序更新处理可对应于图13中所示的操作S1308。在操作S1601中,安全模块102随机设定更新内容。更新内容例如可包括“模糊处理”、“扫描目标区域的改变”、“扫描目标地址的顺序的改变”、“扫描计算结果的添加”、“扫描程序SP的地址的添加”或者“什么也不做”。
扫描程序更新处理可包括上述六种更新内容中的至少一种。
如图16中所示,在操作S1602中,安全模块102判定更新内容是否指示“模糊处理”。模糊处理使指令或指令组复杂化。例如,某个程序代码可被覆盖以具有基本相同的功能并且具有基本不同的处理操作的程序代码。单个指令,例如“X=1+Y”可被更新为“X=10-9+2Y-Y”。例如,“X=1+Y”和“Z=X+50”可被更新为“X=26+Y”和“Z=X+25”。
经更新的指令可以是具有与更新前指令基本相同的功能并且具有与更新前指令不同的程序代码的指令。生成程序GP的程序代码在每次其被更新时被变更。
当在操作S1602中判定更新内容指示“模糊处理”时,处理前进到操作S1603,在该操作中安全模块102指定目标程序TP要模糊处理的范围。在操作S1604中,指定的范围中包括的指令被模糊处理。然后处理返回到操作S1601。
当在操作S1602中判定更新内容不指示“模糊处理”时,处理前进到操作S1605,在该操作中安全模块102判定更新内容是否指示“扫描目标区域的改变”。
在扫描目标区域的改变中,扫描程序SP指定的扫描目标地址可被改变成扫描目标区域中的另一不同地址。例如,当图9中所示的扫描程序SP被更新到图10中所示的扫描程序SP时,扫描目标区域可被改变。
当在操作S1605中判定更新内容指示“扫描目标区域的改变”时,处理前进到操作S1606,在该操作中安全模块102指定目标程序TP中要改变的扫描范围区域的范围。在操作S1607中,改变指定的范围中的地址。然后处理返回到操作S1601。
在扫描目标区域的改变中,虽然生成程序GP要访问的地址被改变,但扫描程序SP的功能未被改变。由于扫描目标区域230被改变并且扫描结果被更新,所以安全性级别可得到提高。
当在操作S1605中判定更新内容不指示“扫描目标区域的改变”时,处理前进到操作S1608,在该操作中安全模块102判定更新内容是否指示“扫描目标地址的顺序的改变”。在扫描目标地址的顺序的改变中,扫描程序SP中包括的地址处的代码被交换。
例如,当图9中所示的扫描程序SP被更新到图11中所示的扫描程序SP时,扫描目标地址的顺序可被改变。虽然运行的顺序可被改变,但交换前的扫描结果和交换后的扫描结果可能不相同,也可能不是不相同的。
当在操作S1608中判定更新内容指示“扫描目标地址的顺序的改变”时,处理前进到操作S1609,在该操作中安全模块102指定目标程序TP中要改变顺序的扫描目标地址的范围。在操作S1610中,安全模块102交换指定范围中的地址处的代码。然后处理返回到操作S1601。当在操作S1608中判定更新内容不指示“扫描目标地址的顺序的改变”时,处理前进到图17中所示的操作S1701。
图17示出了示例性的扫描程序更新处理。图17中所示的扫描程序更新处理可对应于图13中所示的操作S1308。在操作S1701中,安全模块102可随机地判定是在操作S1601中判定的更新内容是否指示“扫描计算结果的添加”。
当更新内容指示“扫描计算结果的添加”时,处理前进到操作S1702,在该操作中安全模块102指定目标程序TP中的计算目标地址。在操作S1703中,安全模块102可随机地确定计算方法。计算方法例如可以是对于计算目标地址处的数据的四则运算或逻辑运算、数据的校验和计算或者使用散列函数的散列值计算。
在操作S1704中,安全模块102向要更新的生成程序GP添加用于利用计算目标地址处的数据和在操作S1703中确定的计算方法来执行计算的扫描指令。在操作S1705中,安全模块102向要更新的生成程序GP添加把根据添加的扫描指令的计算的结果报告给安全模块102的扫描指令。然后处理返回到操作S1601。
当在操作S1701中判定更新内容不指示“扫描计算结果的添加”时,处理前进到操作S1706,在该操作中安全模块102判定更新内容是否指示“扫描程序SP的地址的添加”。在扫描程序SP的地址的添加中,可以获得依从于扫描程序SP被写入的地址的扫描结果,该地址被用于扫描程序SP的指令。
例如,当图11中所示的扫描程序SP被更新到图12中所示的扫描程序SP时,扫描程序SP的地址可被添加。
当在操作S1706中判定更新内容指示“扫描程序SP的地址的添加”时,处理前进到操作S1707,在该操作中安全模块102在目标程序TP中指定如下地址:扫描程序SP的地址将被加到该地址。在操作S1708中,扫描程序SP的地址的值被加到指定地址处的数据,如图12中的地址1至5中所示。然后处理返回到操作S1601。
当在操作S1706中判定更新内容不指示“扫描程序SP的地址的添加”时,处理前进到操作S1709,在该操作中安全模块102判定是否要结束生成程序GP的更新。例如,当更新内容指示“什么也不做”时,如果未执行更新则不可结束更新。然后处理返回到操作S1601。
当更新被执行了一次或一定次数时,更新可被结束。处理返回到图13中所示的操作S1304。
由于更新是在具有防篡改结构的安全模块102内运行的,所以扫描程序SP的生成/更新可以安全的方式执行。可以减少通过破解实现的扫描功能禁止,并且可以增强USB连接的安全性。
如图7中所示,由安全模块102中的处理器301运行的修改程序PP可修改目标程序TP。
图18示出了示例性的程序修改。程序可以是各个地址的指令的集合。例如,目标程序TP可包括各个地址的五个指令。例如,目标程序TP可包括分割的程序P1至P5,其可被分配为地址adr1至adr5的顺序。HDD 204按运行的顺序将地址adr1至adr5存储为逻辑地址。
修改程序PP可改变目标程序TP(例如分割程序P1至P5)中的位置的顺序(例如可交换地址)。在图18中,地址adr1被分配给分割程序P1,地址adr2被分配给分割程序P4,地址adr3被分配给分割程序P2,地址adr4被分配给分割程序P3,并且地址adr5被分配给分割程序P5。
在分割程序P1、P4和P3之后可添加对安全模块102的读取指令。指示改变后的地址的关系的程序片段被保存在安全模块102中。例如,程序片段pa可以是在运行分割程序P1之后引用的“Goto”语句以引起跳到地址adr3。
例如,程序片段pb可以是在运行分割程序P3之后引用的“Goto”语句以引起跳到地址adr2。例如,程序片段pc可以是在运行分割程序P4之后引用的“Goto”语句以引起跳到地址adr5。可在分配期间添加程序片段pa至pc。分配前的扫描结果R1和分配后的扫描结果R1可以相互不同。
图19至22示出了示例性的程序修改。修改程序PP可修改目标程序TP。在图19中,HDD 204中的目标程序TP中的与地址3和5相对应的指令组的地址被改变成地址7和9。另外,目标程序TP中的与地址6和7相对应的指令组的地址被改变成地址15和16。与地址1至2相对应的指令组的地址未被改变。
在修改之前,与地址3相对应的指令“Z=X+Y”是接着与地址2相对应的指令“Y=X+8”运行的。由于与地址3相对应的指令“Z=X+Y”的地址已被改变成地址7,所以与地址3相对应的指令被指示“Goto 7”的程序片段(例如跳跃指令)所覆盖。安全模块102在一表格中保存地址3和程序片段“Goto 7”的组合。
在修改之前,与地址6相对应的指令“Z=5+Z”是接着与地址5相对应的指令“Z=Z+1”运行的。由于与地址5相对应的指令“Z=Z+1”的地址已被改变成地址9并且与地址6相对应的指令已被改变成地址15,所以与地址10相对应的指令被程序片段“Goto 15”(例如跳跃指令)所覆盖。安全模块102在表格中保存地址10和程序片段“Goto 15”的组合。
在将目标程序TP写入到扫描目标区域230之前,安全模块102利用对安全模块102的读取指令来覆盖程序片段。当运行被加载在扫描目标区域230中的经修改的目标程序TP时,基于与地址3相对应的读取指令来引用安全模块102中的表格并且指定与地址3相对应的程序片段“Goto7”。安全模块102将“Goto 7”报告给处理器201并且处理器201运行经修改的目标程序TP中的地址7处的指令。
由于目标程序TP中包括的指令组被混排,同时指令组的关系被保持,所以对目标程序TP的解译可变得更困难。
在图20中,目标程序TP中包括的指令可被作为程序片段插入。
在图20中,HDD 204中的目标程序TP中的与地址4和5相对应的指令组的地址被改变成地址8和9。目标程序TP中的与地址6和7相对应的指令组的地址被改变成地址15和16。与地址1至3相对应的指令组的地址未被改变。
在修改之前,与地址3相对应的指令“Z=X+Y”是接着与地址2相对应的指令“Y=X+8”运行的。由于与地址4相对应的指令的地址已被改变成地址8,所以Goto语句“Goto 8”被生成。安全模块102保存地址3、地址3处的指令“Z=X+Y”和Goto语句“Goto 8”的组合。作为复杂化的程序片段的结果,可以增强安全性。
图21示出了指令的示例性加密。在图21中,目标程序TP中包括的指令组可被加密。安全模块102利用密码密钥K1至K4来对修改前目标程序TP中的与地址4至7相对应的指令组加密。在每个被加密的指令之前插入对安全模块102的读取指令和解密指令。地址被向下移动与插入的指令的数目相对应的量。
例如,与地址4相对应的指令“Y=Y+1”被用密码密钥K1加密并且经加密的指令被写入到地址6。对安全模块102的读取指令被插入在空地址4处并且解密指令被插入在地址5处。
安全模块102在表格中保存用来对经修改的目标程序TP中的被加密指令加密的密钥和对被加密指令插入的读取指令的地址的组合。例如,用来对写入在地址6处的被加密指令E1(Y=Y+1)加密的密码密钥K1和基于被加密指令E1(Y=Y+1)的生成而插入的读取指令的地址4被保存在该表格中。
安全模块102将该表格保存在RAM 304或闪存306中并且将经修改的目标程序TP写入到扫描目标区域。当运行经修改的目标程序TP时,基于插入的读取指令读取密码密钥K并且基于解密指令对经加密的指令进行解密。随后,执行经解密的指令。例如,安全模块102基于与地址4相对应的读取指令来引用表格以将密码密钥K1提供给处理器201。
处理器201基于密码密钥K1和与地址5相对应的解密指令来对被加密指令E1(Y=Y+1)解密,并将经加密的指令“Y=Y+1”写入到地址6。写入到地址6的指令“Y=Y+1”可被运行。即使当扫描目标程序被部分加密时,也从安全模块102获得解密密钥并且继续该处理。
图22示出了指令的示例性加密。图22中所示的指令可被包括在目标程序TP中。在图22中,安全模块102利用对安全模块102的读取指令来替换修改前的目标程序TP中的与地址4至7相对应的指令组。例如,与地址4相对应的指令“Y=Y+1”被用读取指令替换。用于写入从安全模块102读取的地址4处的指令“Y=Y+1”的指令被插入在下一地址5处。
安全模块102在表格中保存被替换的指令及其地址的组合。例如,安全模块102在表格中保存被替换的指令“Y=Y+1”及其地址4的组合。
安全模块102将该表格保存在RAM 304或闪存306中并将经修改的目标程序TP写入到扫描目标区域230。当经修改的目标程序TP被运行时,处理器201基于替换了原始指令的读取指令来读取被替换的指令(即原始指令)并且运行被替换的指令。例如,处理器201基于地址4处的读取指令从安全模块102中读取指令“Y=Y+1”,并且运行读取的指令“Y=Y+1”。
图23示出了示例性的程序修改。目标程序TP可被修改。在操作S2301中,安全模块102从HDD 204中读取经加密的目标程序E(TP)。在操作S2302中,安全模块102对经加密的目标程序E(TP)解密。例如,当目标程序TP未被加密时,从HDD 204读取的目标程序TP可不被解密。
在操作S2303中,计算程序被写入到目标程序TP。在操作S2304中,安全模块102确定对目标程序TP的修改方法。修改方法可包括“模糊处理”、“加密”、“混排”或“什么也不做”。加密可对应于图21中所示的加密。混排可对应于图20或21中所示的混排。
在操作S2305中,安全模块102判定修改方法是否是“模糊处理”。当修改方法是“模糊处理”时,处理前进到操作S2306,在该操作中安全模块102指定目标程序TP中要被模糊处理的范围。在操作S2307中,安全模块102对指定范围中的指令进行模糊处理。然后处理返回到操作S2304。
当修改方法不是“模糊处理”时,处理前进到操作S2308,在该操作中安全模块102判定修改方法是否是“加密”。当修改方法是“加密”时,处理前进到操作S2309,在该操作中安全模块102指定目标程序TP中要被加密的范围。在操作S2310中,安全模块102对指定范围中的指令进行加密。例如,如图21中所示,安全模块102在表格中存储要被加密的指令的地址和用来对该地址处的被加密指令加密的解密密钥的组合。然后处理返回到操作S2304。
当修改方法不是“加密”时,处理前进到操作S2311,在该操作中安全模块102判定修改方法是否是“混排”。当修改方法是“混排”时,处理前进到操作S2312,在该操作中安全模块102执行例如如图19中所示的混排。然后处理返回到操作S2304。
当修改方法不是“混排”时,处理前进到操作S2313,在该操作中安全模块102判定是否结束修改。例如,当修改方法被设定成“什么也不做”并且没有执行修改时,不结束修改。然后处理返回到操作S2304。
当修改被执行了至少一次或一定次数时,修改被结束。经修改的目标程序TP被写入到RAM 203中的扫描目标区域230。
图24示出了混排处理的示例性的一个示例。图24中所示的混排处理可对应于图23中所示的操作S2312。例如,可执行图19中所示的混排。在操作S2401中,安全模块102在安全模块102中保留一区域。在操作S2402中,安全模块102将目标程序TP分割成多个指令组。
在操作S2403中,安全模块102将指令组中的第一指令组设定为目标指令组。在操作S2404中,安全模块102判定是否存在目标指令组后的任何指令组。当存在随后的指令组时,处理前进到操作S2405,在该操作中安全模块102随机地生成程序片段,例如Goto语句。例如,安全模块102为目标指令组保留一区域。
在操作S2406中,安全模块102将程序片段的地址设定成目标指令组的最末地址的下一地址。在操作S2407中,安全模块102向表格中添加程序片段及其写入目的地地址的组合。
在操作S2408中,安全模块102将程序片段的读取指令写入到目标程序TP的分配给程序片段的地址。在操作S2409中,安全模块102设定程序片段所指示的地址处(例如程序片段“Goto 8”所指示的地址8处)的随后指令组为目标指令组。然后处理返回到操作S2404。
当在操作S2404中判定不存在目标指令组后的指令组时,混排处理结束。然后处理返回到操作S2304。
由于修改了目标程序TP,所以可以减少对目标程序TP的破解。当读取经加密的目标程序TP时,可以为修改处理改变修改方法。
当扫描程序SP周期性地或不定期地对扫描目标区域230进行扫描时,修改程序PP在扫描程序SP被更新之前将数据和代码写入到扫描目标区域230。在更新之前,经修改的扫描程序SP对扫描目标区域230进行扫描,并且检查扫描程序SP是否适当地操作。
图25A至25C示出了示例性的程序修改。目标程序TP可被修改。在图25A中,目标程序TP中与地址1至4相对应的指令被模糊处理并且NOP(无操作指令)被添加到地址5至7。在图25B中,与地址1至4相对应的指令不被改变,并且指令被添加到地址5至7。在图25C中,与地址1至4相对应的指令不被改变,并且指令被添加到地址5至7。图25A中所示的处理的结果、图25B中所示的处理的结果和图25C中所示的处理的结果基本相同。
在图25A至25C中的每一幅的左侧所示的目标程序TP被扫描之后,图25A至25C中的每一幅的右侧所示的目标程序TP被修改,并且经修改的目标程序TP在扫描程序SP更新之前被扫描。结果,可以检查扫描程序SP的适当操作。
图26示出了示例性的计算程序。图26中所示的计算程序可被包括在目标程序TP中。计算程序确定特定计算的结果。安全模块102可基于计算程序的计算结果来判定目标程序TP的真实性。
例如,计算程序可在存储器位置2处存储通过将存储器位置1处的值乘以第一秘密数“yyy”而获得的值,并且可在存储器位置3处存储通过将存储器位置2处的值乘以第二秘密数“zzz”而获得的值。
安全模块102将所生成的值“X”存储在存储器位置1处。安全模块102基于值“X”通过计算程序确定真实值“Xans”。
目标程序TP读取存储器位置1处的“X”;在存储器位置2处存储通过将“X”乘以第一秘密数“yyy”而获得的值“Y”,并且在存储器位置3处存储通过将存储器位置2处的值“Y”乘以第二秘密数“zzz”而获得的值“Xcul”。
例如,安全模块102周期性地引用存储器位置3处的值以读取存储器位置3处的值“Xcul”并将值“Xcul”与真实值“Xans”相比较。当Xcul和Xans在“X”被存储在存储器位置1处后的一定量的时间内相互匹配时,安全模块102判定目标程序TP是真实程序。当Xcul和Xans在该一定时间段内不相互匹配时,安全模块102判定目标程序TP是非真实程序。
图27示出了示例性的认证处理。安全模块102可执行图27中所示的认证处理。在操作S2701中,安全模块102开始时间测量。在操作S2702中,安全模块102将所生成的值“X”存储在特定的第一存储器位置处。在操作S2703中,计算程序从所生成的值“X”确定真实值“Xans”。
在操作S2704中,安全模块102读取第二存储器位置处的值。在操作S2705中,安全模块102判定所读取的值是否匹配Xans。当读取的值匹配Xans时,处理前进到操作S2706,在该操作中安全模块102判定目标程序TP是真实程序,然后认证处理结束。
当读取的值不匹配Xans时,处理前进到操作S2707,在该操作中安全模块102判定从操作S2701中的时间测量开始是否已过去了一定量的时间。当一定量的时间尚未过去时,处理返回到操作S2704。
当一定量的时间已过去时,处理前进到操作S2708,在该操作中安全模块102判定目标程序TP是非真实程序。然后,认证处理可结束。认证处理的细节,例如计算程序,在每次其被运行时可被改变。每次经加密的目标程序TP被读取时,目标程序TP中的计算程序可被改变。从而,可以减少破解者的破解处理,例如对计算程序的分析和假扮。
图28示出了示例性的加密许可处理。安全模块102可执行图28中所示的加密许可。在操作S2801中,安全模块102判定目标程序TP是被篡改。
当目标程序TP未被篡改时,处理前进到操作S2802,在该操作中安全模块102判定是否从目标程序TP接收到了处理请求。
当从目标程序TP接收到处理请求时,处理前进到操作S2803,在该操作中安全模块102基于从目标程序TP接收的处理请求执行处理,然后处理返回到操作S2801。当在操作S2802中未接收到处理请求时,处理返回到操作S2801。
当在操作S2801中判定目标程序TP被篡改时,处理前进到操作S2804,在该操作中安全模块102可进入差错模式,然后认证许可处理可结束。在差错模式中,当目标程序TP未被重启时,安全模块102可拒绝来自目标程序TP的请求。
图29和30示出了示例性的认证序列。在图29和30中,通信装置101和中心103可相互验证其与之通信的装置是否是真实装置。
图29示出了通信装置与中心之间的示例性相互认证。安全模块102保存中心103的公钥和安全模块102的秘密密钥。中心103保存安全模块102的公钥和中心103的秘密密钥。安全模块102和中心103可保存共同密钥。
在图29中的操作S2901中,目标程序TP向中心103发送认证请求,该认证请求包括所生成的通信装置随机数和用户信息。
在接收到认证请求后,在操作S2902中,中心103使用其秘密密钥来对在中心103处生成的中心随机数、在中心103处生成的会话密钥(例如临时密钥)和接收到的认证请求中包括的通信装置随机数进行加密。在操作S2903中,中心103将经加密的中心随机数、经加密的会话密钥和经加密的通信装置随机数发送到目标程序TP。
在接收到经加密的中心随机数、经加密的会话密钥和经加密的通信装置随机数后,在操作S2904中,目标程序TP向安全模块102发送包括经加密的中心随机数、经加密的会话密钥和经加密的通信装置随机数的解密请求。在接收到该解密请求后,在操作S2905中,安全模块102从目标程序TP获得程序认证信息。在操作S2906中,安全模块102基于所获得的程序认证信息来验证目标程序TP的真实性。
在操作S2907中,安全模块102使用中心103的公钥来对中心随机数、会话密钥和通信装置随机数解密。安全模块102保存经解密的会话密钥。在操作S2908中,安全模块102使用安全模块102的秘密密钥来对经解密的中心随机数重新加密。在操作S2909中,安全模块102将经解密的通信装置随机数和经重新加密的中心随机数发送给目标程序TP。
在接收到经解密的通信装置随机数和经重新加密的中心随机数后,目标程序TP判定接收到的由安全模块102解密的通信装置随机数和在操作S2901中发送的通信装置随机数是否相互匹配。当通信装置随机数相互匹配时,处理前进到操作S2910,在该操作中目标程序TP判定其耦合到真实的中心103。在操作S2911中,目标程序TP将经重新加密的中心随机数发送给中心103。
在操作S2912中,中心103对接收到的经重新加密的中心随机数进行解密。然后中心103判定经解密的中心随机数和在操作S2903中发送的中心随机数是否相互匹配。当中心随机数相互匹配时,处理前进到操作S2913,在该操作中中心103验证了其耦合到真实的目标程序TP。然后,处理前进到图30中的操作S3001。
图30示出了示例性的相互认证。该相互认证可在通信装置101与中心103之间执行。如图30中所示,在操作S3001中,验证了目标程序TP的中心103使用会话密钥对连接确认加密。在操作S3002中,中心103将经加密的连接确认发送到目标程序TP。
在接收到经加密的连接确认后,在操作S3003中,目标程序TP向安全模块102发送包括经加密的连接确认的解密请求。在接收到解密请求后,在操作S3004中,安全模块102从目标程序TP获得程序认证信息。在操作S3005中,安全模块102基于所获得的程序认证信息来验证目标程序TP的真实性。
在操作S3006中,安全模块102使用中心103的会话密钥来对来自解密请求的连接确认解密。在操作S3007中,安全模块102将经解密的连接确认发送到目标程序TP。
在接收到连接确认后,在操作S3008中,目标程序TP判定与中心103的相互连接完成并且进入目标程序TP等待来自用户的输入的状态。
由于通信装置101和中心103在相互认证期间发送各自的随机数,所以可以减少重放攻击。当相互认证被执行多次时,一系列加密的信号基于所发送的随机数而变化。
此布置减少了破解者通过发送相同的一系列信号到中心103来假扮通信装置101的合法用户。生成随机数的功能也可以是安全的。
在通信装置101和中心103相互验证了其与之通信的装置是真实装置后,通信装置101基于目标程序TP发送/接收数据。
图31示出了示例性相互认证。该相互认证可在通信装置101与中心103之间执行。在图31中,通信装置101和中心103与彼此执行加密通信。例如,用户可向目标程序TP输入包括要购买的书籍和递送地址的购买信息。
如图31中所示,在操作S3101中,目标程序TP接收用户输入的购买信息并向安全模块102发送对购买信息的加密请求。在接收到加密请求后,在操作S3102中,安全模块102从目标程序TP获得程序认证信息。在操作S3103中,安全模块102基于所获得的程序认证信息来验证目标程序TP的真实性。
在操作S3104中,接收到了购买信息的安全模块102使用安全模块102的会话密钥来对购买信息加密。在操作S3105中,安全模块102将经加密的购买信息发送到目标程序TP。在接收到经加密的购买信息后,在操作S3106中,目标程序TP将经加密的购买信息发送到中心103。
在接收到经加密的购买信息后,在操作S3107中,中心103使用中心103的会话密钥来对购买信息解密。在操作S3108中,中心103基于经解密的购买信息来销售相应的商品。
由于安全模块102在检查目标程序TP是否是真实程序之后对购买信息加密,所以减少了向中心103发送伪造的购买信息。
图32示出了示例性的相互认证。该相互认证可在通信装置101与中心103之间执行。在图32中,通信装置101和中心103可与彼此执行程序代码的加密通信。例如,用户可向目标程序TP输入所需软件服务的服务标识号。
如图32中所示,在操作S3201中,目标程序TP从用户接收服务标识信息,然后向安全模块102发送对服务标识信息的加密请求。在接收到加密请求后,在操作S3202中,安全模块102从目标程序TP获得程序认证信息。在操作S3203中,安全模块102基于所获得的程序认证信息来验证目标程序TP的真实性。
在操作S3204中,接收到了服务标识号的安全模块102使用安全模块102的会话密钥来对服务标识号加密。在操作S3205中,安全模块102将经加密的服务标识号发送到目标程序TP。在接收到经加密的服务标识号后,在操作S3206中,目标程序TP将经加密的服务标识号发送到中心103。
在接收到经加密的服务标识号后,在操作S3207中,中心103使用中心103的会话密钥来对服务标识号解密。中心103使用中心103的会话密钥来对经解密的服务标识号和与该服务标识号相对应的程序代码进行加密。在操作S3208中,中心103将经加密的服务标识号和程序代码发送到目标程序TP。然后,处理前进到图33中所示的操作S3301。
图33示出了加密通信的示例性序列。在图33中,通信装置101和中心103可与彼此执行程序代码的加密通信。在操作S3301中,目标程序TP向安全模块102发送包括接收到的经加密的服务标识号和程序代码的解密请求。在接收到该解密请求后,在操作S3302中,安全模块102从目标程序TP获得程序认证信息。在操作S3303中,安全模块102基于所获得的程序认证信息来验证目标程序TP的真实性。
在操作S3304中,接收到了经加密的服务标识号和程序代码的安全模块102使用安全模块102的会话密钥来对服务标识号和程序代码解密。在操作S3305中,安全模块102使用随机生成的密钥来对经解密的程序代码重新加密。
在操作S3306中,安全模块102将服务标识号和经重新加密的程序代码发送到目标程序TP。在操作S3307中,安全模块102将随机生成的密码密钥和服务标识号相互关联地存储。在操作S3308中,目标程序TP将接收到的服务标识号和经重新加密的程序代码相互关联地存储。
由于安全模块102在检查目标程序TP是否是真实程序之后对服务标识信息加密,所以减少了向中心103发送伪造的服务标识号。由于安全模块102对从中心103发送来的程序代码重新加密以用安全的方式管理用于程序代码的解密密钥,所以减少了对程序代码的篡改。
由于完好性得到确保的安全模块102中的扫描程序SP检测篡改,所以减少了对扫描程序SP的破解。
当通信装置101中的扫描程序SP检测篡改时,安全模块102随机地更新通信装置101中的扫描程序SP。可以减少破解者对扫描程序SP的破解。
安全模块102可通过执行“模糊处理”、“扫描目标区域的改变”、“扫描目标地址的顺序的改变”、“扫描计算结果的添加”或者“扫描程序的地址的添加”来更新扫描程序SP。可以减少破解者对扫描程序SP的解译或篡改。
由于安全模块102修改目标程序TP,所以可以减少破解者对目标程序TP的破解。例如,安全模块102可通过执行模糊处理、加密或混排来修改目标程序TP。作为修改的结果,可以减少破解者对目标程序TP的解译或篡改。
当检测到篡改时,安全模块102可停止密码单元608、输出单元609或所有功能。由于对从被检测到篡改的目标程序TP发出的密码密钥K读取请求和通信内容加密请求不执行处理,所以被检测到篡改的目标程序TP不利用密码密钥K执行加密通信。
基于向通信装置101输出请求和获得对该请求的响应之间的时间间隔,安全模块102估计安全模块102与响应发送源之间的物理距离。安全模块102判定破解者的计算机104正假扮通信装置101的合法用户。
由于安全模块102对从通信装置101中的目标程序TP接收或要发送到通信装置101中的目标程序TP的数据进行加密,所以可以减少对安全模块102与通信装置101中的处理器301之间的通信信道上的数据的破解。
现在已经根据上述优点描述了本发明的示例性实施例。将会明白,这些示例只是在例示本发明。许多变化和修改对于本领域的技术人员是显而易见的。

Claims (20)

1.一种通信装置,包括:
安全模块;
设在所述安全模块外部的第一存储设备,存储用于利用存储在所述安全模块中的密码密钥与所述通信装置外部的装置加密通信的程序;
设在所述安全模块中的检测单元,检测对所述程序的篡改;以及
设在所述安全模块中的设定单元,当检测到对所述程序的篡改时禁止所述加密通信。
2.根据权利要求1所述的通信装置,还包括:
设在所述安全模块中的第二存储设备,存储与所述程序相对应的第一代码;以及
生成单元,生成用于生成所述第一代码的第一扫描程序并且通过更新所述第一扫描程序来生成第二扫描程序,
其中,所述检测单元基于所述第一扫描程序和所述第一代码的运行结果来检测对所述程序的篡改。
3.根据权利要求2所述的通信装置,其中,所述生成单元对所述第一扫描程序的指令进行模糊处理。
4.根据权利要求2所述的通信装置,其中,所述生成单元改变所述第一扫描程序指定的扫描目标地址。
5.根据权利要求2所述的通信装置,其中,所述生成单元改变所述第一扫描程序中的相应指令指定的扫描目标地址的顺序。
6.根据权利要求2所述的通信装置,其中,所述生成单元基于所述第一扫描程序中的指令指定的数据改变计算指令的内容,将根据改变后的计算指令的计算的结果存储在所述第一存储设备中并且添加用于将所述计算的结果返回给所述安全模块的指令。
7.根据权利要求2所述的通信装置,其中,所述生成单元将所述第一扫描程序中的指令改变成依赖于所述第一扫描程序在所述通信装置中的存储地址的指令。
8.根据权利要求2所述的通信装置,其中,所述生成单元生成与所述第一代码实质上相同的第二代码,并且生成包括与所述第一扫描程序的描述不同的描述的第三扫描程序作为所述第二扫描程序。
9.根据权利要求2所述的通信装置,其中,所述生成单元生成包括与所述第一扫描程序的描述不同的描述以及与所述第一扫描程序的功能实质上相同的功能的第三扫描程序作为所述第二扫描程序,并且覆盖所述第二存储设备中与所述第二扫描程序相对应的第二代码。
10.根据权利要求1所述的通信装置,还包括:
修改单元,将所述程序修改成具有不同的描述并且具有实质上相同的功能的程序代码并将与所述程序代码相对应的代码写入在所述第一存储设备中,
其中,所述检测单元基于所述程序代码中的计算的结果的有效性来检测对所述程序代码的篡改。
11.根据权利要求10所述的通信装置,其中,所述修改单元对所述程序的指令进行模糊处理。
12.根据权利要求10所述的通信装置,其中,所述修改单元对所述程序的指令进行混排;在所述第二存储设备中存储指定如下组合的表格:指定跳跃目的地指令的地址的跳跃指令和该跳跃指令的地址的组合;将所述跳跃指令的内容改变成对所述表格的读取指令;并且将所述读取指令写入在所述第一存储设备中。
13.根据权利要求10所述的通信装置,其中,所述修改单元对所述程序的指令进行混排;在所述第二存储设备中存储指定如下组合的表格:指定跳跃目的地指令的地址的跳跃指令、跳跃源指令和该跳跃源指令的地址的组合;将所述跳跃源指令的内容改变成对所述表格的读取指令;并且将所述读取指令写入在所述第一存储设备中。
14.根据权利要求10所述的通信装置,其中,所述修改单元将所述程序的任意指令替换为由对该任意指令加密产生的经加密指令、对所述安全模块的读取指令以及用于对所述经加密指令解密的解密指令;在所述第二存储设备中存储指定所述读取指令的地址和用于对所述经加密指令解密的解密指令的组合的表格;并且将被替换的程序写入在所述第一存储设备中。
15.根据权利要求10所述的通信装置,其中,所述修改单元将所述程序的任意指令替换为对所述安全模块的读取指令;在所述第二存储设备中存储指定所述读取指令的地址和所述任意指令的组合的表格;并且将被替换的程序写入在所述第一存储设备中。
16.根据权利要求1所述的通信装置,还包括:
判定单元,当所述检测单元未检测到对所述程序的篡改时,该判定单元判定从向所述通信装置中的处理器输出请求到从所述处理器获得响应的时间量是否长于或等于一定时间量。
17.根据权利要求1所述的通信装置,还包括:
获得单元,获得要从所述程序发送到所述外部装置的数据,所述获得发生在所述数据的发送之前;以及
密码单元,通过使用所述密码密钥对所述数据加密,
其中,所述设定单元禁止所述密码单元。
18.根据权利要求1所述的通信装置,其中,所述安全模块还包括:
获得单元,获得来自所述程序的对输出所述密码密钥的请求;以及
输出单元,在所述获得单元获得所述请求时将所述密码密钥输出到所述程序,
其中,所述设定单元禁止所述输出单元。
19.根据权利要求1所述的通信装置,其中,所述密码密钥是所述安全模块的秘密密钥,该秘密密钥对应于所述外部装置的公钥。
20.一种设在通信装置中的安全模块,具有不能被从外部引用的数据,该安全模块包括:
检测单元,检测对用于利用所述安全模块中的密码密钥与所述通信装置外部的装置执行加密通信的程序的篡改,所述程序被保存在设在所述通信装置中、所述安全模块外部的存储设备中;以及
设定单元,当所述检测单元检测到对所述程序的篡改时,所述设定单元将所述安全模块置于所述程序不能利用所述密码密钥执行所述加密通信的状态中。
CN201210023265.4A 2011-02-08 2012-01-20 通信装置和安全模块 Active CN102630085B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011025497A JP5772031B2 (ja) 2011-02-08 2011-02-08 通信装置およびセキュアモジュール
JP2011-025497 2011-02-08

Publications (2)

Publication Number Publication Date
CN102630085A true CN102630085A (zh) 2012-08-08
CN102630085B CN102630085B (zh) 2015-05-13

Family

ID=45540780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210023265.4A Active CN102630085B (zh) 2011-02-08 2012-01-20 通信装置和安全模块

Country Status (5)

Country Link
US (1) US9152773B2 (zh)
EP (1) EP2485173B1 (zh)
JP (1) JP5772031B2 (zh)
KR (1) KR101337084B1 (zh)
CN (1) CN102630085B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719938B2 (en) * 2012-04-09 2014-05-06 Landis+Gyr Innovations, Inc. Detecting network intrusion using a decoy cryptographic key
US10230762B2 (en) * 2012-08-31 2019-03-12 Jpmorgan Chase Bank, N.A. System and method for sharing information in a private ecosystem
EP2917866B1 (en) 2012-11-06 2020-01-01 Nec Corporation Method and system for executing applications in an untrusted environment
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
JP6368531B2 (ja) 2014-04-28 2018-08-01 達広 白井 暗号処理装置、暗号処理システム、および暗号処理方法
KR101594380B1 (ko) 2015-03-04 2016-02-16 엘지전자 주식회사 이동 단말기 및 코일 안테나 모듈
CN107408166B (zh) * 2015-03-13 2021-08-10 爱维斯宾公司 动态安全模块创建方法及创建装置
EP3281104B1 (en) * 2015-04-07 2024-01-24 Runsafe Security, Inc. System and method of obfuscation through binary and memory diversity
KR102349714B1 (ko) * 2015-08-13 2022-01-12 삼성전자주식회사 전자 기기의 프로그램 관리 방법 및 장치
CN107026727B (zh) * 2016-02-02 2019-03-29 阿里巴巴集团控股有限公司 一种建立设备间通信的方法、装置和系统
JP7013921B2 (ja) 2018-02-19 2022-02-01 株式会社デンソー 検証端末
JP7031374B2 (ja) 2018-03-01 2022-03-08 株式会社デンソー 検証端末、検証システム
US10831899B2 (en) * 2018-05-14 2020-11-10 Sap Se Security-relevant code detection system
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
EP3786818A1 (de) * 2019-08-27 2021-03-03 Siemens Aktiengesellschaft Verfahren zum schützen einer softwareanwendung gegen ein unbefugtes nutzen

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387238A2 (en) * 2002-07-30 2004-02-04 Fujitsu Limited Method and apparatus for reproducing information using a security module
CN1656434A (zh) * 2002-08-01 2005-08-17 松下电器产业株式会社 用于解密已加密数据并在存储器空间中定位用于执行的解密数据的方法和设备
CN101256613A (zh) * 2007-02-27 2008-09-03 富士通株式会社 无需制造者和用户知道彼此的加密信息的安全处理器系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI981232A (fi) 1998-06-01 1999-12-02 Nokia Mobile Phones Ltd Menetelmä sulautetun järjestelmän ohjelmiston suojaamiseksi ja sulautettu järjestelmä
JP4172131B2 (ja) * 1999-03-15 2008-10-29 ソニー株式会社 データ処理装置、データ処理システムおよびその方法
KR100358705B1 (ko) * 1999-11-25 2002-10-30 주식회사 소프트 프로텍 Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
WO2003028283A1 (en) * 2001-09-21 2003-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Arrangement and method for execution of code
JP3958017B2 (ja) * 2001-10-19 2007-08-15 大日本印刷株式会社 通信システムおよび通信方法
JP4145118B2 (ja) * 2001-11-26 2008-09-03 松下電器産業株式会社 アプリケーション認証システム
JP4408601B2 (ja) 2001-12-27 2010-02-03 富士通株式会社 情報再生装置およびセキュアモジュール
JP4576100B2 (ja) * 2002-07-30 2010-11-04 富士通株式会社 情報再生装置、セキュアモジュールおよび情報再生方法
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
JP2005157930A (ja) * 2003-11-28 2005-06-16 Matsushita Electric Ind Co Ltd 機密情報処理システムおよびlsi
US8140664B2 (en) * 2005-05-09 2012-03-20 Trend Micro Incorporated Graphical user interface based sensitive information and internal information vulnerability management system
JP2007013677A (ja) * 2005-06-30 2007-01-18 Fujitsu Ltd Icチップ、ボード、情報処理装置及びコンピュータプログラム
JP4912772B2 (ja) * 2005-09-22 2012-04-11 富士通株式会社 暗号化方法,暗号復号化方法,暗号化装置,暗号復号化装置,送受信システムおよび通信システム
JP2007150965A (ja) * 2005-10-28 2007-06-14 Victor Co Of Japan Ltd デジタルデータ送受信装置及び送信・復号化制御用プログラム
GB0605383D0 (en) * 2006-03-17 2006-04-26 Williams Paul N Processing system
JP4888057B2 (ja) * 2006-11-01 2012-02-29 富士通セミコンダクター株式会社 情報処理装置
US20080126766A1 (en) * 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
JP4750734B2 (ja) * 2007-02-26 2011-08-17 富士通株式会社 情報再生装置およびセキュアモジュール
US8548168B2 (en) * 2007-07-19 2013-10-01 Vixs Systems, Inc. Security module for securing an encrypted signal with system and method for use therewith
US8490189B2 (en) * 2009-09-25 2013-07-16 Intel Corporation Using chipset-based protected firmware for host software tamper detection and protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387238A2 (en) * 2002-07-30 2004-02-04 Fujitsu Limited Method and apparatus for reproducing information using a security module
CN1656434A (zh) * 2002-08-01 2005-08-17 松下电器产业株式会社 用于解密已加密数据并在存储器空间中定位用于执行的解密数据的方法和设备
CN101256613A (zh) * 2007-02-27 2008-09-03 富士通株式会社 无需制造者和用户知道彼此的加密信息的安全处理器系统

Also Published As

Publication number Publication date
EP2485173A1 (en) 2012-08-08
EP2485173B1 (en) 2019-03-06
US9152773B2 (en) 2015-10-06
JP5772031B2 (ja) 2015-09-02
US20120201380A1 (en) 2012-08-09
KR101337084B1 (ko) 2013-12-05
JP2012165289A (ja) 2012-08-30
CN102630085B (zh) 2015-05-13
KR20120100714A (ko) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102630085B (zh) 通信装置和安全模块
JP5775738B2 (ja) 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
CN101345619B (zh) 基于生物特征和移动密钥的电子数据保护方法及装置
US20190050598A1 (en) Secure data storage
CN106169041B (zh) 一种基于usbkey鉴权的安全加密移动硬盘及其数据传输方法
CN103038745B (zh) 扩展完整性测量
CN1659563A (zh) 利用智能卡技术的可传送计量表许可证
CN110932859B (zh) 用户信息的处理方法、装置、设备及可读存储介质
CN102333072B (zh) 一种基于智能终端的网络银行可信交易系统与方法
CN104268488A (zh) 用于产品注册的系统和方法
CN113382405A (zh) 一种网络空间信息安全控制方法与应用
CN106971092B (zh) 基于云平台的usb加密卡管理系统
CN112883425B (zh) 基于区块链的数据处理方法以及区块链节点
US9768964B2 (en) Certified identification system and method
CN113918392B (zh) 一种调试保护系统及调试处理模块
CN115865495A (zh) 数据传输控制方法、装置、电子设备和可读存储介质
CN113159940A (zh) 用于增强型比特币钱包的交易方法、系统及计算机设备
KR102656375B1 (ko) 공유 콘텐츠 보안 향상을 위한 디지털 권한 관리 시스템 및 그 동작 방법
CN113821455A (zh) 存储分区刷写方法、装置、发送与写入设备及芯片
US6973408B2 (en) LSI test program protection method and LSI test method
CN108255723B (zh) 用于软件检测的方法和装置以及计算机可读存储介质
Archibong et al. Analysis of Cybersecurity Vulnerabilities in Mobile Payment Applications
CN117648704A (zh) 一种基于区块链的数据安全交互方法、介质及系统
CN117492777A (zh) 实现mcu软件生产资料的安全烧录方法、系统和设备
CN102013977A (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