回 帖 发 新 帖 刷新版面

主题:[讨论]安全认证的思路

[color=000080][size=4]我用VB做了中间层COM,为了防止其他程序在其他机子上运行并调用这个COM来执行远程数据库操作,因此我想到了认证的方式来实现更安全的互联网访问。

“认证文件” 由另外的认证程序来生成,最高的认证级别是: 将调用此COM的程序文件名(如:myapp.exe)、程序文件的 fileMD5值、网卡的MAC串、受权的有效日期串 生成一个字符串,再计算此字符串的MD5值+受权的有效日期串 存储于认证文件中。

认证过程在VB的COM里进行,它会将 调用者的文件名、文件fileMD5值、网卡MAC、受权的有效日期串生成MD5值,来核对认证文件中的MD5值是否一致,如不一致,认证失败,不能调用此COM来执行远程SQL操作;如相同,再计算当日日期是否在受权日期串的起始日期与终止日期之中,如不是,认证失败,无法操作。

这样,如果别的程序想调用这个COM ,或这个程序被反编、修改源代码再编译后,或将此程序COPY到另一台机子上后,或已过了受权的日期后,都将认证失败而不能再运行。

VB编译成的COM是无法反编译的,因此是比较安全的。


大家讨论一下:这种认证方式充够安全了吗? [/size][/color]

回复列表 (共2个回复)

沙发

这样的认证,原理是可行的,但按你的情形,绑死了网卡,不能在客户端方便地更换设备?要建立设备(网卡)的准入才行,在操作方便性上有一定的折扣。另外用文件fileMD5值,每次升级时都要注意认证过程的调整。

VB编译成的COM是无法反编译的,但是很容易爆破的,如果认证过程加密不足,改一个跳转就破了。当年就这样破过不少东西。

板凳

这是最高级别的安全认证,最低级别的认证不进行 网卡MAC与fileMD5绑定 。

我来回复

您尚未登录,请登录后再回复。点此登录或注册