CN105453102A - 用于识别已泄漏的私有密钥的***和方法 - Google Patents

用于识别已泄漏的私有密钥的***和方法 Download PDF

Info

Publication number
CN105453102A
CN105453102A CN201480044024.5A CN201480044024A CN105453102A CN 105453102 A CN105453102 A CN 105453102A CN 201480044024 A CN201480044024 A CN 201480044024A CN 105453102 A CN105453102 A CN 105453102A
Authority
CN
China
Prior art keywords
cipher key
private cipher
information
application program
signer
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
CN201480044024.5A
Other languages
English (en)
Other versions
CN105453102B (zh
Inventor
A·瓦达
J·毛
M·杨
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.)
CAI Software LLC
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of CN105453102A publication Critical patent/CN105453102A/zh
Application granted granted Critical
Publication of CN105453102B publication Critical patent/CN105453102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用于识别已泄漏的私有密钥的计算机实现的方法,所述方法可包括:(1)识别允许签名人数字签署应用程序的私有密钥,(2)从至少一个公共来源收集关于所述私有密钥的信息,(3)根据从所述公共来源收集到的所述信息,确定所述私有密钥已泄漏并且可供未授权签名人使用,以及(4)执行安全操作以响应于确定所述私有密钥已泄漏并且可供所述未授权签名人使用。还公开了各种其他方法、***和计算机可读介质。

Description

