首页
社区
课程
招聘
[原创]简单谈谈牛X的软件加密锁应具备的“素质”
发表于: 2012-3-11 17:21 6670

[原创]简单谈谈牛X的软件加密锁应具备的“素质”

2012-3-11 17:21
6670

相信很多人对加密锁这个东西不是很清楚,甚至根本没听过,当然我在这里想谈论的不是加密锁的“百度百科”。可以说,目的不在扫盲,而是想从技术角度来谈谈一款好的加密锁应具备的功能,不想长篇大论,只想一针见血。
    关于加密锁的发展历程,我也不想在这里谈,百度一下就能找到,直接切入主题,先说说加密锁应具备的硬件基础,就当前的硬件破解技术来看,单片机已经远远不能满足其安全等级要求,安全终端芯片是最佳选择,安全终端芯片也就是业内所说的“智能卡芯片”,安全级别很高,抗电子探测和抛片强度也较高,能给加密锁提供一个健壮的硬件平台。
至于加密锁的软件基础就要求更高了,其中包括,COS性能的高要求、应用软件接口强度的高要求,通讯安全的高要求。
    COS性能的高低会直接决定加密锁的档次,传统的加密锁在理论上说是不安全的,因为它和被保护的软件在“空间”上是分离的,破解它只是时间的问题,所有安全的保障就交给了通讯数据的复杂度大小和应用层接口的复杂度大小,而传统加密锁与应用软件的交互方式基本是基于一般数据的读写,很容易被模拟和数据窃取。总之,不出锁的才是理论上安全的,就目前来看只有锁内加密算法的密钥和移植到加密锁里的可执行代码。
    对数据的加解密常用的算是对称算法中的3DES了,192bit或128bit密钥存在锁中,并用锁内硬件算法器对软件数据加解密,能带来一定的安全性,当然也可以采用非对称算法。
关于代码的移植,可以简单的理解成应用软件的一部分代码被抽取到加密锁中运行,有点像软件保护壳的概念,只是代码不可见而已,当然,现在已经有加密锁在用这样的技术,是基于C51虚拟机的,功能上能达到,但是效率不是很高。
    我个人觉得,要是采用硬件实体执行代码效率会大大提高,考虑到执行效率和代码密度的平衡,选择Thumb/Thumb2指令集最完美,不管在哪个方面都将远远超过C51锁内编程技术。
    为了能让程序员更好的使用代码移植功能,加入文件系统方式来操作可执行代码将是一个很好的功能,屏蔽了硬件抽象层,更符合应用层编程习惯。
附加功能也是好的加密锁必不可少的,能增强其易用性和日后的维护升级等,这里就不一一赘述了。
    应用层接口可以说是数据出入加密锁的门,这层也更是传统加密锁安全的薄弱点,多数破解者都是从这层入手的,所以这层就更要有一定的安全强度,更要与加密锁在“空间”上紧密结合,具体实施就不在这说明。
    加密锁要想与应用软件建立连接,通讯是必不可免的,这就要求通讯的安全性,目的是对抗通讯数据分析和数据回放,好的加密锁应具备通讯双向校验、关联加密算法、数据随机干扰、模拟螺旋门技术等。
    总之,真正的牛X加密锁不是单一的个体,而是一个高性能的综合体,一个通过精心设计的小尤物。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (3)
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
一个通过精心设计的小尤物。
2012-3-11 18:32
0
雪    币: 463
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
成本成本成本
2012-3-12 16:10
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一个高性能的综合体
2012-4-19 23:06
0
游客
登录 | 注册 方可回帖
返回
//