软件测试到底是个什么岗位?

相信大家都还记得一个经典的漫画,一条狗在计算机面前一边打字,一边对另一条狗说:"在互联网上,没有人知道你是一个人还是一条狗!"这个漫画说明了在互联网上很难识别身份。

身份认证是指计算机及网络系统确认操作者身份的过程。计算机系统和计算机网络是一个虚拟的数字世界。在这个数字世界中,一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。

而我们生活的现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,就成为一个很重要的问题。身份认证技术的诞生就是为了解决这个问题。

如何通过技术手段保证用户的物理身份与数字身份相对应呢?在真实世界中,验证一个人的身份主要通过三种方式判定,一是根据你所知道的信息来证明你的身份(what you know),假设某些信息只有某个人知道,比如暗号等,通过询问这个信息就可以确认这个人的身份;二是根据你所拥有的东西来证明你的身份(what you have) ,假设某一个东西只有某个人有,比如印章等,通过出示这个东西也可以确认真个人的身份;三是直接根据你独一无二的身体特征来证明你的身份(who you are),比如指纹、面貌等。

所谓"没有不透风的墙",你所知道的信息有可能被泄露或者还有其他人知道,杨子荣就是掌握了"天王盖地虎,宝塔镇河妖"的接头暗号成功的伪造了自己的身份。而仅凭借一个人拥有的物品判断也是不可靠的,这个物品有可能丢失,也有可能被人盗取,从而伪造这个人的身份。只有人的身体特征才是独一无二,不可伪造的,然而这需要我们对这个特征具有可靠的识别能力。

信息系统中,对用户的身份认证手段也大体可以分为这三种,仅通过一个条件的符合来证明一个人的身份称之为单因子认证,由于仅使用一种条件判断用户的身份容易被仿冒,可以通过组合两种不同条件来证明一个人的身份,称之为双因子认证。

身份认证技术从是否使用硬件可以分为软件认证和硬件认证,从认证需要验证的条件来看,可以分为单因子认证和双因子认证。从认证信息来看,可以分为静态认证和动态认证。身份认证技术的发展,经历了从软件认证到硬件认证,从单因子认证到双因子认证,从静态认证到动态认证的过程。现在计算机及网络系统中常用的身份认证方式主要有以下几种:

用户名/密码方式

用户名/密码是最简单也是最常用的身份认证方法,它是基于"what you know"的验证手段。每个用户的密码是由这个用户自己设定的,只有他自己才知道,因此只要能够正确输入密码,计算机就认为他就是这个用户。然而实际上,由于许多用户为了防止忘记密码,经常采用诸如自己或家人的生日、电话号码等容易被他人猜测到的有意义的字符串作为密码,或者把密码抄在一个自己认为安全的地方,这都存在着许多安全隐患,极易造成密码泄露。

即使能保证用户密码不被泄漏,由于密码是静态的数据,并且在验证过程中需要在计算机内存中和网络中传输,而每次验证过程使用的验证信息都是相同的,很容易驻留在计算机内存中的木马程序或网络中的监听设备截获。因此用户名/密码方式一种是极不安全的身份认证方式。可以说基本上没有任何安全性可言。

IC卡认证

IC卡是一种内置集成电路的卡片,卡片中存有与用户身份相关的数据, IC卡由专门的厂商通过专门的设备生产,可以认为是不可复制的硬件。IC卡由合法用户随身携带,登录时必须将IC卡插入专用的读卡器读取其中的信息,以验证用户的身份。

IC卡认证是基于"what you have"的手段,通过IC卡硬件不可复制来保证用户身份不会被仿冒。然而由于每次从IC卡中读取的数据还是静态的,通过内存扫描或网络监听等技术还是很容易截取到用户的身份验证信息。因此,静态验证的方式还是存在根本的安全隐患。

生物特征认证

生物特征认证是指采用每个人独一无二的生物特征来验证用户身份的技术。常见的有指纹识别、虹膜识别等。从理论上说,生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份,不同的人具有相同生物特征的可能性可以忽略不计,因此几乎不可能被仿冒。
生物特征认证基于生物特征识别技术,受到现在的生物特征识别技术成熟度的影响,采用生物特征认证还具有较大的局限性。

首先,生物特征识别的准确性和稳定性还有待提高,特别是如果用户身体受到伤病或污渍的影响,往往导致无法正常识别,造成合法用户无法登录的情况。其次,由于研发投入较大和产量较小的原因,生物特征认证系统的成本非常高,目前只适合于一些安全性要求非常高的场合如银行、部队等使用,还无法做到大面积推广。

USB Key认证

基于USB Key的身份认证方式是近几年发展起来的一种方便、安全、经济的身份认证技术,它采用软硬件相结合一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。USB Key是一种USB接口的硬件设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USB Key内置的密码学算法实现对用户身份的认证。基于USB Key身份认证系统主要有两种应用模式:一是基于冲击/相应的认证模式,二是基于PKI体系的认证模式。

