免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
加密狗的概述与破解原理加密狗的概述与破解原理 加密狗的概述 加密狗的概述 加密狗是外形酷似 U 盘的一种硬件设备 正名加密锁 后来发展成如今的一 个软件保护的通俗行业名词 加密狗 是一种插在计算机并行口上的软硬件结合的 加密产品 新型加密狗也有 usb 口的 一般都有几十或几百字节的非易失性存 储空间可供读写 现在较新的狗内部还包含了单片机 软件开发者可以通过接口函 数和软件狗进行数据交换 即对软件狗进行读写 来检查软件狗是否插在接口上 或者直接用软件狗附带的工具加密自己EXE 文件 俗称 包壳 这样 软件 开发者可以在软件中设置多处软件锁 利用软件狗做为钥匙来打开这些锁 如果没 插软件狗或软件狗不对应 软件将不能正常执行 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的 加密狗内置单 片机电路 也称 CPU 使得加密狗具有判断 分析的处理能力 增强了主动的反解 密能力 这种加密产品称它为 智能型 加密狗 加密狗内置的单片机里包含有专用 于加密的算法软件 该软件被写入单片机后 就不能再被读出 这样 就保证了加 密狗硬件不能被复制 同时 加密算法是不可预知 不可逆的 加密算法可以把 一个数字或字符变换成一个整数 如DogConvert 1 12345 DogConvert A 4 3565 加密狗是为软件开发商提供的一种智能型的软件保护工具 它包含一个安装在 计算机并行口或 USB 口上的硬件 及一套适用于各种语言的接口软件和工具软 件 加密狗基于硬件保护技术 其目的是通过对软件与数据的保护防止知识产权被 非法使用 加加密密狗狗的的工工作作原原理理 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的 加密狗内置单 片机电路 也称 CPU 使得加密狗具有判断 分析的处理能力 增强了主动的反解 密能力 这种加密产品称它为 智能型 加密狗 加密狗内置的单片机里包含有专用 于加密的算法软件 该软件被写入单片机后 就不能再被读出 这样 就保证了加 密狗硬件不能被复制 同时 加密算法是不可预知 不可逆的 加密算法可以把一 个数字或字符变换成一个整数 如DogConvert 1 12345 DogConvert A 435 65 下面 我们举个例子说明单片机算法的使用 比如一段程序中有这样一句 A Fx 3 程序要根据常量 3 来得到变量 A 的值 于是 我们就可以把原程序 这样改写 A Fx DogConvert 1 12342 那么原程序中就不会出现常量3 而 取之以 DogConvert 1 12342 这样 只有软件编写者才知道实际调用的常量是 3 而如果没有加密狗 DogConvert 函数就不能返回正确结果 结果算式A Fx DogConvert 1 12342 结果也肯定不会正确 这种使盗版用户得不到软件使用价值 的加密方式 要比一发现非法使用就警告 中止的加密方式更温和 更隐蔽 更令 解密者难以琢磨 此外 加密狗还有读写函数可以用作对加密狗内部的存储器的读 写 于是我们可以把上算式中的12342 也写到狗的存储器中去 令 A 的值完全 取决于 DogConvert 和 DogRead 函数的结果 令解密难上加难 不过 一般说 来 加密狗单片机的算法难度要低于一些公开的加密算法 如DES 等 因为解 密者在触及加密狗的算法之前要面对许多难关 目目前前最最新新的的硬硬件件加加密密原原理理 随着解密技术的发展 单片机加密狗由于其算法简单 存储空间小 容易被硬 件复制等原因 正逐渐被市场所淘汰 以北京彩虹天地信息技术股份有限公司为首 的国内加密狗厂商研发出稳定性更好 存储空间更大 最大为64K 有效防止 硬克隆的第四代加密狗 智能卡 加密狗以其独创的 代码移植 原理 已经被国 内大型商业软件开发商如金蝶 用友 CAXA 广联达 神机妙算 鲁班 所 采用 以世界上第一款 智能卡加密锁 宏狗为例 简单介绍一下 代码移植 原理 代码移植 加密原理为一种全新的 可信的软件保护模型 工作原理为 软软 件件中中部部分分代代码码经经过过编编译译 移移植植 到到加加密密锁锁硬硬件件内内部部 软软件件中中没没有有该该段段代代码码的的副副本本 在这套软件保护方案中 PC 端应用软件的关键的代码和数据 消失 了 被安 全地移植到精锐 IV 型加密锁的硬件中保护起来 在需要使用时 应用软件可以通 过功能调用引擎来指令精锐 IV 运行硬件中的关键代码和数据并返回结果 从而依 然可以完成整个软件全部的功能 由于这些代码和数据在PC 端没有副本存在 因此解密者无从猜测算法或窃取数据 从而极大程度上保证了整个软件系统的安全 性 简言之 精锐 IV 提供了一套可信的解决方案 从理论上保证软件加密的安全 使使用用加加密密狗狗进进行行加加密密的的一一些些策策略略 现在的解密技术排除法律和道德因素 就从学术角度来说是门科学 它与加 密技术一样是相辅相成不断提高 以下就针对使用加密狗 加密锁 进行硬件保护谈谈几点心得 针对于使用加密狗的解密有什么方法 1 硬件复制 复制硬件 即解密者复制 Sentinel Superpro 相同的加密锁 由于加密锁采 用了彩虹公司专用的 ASIC 芯片技术 因此复制该加密锁非常困难 且代价太大 2 监听 解密者利用并口监听程序 进行解密 其工作机制是 监听程序 记录应用程序对并口发的查询串和加密锁发回的响应串 当移去加 密锁时 如果程序再对并口发查询串确认身份时 监听程序返回所记录的响应串 程序认为加密锁仍然在并口上 是合法用户继续运行 应用程序也就被解密了 3 打印机共享器 将加密锁插在打印机共享器上 多台计算机共同使用打印机共享器上的一把加 密锁 后面简述对抗策略 4 DEBUG 解密者 DEBUG 等反编译程序 修改程序源代码或跳过查询比较 应用程序也 就被解密了 对于以上的几种解密方法加密者可以考虑使用以下几种加密策略 1 针对上述监听和 DEBUG 问题解密方法 本人推荐充分利用加密狗开发商 的 API 函数调用的加密策略 a 针对并口监听程序 1 对加密锁进行算法查询 正确的查询响应验证 用户生成大量查询响应对 如 200 对 在程序运行过程中对激活的加密算法 单元随机的发送在 200 对之中的一对 345AB56E 63749128 查询串 34 5AB56E 哪么算法单元返回的下确的响应串应该是 63749128 若是 则程序 认为加密锁在并口上 是合法用户 继续运行 反之终止程序 随机非激活算法验证 我们对非激活的加密锁算法单元发随机生成的查询串 如 7AB2341 非 激活算法单元只要是有查询就会有响应串 因此返回响应串 7AB2341 在程序 中判断响应串与查询串是否相同 如果相同 则证明我们的加密锁仍然在口上 继 续运行程序 随机激活算法验证 假设监听程序了解了上面的机制 即对非激活的加密算法我们发什么查询串则 返回相同的响应串 哪么我也有对策 对激活的加密算法单元发随机生成的查询串 如 345AB56E 由于是激活算法响应串肯定与查询串肯定不等 所以假如返回 响应串 7253ABCD 在程序中判断响应串与查询串是否不同 如果不同 则证明 我们的加密锁仍然在并口上 继续运行程序 上面三种加密策略在程序同时使用 相符相承 相互补充 即使监听程序记录 下来我们的部分查询响应 2 分时查询 用户把查询响应对分组 如 120 对分为 4 组 每 30 对一组 头三个月使用 第一组 第二个月三个月使用第二组以此类推 监听程序就算记录了头三个月 第 二个月三个月以后程序仍然无法使用 也可以再生成 100 对 临时委员 每次运行随意抽出 1 对与以上分组结合使 用 使记录程序在三个月内也无法记录完全 程序也无法使用 3 随机读写存储单元 为了防监听程序 我们的策略是 程序在启动时 我们利用随机函数随机生成 的一个数 假设是 98768964 我们在指定的 18 单元写入这个数 哪么我们在 程序运行中 每调用一个功能程序前读取18 单元 数判定是否是我们写入的数 98768964 因为每次写入的数是随机生成的 所以监听程序记录不到当次启动时 写入的随机数 它返回的数肯定是一个不匹配的数 我们就可以就此判定是否是合 法用户 Sentinel Superpro 加密锁可以重复写 10 万次以上 也就是说每天写三 次也可以使用一百年 2 针对打印共享器的加密策略 为了防打印共享器 我们的策略是 程序在启动时 我们利用随机函数随要生 成的一个数 假设是 7762523A 我们在指定的 34 单元写入这个数 哪么在程 序运行中 每调用一个功能程序前读取34 单元 以判定是否是我们写入的数 7762523A 以此判定是否是合法用户 因为每次写入的数随机生成的 同时使用 打印共享器的其他非法用户的程序一进入也会写入一个不同的随机数 那么第一个 用户的程序在校验是否是第一个用户写入的数时 就会被认为是非法的用户 所以 在一个阶段也只是一个程序使用 例如RAINBOW 公司开的 Sentinel Superpr o 加密锁可以重复 10 万次以上 也就是说每天写三次也就可以使用一百年 3 针对 DEBUG 跟踪的加密锁的安全策略 1 分散法 针对 DEBUG 跟踪 在调用每个重要功能模块前 我们建议要对加密锁进行查 询 校验身份 如果只在程序开始部分校验身份 DEBUG 跟踪程序部分可以轻 易的跳过校验部分 而一些不良用户可以在验证后可以将加密锁拔下用在其它计算 机 2 延时法 针对某一具体查询校验 都有三步骤 查询得到响应串 比较响应串和查询串是否匹配 执行相应的步骤 我们建议以上三个步骤要延时执行 最好鼗三步骤相互远离些 甚至放到不同 的子程序或函数中 例如 我们执行 查询得到响应串 后 相隔 50 执行 比较响 应串和查询串是否匹配 假如程序需要调用一个函数 哪么我们就在这个函数里 执行 执行相应的步骤 这样程序更难于被破解 3 整体法 将响应串作为程序中数据使用 例如 我们有返回值 87611123 而我们程序需要 123 这个数 我们可以让 87611123 减去 8761000 得到 123 这样以来任何对加密程序的修改都会使程 序紊乱 4 迷惑法 一般情况下我们的程序执行相应的验证步骤 验证是非法用户就会退出 这样 很容易被发现代码特征 我们知道是非法用户后继续执行一些无用的操作使程序紊 乱 以迷惑解密者 以上为现如今软件开发商使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建厦门市第三幼儿园招聘1人考试备考试题及答案解析
- 2026广东茂名市信宜市选聘市外教师21人考试参考题库及答案解析
- 水下机器人:探索蓝色疆域的智能装备革命
- 2026年上海市宝山区新江湾实验学校编内教师公开招聘笔试备考题库及答案解析
- 2026江苏苏州东吴财产保险股份有限公司重客业务部社会招聘考试备考题库及答案解析
- 2026福建厦门市集美区海怡实验幼儿园招聘2人考试备考题库及答案解析
- 2026福建厦门市集美区西滨小学非在编教师招聘1人考试备考试题及答案解析
- 2026湖南长沙农村商业银行股份有限公司招聘员工2人笔试备考试题及答案解析
- 2026年舟山市志愿服务联合会公开招聘工作人员的备考题库参考答案详解
- 2026年海南师范大学招聘备考题库及一套答案详解
- 责任督学培训课件
- 关于安吉物流市场的调查报告
- 三年级科学上册苏教版教学工作总结共3篇(苏教版三年级科学上册知识点整理)
- 抑郁病诊断证明书
- 心电监测技术操作考核评分标准
- 历史时空观念的教学与评价
- 维克多高中英语3500词汇
- 《LED显示屏基础知识培训》
- 第五届全国辅导员职业能力大赛案例分析与谈心谈话试题(附答案)
- LY/T 2501-2015野生动物及其产品的物种鉴定规范
- GB/T 6529-2008纺织品调湿和试验用标准大气
评论
0/150
提交评论