基本解决方案分析

公司需保护软件与解决方案结构图: 

需求: B/S架构,企业登陆平台,通过匹配数据库信息来实现用户身份认证的效果。客户端需要安装软件,所以想对软件也进行加密。

B/S软件登录认证方案

 

二 解决方案分析:

       

       认证物理硬件(以下用USB KEY描述),可以使用两种认证值。

第一,  可以使用USB KEY的固化ID硬件值。每个USB KEY都有一个唯一的固化的ID值如(331000567)。这个值在出厂时就已
经固化在USB KEY内部,无法修改。此值可以通过提供出来的
USB KEY API
来获取出此值。

第二,  可使用USB KEY内存。USB KEY一般都带有一定空间的内存,
可供软件开发商自定义的存放认证值或用户定义标识。内存写入
的操作可以通过特定的工具或API来实现,然后在程序内插入USB KEY API来读取内存值。

 

      针对于认证解决方案基本实现流程如下:

            1 确定使用的认证方式是固化的ID硬件值或USB KEY 内存自定义认证值。

            2 修改客户端程序,在客户端程序内插入USB KEY的API代码。如获取ID
或获取USB KEY内存的API代码。
(为加快认证反应速度,在客户端可以另外做IP认证,如客户端配置的是内网IP还是外网IP,如果是内网IP即不需要获取KEY值,如果是配置的外网IP即需要先做KEY是否插入及KEY的获取值操作)

            3 认证服务器,只需判断是外网用户或内网用户,如果是内网用户则还是使用以前的认证(用户名与密码),如果是外网用户即需要三个字段的认证(用户名与密码+KeyValue)。

            4 后台数据库需要在为用户配置添加第三个字段KeyValue作为服务器认证时查询的字段。

   

       

基本过程描述:

              客户端程序在启动时判断配置的是内网地址还是外网地址,如果是外网地址就检测KEY在不在,如果没插入给用户提示请插入锁,如果是内网地址就不用检测。

             客户端程序启动后用户输入用户名与输入点击确认后程序将获取KEY值与用户名和密码一起提交给认证服务器,认证服务器判断提交的请求IP是外网IP那么查询数据库与用户名相对应的后两个字段(密码与KeyValue)作认证值(数据库字段的值应该已由提前管理员填充,如同要查的表是已填好的表。),认证服务器将查询来的两个认证字段与用户提交的相配对,如果相同则通过认证,相反则拒绝。如果认证服务器判断提交的请求IP是内网IP则只需要查询数据库与用户名的对应的密码字段,此时应该与以前的认证流程一样。