用于识别已泄漏的私有密钥的***和方法
背景技术
在计算技术发展的早期,通常经由物理磁盘安装新应用程序,这使得恶意代理难以冒充合法开发者。现在,通常经由互联网从各种来源下载应用程序,这些来源包括网站和应用程序发布平台。遗憾的是,欺诈网站和恶意开发者可轻易地模仿合法开发者和应用程序,从而可能导致用户下载恶意应用程序,给用户、***和企业的安全造成极大风险。
通常使用数字签名确保应用程序来源于合法受信任的开发者,而不是潜在的恶意假冒者。遗憾的是,数字签名的可信度与用于生成数字签名的私有密钥的安全性成正比。例如,如果私有密钥已泄漏,则恶意代理可使用已泄漏的私有密钥签署恶意应用程序,从而更有效地冒充该密钥的签名人。
用于验证数字签名的传统***通常缺少确定用于数字签名的私有密钥是否已泄漏的机制。因此,本发明识别并解决了对用于识别和保护私有密钥免受泄漏的另外且改善的***和方法的需求。
发明内容
如将在下面更加详细地描述,本发明整体涉及用于根据对从公共可用来源收集的信息的分析,识别已泄漏并且可供除授权签名人之外的代理使用的私有密钥的***和方法。在一个例子中,用于识别已泄漏的私有密钥的计算机实现的方法可包括:(1)识别允许签名人数字签署应用程序的私有密钥,(2)从至少一个公共来源收集关于该私有密钥的信息,(3)根据从公共来源收集的信息,确定该私有密钥已泄漏并且可供未授权签名人使用,以及(4)响应于确定该私有密钥已泄漏并且可供未授权签名人使用,来执行安全操作。
可采用多种方法中的任一种来收集关于私有密钥的信息。在一些实施例中,收集关于私有密钥的信息可包括收集关于已用私有密钥数字签署的至少一个应用程序的信息。收集关于私有密钥的信息还可包括收集指示私有密钥已被未授权签名人用于数字签署应用程序的信息。
除此之外或作为另外一种选择,收集关于私有密钥的信息可包括收集指示私有密钥已用于数字签署至少一个具有高信誉度分值的可信应用程序以及至少一个具有低信誉度分值的可疑应用程序两者的信息。收集关于私有密钥的信息还可包括收集指示私有密钥已用于签署超过预定数量的应用程序的信息。
在一些例子中,收集关于私有密钥的信息可包括确定可从可公共访问的服务器下载私有密钥的至少一个实例。此外,所述计算机实现的方法可包括维护数据库,该数据库识别托管私有密钥的可公共访问的服务器。
在一些实施例中,执行安全操作可包括以下中至少一项:(1)警告用户私有密钥已泄漏,(2)降低分配给用该私有密钥数字签署的应用程序的信誉度分值,(3)阻止下载用该私有密钥数字签署的应用程序,以及/或者(4)警告签名人该私有密钥已泄漏。
在一些例子中,确定私有密钥已泄漏可包括确定用私有密钥数字签署的至少一个应用程序的包名称与用私有密钥数字签署的至少一个其他应用程序的其他包名称的差别超过预定的相似度阈值。在这些例子中,所述计算机实现的方法还可包括通过分析包名称来确定包名称未被随机化。
在一些例子中,确定私有密钥已泄漏可包括对收集到的信息进行加权处理,并根据加权的信息计算私有密钥的总体可信度分值。
在一个实施例中,用于实施上述方法的***可包括:(1)识别模块,其识别允许签名人数字签署应用程序的私有密钥,(2)收集模块,其从至少一个公共来源收集关于该私有密钥的信息,(3)确定模块,其根据从公共来源收集到的信息确定该私有密钥已泄漏并且可供未授权签名人使用,(4)安全模块,其响应于确定该私有密钥已泄漏并且可供未授权签名人使用来执行安全操作,以及(5)至少一个处理器,其被配置为执行识别模块、收集模块、确定模块和安全模块。
在一些例子中,上述方法可被编码为计算机可读存储介质上的计算机可读指令。例如,计算机可读存储介质可包括一个或多个计算机可执行指令,所述计算机可执行指令在被计算设备的至少一个处理器执行时,可以导致计算设备:(1)识别允许签名人数字签署应用程序的私有密钥,(2)从至少一个公共来源收集关于该私有密钥的信息,(3)根据从公共来源收集的信息,确定该私有密钥已泄漏并且可供未授权签名人使用,以及(4)响应于确定该私有密钥已泄漏并且可供未授权签名人使用,来执行安全操作。
来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。
附图说明
附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。
图1为用于识别已泄漏的私有密钥的示例性***的框图。
图2为用于识别已泄漏的私有密钥的示例性***的框图。
图3为用于识别已泄漏的私有密钥的示例性方法的流程图。
图4为用于识别已泄漏的私有密钥的示例性***的框图。
图5为用于识别已泄漏的私有密钥的示例性***的框图。
图6为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算***的框图。
图7为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文详细描述。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本发明整体涉及用于识别已泄漏的私有密钥的***和方法。如将在下面更详细地阐释,通过根据对从公共可用来源收集到的信息的分析确定私有密钥已泄漏,本文所述的***可以(1)通过警告用户应用程序已泄漏的私有密钥签署,来改提高用户的安全性,(2)通过警告签名人其私有密钥已泄漏,来提高签名人的安全性,以及/或者(3)通过降低用泄漏的私有密钥签署的应用程序的信誉度分值和/或阻止该应用程序,来提高应用程序发布平台的安全性。
下文将结合图1至图2、图4和图5提供用于识别已泄漏的私有密钥的示例性***的详细描述。也将结合图3提供相应计算机实现方法的详细描述。此外,将分别结合图6和图7提供能够实现本文所述实施例中的一者或多者的示例性计算***和网络体系结构的详细描述。
图1为用于识别已泄漏的私有密钥的示例性***100的框图。如该图所示,示例性***100可包括用于执行一个或多个任务的一个或多个模块102。例如,以及如将在下面更加详细地阐释,示例性***100可包括识别模块104,该识别模块可识别允许签名人数字签署应用程序的私有密钥。示例性***100还可包括收集模块106,该收集模块可从至少一个公共来源收集关于私有密钥的信息。
示例性***100还可包括确定模块108,该确定模块可根据从公共来源收集到的信息确定私有密钥已泄漏并且可供未授权签名人使用。示例性***100还可包括安全模块110,该安全模块可响应于确定私有密钥已泄漏并且可供未授权签名人使用,来执行安全操作。虽然以单独的元件示出,但图1中的模块102中的一者或多者可表示单个模块或应用程序的组成部分。
在某些实施例中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,这些软件应用程序或程序在由计算设备执行时可致使计算设备执行一个或多个任务。例如并且如下文将更详细地描述,一个或多个模块102可表示存储在一个或多个计算设备上并且被配置为在所述计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,计算设备202和/或服务器206)、图6中的计算***610、和/或图7中的示例性网络体系结构700的组成部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性***100还可包括一个或多个数据库,诸如数据库120。在一个例子中,数据库120可被配置为存储已知密钥发布网站的记录。
数据库120可表示单个数据库或计算设备的组成部分或者多个数据库或计算设备。例如,数据库120可表示图2中的服务器206的组成部分、图6中的计算***610、和/或图7中的示例性网络体系结构700的组成部分。作为另外一种选择,图1中的数据库120可表示能够通过计算设备访问的一个或多个物理独立设备,诸如图2中的服务器206、图6中的计算***610、和/或图7中的示例性网络体系结构700的组成部分。
图1中的示例性***100可以多种方式来实现。例如,示例性***100的全部或一部分可表示图2中的示例性***200的组成部分。如图2所示,***200可包括经由网络204与服务器206通信的计算设备202。计算设备202可用模块102中的一者或多者进行编程和/或可存储数据库120中的数据的全部或一部分。除此之外或作为另外一种选择,服务器206可用模块102中的一者或多者进行编程和/或可存储数据库120中的数据的全部或一部分。
在一个实施例中,图1的模块102中的一者或多者在被计算设备202和/或服务器206的至少一个处理器执行时,促进计算设备202和/或服务器206识别已泄漏的私有密钥。例如,以及如将在下面更加详细地描述,识别模块104可被编程为识别允许签名人数字签署应用程序210的私有密钥208。此外,收集模块106可被编程为从至少一个公共来源收集关于私有密钥208的信息214。确定模块108可被编程为根据从公共来源收集到的信息214确定私有密钥208已泄漏并且可供签名人216使用。此外,安全模块110可被编程为响应于确定私有密钥208已泄漏并且可供签名人216使用,来执行安全操作218。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202的例子包括但不限于笔记本电脑、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式***、这些设备中的一者或多者的组合、图6中的示例性计算***610或任何其他合适的计算设备。在一些例子中,计算设备202可表示端点设备,诸如客户端设备。但在其他例子中,计算设备202可表示服务器或其他形式的后端设备,诸如(单独或与其他计算设备组合)提供应用程序发布平台的计算设备。
服务器206通常表示能够托管应用程序的任何类型或形式的计算设备(或计算设备组)。服务器206的例子包括但不限于用于数字发布计算机软件的应用程序发布平台。
网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的例子包括但不限于内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信网(PLC)、蜂窝网络(例如,全球移动通信***(GSM)网络)、图7中的示例性网络体系结构700等等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施例中,网络204可促进计算设备202与服务器206之间的通信。
图3为用于识别已泄漏的私有密钥的示例性计算机实现方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算***执行。在一些实施例中,图3中示出的步骤可通过以下中的一者或多者执行:图1中的***100的组件、图2中的***200、图6中的计算***610、和/或图7中的示例性网络体系结构700的组成部分。
如图3所示,在步骤302处,本文所述***中的一者或多者可识别允许签名人数字签署应用程序的私有密钥。例如,在步骤302处,识别模块104可,作为图2中的计算设备202的一部分,识别允许签名人数字签署应用程序210的私有密钥208。
如本文所用,术语“私有密钥”通常是指可用于数字签署文件和/或应用程序的非对称密钥对的非公共半部。在一些例子中,私有密钥可用于数字签署文件,而且可随后使用对应于该私有密钥的公共密钥验证该数字签名。在这些例子中,数字签名的验证可确认文件已被私有密钥签署而且文件未被篡改。例如,开发者可用私有密钥签署应用程序,用户可验证应用程序的数字签名以便确认应用程序是由开发者(与假冒者相对)签署并且未被篡改。如将在下面更加详细地描述,如果恶意操作者获得合法开发者使用的私有密钥的访问,那么恶意操作者就可使用该私有密钥数字签署用户可能认为来源于合法开发者的有害应用程序。
本文所述的***可以多种方式识别私有密钥。例如,识别模块104可在(从例如应用程序发布平台或网站)下载或以其他方式遇到已由私有密钥208签署的应用程序时,识别私有密钥208。
在步骤304处,本文所述***中的一者或多者可从至少一个公共来源收集关于私有密钥的信息。例如,在步骤304处,收集模块106可,作为图2中的计算设备202的一部分,从至少一个公共来源收集关于私有密钥208的信息214。
本文所述的***可以多种方式中的任何一种或全部和/或在多种环境中的任何一种或全部中收集关于公共密钥的信息。在一个例子中,收集模块106可从公共来源诸如网站、网络搜索服务、应用程序发布平台、服务器和/或数据库收集关于私有密钥208的信息。例如,收集模块106可从应用程序发布平台(诸如服务器206)收集关于私有密钥208的信息,所述应用程序发布平台提供用该私有密钥签署的至少一个移动应用程序的访问权限。此类应用程序发布平台的例子包括(例如)移动应用程序商店(诸如GOOGLEPLAY、APPLEAPPSTORE、WINDOWSPHONESTORE和/或AMAZONAPPSTORE)、非移动应用程序商店(诸如WINDOWSSTORE)以及能够数字发布计算机软件的任何其他服务或平台。
本文所述的***可从这些公共来源收集多种信息。例如,收集模块106可收集关于已用私有密钥208数字签署的至少一个应用程序的信息。收集模块106可收集的信息的类型的例子包括但不限于:由私有密钥签署的应用程序的名称,签署和/或公布应用程序的开发者的名称、位置和/或网站,应用程序的原始来源、应用程序的信誉度数据、应用程序的用户评级、应用程序的发布日期、应用程序的流行度信息(例如,应用程序在全球范围内和/或相对于特定应用程序发布平台的下载次数),和/或可与应用程序和/或用于签署应用程序的私有密钥相关的任何其他信息。
在一些实施例中,本文所述的***可收集关于已用私有密钥数字签署的多个应用程序的信息。例如,收集模块106可收集关于图4中的应用程序410和应用程序420的信息,这两个应用程序可表示可经由应用程序发布平台406下载的移动应用程序。在这个例子中,收集模块106可(从例如应用程序发布平台406和/或外部来源)收集指示应用程序410和应用程序420两者由同一私有密钥(即私有密钥408)签署但由不同开发者(即开发者412和开发者422)发布的信息。如将在下面更加详细地阐释,该信息可指示私有密钥408已泄漏,因为多个签名人具有私有密钥408的访问权限。
在一些例子中,本文所述的***还可收集指示私有密钥已被未授权签名人(例如,除拥有该私有密钥的签名人之外的开发者)用于数字签署应用程序的信息。例如,收集模块106可从图4中的应用程序发布平台406收集指示私有密钥408已用于签署由与拥有私有密钥408的签名人不相关的帐户发布的应用程序(例如应用程序420)的信息。如将在下面更加详细地阐释,该信息可指示私有密钥408已泄漏,因为多个签名人具有私有密钥408的访问权限。
在一些实施例中,本文所述的***还可收集指示私有密钥已用于数字签署至少一个具有高信誉度分值的可信应用程序以及至少一个具有低信誉度分值的可疑应用程序两者的信息。例如,收集模块106可收集指示以下情况的信息:私有密钥408已用于数字签署具有高信誉度分值的可信应用程序(例如应用程序410)和具有低信誉度分值的可疑应用程序(例如应用程序420)两者,这可能表明私有密钥408已泄漏。
信誉度分值可基于多个因素,包括但不限于:用户评级、下载次数、反病毒签名、应用程序代码静态分析和/或应用程序进程动态分析。例如,名为“EnragedAvians”的可信移动应用程序可能具有数以百万计的下载次数并具有极高用户评级,并且可能已被若干反病毒软件认证为非恶意程序。另一个移动应用程序“IncensedAvians”可能由与“EnragedAvians”相同的私有密钥签署,但是可能由不同开发者发布,并且可能由于较少的下载次数以及应用程序内存在恶意软件而具有低信誉度分值。在这个例子中,这可能表明应用程序“IncensedAvians”表示假冒应用程序,这可能表明用于签署该假冒应用程序的私有密钥已泄漏。
在一些例子中,本文所述的***还可收集指示私有密钥已用于签署超过预定数量的应用程序的信息。例如,收集模块106可收集指示以下情况的信息:图2中的私有密钥208已用于签署超过1,000个应用程序,这(在一些例子中)可表明私有密钥208已泄漏。在一些实施例中,该预定数量可基于密钥的预期用途。例如,如果签名人仅预期用私有密钥签署一个应用程序,那么预定数量可为2。然而,如果签名人期望用私有密钥签署数百个应用程序,那么预定数量可为600。在一些例子中,收集模块106可从多个不同的应用程序发布平台收集关于已用私有密钥签署的应用程序的信息。
在一些实施例中,本文所述的***还可收集指示可从可公共访问的服务器下载私有密钥的至少一个实例的信息。例如,收集模块106可(通过例如互联网爬取和/或对照已知服务器的数据库检查)确定可从可公共访问的服务器下载图2中的私有密钥208,所述服务器提供已泄漏的私有密钥的访问权限。此类可公共访问的服务器的例子包括但不限于:密钥发布网站、修改的ROM发布网站,以及能够提供已泄漏密钥访问权限的任何其他来源。私有密钥由于例如被泄漏、盗取和/或用于签署开源软件而可从可公共访问的服务器下载。如下面详述,可从可公共访问的服务器下载私有密钥的事实可表明私有密钥已泄漏。
在一些实施例中,本文所述的***可维护数据库,该数据库识别托管私有密钥的可公共访问的服务器。例如,收集模块106可维护数据库120,该数据库包含每个可公共访问的对供下载的私有密钥进行托管的已知服务器的记录。收集模块106可以多种方式维护数据库120,所述方式包括例如通过手动输入创建数据库和/或使用从互联网爬取的信息自动填充数据库。在一些例子中,收集模块106还可在收集关于私有密钥208的信息时更新数据库120。
返回图3,在步骤306处,本文所述***中的一者或多者可根据从公共来源收集到的信息确定私有密钥已泄漏并且可供未授权签名人使用。例如,在步骤306处,确定模块108可,作为图2中的计算设备202的一部分,根据从各种公共来源收集到的信息214确定私有密钥208已泄漏并且可供多个签名人216使用。
本文所述的***可以多种方式确定私有密钥已泄漏。例如,确定模块108可根据步骤306中收集到的信息确定私有密钥208已被除拥有私有密钥208的签名人之外的至少一个开发者使用和/或可供其使用。具体地讲,确定模块108可确定(1)私有密钥208已被未授权签名人(例如除拥有私有密钥208的签名人之外的开发者)用于数字签署应用程序,(2)私有密钥208已被用于数字签署至少一个具有高信誉度分值的可信应用程序以及至少一个具有低信誉度分值的可疑应用程序两者,(3)私有密钥208已被用于数字签署超过预定数量的应用程序,以及/或者(4)可从可公共访问的服务器下载私有密钥208的至少一个实例。
除此之外或作为另外一种选择,本文所述的***可通过确定用私有密钥数字签署的至少一个应用程序的包名称与用私有密钥数字签署的至少一个其他应用程序的其他包名称的差别超过预定的相似度阈值,来确定私有密钥已泄漏。在一些例子中,该预定的相似度阈值可旨在包括相似的名称以及错误的名称拼写,但不包括完全不同的名称。该预定的相似度阈值的例子包括但不限于“相差三个字符或更少”或“相差全部字符的15%或更少”。例如,如果包名称“com.symantec.xyz”的预定相似度阈值要求为“相差三个字符或更少”,则包名称“com.symantec.abc”由于与之差别少于三个字符,因此可落在该预定相似度阈值内。相比之下,包名称“foo.xymatekk.abc”由于与之差别多于三个字符,因此不可落在该预定相似度阈值内。确定模块108还可通过使用组织和包名称的数据库来计算预定相似度阈值。例如,确定模块108可确定包名称“com.symsecurity.xyz”落在“com.symantec.xyz”的预定相似度阈值内,因为“com.symsecurity.xyz”在数据库中被列为与“com.symatec.xyz”属于相同组织。
在一些编程语言中,包名称通常可以包括对包负责的组织的名称。因此,如果确定模块108确定已用私有密钥签署的应用程序包括以与作为私有密钥签名人的组织不同的组织命名的包,那么确定模块108可确定该私有密钥已泄漏。
在一些实施例中,本文所述的***可通过分析应用程序的包名称来确定包名称未被随机化,从而尝试避免误报。因为合法组织通常使其应用程序包的名称随机化,所以由于随机化而未能落在预定相似度阈值内的应用程序包名称可能不指示私有密钥泄漏。例如,即使包名称“com.zxcezfzdwed.fsi”未能满足“com.symantec.xyz”的预定相似度阈值,该包仍然可以由相同开发者生成,因为包名称已被随机化并且不表示尝试仿效开发者名称。
在一些例子中,本文所述的***可通过对步骤304中收集到的信息进行加权处理,并根据该加权的信息计算私有密钥的总体可信度分值,来确定私有密钥已泄漏。图5为示例性计算***500的框图,该计算***通过将关于这些私有密钥的信息加权并组合来识别已泄漏的私有密钥。如图5所示,识别模块104可识别私有密钥和/或用私有密钥签署的至少一个应用程序。然后收集模块106可收集关于私有密钥和/或用私有密钥签署的应用程序的多种信息,这些信息包括但不限于:由私有密钥签署的应用程序的信誉度(例如信誉度差别502)、由私有密钥签署的包的名称(例如包名称504)、是否多个开发者已使用私有密钥签署应用程序(例如多个开发者506),以及/或者是否可从可公共访问的服务器下载私有密钥(例如,可在密钥下载网站508上获得)。结合上述步骤304和306,可更详细的理解这些信息可能表示的意义。
一旦收集模块106收集到这些信息,确定模块108就可分别以权重512、514、516和/或518将信誉度差别502、包名称504、多个开发者506和/或可在密钥下载网站508上获得进行加权处理,并且可以组合加权的信息以得出可信度分值520。然后确定模块108可使用可信度分值520确定私有密钥是否已泄漏。
例如,收集模块106可收集指示以下情况的信息:私有密钥(1)已被用于签署具有极高信誉度的应用程序以及具有极低信誉度的应用程序两者,(2)已被用于签署具有不同包名称的任何应用程序,(3)已被用于签署由三个不同开发者发布的应用程序,以及(4)可在至少一个密钥下载网站上获得。在这个例子中,确定模块108可设定以下权重:这些信誉度差别为5、不同包名称为2、超过一个以上的每个额外开发者为7、以及/或者可在密钥下载网站上获得为10。然后确定模块108可将初始值分别为1、0、2和1的每项信息分别乘以权重5、2、7和10,然后将加权数值相加,得到可信度分值29。在这个例子中,随后确定模块可计算出私有密钥的可信度分值超过预定阈值10,因此私有密钥可能已泄漏。
返回图3,在步骤308处,本文所述***中的一者或多者可响应于确定私有密钥已泄漏并且可供未授权签名人使用,来执行安全操作。例如,在步骤308处,安全模块110可,作为图2中的计算设备202的一部分,响应于确定私有密钥208已泄漏并且可供签名人216使用,来执行安全操作218。
本文所述的***可单独或组合地执行多个安全操作中的任何一个。例如,响应于确定私有密钥已泄漏,安全模块110可执行安全操作,该安全操作适用于私有密钥、由私有密钥签署的应用程序、私有密钥的签名人和/或由私有密钥签署的应用程序的用户。
例如,安全模块110可通过如下方式执行服务器侧安全操作:(1)警告用户私有密钥已泄漏(通过例如在应用程序发布平台内的由已泄漏密钥签署的应用程序的下载页面上放置警告),(2)降低分配给已用该私有密钥数字签署的应用程序的信誉度分值(通过例如降低由应用程序发布平台显示的用已泄漏私有密钥数字签署的应用程序的信誉度分值),(3)阻止下载已用该私有密钥数字签署的应用程序(通过例如将应用程序从应用程序发布平台移除),以及/或者(4)警告签名人该私有密钥已泄漏(通过例如向签名人在应用程序发布平台中的开发者帐户发送消息)。
除此之外或作为另外一种选择,安全模块110可通过如下方式执行客户端侧安全操作:(1)警告用户私有密钥已泄漏(通过例如警告移动设备的用户,他们正在尝试下载已由已泄漏私有密钥签署的移动应用程序),(2)降低分配给已用该私有密钥数字签署的应用程序的信誉度分值(通过例如在移动设备上计算由已泄漏密钥签署的移动应用程序的信誉度分值并向移动设备的用户显示信誉度分值),以及/或者(3)阻止下载已用该私有密钥数字签署的应用程序(通过例如阻止用户将应用程序下载到其移动设备)。
概括地说,并且如上结合图3中的方法300所述,本文所述的***可识别可被签名人(通常为应用程序开发者)用来数字签署应用程序的私有密钥。在一些例子中,这些应用程序可为可从应用程序发布平台(诸如移动应用程序商店)获得的移动应用程序。然后本文所述的***可通常通过收集关于已用私有密钥签署的应用程序的信息,来收集关于私有密钥的信息。
可收集各种类型的信息。例如,本文所述的***可收集指示以下情况的信息:私有密钥已被多个开发者用于签署应用程序,由私有密钥签署的应用程序在信誉度分值上具有可疑的变化,由私有密钥签署的应用程序包括不同命名的包,以及/或者可从可公共访问的密钥下载网站下载私有密钥。然后本文所述的***可对以上信息的任何一者或全部进行加权,并将加权的信息组合以生成总体可信度评级。
根据该可信度评级,本文所述***随后可确定私有密钥可被除签名人之外的开发者获得,因此已泄漏。然后本文所述的***可采取多个安全操作中的任何一者,包括警告开发者他们的密钥已泄露,警告用户他们尝试下载的应用程序已由已泄漏的密钥签署并因此可表示假冒或恶意应用程序,以及/或者将由已泄漏密钥签署的潜在恶意应用程序从应用程序发布平台移除。
如上所述,通过根据对从公共可用来源收集到的信息的分析确定私有密钥已泄漏,本文所述的***可以(1)通过警告用户应用程序已泄漏的私有密钥签署,来改提高用户的安全性,(2)通过警告签名人其私有密钥已泄漏,来提高签名人的安全性,以及/或者(3)通过降低用泄漏的私有密钥签署的应用程序的信誉度分值和/或阻止该应用程序,来提高应用程序发布平台的安全性。
图6为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算***610的框图。例如,计算***610的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所述的步骤中的一者或多者(诸如图3中示出的步骤中的一者或多者)。计算***610的全部或一部分也可执行和/或作为一种方式来执行本文描述和/或示出的任何其他步骤、方法或过程。
计算***610在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或***。计算***610的例子包括但不限于工作站、笔记本电脑、客户端侧终端、服务器、分布式计算***、手持式设备或任何其他计算***或设备。在其最基本的配置中,计算***610可包括至少一个处理器614和***存储器616。
处理器614通常表示能够处理数据或解译和执行指令的任何类型或形式的处理单元。在某些实施例中,处理器614可接收来自软件应用程序或模块的指令。这些指令可使处理器614执行本文描述和/或示出的一个或多个示例性实施例的功能。
***存储器616通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。***存储器616的例子包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他适用的存储器设备。尽管不是必需的,但在某些实施例中,计算***610可包括易失性存储器单元(诸如***存储器616)和非易失性存储设备(诸如,主要存储设备632,如下详述)两者。在一个例子中,图1的模块102中的一者或多者可被加载到***存储器616中。
在某些实施例中,除处理器614和***存储器616之外,示例性计算***610还可包括一个或多个组件或元件。例如,如图6所示,计算***610可包括存储器控制器618、输入/输出(I/O)控制器620和通信接口622,它们中的每一者都可通过通信基础结构612互连。通信基础结构612通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构612的例子包括但不限于通信总线(诸如工业标准体系结构(ISA))、***组件互连(PCI)、PCIExpress(PCIe)或类似的总线)和网络。
存储器控制器618通常表示能够处理存储器或数据或者控制计算***610的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器618可通过通信基础结构612来控制处理器614、***存储器616和I/O控制器620之间的通信。
I/O控制器620通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/O控制器620可控制或促进计算***610的一个或多个元件之间的数据传输,所述元件诸如处理器614、***存储器616、通信接口622、显示适配器626、输入接口630和存储接口634。
通信接口622在广义上表示能够促进示例性计算***610与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口622可促进计算***610与包括附加计算***的专用或公共网络之间的通信。通信接口622的例子包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施例中,通信接口622可通过与网络(诸如互联网)的直接链接来提供与远程服务器的直接连接。通信接口622还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施例中,通信接口622还可表示主机适配器,该主机适配器可被配置为通过外部总线或通信信道来促进计算***610与一个或多个附加网络或存储设备之间的通信。主机适配器的例子包括但不限于小型计算机***接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口622还可允许计算***610参与分布式或远程计算。例如,通信接口622可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图6所示,计算***610还可包括至少一个显示设备624,该显示设备通过显示适配器626联接到通信基础结构612。显示设备624通常表示能够以可视方式显示显示适配器626转发的信息的任何类型或形式的设备。类似地,显示适配器626通常表示被配置为转发来自通信基础结构612(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以在显示设备624上显示的任何类型或形式的设备。
如图6所示,示例性计算***610还可包括经由输入接口630联接到通信基础结构612的至少一个输入设备628。输入设备628通常表示能够向示例性计算***610提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备628的例子包括但不限于键盘、指示设备、语音识别设备或任何其他输入设备。
如图6所示,示例性计算***610还可包括主要存储设备632和经由存储接口634联接到通信基础结构612的备份存储设备633。存储设备632和633通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备632和633可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等等。存储接口634通常表示用于在计算***610的存储设备632和633与其他组件之间传输数据的任何类型或形式的接口或设备。
在某些实施例中,存储设备632和633可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的例子包括但不限于软盘、磁带、光盘、闪存存储器设备等。存储设备632和633还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算***610内的其他类似结构或设备。例如,存储设备632和633可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备632和633还可为计算***610的一部分,或者可为通过其他接口***进行访问的独立设备。在一个例子中,图1的数据库120可存储在主要存储设备632中。
可将许多其他设备或子***连接到计算***610。相反,无需图6中示出的所有组件和设备都存在,亦可实践本文描述和/或示出的实施例。上文提及的设备和子***也可通过不同于图6所示的方式互连。计算***610也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施例可被编码为计算机可读存储介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。短语“计算机可读存储介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读存储介质的例子包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,光盘(CD)或数字视频盘(DVD))、电子存储介质(例如,固态驱动器和闪存介质)和其他分配***。
可将包含计算机程序的计算机可读存储介质加载到计算***610中。然后可将计算机可读存储介质上存储的全部或一部分计算机程序存储在***存储器616中和/或存储设备632和633的各个部分中。当由处理器614执行时,加载到计算***610中的计算机程序可使处理器614执行和/或作为一种装置用于执行本文描述和/或示出的示例性实施例中的一者或多者的功能。除此之外或作为另外一种选择,可在固件和/或硬件中实施本文描述和/或示出的示例性实施例中的一者或多者。例如,计算***610可被配置为用于实施本文所公开的示例性实施例中的一者或多者的专用集成电路(ASIC)。
图7为示例性网络体系结构700的框图,其中客户端***710、720和730以及服务器740和745可联接到网络750。如上文所详述,网络体系结构700的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所公开的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。网络体系结构700的全部或一部分也可用于执行和/或作为一种装置用于执行本公开中阐述的其他步骤和特征。
客户端***710、720和730通常表示任何类型或形式的计算设备或***,诸如图6中的示例性计算***610。类似地,服务器740和745通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或***,诸如应用程序服务器或数据库服务器。网络750通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或因特网。在一个例子中,客户端***710、720和/或730和/或服务器740和/或745可包括图1的***100的全部或一部分。
如图7所示,一个或多个存储设备760(1)-(N)可直接连接到服务器740。类似地,一个或多个存储设备770(1)-(N)可直接连接到服务器745。存储设备760(1)-(N)和存储设备770(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施例中,存储设备760(1)-(N)和存储设备770(1)-(N)可以表示被配置为使用各种协议(诸如网络文件***(NFS)、服务器消息块(SMB)或通用互联网文件***(CIFS))与服务器740和745进行通信的网络附接存储(NAS)设备。
服务器740和745也可以连接到存储区域网络(SAN)架构780。SAN架构780通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构780可促进服务器740和745与多个存储设备790(1)-(N)和/或智能存储阵列795之间的通信。SAN架构780还可通过网络750以及服务器740和745以这样的方式促进客户端***710、720和730与存储设备790(1)-(N)和/或智能存储阵列795之间的通信:设备790(1)-(N)和阵列795呈现为客户端***710、720和730的本地附接设备。与存储设备760(1)-(N)和存储设备770(1)-(N)相同,存储设备790(1)-(N)和智能存储阵列795通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施例中,并且参考图6的示例性计算***610,通信接口(诸如图6中的通信接口622)可用于提供每个客户端***710、720和730与网络750之间的连通。客户端***710、720和730能够使用例如网页浏览器或其他客户端软件来访问服务器740或745上的信息。此类软件可允许客户端***710、720和730访问由服务器740、服务器745、存储设备760(1)-(N)、存储设备770(1)-(N)、存储设备790(1)-(N)或智能存储阵列795托管的数据。尽管图7示出了使用网络(诸如互联网)来交换数据,但本文描述和/或示出的实施例并非仅限于互联网或任何特定的基于网络的环境。
在至少一个实施例中,本文所公开的一个或多个示例性实施例中的全部或一部分可被编码为计算机程序并加载到服务器740、服务器745、存储设备760(1)-(N)、存储设备770(1)-(N)、存储设备790(1)-(N)、智能存储阵列795、或它们的任意组合上并加以执行。本文所公开的一个或多个示例性实施例中的全部或一部分也可被编码为计算机程序,存储在服务器740中,由服务器745运行,以及通过网络750分配到客户端***710、720和730。
如上文所详述,计算***610和/或网络体系结构700的一个或多个组件可执行和/或作为一种装置用于单独地或与其他元件结合来执行用于识别已泄漏的私有密钥的示例性方法的一个或多个步骤。
虽然上述公开内容使用特定框图、流程图和例子阐述了各种实施例,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实施。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。
在一些例子中,图1中的示例性***100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可以通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可以通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施例中,图1中的示例性***100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算***(例如,服务器)以促进本文所述功能中的一者或多者的多租户应用。例如,本文所述软件模块中的一者或多者可对服务器进行编程以允许两个或多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作***、处理***和/或存储***。本文所述模块中的一者或多者还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施例,图1中的示例性***100的全部或一部分可在虚拟环境内实施。例如,本文所述模块和/或数据可在虚拟机内驻存和/或执行。如本文所用,短语“虚拟机”通常指由虚拟机管理器(例如,管理程序)从计算硬件中抽象出来的任何操作***环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻存和/或执行。如本文所用,短语“虚拟化层”通常指覆盖操作***环境和/或从操作***环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件***过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作***的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件***和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些例子中,图1中的示例性***100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些例子中,移动计算环境可具有一个或多个显著特征,包括(例如)对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位***、陀螺仪、加速度计等提供的)位置和移动数据、限制对***级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序),等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境互动。
此外,图1中的示例性***100的全部或一部分可表示一个或多个信息管理***的部分,与一个或多个信息管理***交互,使用由一个或多个信息管理***产生的数据,且/或产生被一个或多个信息管理***使用的数据。如本文所用,短语“信息管理”可以指数据的保护、组织和/或存储。信息管理***的例子可包括但不限于存储***、备份***、存档***、复制***、高可用性***、数据搜索***、虚拟化***等。
在一些实施例中,图1中的示例性***100的全部或一部分可表示一个或多个信息安全***的部分,生成受一个或多个信息安全***保护的数据,且/或与一个或多个信息安全***通信。如本文所用,短语“信息安全”可以指对受保护数据的访问控制。信息安全***的例子可包括但不限于提供受管理的安全服务的***、数据丢失防护***、身份认证***、访问控制***、加密***、政策遵循***、入侵检测与防护***、电子发现***等等。
根据一些例子,图1中的示例性***100的全部或一部分可表示一个或多个端点安全***的部分,与一个或多个端点安全***通信,且/或受一个或多个端点安全***保护。如本文所用,短语“端点安全”可以指保护端点***以避免未授权和/或不合法的使用、访问和/或控制。端点保护***的例子可包括但不限于反恶意软件***、用户认证***、加密***、保密***、垃圾邮件过滤服务,等等。
本文描述和/或示出的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必按示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一者或多者,或除了所公开的那些步骤之外还包括附加步骤。
虽然本文已经在全功能计算***的背景中描述和/或示出了各种实施例,但这些示例性实施例中的一者或多者可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读存储介质的特定类型。本文所公开的实施例也可使用执行某些任务的软件模块来实施。这些软件模块可包括脚本、批处理或可存储在计算机可读存储介质上或计算***中的其他可执行文件。在一些实施例中,这些软件模块可将计算***配置为执行本文所公开的示例性实施例中的一者或多者。
此外,本文所述的模块中的一者或多者可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述的模块中的一者或多者可接收要转换的信息、转换所述信息、将转换结果输出至确定模块、使用转换结果确定私有密钥可能已泄漏,以及将转换结果存储到数据库中。除此之外或作为另外一种选择,本文所述模块中的一者或多者可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施例在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“一”或“一个”应当理解为是表示“中的至少一者”。此外,为了易于使用,在本说明书和权利要求中使用的词语“包括”和“具有”与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (20)

