|
用双重验证实现网络安全访问
(作者:编译 青苹果工作室 2000年09月25日 11:50)
Internet是一个不安全的地方。大多数的web应用程序对于数据在网络之间流动的安全没有多少办法。我们的口令和数据能够也确实未经加密就流过网络,黑客使用专门设计的工具,可以轻易地攫取到信息的一些相关信息的片段,这听起来真是令人震惊。那些在网络上发送未经加密口令的应用程序特别容易受到攻击。公用的关键字加密办法是安全的,但是对于小型和中型应用程序的运行成本来说又不现实。作为代替,使用基本的(明码电文)鉴定方法在网络上却不堪一击。
双重鉴定的概念是从MIT开发的Kerberos 网络鉴定协议借用过来的。在这种方法中,口令不会未经加密而在网络上发送。在访问被允许之前,客户机和服务器分别用两套检查进行鉴定。这样就确保了口令和站点的安全性。
如何工作?
鉴定的程序是建立在服务器侧ASP页和客户机侧JavaScript以及HTML联合的基础上。从图中可以看出,安全围绕着一个客户机访问鉴定服务器(Authentication Server,这里简称AS)。
图解:
1、客户用USERID登录
2、AS获得口令,创建RANDKEY
3、AS将RANDKEY发送给客户机 a、口令( randkey) b、服务关键字(randkey),获取服务器时间信息TS
4、将a解密为readkey,获取客户机时间信息TC
5、发送到服务器 c、TC(Randkey) d、服务关键字(Randkey)
6、解密a为Randkey,解密c为TS
7、如果TC< TS+K,就允许访问用户。否则就不允许。
8、访问服务器
A(B)的意思是:B是由A加密来的。
与这些步骤相结合有一些文件代码可下载,所以要解释这个图,以确保你知道哪个文件是执行上面哪个工作的,以下是鉴定过程的一个更详细的解释。
1、首先呈现给用户的是一个登录的屏幕,让他输入他的UserID,它未经加密传递给鉴定服务器(AS)进行检查。( login.asp )
2、服务器接收到请求,检查数据库中相应用户的口令(该口令只有用户自己和AS知道)。( logcheck.asp )
3、随后AS生成一个随机数字 randkey。( logcheck.asp )
4、服务方(如银行)有一个唯一的服务关键字,只有AS和它自己知道。随后AS产生两个信息包:
○ 以用户口令加密的randkey
○ 以服务关键字加密的randkey
把它们作为cookies 写到客户机上,然后把用户重定向到pass.htm,让他们输入口令。
5、pass.htm 读写在机器上的两个cookies ,而后用口令解密第一个信息包,恢复randkey 。
6、随后它在客户机上产生一个时间信息,用randkey对它加密,把它和未打开的第二个信息包(服务器关键字加密的randkey)发送回服务器。
7、服务器收到这些信息包后,解密第二个信息包以恢复randkey,用randkey解密第一个信息包恢复时间信息。(auth.asp )
8、然后auth.asp对比服务器上的时间检查客户机侧的时间信息。如果他们都在彼此的一个特定时间段内,就鉴定了客户机,并允许到以后页面的连接,直到2session 终止。
另外两个页面增加和更新用户帐号,它们是new.asp 和 newupdate.asp 。
安全性是如何提供的?
简要地说,协议使用了5条信息:
○ 客户UserID和口令 - 客户和服务器知道
○ 随机关键字 - 生成但不在服务器或客户机上存储
○ 服务关键字 - 保存在鉴定服务器上
○ 时间信息 - 分别在客户机和服务器上生成。用来作为最终鉴定的比较。
因为口令不直接在网络上发送,所以系统是安全的,而分别鉴定用户和服务器则又提高了安全性。虽然信息包可以从网络上截获,但是由于它们是加密的,所以截获了没有用。目前我们所使用的加密方法是 简单地将信息包进行XOR转换。通过使用更加复杂的转换方法还可以提供更高的安全性。这里所提供的另外一种保证安全的方法是包含时间信息。如果有人想要窃取信息包,在稍后一点的时间模仿一个请求,服务器就会检查其时间信息,与它自己的相比较,并且拒绝这个请求。后面的页面是用口令保护的,没有经过鉴定就不能访问页面。当用户通过鉴定时,session变量admin被设置为1。在那些通过禁止未经认可的登录进入页面的方式提供安全性的所有文件中,都包含secure.asp 。目前,randkey (随机数字)是从客户机的IP地址函数、服务器的时间和VBScript的随机函数中生成的。当服务鉴定客户机时检查客户机的IP地址可以提供更高的安全性。
结论
这里所提供的加密方法是一个很简单的方法,在服务器册侧和客户机侧使用更好的加密技术可以提供更高的安全性。虽然与公用的关键字密码方法相比较是简单的,但它还是比基本鉴定要更加安全。而且,它不需要客户机侧和服务器侧的额外ActiveX组件。
这个方案假设第一次发送口令时,只有客户而没有其它人接收到。使用同样的程序,用户可以在最后 一步更改口令。另一个假设是在进行时间信息检查的时候,用户的时钟和服务器的时钟是同步的。鉴定 的使用对象目标是那些需要安全保障但是又负担不起公用关键字鉴定方法的站点。
安装指导
○ 下载Zip文件,将内容释放到服务器的一个路径下。
○ 到控制面板,配置ODBC,使连接接通。登录和口令分别为admin和admin 。
○ 在所有需要安全保护的页面开始包含 secure.asp文件, < !-- #include file = "secure.asp" -- >
○ 在站点上给出鉴定的login.asp文件的链接。login.asp文件是调用的第一个文件,根据你的选择可以为它重命名。
|
|
 |