想法是善意的,目的是明确的,……手法,也是不错滴!!!
但是这样上传身份z照片,并不是很安全可靠的。
用户在注册的时候,网站会缓存信息,那黑客通过“拖库”、“撞库”等手段,就能获取用户信息,这些信息很可能就会进入身份校验的黑市。
个人觉得,在身份校验这方面,平台方面还是应该想想其他的方式了,比如生物识别,人脸啊,虹膜啊,安全性还是不错的。
在网络环境下的信息世界,身份是区别于其他个体的一种标识。为了与其他个体有所区别,身份必须具有唯一性。当然,唯一性也是有范围的,如电话号码,在一个区域内是唯一的,如果考虑多个区域,可能会有相同的号码,但只要再添加区域号段,又能唯一区分开来。网络环境下的身份不仅仅用于标识一个人,也可以用于标识一个机器、一个物体,甚至一个虚拟的东西(如进程、会话过程等)。因此,网络环境下的身份是只在一定范围内用于标识事、物、人的字符串。
一、身份认证概述
网络环境下的认证不是对某个事物的资质审查,而是对事物真实性的确认。结合起来考虑,身份认证就是要确认通信过程中另一端的个体是谁(人、物、虚拟过程)。
那么,怎么知道通信的另一端是谁呢?通常,通信协议都要求通信者把身份信息传输过来,但这种身份信息仅用于识别,不能保证该信息是真实的,因为这个身份信息在传输过程中是可以被恶意篡改的。那么,怎样才能防止身份信息在传输过程中被恶意篡改呢?事实上要完全杜绝恶意篡改是不可能的,特别是在公共网络(如互联网)上传输的信息,而能做的,就是在身份信息被恶意篡改后,接收端可以很容易检测出来。
要识别真伪,首先要“认识”真实的身份。通过网络传递的身份可能是陌生人的身份,如何判断真伪?这里需要阐述一个观点:要识别真伪,必须先有信任。在网络环境下,信任不是对一个人的可靠性认可,而是表明已经掌握了被验证身份者的重要秘密信息,如密钥信息。假设A与B之间有一个得到确信的共享密钥,不管这个共享密钥是怎么建立的,他们之间就建立了相互信任。如果A确信掌握B的公开密钥,也可以说A对B建立了信任,但还不能说明B对A建立了信任。从上述讨论不难看到,在完全没有信任基础的情况下,新的信任是不能通过网络建立的,否则是不可靠的。
二、身份认证机制
身份认证的目的是鉴别通信中另一端的真实身份,防止伪造和假冒等情况发生。进行身份认证的技术方法主要是密码学方法,包括使用对称加密算法、公开密钥密码算法、数字签名算法等。
对称加密算法是根据Shannon理论建立的一种变换过程,该过程将一个密钥和一个数据充分混淆和置乱,使非法用户在不知密钥的情况下无法获得原始数据信息。当然一个加密算法几乎总伴随着一个对应的解密算法,并在对称密钥的参与下执行。典型的对称加密算法包括DES和AES。
公钥密码算法需要2个密钥和2个算法:一个是公开密钥,用于对消息的加密;一个是私钥(私有密钥),用于对加密消息的解密。根据名称可以理解,公开密钥是一个能公开的密钥,而私钥只能由合法用户掌握。典型的公钥密码算法包括RSA公钥密码算法和数字签名标准DSS。
数字签名实际是公钥密码的一种应用,其工作原理是,用户使用自己的私钥对某个消息进行签名,验证者使用签名者的公开密钥进行验证,这样就实现了只有拥有合法私钥的人才能产生数字签名(不可伪造性)和得到用户公钥的公众才可以进行验证(可验证性)的功能。
根据身份认证的对象不同,认证手段也不同,但针对每种身份的认证都有很多种不同的方法。如果被认证的对象是人,则有三类信息可以用于认证:(1)你所知道的(what you know),这类信息通常理解为口令;(2)你所拥有的(what you have),这类信息包括密码本、密码卡、动态密码生产器、U盾等;(3)你自身带来的(what you are),这类信息包括指纹、虹膜、笔迹、语音特征等。一般情况下,对人的认证只需要一种类型的信息即可,如口令(常用于登录网站)、指纹(常用语登录电脑和门禁设备)、U盾(常用于网络金融业务),而用户的身份信息就是该用户的账户名。在一些特殊应用领域,如涉及资金交易时,认证还可能通过更多方法,如使用口令的同时也使用U盾,这类认证称为多因子认证。
如果被认证的对象是一般的设备,则通常使用“挑战—应答”机制,即认证者发起一个挑战,被认证者进行应答,认证者对应答进行检验,如果符合要求,则通过认证;否则拒绝。移动通信系统中的认证就是一个典型的对设备的认证,这里设备标识是电话卡(SIM卡或USIM卡),认证过程则根据不同的网络有不同的方法,例如,GSM网络和3G网络就有很大区别,LTE网络又与前2种网络有很大不同,但都使用了“挑战—应答”机制。
在物联网应用环境下,一些感知终端节点的资源有限,包括计算资源、存储资源和通信资源,实现“挑战—应答”机制可能需要付出很大代价,这种情况下需要轻量级认证。为了区分对人的认证和对设备的认证,把这种轻量级认证称为对物的认证。其实,对物的认证不是很严格的说法,因为在具体技术上是对数据来源的认证。
三、对“人”的认证
人在网络上进行一些活动时通常需要登录到某个业务平台,这时需要进行身份认证。身份认证主要通过下面3种基本途径之一或其组合来实现:所知(what you know),个人所知道的或掌握的知识,如口令;所有(what you have),个人所拥有的东西,如身份z、护照、xyk、钥匙或证书等;个人特征(what you are),个人所具有的生物特性,如指纹、掌纹、声纹、脸形、DNA、视网膜等。
(一)基于口令的认证
基于口令的认证方式是较常用的一种技术。在最初阶段,用户首先在系统中注册自己的用户名和登录口令。系统将用户名和口令存储在内部数据库中,注意这个口令一般是长期有效的,因此也称为静态口令。当进行登录时,用户系统产生一个类似于时间戳的东西,把这个时间戳使用口令和固定的密码算法进行加密,连同用户名一同发送给业务平台,业务平台根据用户名查找用户口令进行解密,如果平台能恢复或接收到那个被加密的时间戳,则对解密结果进行比对,从而判断认证是否通过;如果业务平台不能获知被加密的时间戳,则解密后根据一定规则(如时间戳是否在有效范围内)判断认证是否通过。静态口令的应用案例随处可见,如本地登录Windows系统、网上博客、即时通信软件等。
基于静态口令的身份认证技术因其简单和低成本而得到了广泛的使用。但这种方式存在严重的安全问题, 安全性仅依赖于口令,口令一旦泄露,用户就可能被假冒。简单的口令很容易遭受到字典攻击、穷举攻击甚至暴力计算破解。特别地,一些业务平台没有正确实现使用口令的认证流程,让用户口令在公开网络上进行传输,认证方收到口令后,将其与系统中存储的用户口令进行比较,以确认对象是否为合法访问者。这种实现方式存在许多隐患,一旦记录用户信息的文件泄露,整个系统的用户账户信息连同对应的口令将完全泄露。网上发生的一系列网络用户信息被公开到网上的现象,反映的就是这种实现方式的弊病。另外,这种不科学的实现方式也存在口令在传输过程中被截获的安全隐患。随着网络应用的深入化和网络攻击手段的多样化,口令认证技术也不断发生变化,产生了各种各样的新技术。为了防止一些计算机进程模拟人自动登录,许多业务平台还增加了计算机难以识别的模糊图形。
基于口令的身份认证容易遭受如下安全攻击。
(1)字典攻击。攻击者可以把所有用户可能选取的密码列举出来生成一个文件,这样的文件被称为“字典”。当攻击者得到与密码有关的可验证信息后,就可以结合字典进行一系列的运算,来猜测用户可能的密码,并利用得到的信息来验证猜测的正确性。
(2)暴力破解。也称为“蛮力破解”或“穷举攻击”,是一种特殊的字典攻击。在暴力破解中所使用的字典是字符串的全集,对可能存在的所有组合进行猜测,直到得到正确的信息为止。
(3)键盘监听。按键记录软件以木马方式植入到用户的计算机后,可以偷偷地记录下用户的每次按键动作,从而窃取用户输入的口令,并按预定的计划把收集到的信息通过电子邮件等方式发送出去。
(4)搭线窃听。通过嗅探网络、窃听网络通信数据来获取口令。目前,常见的Telnet、FTP、>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)