1.一种用于识别已泄漏的私有密钥的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备来执行,所述方法包括:
识别允许签名人数字签署应用程序的私有密钥;
从至少一个公共来源收集关于所述私有密钥的信息;
根据从所述公共来源收集到的所述信息,确定所述私有密钥已泄漏并且可供未授权签名人使用;
执行安全操作以响应于确定所述私有密钥已泄漏并且可供所述未授权签名人使用。
2.根据权利要求1所述的计算机实现的方法,其中收集关于所述私有密钥的所述信息包括收集关于已用所述私有密钥数字签署的至少一个应用程序的信息。
3.根据权利要求1所述的计算机实现的方法,其中收集关于所述私有密钥的所述信息包括收集指示所述私有密钥已被未授权签名人用于数字签署应用程序的信息。
4.根据权利要求1所述的计算机实现的方法,其中收集关于所述私有密钥的所述信息包括收集指示所述私有密钥已被用于数字签署至少一个具有高信誉度分值的可信应用程序以及至少一个具有低信誉度分值的可疑应用程序两者的信息。
5.根据权利要求1所述的计算机实现的方法,其中收集关于所述私有密钥的所述信息包括收集指示所述私有密钥已被用于签署超过预定数量的应用程序的信息。
6.根据权利要求1所述的计算机实现的方法,其中收集关于所述私有密钥的所述信息包括确定可从可公共访问的服务器下载所述私有密钥的至少一个实例。
7.根据权利要求1所述的计算机实现的方法,其中确定所述私有密钥已泄漏包括确定用所述私有密钥数字签署的至少一个应用程序的包名称与用所述私有密钥数字签署的至少一个其他应用程序的其他包名称的差别超过预定的相似度阈值。
8.根据权利要求7所述的计算机实现的方法,还包括通过分析所述包名称来确定所述包名称未被随机化。
9.根据权利要求1所述的计算机实现的方法,其中确定所述私有密钥已泄漏包括:
对所述信息进行加权处理;
根据加权的信息计算所述私有密钥的总体可信度分值。
10.根据权利要求1所述的计算机实现的方法,其中执行所述安全操作包括下列中至少一项:
警告用户所述私有密钥已泄漏;
降低分配给已用所述私有密钥数字签署的应用程序的信誉度分值;
阻止下载已用所述私有密钥数字签署的应用程序;
警告所述签名人所述私有密钥已泄漏。
11.根据权利要求1所述的计算机实现的方法,还包括维护数据库,所述数据库识别托管私有密钥的可公共访问的服务器。
12.一种用于识别已泄漏的私有密钥的***,所述***包括:
识别模块,所述识别模块识别允许签名人数字签署应用程序的私有密钥;
收集模块,所述收集模块从至少一个公共来源收集关于所述私有密钥的信息;
确定模块,所述确定模块根据从所述公共来源收集到的所述信息确定所述私有密钥已泄漏并且可供未授权签名人使用;
安全模块,所述安全模块执行安全操作以响应于确定所述私有密钥已泄漏并且可供所述未授权签名人使用。
至少一个处理器,所述处理器被配置为执行所述识别模块、所述收集模块、所述确定模块和所述安全模块。
13.根据权利要求12所述的***,其中所述收集模块通过收集关于已用所述私有密钥数字签署的至少一个应用程序的信息来收集关于所述私有密钥的所述信息。
14.根据权利要求12所述的***,其中所述收集模块通过收集指示所述私有密钥已被未授权签名人用于数字签署应用程序的信息来收集关于所述私有密钥的所述信息。
15.根据权利要求12所述的***,其中所述收集模块通过收集指示所述私有密钥已被用于数字签署至少一个具有高信誉度分值的可信应用程序以及至少一个具有低信誉度分值的可疑应用程序两者的信息来收集关于所述私有密钥的所述信息。
16.根据权利要求12所述的***,其中所述收集模块通过收集指示所述私有密钥已被用于签署超过预定数量的应用程序的信息来收集关于所述私有密钥的所述信息。
17.根据权利要求12所述的***,其中所述确定模块通过确定用所述私有密钥数字签署的至少一个应用程序的包名称与用所述私有密钥数字签署的至少一个其他应用程序的其他包名称的差别超过预定的相似度阈值,来确定所述私有密钥已泄漏。
18.根据权利要求17所述的***,其中所述确定模块通过分析所述包名称来确定所述包名称未被随机化。
19.根据权利要求12所述的***,其中所述安全模块通过下列中至少一项来执行所述安全操作:
警告用户所述私有密钥已泄漏;
降低分配给已用所述私有密钥数字签署的应用程序的信誉度分值;
阻止下载已用所述私有密钥数字签署的应用程序;
警告所述签名人所述私有密钥已泄漏。
20.一种非暂态计算机可读存储介质,所述计算机可读存储介质包括一个或多个计算机可读指令,当由计算设备的至少一个处理器执行所述计算机可读指令时,致使所述计算设备:
识别允许签名人数字签署应用程序的私有密钥;
从至少一个公共来源收集关于所述私有密钥的信息;
根据从所述公共来源收集到的所述信息,确定所述私有密钥已泄漏并且可供未授权签名人使用;
执行安全操作以响应于确定所述私有密钥已泄漏并且可供未授权签名人使用。
CN201480044024.5A 2013-08-30 2014-08-27 用于识别已泄漏的私有密钥的***和方法 Active CN105453102B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/015,168 US9202057B2 (en) 2013-08-30 2013-08-30 Systems and methods for identifying private keys that have been compromised
US14/015,168 2013-08-30
PCT/US2014/053007 WO2015031537A1 (en) 2013-08-30 2014-08-27 Systems and methods for identifying private keys that have been compromised

