CN102265282A - 用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质 - Google Patents

用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质 Download PDF

Info

Publication number
CN102265282A
CN102265282A CN2009801530074A CN200980153007A CN102265282A CN 102265282 A CN102265282 A CN 102265282A CN 2009801530074 A CN2009801530074 A CN 2009801530074A CN 200980153007 A CN200980153007 A CN 200980153007A CN 102265282 A CN102265282 A CN 102265282A
Authority
CN
China
Prior art keywords
software
token
security procedure
terminal
software license
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
CN2009801530074A
Other languages
English (en)
Other versions
CN102265282B (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.)
SK Telecom Co Ltd
Original Assignee
SK Telecom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Telecom Co Ltd filed Critical SK Telecom Co Ltd
Publication of CN102265282A publication Critical patent/CN102265282A/zh
Application granted granted Critical
Publication of CN102265282B publication Critical patent/CN102265282B/zh
Expired - Fee Related 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质。本发明提供用于保护软件许可的终端,所述终端包括:终端通信器,其连接至耦接的软件狗类型的令牌;终端控制器,其操作和控制特定的软件,检查用于驱动特定软件的安全程序是否存在于所述令牌中,如果存在,则向所述令牌传送用于执行所述安全程序的指令,并且从所述令牌接收执行结果以激活所述特定的软件;以及终端存储器,其用于存储所述特定的软件。本公开保护了软件许可,使其克服了易受反向工程的攻击的缺陷,并且避免了对因特网的依赖以及顾客的不便。

Description

