"密码和文字的使用历史一样长。"在密码诞生之前,古希腊人曾经用过在头皮上书写或者刺青、然后等待头发重新长出的方法来加密(当然这个时效性极差);类似的,中国古代也有把大腿割破,藏入蜡丸,等待肉长好后再传递信息的保密方法(现在想来是非常恶心而且不人道的,起码要自残两次)。 –引自《军事密码学》 作者:李长生,中国军事科学院军事运筹学研究员。
密码与身份认证的历史
在很久以前,所有财产都是物理的。重要的信息也是物理的,因为它们都是刻在石头上的,之后又被写在了纸上。为了保护这些财产,人们利用物理性安全措施,如墙、护城河和卫兵。如果传递信息,则通常由使者来完成,并通常伴有护卫。危险是纯物理性的。除了在物理上拿到它之外,没有什么办法可以获得信息。
随着通信技术的发展,针对信息安全领域最早研究的部门仍然是军方。在第二次世界大战期间,德国使用了一台名为Enigma的机器对发送到军事部门的消息进行加密。德国人认为Enigma是无法破解的,事实上如果使用正确,破译它确实非常困难。但是,正如实际情况一样,一些操作员犯了一些低级的错误,这使盟国在投入了巨大的资源来对付这个问题之后可以读取一些消息。
在电影《猎杀U571》中,盟军9人小分队冒死强行登上德国U571潜艇,主要目的就是夺取密码发报机。另外,在很多涉及"密码"的题材电影中,都表现了信息的高度机密,主人公都是要为保守秘密备受折磨。电影《美丽的心灵》即表现了诺贝尔奖得主"纳什"因保守密码的秘密而精神错乱的故事。从历史上看,密码泄露问题引起来人们的广泛关注,从那个时候起,单独的密码往往都不再起作用,密码和使用密码人需要同时鉴定为可信,通信系统才可能继续保持服务。
用户名+密码=不可信
身份识别是安全网络中的最基本的组成部分,它更直接的面对网络的最终用户,在很多网络接入系统中的可信环节也是基于定义和控制系统中命名用户对命名客体的访问。在哈里森福特主演的《防火墙》中,残忍的比尔考克斯疯狂地绑架了杰克的爱妻和一双儿女,要挟他交出银行安全防御系统的破解密码,然后帮自己侵入银行的系统窃取100万美元巨款。
在如今的网络系统中,几乎所有的网络应用都支持身份识别的多种存在形式,用户名+密码是最简单也是最常用的身份认证方法,它是基于"what you know"的验证手段。任何一个用户能够正确输入密码,计算机就认为他是合法用户,但他的网络行为可信吗?我们无从得知。实际上,由于许多用户为了防止忘记密码,经常采用诸如自己的生日、电话号码等有意义的字符串作为密码,甚至有人将密码贴在自己的显示器上方。
获得一个系统的用户名可谓简单至极,获得密码也并非是不可能的。由于密码是静态的数据,并且在验证过程中需要在计算机内存中和网络中传输,而每次验证过程使用的验证信息都是相同的,很容易驻留在计算机内存中的木马程序或网络中的监听设备截获。
还记得美国大片《国家公敌》吗?黑人影星威尔史密斯在片中饰演的律师被美国中央情报局到处监听、全球定位。在现实中,我们很多人都使用操作系统中的网络共享。SMB 是许多 Microsoft 操作系统支持的资源共享协议。它是 NetBIOS 和其他许多协议的基础。SMB 签名既对用户又对承载数据的服务器进行身份验证,如果任意一端没有通过身份验证过程,就不会进行数据传输。
在高安全网络中实施数字签名有助于防止客户端和服务器被模拟。这种类型的模拟被称作会话劫持,并使用工具允许能够访问客户端或服务器所在网络的攻击者中断、终止或窃取进行中的会话。攻击者有可能会截获和修改未签名的SMB数据包,然后修改通信并转发它,这样服务器可能会执行不需要的操作。或者,攻击者可能会在进行合法的身份验证之后冒充服务器或客户端,并获取对数据的未经授权的访问权限。
早期SMB协议在网络上传输明文口令。后来出现"LAN Manager Challenge/Response"验证机制,简称LM,但是很容易被破解。后来,微软提出了WindowsNT挑战/响应验证机制,称之为NTLM,现在已经有了更新的NTLMv2以及Kerberos验证体系。但这都不能有效地防止身份冒用和信息劫持,因此"用户名+密码"方式一种是极不安全的身份认证方式,没有任何安全性可言。
身份认证技术的应用
信息系统中,通过一个条件的符合来证明一个人的身份称之为单因子认证,由于仅使用一种条件判断用户的身份容易被仿冒,可以通过组合两种不同条件来证明一个人的身份,称之为双因子认证。从认证信息来看,可以分为静态认证和动态认证。身份认证技术的发展,经历了从软件认证到硬件认证,从单因子认证到双因子认证,从静态认证到动态认证的过程。
1.One-Time Password
一般的解决办法是使用一次性口令(OTP,One-Time Password)机制。这种机制的最大优势是无须在网上传输用户的真实口令,并且由于具有一次性的特点,可以有效防止重放攻击(Replay Attack)。根据一次性口令生成机制的不同,通常OTP可分为:时间同步的安全标志符,Challenge-Response的Crypto Card(密码卡)和增强的S/Key(安全密钥)等。RADIUS协议就是属于这种类型的认证协议;强认证机制一般将运用多种加密手段来保护认证过程中相互交换的信息,其中,Kerberos协议是此类认证协议中比较完善、较具优势的协议,得到了广泛的应用。
在OTP认证系统,你需要拥有一些东西(你的令牌卡/软件)和知道一些东西(你的个人识别码"personal identification number,PIN" )。生成和同步密码的方法随OTP系统的不同而不同。在比较流行的OTP方法中,令牌卡在一个时间间隔内(通常为每60s)生成登密码(passcode)。这个看上去随机的数字串实际上与OTP服务器和令牌上运行的数学算法紧密相关。
OTP用以下方式改进了密码:
* 用户不能选择使用弱密码认证,密码的强壮性是强制的;
* 用户只要记住PIN,而不用记住传统的密码值,这也就解决了用户密码出现明文的问题;
* 可防止Sinffer攻击,一旦密码被使用一次,即使在线路上被嗅探到,此密码也不会重复被利用;
* 强身份认证可防止网络钓鱼(Phishing)攻击双因子身份认证后,其中的时间同步加密系统在每一次使用时都会产生一次性口令,并在短时间内失效,即使人们不慎登入Phising网站,也不会遭受欺骗。
2.智能卡技术
应该说智能卡本身就可以算是一个功能齐全的计算机,它们有自己的内存、微处理器和智能卡读取器的串行接口,所有的这些都被包含在一个信用卡大小或是更小的介质里。比如全球移动通信系统(Global System for Mobile Communications ,GSM)电话的客户身份识别卡(subscriber identity modules ,SIM)卡的例子。
从安全的观点看,智能卡提供了在卡里存储身份识别信息的能力,该信息能够被智能卡阅读器所读取。智能卡阅读器能够连到PC上验证VPN连接或访问另一个网络系统的用户。智能卡是比PC本身更为安全的存储密钥的地方,因为即使你的计算机完全被别人掌握,你的私钥不会随之一起被盗,所以你的身份对于网络应用系统来说依然是可信任的。
科幻当真"科幻"?生物识别真假战
好莱坞电影,例如《回到未来》、《碟中碟3》中出现过用视网膜、掌形、指纹等作为身份识别的场景,可见,未来将是生物特征识别做认证的世界。所谓生物识别,可以这样简单理解:在门禁上用钥匙开门是用你拥有的东西,用密码是用你知道的东西,而用视网膜等生物特征则是用你身体的一部分。换言之,你也许会丢掉钥匙或是忘记密码,但用自己身体的一部分则没有这样的顾虑。
由奥斯卡影帝尼古拉斯凯奇主演的《国家宝藏》中,他利用墨水放入在古币里,当黛安克鲁格玩古币时,手会沾上墨水,他用透明胶带上的指纹打开第一道门(在现实中是不可能的)。
生物特征认证是指采用每个人独一无二的生物特征来验证用户身份的技术。利用生物特征的主要手段就是生物识别技术,生物识别技术是指通过计算机利用人体固有的生理特征或者行为特征来进行身份鉴定的过程。由于生物特征本身与传统的密码等身份鉴别相比,具有很大的优点,因此得到了广泛而深入的研究和应用。
目前较常用来进行身份鉴别的生物特征有:面像、指纹、虹膜、声纹、步态、签名等。从理论上说,生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份,不同的人具有相同生物特征的可能性可以忽略不计,因此几乎不可能被仿冒。
在前几年,生物特征认证基于生物特征识别技术,受到现在的生物特征识别技术成熟度的影响,采用生物特征认证还具有较大的局限性。首先,生物特征识别的准确性和稳定性还有待提高,特别是如果用户身体受到伤病或污渍的影响,往往导致无法正常识别,造成合法用户无法登录的情况。其次,由于研发投入较大和产量较小的原因,生物特征认证系统的成本非常高,无法做到大面积推广。
随着这项技术的不断成熟,其造价也逐步下降,于是出现了指纹识别笔记本、指纹U盘、指纹加密器等产品。生物识别技术与电脑技术的紧密结合,满足了现代企业保护数据的安全和可靠性管理的需求,特别为企业管理人员等对公司机密接触较多的人员,提供了更好的信息安全解决方案。对系统管理员、IT程序员以及各类设计创意人员来说,对于自己的工作机密,也有了更安全的管理方式。同时还可以为私人使用者提供有价值的服务,保护不愿他人知晓的个人资料。
事实上,关注扩大产品线和降低价格,以加速指纹产品全民应用时代来临的例子已然出现:256M的指纹U盘如见的市场价格也就几百元。在信息价值已大于硬件价格的前提下,生物识别产品的市场和应用前景无疑巨大。