Publications (2)

Publication Number Publication Date
CN105453102A true CN105453102A (zh) 2016-03-30
CN105453102B CN105453102B (zh) 2018-11-16

Family

ID=51570847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480044024.5A Active CN105453102B (zh) 2013-08-30 2014-08-27 用于识别已泄漏的私有密钥的***和方法

Country Status (5)

Country Link
US (1) US9202057B2 (zh)
EP (1) EP3039609B1 (zh)
JP (1) JP6122555B2 (zh)
CN (1) CN105453102B (zh)
WO (1) WO2015031537A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112602084A (zh) * 2018-06-09 2021-04-02 诺顿卫富氪公司 用于识别数据外泄的***和方法
CN113742727A (zh) * 2021-08-27 2021-12-03 恒安嘉新(北京)科技股份公司 程序识别模型训练和程序识别方法、装置、设备及介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US10409984B1 (en) 2012-06-15 2019-09-10 Square, Inc. Hierarchical data security measures for a mobile device
US9256755B2 (en) 2013-12-31 2016-02-09 Google Inc. Notification of application permissions
US9280679B2 (en) * 2013-12-31 2016-03-08 Google Inc. Tiered application permissions
US9111093B1 (en) * 2014-01-19 2015-08-18 Google Inc. Using signals from developer clusters
WO2016178816A1 (en) 2015-05-01 2016-11-10 Lookout, Inc. Determining source of side-loaded software
US10733594B1 (en) * 2015-05-11 2020-08-04 Square, Inc. Data security measures for mobile devices
US10546302B2 (en) 2016-06-30 2020-01-28 Square, Inc. Logical validation of devices against fraud and tampering
US10373167B2 (en) 2016-06-30 2019-08-06 Square, Inc. Logical validation of devices against fraud
US10496993B1 (en) 2017-02-15 2019-12-03 Square, Inc. DNS-based device geolocation
JP6519601B2 (ja) * 2017-02-24 2019-05-29 日本電気株式会社 情報処理装置、情報処理方法、デバイス、暗号鍵の更新方法、システム及びプログラム
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10552308B1 (en) 2017-06-23 2020-02-04 Square, Inc. Analyzing attributes of memory mappings to identify processes running on a device
US10715536B2 (en) 2017-12-29 2020-07-14 Square, Inc. Logical validation of devices against fraud and tampering
US11494762B1 (en) 2018-09-26 2022-11-08 Block, Inc. Device driver for contactless payments
US11507958B1 (en) 2018-09-26 2022-11-22 Block, Inc. Trust-based security for transaction payments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449515A (zh) * 2000-07-01 2003-10-15 马科尼通讯有限公司 检测恶意代码的方法
US20040030901A1 (en) * 2000-08-04 2004-02-12 Lynn Henry Wheeler Linking public key of device to information during manufacture
CN101398875A (zh) * 2007-09-24 2009-04-01 赛门铁克公司 软件发行商信任扩展应用程序
US20100058468A1 (en) * 2008-08-29 2010-03-04 Adobe Systems Incorporated Identifying reputation and trust information for software

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4164036B2 (ja) * 2004-02-05 2008-10-08 トレンドマイクロ株式会社 ネットワークを介して提供されるプログラムに対する受信装置上でのセキュリティの確保
US7418728B2 (en) * 2004-03-17 2008-08-26 Arcot Systems, Inc. Auditing secret key cryptographic operations
US7979703B2 (en) 2005-10-19 2011-07-12 Microsoft Corporation Determining the reputation of a sender of communications
JP5891414B2 (ja) * 2010-10-04 2016-03-23 パナソニックIpマネジメント株式会社 情報処理装置およびアプリケーション不正連携防止方法
US8621591B2 (en) 2010-10-19 2013-12-31 Symantec Corporation Software signing certificate reputation model
JP2014052588A (ja) * 2012-09-10 2014-03-20 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449515A (zh) * 2000-07-01 2003-10-15 马科尼通讯有限公司 检测恶意代码的方法
US20040030901A1 (en) * 2000-08-04 2004-02-12 Lynn Henry Wheeler Linking public key of device to information during manufacture
CN101398875A (zh) * 2007-09-24 2009-04-01 赛门铁克公司 软件发行商信任扩展应用程序
US20100058468A1 (en) * 2008-08-29 2010-03-04 Adobe Systems Incorporated Identifying reputation and trust information for software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112602084A (zh) * 2018-06-09 2021-04-02 诺顿卫富氪公司 用于识别数据外泄的***和方法
CN112602084B (zh) * 2018-06-09 2024-04-26 基恩数码公司 用于识别数据外泄的***和方法
CN113742727A (zh) * 2021-08-27 2021-12-03 恒安嘉新(北京)科技股份公司 程序识别模型训练和程序识别方法、装置、设备及介质