用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质
技术领域
本公开涉及用于保护软件许可的方法、用于保护软件许可的系统、终端以及计算机可读记录介质。更明确地,本公开涉及软件许可保护方法、系统、服务器、终端以及计算机可读介质,其中将软件模块(以下称为安全(secure)+小程序(applet)=安全程序(seculet))提供给用于具体操作的软件的用户和购买者,所述软件模块是从服务器到具有内部计算能力的智能卡的令牌或到如耦接至用户终端的软件狗的特定软件的必要运行组件(包括压缩软件情况下的压缩算法、游戏软件中的计分规则、以及文档编辑软件中的对象配置逻辑),然后将鼓励用户检查在令牌软件狗中是否存在安全程序,并且如果存在,则向令牌传送指令以继续执行令牌中的安全程序,由此所接收到的执行结果激活特定的软件。
背景技术
通常在包括CD-ROM和DVD-ROM的媒体上以离线的方式直接销售软件,或者通过软件制造商的因特网网点由顾客下载并支付。为了让软件购买者/用户安装产品并使用产品,必须在个人终端中输入所提供的拷贝认证CD-key,软件制造商由此合法地授权产品的使用。
然而,由于以普通文本形式的CD-key无遮掩地暴露,它们连同CD-ROM的内容一起被无助地反复拷贝以自由服务于非法的第三方个体。他们手头不需要CD-key,而使用另外的非法CD-key生成程序或破解方法进入CD-key认证程序本身,以最终删改拷贝认证程序,甚至使得P2P站点不可控地在人群中进行分发,因此致命地挫败许多保护软件版权的努力。
同时,常规技术中存在优于CD-key认证方案的编码(或加密)密钥方法的硬件狗,但是通过对其认证逻辑进行反向工程可以很容易将它们击败,并且缺点是软件的具体功能产出成本上的低效。
响应于此,提供额外的硬件设备以附接至打印机的终端端口或USB端口,以便检查它的存在,或者将设备配置为存储编码/解码密钥值以及算法,直到已编码的代码在软件执行时被解码。然而,使执行的软件在可载入终端存储器之前被解码的结构上的限制允许越过保护方案以频繁侵入软件,并且甚至给非专业的普通公众提供开放的机会去使用可用的自动攻击工具以实际上从事违反版权保护技术的活动,特别是一旦它们变得更加普及。此外,使用虚拟环境(虚拟机)以挫败反向工程尝试并保护用于软件认证密钥的鉴别逻辑,并统计示出实际的攻击以及自动攻击工具的分布。
公开
技术问题
本公开试图提供软件许可保护方法、系统、和服务器、终端、以及计算机介质可读的介质,其中,特定软件的用户/购买者被提供有运行来自服务器的软件所必需的安全程序的组件,其被提供到通常附接至用户终端的软件狗类型的令牌,在软件执行期间提示用户检查在软件狗类型的令牌中是否存在必需的安全程序(该软件的操作组件),如果存在,则将运行该安全程序的执行指令传送至令牌,并且接收其执行结果以控制软件继续运行。
技术方案
为了实现上述目标,本公开提供了一种软件许可保护终端,其包括:终端通信器,其与耦接的软件狗类型的令牌协同操作;终端控制器,其用于操作和控制特定的软件,其检查令牌是否具有运行该软件所必需的安全程序,如果有,则向所述令牌传送用于执行所述安全程序的执行指令,并且从令牌接收执行结果以激活特定的软件;以及终端存储器,其用于存储软件。
本公开的另一方面提供了一种软件许可保护服务器,其包括:服务器通信器,其与用户终端协同操作;服务器控制器,其用于检查在购买了特定软件后用户终端是否具有软件狗类型的令牌附件,如果有,则对运行软件所必需的安全程序进行编码并将其发送至令牌;以及服务器存储器,其用于存储特定的软件和安全程序中的至少一个的信息。
本公开的另一方面提供了一种软件许可保护系统,其包括:用户终端,其用于操作和控制特定的软件,其在存在运行所述特定的软件的安全程序时传送用于执行所述安全程序的执行指令,并且接收执行结果以激活所述软件;以及令牌,其存储安全程序,并且能够以软件狗格式耦接到用户终端,以将安全程序传送至用户终端,并且在接收执行指令时,向所述用户终端传送将所述安全程序装载至可执行存储区的执行结果。
本公开的另一方面提供了一种软件许可保护方法,该方法包括:执行特定的软件;在所关联的令牌中检查运行特定软件的安全程序的存在,如果存在所述安全程序,则将用于执行该安全程序的执行指令传送至令牌;以及在接收到执行安全程序的结果时激活软件。
本公开的另一方面提供了一种计算机可读介质,其对在计算机上执行上述的软件许可保护方法的各个步骤的计算机程序进行编码。
有利效果
根据上述的本公开,向特定的软件的用户/购买者提供了一种运行从服务器到软件类型的令牌的软件的安全程序所必需的组件,所述令牌被物理隔离并且通常普遍地可连接至用户终端,在执行软件期间提示用户检查是否在软件狗类型的令牌中存在运行软件所必需的安全程序,如果存在,则将运行安全程序的执行指令传送至令牌,并且在接收到执行结果时以受控的方式激活软件。
另外,本公开提供了一种被划分并形成为安全程序的在特定的软件的运行中不可或缺的组件,所述安全程序能够存储在保护性令牌中直到它被执行,由此克服了有价值的软件易受反向工程的攻击的缺陷以保护许可,并使客户避免了完全绕开耦合的令牌而通过网络、主机终端等进行通常认证这种困扰而带来的不便。
附图说明
图1是根据本公开的一个方面的软件许可保护系统的示意性框图;
图2是根据图1的方面的用户终端的示意性框图;
图3是根据图1的方面的软件提供服务器的示意性框图;
图4是根据图1的方面的令牌的示意性框图;
图5是根据一个方面的安全程序的示意性框图;
图6是例示了软件提供服务器提供安全程序的方法的流程图;以及
图7是例示了用于执行与令牌协同操作的用户终端的特定软件的方法的流程图。
发明方式
此后,将参照附图描述本公开的示例性方面。在以下描述中,即使在不同的附图中示出,同样的元件也将通过同样的标号来指定。此外,在本公开的以下描述中,当可能使得本公开的主题不十分清楚时,将忽略此处并入的对已知功能和配置的详细描述。
同时,在对本发明的部件的描述中,会有象第一、第二、A、B、(a)和(b)来使用的措辞。这些仅仅是为了区分一个部件和其它部件,但并不表明或暗示部件的实质、顺序或次序。如果将部件描述为“被连接”、“被耦合”或“被链接”到另一个部件,则这既可以表示部件直接地“被链接”、“被耦合”或“被链接”,也可以理解为通过第三部件间接地“被连接”、“被耦合”或“被链接”。
现在参照图1,图1总地示出了在根据本公开的一个方面的软件许可保护系统的示例性框图。
软件许可保护系统可以包括用户终端110、令牌120以及软件提供服务器130。
用户终端110表示可以响应于用户的键入操作以通过有线以及无线通信网络接收各种网页数据的终端,并且包括个人计算机或PC、笔记本或膝上型计算机、个人数字助理或PDA、以及移动通信终端和其它终端,其可以具有:存储器,所述存储器用于存储用于经由有线和无线通信网络与软件提供服务器130进行连接的网络浏览器以及计算机程序;以及用于执行程序以进行计算和控制的微处理器。虽然可以使用任何其它形式的终端(只要它们连接到有线或无线通信网络以进行服务器-客户端通信),但是通常用户终端110可以是PC,并且旨在包括笔记本计算机、移动通信终端和其它终端、PDA、以及任意其它通信和/或计算终端等价物。
用户终端110适于计算和控制特定的软件,其中,检查以软件狗形式耦接于用户终端110的令牌120是否存有用于运行软件的必须的安全程序(或称为“软件块”),如果有,则将运行安全程序的执行指令传送给令牌120,并且在从令牌120接收到执行结果时允许以受控的方式运行软件。这里,措辞安全程序(seculet)源于安全(secure)和小程序(applet)的措辞的组合。
当在执行特定软件期间需要安全程序时,用户终端110向令牌120请求安全程序的识别路径信息,并且在接收安全程序的路径信息时执行在令牌120中识别安全程序的功能。
用户终端110执行功能以通过特定程序和令牌120的共享密钥利用在特定程序和令牌120之间发送和接收已编码或已解码的消息来认证令牌120,从而确认它们是否具有通常的编码方法。基于识别路径或安全程序的信息,用户终端110将输入参数以及执行指令传送至令牌120,并且在设置输入参数之前将安全程序从令牌120装载至可执行存储区域,以对相关代码的执行结果进行接收。
令牌120可以存储安全程序并以软件狗形式连接到用户终端110,从而将安全程序传送给终端110,并且在从用户终端110接收执行指令时,向用户终端传送将安全程序装载至可执行存储区的执行结果。
软件提供服务器130在硬件上具有与通常的网络服务器相同的结构。然而,在软件方面,软件提供服务器130可结合有提供各种功能的程序模块,这些程序模块可以利用C、C++、Java、Visual Basic、Visual C或任何其它语言来实现。可以以网络服务器的形式来实现软件提供服务器130,网络服务器通常表示安装有计算机软件(网络服务器程序)的计算机系统,所述计算机系统通过类似因特网的开放式计算机网络连接有未指定的多个客户端和/或其它服务器,以接收来自客户端或其它网络服务器的执行任务的请求,并提供所生成的执行结果。
然而,软件提供服务器130旨在不仅包括所描述的网络服务器程序,而且扩展至包括在上述网络服务器上运行的一系列应用程序,并且在某些情况下,包括内建数据库。
这样的软件提供服务器130可利用网络服务器程序实现,取决于操作系统可将多种版本的网络服务器程序提供至典型的服务器硬件,其中,所述操作系统包括DOS、windows、Linux、UNIX和Macintosh,其中,用于windows环境的网站和因特网信息服务器(IIS)以及用于UNIX环境的CERN、NCSA、APPACH等都是常规的。同时,软件提供服务器130可关联于认证和支付系统进行操作以分发软件。
另外,软件提供服务器130可在数据库中存储并管理有关于成员应用和软件分发的分类信息,这可以在软件提供服务器130的内部或外部实现。
具体地,这种数据库即是利用数据库管理程序(DBMS)在计算机系统存储空间(硬盘或内存)内实现的通用数据结构,以形成自由地进行数据查询(提取)、删除、编辑、增加等的数据存储区,根据本方面的目的,利用具有用于满足数据库自身功能的适当字段或要素,可以利用例如Oracle、Infomix、Sybase和DB2的关系型数据库管理系统(RDBMS)来实现,利用包括Gemston、Orion和O2的面向对象数据库管理系统(OODBMS)来实现,以及利用类似Excelon、Tamino以及Sekaiju的XML本地数据库来实现。
当用户终端110购买了特定软件时,软件提供服务器130检查软件狗格式的令牌是否存在于用户终端110上,并且如果存在令牌120,则对用于运行特定的软件的安全程序进行编码,并接着将编码的安全程序传送给令牌。
软件提供服务器130以置换、对换、转动机(rotor machine)、私钥、公钥中的至少一种方法对安全程序执行编码。
在完成软件购买前,软件提供服务器130还对已编码的安全程序执行解码,检查并存储已解码的安全程序。
现在参照图2,图2示意性示出了根据该方面的用户终端110的框图。
在该方面中的用户终端110可以包括终端通信器210、终端控制器220以及终端存储器230。
在该方面,虽然仅示例性地描述了组成用户终端110的终端通信器210、终端控制器220和终端存储器230,但是本领域技术人员应理解的是,在本方面的必要特征内,可以对用户终端110的这些部件进行变化和修改。
终端通信器210是适于与令牌120协同操作的并且对各种数据进行收发的通信装置。
在该方面中的终端控制器220是用于总体控制用户终端110的功能来计算和控制特定的软件的控制装置,该控制装置检查软件狗格式的令牌120是否存有运行特定的软件所必需的安全程序,如果有,则向令牌120传送用于执行安全程序的指令,并且从令牌120接收执行结果以激活特定的软件。
在运行特定软件的过程中需要安全程序时,终端控制器220执行如下所述的功能,即向令牌120请求安全程序的识别路径信息,当从令牌120接收到识别路径信息时,识别为在令牌120中存在安全程序。
终端控制器220通过收发经由特定的软件和令牌120之间的共享的密钥编码或解码的消息,来确定特定的软件和令牌120共享公共的编码方案,以对令牌120进行认证。基于安全程序或识别路径的信息,终端控制器220向令牌120传送输入参数和执行指令,将安全程序从令牌120载入到可执行存储区域,并接着对输入参数进行设置以接收相关代码的执行结果。
终端存储器230是用于存储对用户终端110进行操作所需的各种数据的装置,其功能是存储特定的软件产品。
参照图3,图3是根据本方面的软件提供服务器130的示意性框图。
该方面的软件提供服务器130可包括服务器通信器310、服务器控制器320以及服务器存储器330。
在该方面,虽然仅示例性地描述了组成软件提供服务器130的服务器通信器310、服务器控制器320和服务器存储器330,但是本领域技术人员应当理解的是,在本方面的必要特征范围内可以改变和修改软件提供服务器130的这些部件。
服务器通信器310是适合于与用户终端110协同操作并且对各种数据进行收发的通信装置。
在本方面的服务器控制器320是用于总体控制服务器130的功能特别是服务器通信器330的控制装置,所以当用户终端110已经购买了特定软件时,服务器控制器320检查在用户终端110处是否存在软件狗格式的令牌,如果找到了令牌120,则对运行软件所必需的安全程序进行编码并将其传送到令牌120。
服务器控制器320以置换、对换、转动机、私钥和公钥中的至少一种方法对安全程序执行编码。服务器控制器320对已编码的安全程序进行解码,并检查令牌120对已解码安全程序进行了编码和存储,从而完成软件购买过程。
服务器存储器330是用于存储操作服务器130所需的各种数据的装置,其功能是存储特定的软件产品和/或安全程序。
图4是根据该方面的令牌120的示意性框图。
在该方面的令牌120可以包括令牌管理器410和存储器420。
在该方面,虽然示例性地描述了仅具有令牌管理器410和存储器420的部件的令牌120,但本领域技术人员应当理解的是,在本方面的必要特征范围内可以改变和修改令牌120的这些部件。
该方面的令牌管理器410是用于控制令牌120的一般功能的控制装置,该控制装置将安全程序传送至用户终端110,并且在接收执行指令时,将安全程序载入至可执行存储器的执行结果传送至用户终端110。更明确地,令牌管理器410可以是通过执行存储在存储部420中的安全程序来进行计算和控制的微处理器。存储器420是用于对操作令牌120所需的各种数据进行存储的装置,其功能是存储多个安全程序。
图5是根据该方面的安全程序的示意性框图。
根据该方面的安全程序是运行特定软件所必需的程序,并且可以包括标识部分、代码部分、永久数据部分以及动态数据部分。
标识部分可以包括用于确定安全程序标识的字符串、说明、图标、以及唯一的数字数据中的至少一个。标识部分可用作搜索/执行选择信息,所述选择信息对于在用户终端110使用驻留于令牌120内的安全程序是必不可少的。
代码部分可以包括在令牌120内运行的执行指令。可由机器语言或更高级的程序语言来实现代码部分,并且包括安全程序的执行指令。由于当该执行命令的输入/输出复杂度过于简单时,容易复制,因此通过利用永久数据/动态数据使其具有适当级别以上的复杂度。
永久数据部分可以存储用作参考的永久数据。永久数据部分可以存储在例如NAND闪存的大容量存储器中。并且可以在执行代码部分期间参考已存储的永久数据部分。也就是说,在不同的软件产品中所使用的各种参考表成为待参考的对象。
动态数据部分存储执行安全程序的历史信息。动态数据部分适合于记录执行代码期间引出的状态信息,并且可以存储在NAND闪存中,但是根据情况也可以存储在EEPROM或Nor等I/O速度快的区域。另外,动态数据使得安全程序上下文相关(context sensitive),允许基于使用、功能、次数、数据量等实现各种许可方案。
图6是用于例示软件提供服务器130在该方面提供安全程序的方法的流程图。
在步骤S610,用户终端110开始访问软件提供服务器130以购买特定软件。软件提供服务器130接着检查软件狗格式令牌120是否存在于用户终端110。如果令牌120存在,则软件提供服务器130在步骤S630检查服务器130和令牌120是否交叉认证。
当在S630确认了服务器130和令牌120之间的交叉认证时,软件提供服务器130在步骤S640对运行特定的软件所必需的安全程序进行编码,并将其传送至令牌120。此时,软件提供服务器130可以以置换、对换、转动机、私钥和公钥中的至少一种方法对安全程序进行编码。
在步骤S650,令牌120对已编码的安全程序进行解码和存储。软件提供服务器130在确认令牌120解码并存储了安全程序之后,完成软件的购买处理。
虽然图6例示了软件提供服务器130以编号的顺序执行步骤S610到步骤S650,但这仅仅例示了该方面的技术理念,但是本领域技术人员应当理解的是,在本方面的必要特征的范围内,软件提供服务器130可以与图6所示的不同的顺序执行这些步骤,或同时执行从步骤S610到步骤S650中选出的一个或更多个步骤,等等,不将图6限制于串行的顺序。
图7是例示了根据本方面的用于利用与令牌120协同操作的用户终端110来运行特定的软件的方法的流程图。
在步骤S710,用户终端110开始运行特定的软件。在步骤S720,用户终端110接着检查耦合到用户终端110的软件狗格式的令牌120是否存有运行软件所必需的安全程序。例如,当在运行软件的过程中需要安全程序的识别路径时,用户终端110可以向令牌120请求安全程序的识别路径的信息,并且在接收来自令牌120的识别路径信息时,用户终端110可以识别安全程序在令牌120处的存在。
此外,在用户终端110通过收发经由特定软件和令牌120之间的共享密钥所编码或解码的消息来确认特定软件和令牌120具有公共的编码方案时,用户终端110对令牌120进行认证。
从步骤S710开始,在用户终端110确认了安全程序的存在时,用户终端110在步骤S730向令牌120传送执行指令以运行安全程序。也就是说用户终端110根据安全程序或识别路径信息向令牌120传送输入参数和执行指令。
在步骤S740,令牌120接着将安全程序载入可执行存储器区域。在步骤S750,令牌120通过设置输入参数来执行相关的代码。接着,在步骤S760,令牌120将执行结果传送至用户终端110。最后,用户终端110从令牌120接收执行结果以激活特定的软件。
虽然图7例示了用户终端110和令牌120以编号顺序执行步骤S710到S760,这仅仅例示了该方面的技术理念,但是本领域技术人员应当理解的是,在本方面的必要特征的范围内,用户终端110和令牌120可以以与图7所示的不同的顺序执行这些步骤,或同时执行从步骤S710到步骤S760中选出的一个或更多个步骤等等,不将图7限制于串行的顺序。
如上所述,在公开的方面中的软件许可保护方法可以通过计算机程序实现并提供在计算机可读记录媒介中。根据本发明实施例的记录有用于体现软件许可保护方法的程序并能够由计算机读取的存储介质,包括能够由计算机系统读取的存储有数据的所有种类的存储装置。这种计算机可读记录媒介的示例包括ROM、RAM、CD-ROM、磁带、软盘和光学数据存储器,并进一步包括在载波中的实现(例如,因特网传输)。此外,计算机可读记录媒介可以提供在分布式处理系统中,其中,计算机系统是网络化的,以在分布的位置处存储并执行计算机可读代码。此外,本领域程序员可以容易地推导出实现公开的方面的功能性程序、代码以及代码段。
在以上描述中,虽然已经将本公开的各个方面的所有部件解释为装配或操作地连接为单元,本公开不旨在将其本身限制于这样的方面。相反,在本公开的客观的范围内,各个部件可以以任意数量选择性地并且操作地进行组合。而且,部件中的每一个可以独自由硬件实现,同时各个部件可以选择性地部分地或者作为整体进行组合,并且可以在具有用于执行硬件等价物的功能的程序模块的计算机程序中实现。本领域技术人员可以容易地推导出组成这种程序的代码或代码段。计算机程序可以存储在计算机可读媒介中,其在运行时可以实现本公开的各个方面。作为计算机可读媒体的备选包括磁记录媒体、光记录媒体以及载波媒体。
同时,除非明确地定义为相反的,否则像“包括”、“包含”、“具有”的措辞应当默认被解读为包括性的或开放的而不是排它的或封闭的。除非明确地定义为相反的,否则所有技术的、科学的或其它措辞与本领域技术人员所理解的含义相一致。在字典中找到的通用术语应当在相关技术著作的上下文中不过于理想地或不切实际地进行解读,除非本公开明确地如此定义它们。
虽然已经针对说明性的目的描述了本公开的示例性方面,但是本领域技术人员应当理解的是,在不脱离本公开的范围和精神的情况下,可以进行各种修改、增加和替换。因此,不针对限制性目的描述本公开的示例性方面。因此,不通过上述方面来限定本公开的范围,而是通过权利要求及其等价来进行限定。
工业适用性
如上,根据上述本公开的软件许可保护方法、系统、服务器、终端以及计算机可读记录介质从服务器向特定的软件的用户/购买者提供了通过可分离地耦接至用户终端的软件狗格式的令牌来运行软件所必需的安全程序的部件,在执行软件期间提示用户检查运行软件所必需的安全程序是否存在于软件狗形式的令牌中,如果存在,则将运行安全程序的执行指令传送至令牌,并且在接收到执行结果时,以受控的方式激活软件,由此克服了软件易受反向工程攻击的缺陷,使客户避免了在其它方案中通常依靠在线认证的不便。
相关申请的交叉参考
如果适用,本申请根据35U.S.C§119(a)要求2008年12月26日在韩国提交的第2008-0134892号的专利申请的优先权,其全部内容通过引用合并于此。另外,在美国以外的其它国家,以相同的理由,本非临时性申请要求基于该韩国专利申请的优先权,该韩国专利申请全部内容通过引用合并于此。

