基于USB加密锁的软件防盗版方法_2010计算机工程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Software Piracy proof Method Based on USB Encryption Lock
H A O Y ao hui, L IU H ong bo, ZH ENG L i, G E Chang tao
( Inst it ut e of El ect roni c Technology, PLA Inf ormati on Engi neering U niversit y, Zhengzhou 450004, C hina) ! Abstract ∀ T o s ol ve t h e pr obl em s of easy to decl as sifi cat ion and inconvenient t o use in pres ent s of t w are piracy pr oof met hods, t hi s paper des igns
第 36 卷 第 23 期 Vol. 36 No. 23 安全技术
文章编号 : 1000





Computer Engineering
3428( 2010) 23 0119 02 文献标识码 : A
2010 年 12 月 December 2010
中图分类号 : TP309
基于 U SB 加密锁的软件防盗版方法
and impl ement s a new pirat e proof met hod based on U SB encrypti on lock . A user k ey i s w rit t en int o U SB encrypt ion lock , and w hen t h e soft w are is t he fi rst t im e enabled, t he u nique key and t he us er key in t he U S B encrypt ion lock are w rit t en int o regist rati on t able. By comparing th e t wo keys in t he U S B en crypt ion l ock and regi st rat ion t abl e, t h e user's legitim acy is det ermined. T he met hod is applied in a commercial soft w are, an d t he r esul t proves it is ef f ect ive. ! Key words∀ U SB encrypt ion l ock; piracy pr oof ; key
图3 主检测函数执行流程
该 函数首先判断加密锁是否存在 , 如不存在 , 则弹出提示 框 , 存在 , 则继续 判断是否第 1 次插入 加密锁 ; 如 是第 1 次插 入 , 将加密锁中信息写 入注册表 中 , 如不是第 1 次插 入 , 则读 取加密 锁和注册表中的信 息 , 进 行对比 ; 如果 对比结 果相 同 , ( 下转第 123 页 )
数 , 主检测函数执行流程如图 3 所示。
4 防盗版系统设计与实现
4. 1 加密锁内容设置 加密锁中存储有 2 个密钥。唯一性密钥是加密锁出厂时 的标识 , 每个加密锁 各不相 同 , 即 图 2 中 唯一 I D 的 位置。用 户密钥由输 入的超级 密码和种子 密码组合生 成 , 超 级密码和 种子密码不出现在软件中 , 只有用户密 钥最终用于软件中 , 即 超级密码和 种子密码 作为生成用 户密码的参 数存在 , 种子密 码或超级密码不同的 , 生成的用户密码 也不相同 , 从而更好地 保证了 加 密 锁 存 储 的 安 全 性。 密 钥 输 入 生 成 过 程 如 图 2 所示。 120
基金项目 : 国家# 863∃ 计划基金资助项目# 基于规范的容忍入侵中间件 关键技术与平台∃ ( 2007 A A01Z405) 作者简介 : 郝耀辉 ( 1978- ) , 女 , 讲师、 硕士 , 主研方向 : 信息安全 , 数据 库应用技术 ; 刘洪波、 郑 收稿日期 : 2010 05 04 礼 , 讲师 ; 葛长涛 , 硕士研究生 E mail: h ao_yaohui@ 126. com
图2
密钥设置
4. 2
图1
防盗版技术原理
公共子函数 本 文 设 计 了 4 个 子 函 数 : readFr omDog , W riteT oReg , readF ro mReg, T imer Detec 加密锁第 1 次插入计算机时 , 读取加密 锁中存储 的双密钥信息 , 将其写入计算机注册表 中 , 此 后 , 每 隔 1 000 s 扫描 U SB 端口一 次 , 同时读取加密锁和注册表中存 储的双密 钥信息 , 进行比较。 针对不足 ( 1) , 本文在软件各主模块的开头设计了检测加 密锁是否存在的程序 , 该程序 每隔 1 000 s 扫 描 U SB 端口一 次 , 如加密锁不存在 , 则弹出提示框 , 终止软件的 运行。 针对不足 ( 2) , 在 软件 安 装 完 成后、 加密 锁 第 1 次 插入 U SB 口时 , 由软件自动将加密锁的唯 一性标识 写入计 算机操 作系统的注册表中 , 每次检测加密锁时 , 同时对加密锁中存储 的 2 个密钥和注册表中存储的 2 个密钥进行比对 , 如不 一致 , 弹出提示框 , 终止软件的运行。 根据上述技术原理 , 一个加密锁中存储有 2 个密钥 , 唯一 性密钥各不相同 , 保证了一个应用软件 对应一个密钥 , 这样就 可以防止上述 2 个不足被不法者利用。用户密钥是可以相同 的密钥 , 但只有软件开发者知道其内容 , 并且不同批次加密锁 的密钥设置不同 , 增 大了对软 件的破 解难度。 将加密 锁信息 写入注册表的设计使得在随软件配发的 U SB 加密锁损 坏后 , 只需给用户 配发同批 次的加密锁 , 用户 重新安装软 件后就可 运行 , 这有效保障了软件所有者的权利 , 降低了软件开发者维 护软件产品的复杂程 度。此外 , 软件中 每隔 1 000 s 检 测加密 锁的设置保 证了在没 有插入加密 锁的情况下 , 软件 不能正常 运行。
利用注 册机( 软件 ) 产生该软 件的授 权文件 寄给用 户 , 用户再 将授权 文件拷贝到计算机上 , 才可使用软件。 上 述 2 种方 法都存在如下缺点 : ( 1) 两者的验证机制在计算机自身内部 , 给破解者带来很 大的方 便 ; ( 2) 用户对其的使用均不方便。 2. 2 使用 USB 加密锁的方法 软件开发者 将某些重要数据放入 U SB 加密锁内部 , 使软
119
软件。
3 防盗版技术原理
本文在设计防盗版方法 的时候 , 考虑 到加密 锁本 身具有 出厂的唯一 性标识 , 将该唯 一性标识和 加密锁中存 储的软件 开发者设计 的密钥结 合起来使用 , 相当 于在加密锁 中设置了 2 个密钥 : 一个密钥为唯一性密钥 , 由加密 锁出厂时 的唯一性 标识表示 , 各不相同 ; 另一 个密钥为 用户密 钥 , 由软件 开发者 写入加密锁中 , 可以根据软件批次进行 设置 , 同批次加密锁的 用户密钥相同。软件开发者可通过定期更换软件批次和用户 密钥来加强加密锁的破解难度 [ 3] 。技术原理如图 1 所示。
2 现有加密技术
2. 1 未使用 USB 加密锁 的方法 未使用 U SB 加密锁的方法包括 : ( 1) 电子注册方法 用户在使用该方法保护 软件时 , 软件 会根据 用户 的特定 信息给出 该 软件 的 序 列 号。用 户 需 要 把 这 一 序列 号 用 E mail、 电话或邮寄等方式发给软件 提供商或开 发者 , 然后软件 开发者利用注册机 ( 软件 ) 产生该软件的注册号发给用户 [ 2] 。 ( 2) 授权文件方法 使用该方法保护软件时 , 软件第 1 次运行时 , 会根据微机 硬件参数给 出该软件 的硬件特征 的序列号文 件 , 用 户将这一 序列号文件用 E mail 发给软件提供商 或开发者 , 软件 开发者
( 1) Funct ion readFr omDog ( ) : string , 主要功 能为从 U SB 加密锁 中读出密钥信息 , 返回结果为字符串类型。 ( 2) Funct ion Wr iteT o Reg( ) : bo olean, 主要 功能为 在加密 锁第 1 次插入 U SB 口时 , 将加密锁的唯一性标识写入 计算机 操作系 统的注册表中 , 并返回布尔型的值 , 标识写入操作是否 成功。 ( 3) F unctio n readFro mReg ( ) : str ing , 主要功 能为从 本地 计算机 的注册表中读取密钥信息 , 返回结果为字符串类型。 ( 4) procedur e T imerDetect( Sender: T Object) , 主要 功能 为定时 检测加密锁是否存在 , 并判断加密锁中内容是否正确 。 4. 3 主检测函数 在 软件中各主模 块程 序的 起始 位置 都 设计 了主 检 测函
件脱离 硬件加密锁就无法正常运行 , 从而实现高强度的加 密 , 防止软 件盗版行为的出现 , 保护软件开发者的利益。 现在 , 常规的 U SB 加密锁防盗版技术是在软件中 存储一 个密钥 , 在 U SB 加密锁中存 储一 个密钥 , 在 启动应 用程 序的 时候扫 描 U SB 端 口 , 如 果从 端口 读入的 密钥 信息 与软 件中 密钥信 息相符 , 就运行 程序 , 反之 , 拒绝 运行。但这 样的 执行 过程可 能存在以下不足 : ( 1) 因为软件只在启 动时扫 描 U SB 端口 , 破解 者可 以通 过 修改主程序 文件 , 使程序的 执行跳过检 查加密锁的 代码而 直接运 行主程序。 ( 2) 因为所有的加密锁使用统一的密钥 , 所以使用者可以 在 不同的机器 上安装多 套软件 , 用一个加 密锁依次启 动这些
郝耀辉 , 刘洪波 , 郑 礼, 葛长涛
( 解放军信息工程大学电子技术学院 , 郑州 450004) 摘 要 : 为解决现有软件防盗版方法易于破解和使用不便的问题 , 设计实现一种基于 U S B 加密锁的 软件防盗版新方 法 。 该方法先在 U SB 加密 锁内写入一个用户密钥 , 在软件第一次启用时将 U SB 加密锁内的唯一性密钥和用户 密钥同时写入计 算机注册表中 , 在软件运 行过程中 定时比 对 U SB 加密锁和计算机注册表中 2 个密钥的一致性 , 由此判断用户的合法性。 将该方法用于某商业软件 , 结果证明其可以有效防止盗版行为 。 关键词 : U SB 加密锁 ; 防盗版 ; 密钥
虽然用户的公钥间仍然 存在线 性关系 , 但公 钥与 私钥的 关系为 : d ID = s ID QID = ( sindex 1 , 1 + s index 2, 2 + %+ sindexh, h ) ( r index 1, 1 + r index 2, 2 + %+ r index h, h ) P 存在 Q3 - Q2 = & Q21 的情况下 , 私钥间不存在 d 3 = 2d 2 d 1 或 d 3 = 2 d 1 - d 2 的线性关系 , 因此本文 算法可以抵 抗随机 共谋攻击 [ 4 ] 。 通过以上分析可知 , 本文算 法中不存 在由于 矩阵 元素组 合而带来的共谋攻击。 4. 2 计算量 在生成公钥时 , 文 献 [ 1] 使 用一次 H 1 : { 0, 1 } * ∋ A 和一 次 L : A ∋ G* 1 映射。而本文算法需要 h 次 index i = f i ( ID ) , 但 是 f i 简单地把 { 0, 1 } * 映射到 Z + m 上 , 生成矩 阵中 点的坐 标 , 再根据坐标 将公钥矩 阵对应的点 相加生成用 户公钥 , 而且椭 圆曲线上点的加法是不浪费时间的 , 与映射 H 1 : { 0 , 1 } * ∋ A 、 L: A ∋ G 相比 , 本文算法的用户公钥生成算法更简单易行。
1 概述
软件作为一种知识密集 的商品 化产品 , 在开 发过 程中需 要耗费大量的人力物力 , 是软件开发人 员智慧的结晶 , 但软件 同时具有便 于复制的 特点 , 这个特点常 被不法者用 来生产盗 版软件 , 给软件开发者或所有者带来巨大损失。据统计 , 全世 界每天由于软件盗版造成的损失不小于 5 000 万美元。软件 盗版是软件提供商面临的极其严峻的问题 , 因此 , 为软件提供 安全保护是必然的选择。现在大多采用加密技术保护软件产 品 , 用户必须通 过一 定的 加 密注 册或 授权 后才 可使 用软 件。 但当前普遍采用的软件注册、 授权方法 使用起来比较复杂 , 且 存在一定的安全问题。为 了更方便、 有 效地保 护软件 知识产 权 , 本 文设 计 实 现 了 一 种 基 于 U SB 加 密锁 的 软 件 防 盗 版 方法 [ 1] 。
相关文档
最新文档