论文部分内容阅读
摘要:在现有软件保护方法的基础上,综合讨论了应用软件保护系统需要的各种保护手段。结合这几种技术实现了一种基于客户/服务器C/S模式的应用软件保护平台中的身份认证。
关键词:应用软件 客户/服务器模式 软件保护 软件保护平台
0 引言
随着计算机在各行各业的广泛使用,社会对软件的需求急剧增加。但是,软件的开发要耗费巨大的人力资源和物力资源。对于任何软件,它的内部技术可以说是它的最重要的东西,如果一旦被他人非法盗取或者破坏,从经济上会遭受很大的损失。对于软件的保护一直是全社会比较关注的问题。
1 应用软件保护的方式
现有的软件保护方式主要有以下几种:
1.1 序列号保护 软件开发公司将用户的基本信息采用技术手段算出用户的序列号,这个序列号就是用户以后使用应用软件的凭证。上面的用户信息包括用户的身份证号、姓名、职业等。对于序列号的验证,其实就是验证用户信息和序列号之间的数学映射关系。
1.2 授权文件保护 经过加密了的注册信息就是授权文件。这些注册信息包含用户名、注册码等信息。如果用户想要使用正版软件首先需要向软件公司付费,付费后用户将授权文件放到指定目录就完成软件的授权保护。至于授权软件的文件格式,是由开发公司自己开发的,对用户来说是透明的。
1.3 加密狗保护 加密狗,也称为加密锁,是一种智能型加密工具。为了防止软件被非法使用,所做的加密保护措施一般都包含两部分:第一个是密钥,它是要保存密码数据的载体;第二个是加密代码程序,它放在应用软件的不同位置。
2 应用软件保护平台主要技术
2.1 基于USB Key的身份认证 基于USB Key的身份认证方式融合了很多种类的保护技术,比如令牌技术、USB技术以及加/解密技术,在很大程度上解决了在软件保护过程中的安全性与易用性的问题。USB Key是一种USB接口的硬件设备,它内置了CPU、存储器以及芯片OS,可以存储用户的敏感信息,利用自身存储的密码算法实现对现有用户的身份验证。
当用户插入相应的USB Key,并输入验证码,USB Key调用其内置的函数对其验证,如果验证码正确,用户才可以登录系统并访问资源,否则,用户将被提示验证码错误并无法登录系统。
2.2 Windows网络通信机制 在应用软件保护平台的设计中,要完成的任务有三个:身份认证、加/解密和访问控制。要完成这几项功能,一定要建立一种机制来完成网络通信中的两大功能,一个是身份认证,一个是访问控制。要完成这两项任务,就要使用到Windows网络通信机制中的Winsock 2技术。
2.3 Windows数据包过滤技术 该项技术分为基于NDIS包拦截技术和基于WinPcap抓报的过滤方法。应用软件保护平台采用第二种。在Winpcap开发环境中,过滤条件的设置是通过编写过滤表达式来实现。Win-pcap向用户提供了简洁易懂的过滤表达式。用戶通过编写过滤表达式,来调用NPF完成过滤操作。
3 应用软件保护平台的实现
3.1 身份认证过程 身份认证在应用软件保护平台中主要是对客户端登录的用户身份进行核实,组织非法的用户登录平台使用应用软件。应用软件保护平台的身份认证过程包括以下几个步骤:
3.1.1 如果用户要登录平台时,客户端首先给服务器端发出身份认证请求消息。
3.1.2 服务器接收到该消息后经过加密生成密文发送给客户端。
3.1.3 接下来客户端将服务器发过来的密文发送给USB Key,USB Key将客户端发送进来的密文与USB Key里面原有的用户信息进行比较并反馈给客户端,客户端将比较后的结果再次发送到服务器端。
3.1.4 服务器通过与原有存储的用户信息比较检验,如果该用户在服务器端的数据库里存在,则说明检验通过。服务器就将该用户名反馈给客户端的用户,用户得到消息后就可以正常登录了。
应用软件保护平台的身份认证主要取决于USB Key,要实现USB Key技术,就要从USB Key的驱动程序和USB Key读写函数两方面入手。下面就对这两个技术给予实现。
3.2 USB Key驱动程序 应用软件保护平台所使用的USB Key驱动程序由编码实现,一共有12个文件,文件的扩展名为.DLL,文件以及服务器端的USB Key管理模块的驱动程序安装方法一样,详细的实现步骤如下:
①对于不同的操作系统驱动程序的安装路径不同,这里以Windows XP(Experience)操作系统为例,将所有的驱动程序复制到“C:WINDOWSsystem32”。②将所有的DLL文件添加到注册表里面,这样就完成了所有的驱动程序的安装。
当12个USB Key驱动程序和USB Key管理模块的驱动程序都安装好了以后,有关USB Key的相关操作才可以进行。
3.3 USB Key读写函数 在驱动程序安装好之后,接下来要完成的工作有以下几点:
①运行Microsoft Visual C++6.0,在其工程文件中添加ActiveX控件类Csrwnew,这个控件是USB Key必须使用的。②运行Csrwnew中两个函数,这两个成员函数分别是函数Yread()和函数Ywrite()。它们的作用是完成对USB Key的读取与写入操作。
在使用这两个函数时,一定要注意对于长度大于一个字节的要循环调用。接下来对上面两个成员函数进行介绍:
①Yread(short Address)函数:该函数以字节为操作单位,并且只有一个可读取USB Key存储区中特定位置的值的参数,即Address。②Ywrite函数:该函数也是以字节为操作单位,其中包含两个参数,一个是inData,一个是Address。如果想要给USB Key中写入数据就要用到inData,目标地址则就要靠Address来完成。
USB Key是按照地址顺序对于各类身份认证信息进行存储的,这些数据都是以字节为单位的,包括应用类别、使用期限、用户密钥以及PIN码等。
4 结束语
对于一个基于C/S模式的应用软件保护平台,该应用软件保护平台具有用户管理、口令管理、用户数管理、访问控制管理、加密/解密等功能,能够保证服务器和客户端的网络通信数据不被非法用户窃取和监听,并具有较良好的应用无关性。对于该平台的实现,给出了最重要的身份认证过程的实现,使得平台不仅能够实现身份认证,并且可以很好的完成此过程。对于下一步实现平台的其它功能以及更好的扩展平台的安全性打下了良好的基础。
参考文献:
[1]葛畅,任润姣,周湘贞.浅谈当前威胁网络安全的因素及对策[J].郑州经济管理干部学院学报,2004,19(6):84-85.
[2]Bellovin S M,Cheswick W R.Network firewalls[J].IEEE Communications Magazine,1994,32(9):50-57.
[3]Herringshaw C.Detecting attacks on networks[J].Computer,199
7,30(12):16-17.
[4]Gerhard Steinke.Data privacy approaches from US and EU perspectives[J].Telematics and Infoematics,2002,17(19):193-200.
[5]Lamport L.Password authentication with insecure communication[J]. Communications of the ACM,1981,24(11):770-772.
[6]王双林.基于www的C/S分布式计算模型[J].电脑与信息技术,2000,27(1):5-8.
[7]蔺守河,戴紫彬.一种基于指纹和USB Key的网络用户身份认证机制[J].计算机安全,2005(8):26-32.
[8]Bruce Schneier(美)著.吴世忠,祝世雄,张文政译.应用密码学[M].北京:机械工业出版社,2000.15-40.
作者简介:余超,男,(1981—),汉族,陕西西安人,现工作于新乡学院计算机与信息工程学院,硕士,主要研究方向:网络安全。
关键词:应用软件 客户/服务器模式 软件保护 软件保护平台
0 引言
随着计算机在各行各业的广泛使用,社会对软件的需求急剧增加。但是,软件的开发要耗费巨大的人力资源和物力资源。对于任何软件,它的内部技术可以说是它的最重要的东西,如果一旦被他人非法盗取或者破坏,从经济上会遭受很大的损失。对于软件的保护一直是全社会比较关注的问题。
1 应用软件保护的方式
现有的软件保护方式主要有以下几种:
1.1 序列号保护 软件开发公司将用户的基本信息采用技术手段算出用户的序列号,这个序列号就是用户以后使用应用软件的凭证。上面的用户信息包括用户的身份证号、姓名、职业等。对于序列号的验证,其实就是验证用户信息和序列号之间的数学映射关系。
1.2 授权文件保护 经过加密了的注册信息就是授权文件。这些注册信息包含用户名、注册码等信息。如果用户想要使用正版软件首先需要向软件公司付费,付费后用户将授权文件放到指定目录就完成软件的授权保护。至于授权软件的文件格式,是由开发公司自己开发的,对用户来说是透明的。
1.3 加密狗保护 加密狗,也称为加密锁,是一种智能型加密工具。为了防止软件被非法使用,所做的加密保护措施一般都包含两部分:第一个是密钥,它是要保存密码数据的载体;第二个是加密代码程序,它放在应用软件的不同位置。
2 应用软件保护平台主要技术
2.1 基于USB Key的身份认证 基于USB Key的身份认证方式融合了很多种类的保护技术,比如令牌技术、USB技术以及加/解密技术,在很大程度上解决了在软件保护过程中的安全性与易用性的问题。USB Key是一种USB接口的硬件设备,它内置了CPU、存储器以及芯片OS,可以存储用户的敏感信息,利用自身存储的密码算法实现对现有用户的身份验证。
当用户插入相应的USB Key,并输入验证码,USB Key调用其内置的函数对其验证,如果验证码正确,用户才可以登录系统并访问资源,否则,用户将被提示验证码错误并无法登录系统。
2.2 Windows网络通信机制 在应用软件保护平台的设计中,要完成的任务有三个:身份认证、加/解密和访问控制。要完成这几项功能,一定要建立一种机制来完成网络通信中的两大功能,一个是身份认证,一个是访问控制。要完成这两项任务,就要使用到Windows网络通信机制中的Winsock 2技术。
2.3 Windows数据包过滤技术 该项技术分为基于NDIS包拦截技术和基于WinPcap抓报的过滤方法。应用软件保护平台采用第二种。在Winpcap开发环境中,过滤条件的设置是通过编写过滤表达式来实现。Win-pcap向用户提供了简洁易懂的过滤表达式。用戶通过编写过滤表达式,来调用NPF完成过滤操作。
3 应用软件保护平台的实现
3.1 身份认证过程 身份认证在应用软件保护平台中主要是对客户端登录的用户身份进行核实,组织非法的用户登录平台使用应用软件。应用软件保护平台的身份认证过程包括以下几个步骤:
3.1.1 如果用户要登录平台时,客户端首先给服务器端发出身份认证请求消息。
3.1.2 服务器接收到该消息后经过加密生成密文发送给客户端。
3.1.3 接下来客户端将服务器发过来的密文发送给USB Key,USB Key将客户端发送进来的密文与USB Key里面原有的用户信息进行比较并反馈给客户端,客户端将比较后的结果再次发送到服务器端。
3.1.4 服务器通过与原有存储的用户信息比较检验,如果该用户在服务器端的数据库里存在,则说明检验通过。服务器就将该用户名反馈给客户端的用户,用户得到消息后就可以正常登录了。
应用软件保护平台的身份认证主要取决于USB Key,要实现USB Key技术,就要从USB Key的驱动程序和USB Key读写函数两方面入手。下面就对这两个技术给予实现。
3.2 USB Key驱动程序 应用软件保护平台所使用的USB Key驱动程序由编码实现,一共有12个文件,文件的扩展名为.DLL,文件以及服务器端的USB Key管理模块的驱动程序安装方法一样,详细的实现步骤如下:
①对于不同的操作系统驱动程序的安装路径不同,这里以Windows XP(Experience)操作系统为例,将所有的驱动程序复制到“C:WINDOWSsystem32”。②将所有的DLL文件添加到注册表里面,这样就完成了所有的驱动程序的安装。
当12个USB Key驱动程序和USB Key管理模块的驱动程序都安装好了以后,有关USB Key的相关操作才可以进行。
3.3 USB Key读写函数 在驱动程序安装好之后,接下来要完成的工作有以下几点:
①运行Microsoft Visual C++6.0,在其工程文件中添加ActiveX控件类Csrwnew,这个控件是USB Key必须使用的。②运行Csrwnew中两个函数,这两个成员函数分别是函数Yread()和函数Ywrite()。它们的作用是完成对USB Key的读取与写入操作。
在使用这两个函数时,一定要注意对于长度大于一个字节的要循环调用。接下来对上面两个成员函数进行介绍:
①Yread(short Address)函数:该函数以字节为操作单位,并且只有一个可读取USB Key存储区中特定位置的值的参数,即Address。②Ywrite函数:该函数也是以字节为操作单位,其中包含两个参数,一个是inData,一个是Address。如果想要给USB Key中写入数据就要用到inData,目标地址则就要靠Address来完成。
USB Key是按照地址顺序对于各类身份认证信息进行存储的,这些数据都是以字节为单位的,包括应用类别、使用期限、用户密钥以及PIN码等。
4 结束语
对于一个基于C/S模式的应用软件保护平台,该应用软件保护平台具有用户管理、口令管理、用户数管理、访问控制管理、加密/解密等功能,能够保证服务器和客户端的网络通信数据不被非法用户窃取和监听,并具有较良好的应用无关性。对于该平台的实现,给出了最重要的身份认证过程的实现,使得平台不仅能够实现身份认证,并且可以很好的完成此过程。对于下一步实现平台的其它功能以及更好的扩展平台的安全性打下了良好的基础。
参考文献:
[1]葛畅,任润姣,周湘贞.浅谈当前威胁网络安全的因素及对策[J].郑州经济管理干部学院学报,2004,19(6):84-85.
[2]Bellovin S M,Cheswick W R.Network firewalls[J].IEEE Communications Magazine,1994,32(9):50-57.
[3]Herringshaw C.Detecting attacks on networks[J].Computer,199
7,30(12):16-17.
[4]Gerhard Steinke.Data privacy approaches from US and EU perspectives[J].Telematics and Infoematics,2002,17(19):193-200.
[5]Lamport L.Password authentication with insecure communication[J]. Communications of the ACM,1981,24(11):770-772.
[6]王双林.基于www的C/S分布式计算模型[J].电脑与信息技术,2000,27(1):5-8.
[7]蔺守河,戴紫彬.一种基于指纹和USB Key的网络用户身份认证机制[J].计算机安全,2005(8):26-32.
[8]Bruce Schneier(美)著.吴世忠,祝世雄,张文政译.应用密码学[M].北京:机械工业出版社,2000.15-40.
作者简介:余超,男,(1981—),汉族,陕西西安人,现工作于新乡学院计算机与信息工程学院,硕士,主要研究方向:网络安全。