Claims (17)

1.一种软件许可保护终端,所述软件许可保护终端包括:
终端通信器,其与耦接的软件狗类型的令牌协同操作;
终端控制器,其用于操作和控制特定的软件,其检查所述令牌是否具有运行所述特定的软件所必需的安全程序,如果有,则向所述令牌传送用于执行所述安全程序的执行指令,并且从所述令牌接收执行结果以激活所述特定的软件;以及
终端存储器,其用于存储所述特定的软件。
2.根据权利要求1所述的软件许可保护终端,其中,所述安全程序是包含有运行所述特定的软件所必需的组件的程序。
3.根据权利要求2所述的软件许可保护终端,其中,所述安全程序包括:
标识部分,其包括用于区分所述安全程序的标识的字符串、说明、图标和唯一的数字数据中的至少一个;
代码部分,其包括在所述令牌中运行的所述执行指令;
永久数据部分,其用于存储用作参考的永久数据;以及
动态数据部分,其用于存储执行所述安全程序的历史信息。
4.根据权利要求1所述的软件许可保护终端,其中,当在运行所述特定的软件的过程中需要安全程序的识别路径的信息时,用户终端向令牌请求所述安全程序的识别路径的信息,并且在从所述令牌接收所述识别路径的信息时,所述用户终端识别出在所述令牌中存在所述安全程序。
5.根据权利要求1所述的软件许可保护终端,其中,所述终端控制器在通过收发经过所述特定的软件和所述令牌之间的共享密钥编码或解码的消息而确认了所述特定的软件和所述令牌之间具有公共的编码方案时,对所述令牌进行认证。
6.根据权利要求1所述的软件许可保护终端,其中,所述终端控制器基于所述识别路径或所述安全程序的信息将输入参数和所述执行指令传送至所述令牌,将所述安全程序从所述令牌装载至可执行存储区域,并接着设置所述输入参数以接收执行相关代码的执行结果。
7.一种软件许可保护服务器,所述软件许可保护服务器包括:
服务器通信器,其与用户终端协同操作;
服务器控制器,其用于检查购买特定软件时的所述用户终端是否具有软件狗形式的令牌,如果存在所述令牌,则对运行所述特定的软件所必需的安全程序进行编码并将其传送至所述令牌;以及
服务器存储器,其用于存储所述特定的软件和所述安全程序中的至少一个的信息。
8.根据权利要求7所述的软件许可保护服务器,其中,所述服务器控制器以置换、对换、转动机、私钥、公钥中的至少一种方法对所述安全程序进行编码。
9.根据权利要求7所述的软件许可保护服务器,其中,所述服务器控制器在确认所述令牌已解码所述安全程序并进行存储之后,完成所述软件的购买处理。
10.一种软件许可保护系统,所述软件许可保护系统包括:
用户终端,其用于操作和控制特定的软件,其在存在运行所述特定的软件的安全程序时,传送用于执行所述安全程序的执行指令,并且接收执行结果以激活所述软件;以及
令牌,其存储所述安全程序,并且能够以软件狗形式耦接到所述用户终端,以将所述安全程序传送至所述用户终端,并且在接收执行指令时,向所述用户终端传送将所述安全程序装载至可执行存储区的执行结果。
11.根据权利要求10所述的软件许可保护系统,其中,所述令牌包括:
存储器,其用于存储多个安全程序;以及
微处理器,其用于通过执行所述安全程序来计算和控制所述安全程序。
12.一种软件许可保护方法,所述软件许可保护方法包括:
执行特定的软件;
在所关联的令牌中检查运行所述特定的软件的安全程序的存在,如果存在所述安全程序,则将用于执行所述安全程序的执行指令传送至所述令牌;以及
在接收到执行所述安全程序的结果时激活所述软件。
13.根据权利要求12所述的软件许可保护方法,其中,传送执行指令的步骤包括:
当在执行所述软件的过程中需要所述安全程序的识别路径的信息时,向所述令牌请求所述安全程序的识别路径的信息;以及
在从所述令牌接收所述识别路径信息时,确认所述安全程序在所述令牌处的存在。
14.根据权利要求13所述的软件许可保护方法,所述软件许可保护方法在所述安全程序识别之后还包括如下步骤:在通过收发经由所述特定的软件和所述令牌之间的共享密钥编码和解码的消息而确认所述特定的软件和所述令牌之间具有公共的编码方案时,对所述令牌进行认证。
15.根据权利要求12所述的软件许可保护方法,其中,传送执行指令的步骤包括:基于所述识别路径或所述安全程序的信息将输入参数和所述执行指令传送至所述令牌。
16.根据权利要求12所述的软件许可保护方法,其中,激活所述软件的步骤将所述安全程序从所述令牌装载至可执行存储区域,并接着对所述输入参数进行设置以接收执行相关代码的执行结果。
17.一种计算机可读介质,其对执行权利要求12至16中之一的软件许可保护方法的计算机程序进行编码。
CN200980153007.4A 2008-12-26 2009-12-16 用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质 Expired - Fee Related CN102265282B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020080134892A KR101224717B1 (ko) 2008-12-26 2008-12-26 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버,단말기 및 컴퓨터로 읽을 수 있는 기록매체
KR10-2008-0134892 2008-12-26
PCT/KR2009/007530 WO2010074449A2 (ko) 2008-12-26 2009-12-16 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버, 단말기 및 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
CN102265282A true CN102265282A (zh) 2011-11-30
CN102265282B CN102265282B (zh) 2015-04-08