Also Published As

Publication number Publication date
EP3039609A1 (en) 2016-07-06
WO2015031537A1 (en) 2015-03-05
JP2016528841A (ja) 2016-09-15
US9202057B2 (en) 2015-12-01
US20150067831A1 (en) 2015-03-05
CN105453102B (zh) 2018-11-16
EP3039609B1 (en) 2020-10-07
JP6122555B2 (ja) 2017-04-26

Similar Documents

Publication Publication Date Title
CN105453102A (zh) 用于识别已泄漏的私有密钥的***和方法
Ab Rahman et al. Forensic-by-design framework for cyber-physical cloud systems
US7788730B2 (en) Secure bytecode instrumentation facility
US10614233B2 (en) Managing access to documents with a file monitor
CN110383278A (zh) 用于检测恶意计算事件的***和方法
CN108701188A (zh) 响应于检测潜在勒索软件以用于修改文件备份的***和方法
US10812271B2 (en) Privacy control using unique identifiers associated with sensitive data elements of a group
CN106133743A (zh) 用于优化预安装应用程序的扫描的***和方法
CN101986325A (zh) 一种计算机安全访问控制***及控制方法
CN105683910B (zh) 用于更新只读***映像内的***级服务的***和方法
CN101398875A (zh) 软件发行商信任扩展应用程序
CN104065651A (zh) 一种面向云计算的信息流可信保障机制
CN103649964A (zh) 安全寄存执行体系架构
TWI737172B (zh) 用於安全作業系統映像之增量解密及完整度驗證之電腦系統、電腦程式產品及電腦實施方法
CN104769598A (zh) 用于检测非法应用程序的***和方法
US10402549B1 (en) Systems and methods for creating validated identities for dependent users
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
CN109522683B (zh) 软件溯源方法、***、计算机设备及存储介质
CN116910816B (zh) 一种提高隐私保护下的多方资产协同管理方法及装置
US11082232B2 (en) Auditably proving a usage history of an asset
CN111783119A (zh) 表单数据安全控制方法、装置、电子设备及存储介质
US11671422B1 (en) Systems and methods for securing authentication procedures
US20190121987A1 (en) Light-weight context tracking and repair for preventing integrity and confidentiality violations
Naranjo Rico Holistic business approach for the protection of sensitive data: study of legal requirements and regulatory compliance at international level to define and implement data protection measures using encryption techniques
CN111984944B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200102

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation

TR01 Transfer of patent right