主题:[讨论]安全认证的思路
[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]
“认证文件” 由另外的认证程序来生成,最高的认证级别是: 将调用此COM的程序文件名(如:myapp.exe)、程序文件的 fileMD5值、网卡的MAC串、受权的有效日期串 生成一个字符串,再计算此字符串的MD5值+受权的有效日期串 存储于认证文件中。
认证过程在VB的COM里进行,它会将 调用者的文件名、文件fileMD5值、网卡MAC、受权的有效日期串生成MD5值,来核对认证文件中的MD5值是否一致,如不一致,认证失败,不能调用此COM来执行远程SQL操作;如相同,再计算当日日期是否在受权日期串的起始日期与终止日期之中,如不是,认证失败,无法操作。
这样,如果别的程序想调用这个COM ,或这个程序被反编、修改源代码再编译后,或将此程序COPY到另一台机子上后,或已过了受权的日期后,都将认证失败而不能再运行。
VB编译成的COM是无法反编译的,因此是比较安全的。
大家讨论一下:这种认证方式充够安全了吗? [/size][/color]