Family

ID=42288253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980153007.4A Expired - Fee Related CN102265282B (zh) 2008-12-26 2009-12-16 用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质

Country Status (6)

Country Link
US (1) US20110265186A1 (zh)
EP (1) EP2372593A2 (zh)
JP (1) JP5567033B2 (zh)
KR (1) KR101224717B1 (zh)
CN (1) CN102265282B (zh)
WO (1) WO2010074449A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004071A (zh) * 2015-01-12 2017-08-01 华为技术有限公司 软件处理设备、服务器系统及其方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130144755A1 (en) * 2011-12-01 2013-06-06 Microsoft Corporation Application licensing authentication
JP5745695B2 (ja) * 2012-06-07 2015-07-08 三菱電機株式会社 ロボット制御装置
KR101534753B1 (ko) * 2014-05-01 2015-07-24 주식회사 라온랩 스마트폰을 이용한 현장 인증 방법
US10554525B2 (en) * 2017-11-28 2020-02-04 International Business Machines Corporation Tracking usage of computing resources
JP2022059246A (ja) * 2020-10-01 2022-04-13 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び情報処理システム
CN113343224B (zh) * 2021-06-04 2023-06-16 中交第一公路勘察设计研究院有限公司 一种基于互联网的软件保护方法
CN114676393B (zh) * 2022-05-26 2022-08-26 杭州微帧信息科技有限公司 一种软件离线鉴权方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418420B1 (en) * 1998-06-30 2002-07-09 Sun Microsystems, Inc. Distributed budgeting and accounting system with secure token device access
CN1740940A (zh) * 2005-09-09 2006-03-01 北京兆日科技有限责任公司 基于可信计算模块芯片实现计算机软件防盗版的方法
CN1818919A (zh) * 2006-03-02 2006-08-16 王清华 一种电子文档的许可认证方法和系统
US20070185815A1 (en) * 2005-10-18 2007-08-09 Intertrust Technologies Corporation Digital rights management engine systems and methods
WO2008147827A2 (en) * 2007-05-24 2008-12-04 Microsoft Corporation Binding content licenses to portable storage devices

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2706210B1 (fr) * 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
EP1526472A3 (en) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
FR2779018B1 (fr) * 1998-05-22 2000-08-18 Activcard Terminal et systeme pour la mise en oeuvre de transactions electroniques securisees
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US7343351B1 (en) * 1999-08-31 2008-03-11 American Express Travel Related Services Company, Inc. Methods and apparatus for conducting electronic transactions
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
JP2001282543A (ja) * 2000-03-29 2001-10-12 Hitachi Ltd Icカードアプリケーションのローディング方法及びローディングシステム
US20050149759A1 (en) * 2000-06-15 2005-07-07 Movemoney, Inc. User/product authentication and piracy management system
US7412605B2 (en) * 2000-08-28 2008-08-12 Contentguard Holdings, Inc. Method and apparatus for variable encryption of data
US20020143637A1 (en) * 2000-10-27 2002-10-03 Shimon Shmueli Shopping cart portability for computing
US7761326B2 (en) * 2001-04-20 2010-07-20 Nippon Telegraph And Telephone Corporation Token type content providing system and token type content providing method and portable user terminal
ATE242892T1 (de) * 2001-05-11 2003-06-15 Sospita As Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
US7392546B2 (en) * 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
JP2002374244A (ja) * 2001-06-13 2002-12-26 Kenwood Corp 情報配信方法
US7467290B2 (en) * 2001-10-19 2008-12-16 Kingston Technology Corporation Method and system for providing a modular server on USB flash storage
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
EP1349032B1 (en) * 2002-03-18 2003-11-19 Ubs Ag Secure user authentication over a communication network
US6865659B2 (en) * 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US20050044385A1 (en) * 2002-09-09 2005-02-24 John Holdsworth Systems and methods for secure authentication of electronic transactions
US20060288407A1 (en) * 2002-10-07 2006-12-21 Mats Naslund Security and privacy enhancements for security devices
US20040123138A1 (en) * 2002-12-18 2004-06-24 Eric Le Saint Uniform security token authentication, authorization and accounting framework
CA2464797A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Remote authentication of gaming software in a gaming system environment
US7374079B2 (en) * 2003-06-24 2008-05-20 Lg Telecom, Ltd. Method for providing banking services by use of mobile communication system
EP1536606A1 (fr) * 2003-11-27 2005-06-01 Nagracard S.A. Méthode d'authentification d'applications
JP2007515723A (ja) * 2003-12-22 2007-06-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アクティブなエンティティを使用するソフトウェア実行保護
US7421588B2 (en) * 2003-12-30 2008-09-02 Lenovo Pte Ltd Apparatus, system, and method for sealing a data repository to a trusted computing platform
US7374099B2 (en) * 2004-02-24 2008-05-20 Sun Microsystems, Inc. Method and apparatus for processing an application identifier from a smart card
US7617390B2 (en) * 2004-06-25 2009-11-10 Sun Microsystems, Inc. Server authentication in non-secure channel card pin reset methods and computer implemented processes
US20050289072A1 (en) * 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
US20060000899A1 (en) * 2004-07-01 2006-01-05 American Express Travel Related Services Company, Inc. Method and system for dna recognition biometrics on a smartcard
US20060059548A1 (en) * 2004-09-01 2006-03-16 Hildre Eric A System and method for policy enforcement and token state monitoring
US7454233B2 (en) * 2004-09-23 2008-11-18 Gemalto Inc Communications of UICC in mobile devices using internet protocols
US20060085848A1 (en) * 2004-10-19 2006-04-20 Intel Corporation Method and apparatus for securing communications between a smartcard and a terminal
KR100516826B1 (ko) * 2004-12-27 2005-09-26 엠텍비젼 주식회사 소프트웨어의 라이센스 인증 방법 및 시스템
JP2006277527A (ja) * 2005-03-30 2006-10-12 Canon Inc ソフトウェアモジュールに対するライセンス認証・管理方式
KR101248906B1 (ko) * 2005-05-27 2013-03-28 삼성전자주식회사 무선 랜에서의 키 교환 방법
KR20080078820A (ko) * 2005-11-09 2008-08-28 일렉트로닉 플라스틱스, 엘엘씨 안전한 작업 환경을 제공하고 가상 인터페이스를 이용하는장치
WO2007074431A2 (en) * 2005-12-27 2007-07-05 Atomynet Inc. Method and apparatus for securing access to applications
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8413209B2 (en) * 2006-03-27 2013-04-02 Telecom Italia S.P.A. System for enforcing security policies on mobile communications devices
US8827802B2 (en) * 2006-07-13 2014-09-09 Aristocrat Technologies Australia Pty Ltd Electronic gaming machine including a smartcard for protection, and method of use
US8099789B2 (en) * 2006-09-29 2012-01-17 Lenovo (Singapore) Pte. Ltd. Apparatus and method for enabling applications on a security processor
US7713491B2 (en) 2006-12-06 2010-05-11 Kellogg Brown & Root Llc Dual riser venting method and system
US20080147530A1 (en) * 2006-12-19 2008-06-19 Kwan Shu-Leung Programmatically transferring applications between handsets based on license information
US8813243B2 (en) * 2007-02-02 2014-08-19 Red Hat, Inc. Reducing a size of a security-related data object stored on a token
JP2008233965A (ja) * 2007-03-16 2008-10-02 Nec Corp 携帯端末装置とそのプログラム、及び、改竄防止システムと改竄防止方法
US8331989B2 (en) * 2007-06-15 2012-12-11 Intel Corporation Field programming of a mobile station with subscriber identification and related information
JP2008269607A (ja) * 2008-04-15 2008-11-06 Gemplus ソフトウェア製品の実行の制御方法
US8590037B2 (en) * 2008-12-23 2013-11-19 Sandisk Technologies Inc. Managing host application privileges

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418420B1 (en) * 1998-06-30 2002-07-09 Sun Microsystems, Inc. Distributed budgeting and accounting system with secure token device access
CN1740940A (zh) * 2005-09-09 2006-03-01 北京兆日科技有限责任公司 基于可信计算模块芯片实现计算机软件防盗版的方法
US20070185815A1 (en) * 2005-10-18 2007-08-09 Intertrust Technologies Corporation Digital rights management engine systems and methods
CN1818919A (zh) * 2006-03-02 2006-08-16 王清华 一种电子文档的许可认证方法和系统
WO2008147827A2 (en) * 2007-05-24 2008-12-04 Microsoft Corporation Binding content licenses to portable storage devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004071A (zh) * 2015-01-12 2017-08-01 华为技术有限公司 软件处理设备、服务器系统及其方法
US10534924B2 (en) 2015-01-12 2020-01-14 Huawei Technologies Co., Ltd. Software handling device, server system and methods thereof
US10878114B2 (en) 2015-01-12 2020-12-29 Huawei Technologies Co., Ltd. Software handling device, server system and methods thereof
CN107004071B (zh) * 2015-01-12 2021-05-04 华为技术有限公司 软件处理设备、服务器系统及其方法