动态口令/动态密码

动态口令技术是一种让用户的密码按照时间或使用次数不断动态变化,每个密码只使用一次的技术。它采用一种称之为动态令牌的专用硬件,内置电源、密码生成芯片和显示屏,密码生成芯片运行专门的密码算法,根据当前时间或使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。

用户使用时只需要将动态令牌上显示的当前密码输入客户端计算机,即可实现身份的确认。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要密码验证通过就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份。

动态口令技术采用一次一密的方法,有效地保证了用户身份的安全性。 下面以PASSPOD系统为例,说明使用动态口令进行身份认证的过程。

PASSPOD动态口令身份认证系统主要由认证服务器、管理工作站、SDK开发包和客户端组成。

认证服务器 是系统的核心部分,安装在网络服务商的机房内,与业务系统服务器通过局域网相连接,控制所有上网用户对网络的访问,提供动态口令身份认证,根据业务系统的授权,访问系统资源。认证服务器具有自身数据安全保护功能,所用户数据经加密后存储在数据库中,认证服务器与管理工作站的数据交换也是将数据变换后,以密码的方式在网上传输。认证服务器有五个功能模块组成:用户管理、实时运算、认证管理、数据库、加密算法软件。
 
管理工作站 提供认证服务器的管理界面,它在网络管理员与认证服务器之间提供一个友好的操作界面,便于网络管理员实现系统维护和用户管理。通过管理工作站,网络管理员可以进行网络配置、发放客户端、删除、用户信息修改、服务统计和用户查询等操作。

SDK开发包 是针对不同网络服务商的应用平台而提供的不同的系统接口,网络服务商针对自己的应用系统调用相应的开发包即可使用PASSPOD系统。

客户端 是购买的一个专用硬件或是下载并安装在用户移动通讯终端上的应用程序,用户在登录时通过这个客户端获取动态一次性口令。

用户在登录时必须输入由客户端生成的一个动态密码,在登录服务器接收到这个密码后会将密码发送至PASSPOD服务器进行验证,验证通过用户就可以正常登录,失败的话服务器将拒绝用户的登录,成功使用过的密码将不能重复使用。

一个典型的用户认证过程如下:
(1)用户接通客户服务器,等候认证提示;
(2)运行客户端,输入显示的结果作为此时的登录口令;
(3)客户服务器前端接受认证口令,调用认证代理软件包与认证服务器进行通信并等待认证结果;
(4)认证服务器根据由用户身份确定的秘密数据计算出认证口令,与用户输入口令比较,并返回认证结果。
(5)客户服务器根据由认证服务器返回的结果决定用户登录成功与否。

未来,身份认证技术将朝着更加安全、易用,多种技术手段相结合的方向发展。动态口令将会成为身份认证技术的发展方向之一,动态口令的易用性也将不断提高。

现在信息安全越来越受到人们的重视。建立信息安全体系的目的就是要保证存储在计算机及网络系统中的数据只能够被有权操作的人访问,所有未被授权的人无法访问到这些数据。

这里说的是对"人"的权限的控制,即对操作者物理身份的权限控制。不论安全性要求多高的数据,它存在就必然要有相对应的授权人可以访问它,否则,保存一个任何人都无权访问的数据有什么意义?

然而,如果没有有效的身份认证手段,这个有权访问者的身份就很容易被伪造,那么,不论投入再大的资金,建立的再坚固安全防范体系都形同虚设。就好像我们建造了一座非常结实的保险库,安装了非常坚固的大门,却没有安装门锁一样。所以身份认证是整个信息安全体系的基础,是信息安全的第一道关隘。

大家熟悉的如防火墙、入侵检测、VPN、安全网关、安全目录等,与身份认证系统有什么区别和联系呢?我们从这些安全产品实现的功能来分析就明白了:防火墙保证了未经授权的用户无法访问相应的端口或使用相应的协议;入侵检测系统能够发现未经授权用户攻击系统的企图;VPN在公共网络上建立一个经过加密的虚拟的专用通道供经过授权的用户使用;安全网关保证了用户无法进入未经授权的网段,安全目录保证了授权用户能够对存储在系统中的资源迅速定位和访问。

这些安全产品实际上都是针对用户数字身份的权限管理,他们解决了哪个数字身份对应能干什么的问题。而身份认证解决了用户的物理身份和数字身份相对应的问题,给他们提供了权限管理的依据

如果把信息安全体系看作一个木桶,那么这些安全产品就是组成木桶的一块块木板,则整个系统的安全性取决于最短的一块木板。这些模块在不同的层次上阻止了未经授权的用户访问系统,这些授权的对象都是用户的数字身份。而身份认证模块就相当于木桶的桶底,由它来保证物理身份和数字身份的统一,如果桶底是漏的,那桶壁上的木板再长也没有用。因此,身份认证是整个信息安全体系最基础的环节,身份安全是信息安全的基础。