Also Published As

Publication number Publication date
WO2010074449A2 (ko) 2010-07-01
JP5567033B2 (ja) 2014-08-06
WO2010074449A3 (ko) 2010-09-23
KR20100076748A (ko) 2010-07-06
JP2012514277A (ja) 2012-06-21
EP2372593A2 (en) 2011-10-05
KR101224717B1 (ko) 2013-01-21
US20110265186A1 (en) 2011-10-27
CN102265282B (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN102265282A (zh) 用于保护软件许可的方法、用于保护软件许可的系统、服务器、终端以及计算机可读记录介质
CN101263489B (zh) 阻止批量许可环境中的盗版的方法
CN100421102C (zh) 便携式存储装置和使用该便携式存储装置的内容管理方法
CN100407087C (zh) 在多用户许可环境中制止软件盗版的系统与方法
US6871192B2 (en) System and method for preventing unauthorized use of protected software utilizing a portable security device
CN101501642B (zh) 使用虚拟机启动的便携式大容量存储装置的方法
CN104541281A (zh) 用于选择性ram加扰的方法和设备
CN102576435B (zh) 掌上终端和用于掌上终端的支付方法
PL187088B1 (pl) Sposób i urządzenie do przetwarzania programu
CN101305333A (zh) 防篡改可信任虚拟机
CN103828293A (zh) 用于用户认证的系统和方法
CN101103404A (zh) 在非安全区域中分配安全区域的方法和便携式存储装置
US20080263542A1 (en) Software-Firmware Transfer System
CN100468431C (zh) 一种自动绑定移动设备的数字作品下载方法
CN101872404A (zh) 一种保护Java软件程序的方法
US20070204328A1 (en) Production security control apparatus for software products and control method thereof
CN102708332A (zh) 通过硬件识别码保护计算机软件版权的方法
US7577849B2 (en) Keyed-build system for controlling the distribution of software
US20080148249A1 (en) System and method for setting software option of numeric control device
CN102708310A (zh) 一种批量生产的计算机软件的注册码防盗版加密方法
CN111191194B (zh) 一种多核处理器软件集成开发环境离线使用许可系统
KR20020079748A (ko) 판독을 제어하는 마이크로프로세서를 포함한 컴퓨터 판독매체 및 이러한 매체와 통신하도록 설정된 컴퓨터
CN102298528A (zh) 执行软件应用程序的方法、系统以及安全处理器
KR100832221B1 (ko) 소프트웨어 저작권 보호용 장치
CN114357384A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150408

Termination date: 20151216

EXPY Termination of patent right or utility model