系统安全性之认证技术

Posted 小段学长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统安全性之认证技术相关的知识,希望对你有一定的参考价值。

基于口令的身份认证技术

口令

利用口令来确认用户的身份,是当前最常用的认证技术。通常,每当用户要上机时,系统中的登录程序都首先要求用户输入用户名,登录程序利用用户输入的名字去查找一张用户注册表或口令文件。 在该表中,每个已注册用户都有一个表目, 其中记录有用户名和口令等。登录程序从中找到匹配的用户名后,再要求用户输入口令,如果用户输入的口令也与注册表中用户所设置的口令一致,系统便认为该用户是合法用户,于是允许该用户进入系统;否则将拒绝该用户登录。
口令是由字母或数字、或字母和数字混合组成的,它可由系统产生,也可由用户自己选定。 系统所产生的口令不便于用户记忆,而用户自己规定的口令则通常是很容易记忆的字母、数字,例如生日、住址、电话号码, 以及某人或宠物的名字等等。这种口令虽便于记忆, 但也很容易被攻击者猜中。

对口令机制的基本要求

基于用户标识符和口令的用户认证技术, 其最主要的优点是简单易行,因此,在几乎所有需要对数据加以保密的系统中, 都引入了基于口令的机制。但这种机制也很容易受到别有用心者的攻击,攻击者可能通过多种方式来获取用户标识符和口令,或者猜出用户所使用的口令。 为了防止攻击者猜出口令,在这种机制中通常应满足以下几点要求:
(1) 口令长度要适中。
通常的口令是由一串字母和数字组成。 如果口令太短, 则很容易被攻击者猜中。例如,一个由四位十进制数所组成的口令,其搜索空间仅为104,在利用一个专门的程序来破解时,平均只需5000次即可猜中口令。假如每猜一次口令需花费0.1 ms的时间,则平均每猜中一个口令仅需0.5 s。 而如果采用较长的口令,假如口令由ASCII码组成,则可以显著地增加猜中一个口令的时间。例如,口令由7位ASCII码组成, 其搜索空间变为957(95是可打印的ASCII码),大约是7×1013,此时要猜中口令平均需要几十年。
(2) 自动断开连接。
为了给攻击者猜中口令增加难度,在口令机制中还应引入自动断开连接的功能,即只允许用户输入有限次数的不正确口令,通常规定3~5次。如果用户输入不正确口令的次数超过规定的次数时,系统便自动断开该用户所在终端的连接。 当然, 此时用户还可能重新拨号请求登录,但若在重新输入指定次数的不正确口令后,仍未猜中,系统会再次断开连接。这种自动断开连接的功能,无疑又给攻击者增加了猜中口令的难度。
(3) 不回送显示。
在用户输入口令时,登录程序不应将该口令回送到屏幕上显示,以防止被就近的人发现。
(4) 记录和报告。
该功能用于记录所有用户登录进入系统和退出系统的时间;也用来记录和报告攻击者非法猜测口令的企图及所发生的与安全性有关的其它不轨行为,这样便能及时发现有人在对系统的安全性进行攻击。

一次性口令(One time Passward)

为了把由于口令泄露所造成的损失减到最小, 用户应当经常改变口令。例如,一个月改变一次,或者一个星期改变一次。 一种极端的情况是采用一次性口令机制。在利用该机制时, 用户必须提供记录有一系列口令的一张表,并将该表保存在系统中。 系统为该表设置一指针用于指示下次用户登录时所应使用的口令。这样,用户在每次登录时,登录程序便将用户输入的口令与该指针所指示的口令相比较,若相同,便允许用户进入系统,并将指针指向表中的下一个口令。在采用一次性口令的机制时,即使攻击者获得了本次用户上机时所使用的口令,他也无法进入系统。必须注意,用户所使用的口令表,必须妥善保存好。
口令文件
通常在口令机制中,都配置有一份口令文件, 用于保存合法用户的口令和与口令相联系的特权。 该文件的安全性至关重要, 一旦攻击者成功地访问了该文件,攻击者便可随心所欲地访问他感兴趣的所有资源,这对整个计算机系统的资源和网络,将无安全性可言。显然,如何保证口令文件的安全性,已成为系统安全性的头等重要问题。
保证口令文件安全性的最有效的方法是, 利用加密技术, 其中一个行之有效的方法是选择一个函数来对口令进行加密, 该函数f(x)具有这样的特性:在给定了x值后,很容易算出f(x); 然而, 如果给定了f(x)的值,却不能算出x的值。利用f(x)函数去编码(即加密)所有的口令,再将加密后的口令存入口令文件中。当某用户输入一个口令时,系统利用函数f(x)对该口令进行编码,然后将编码(加密)后的口令与存储在口令文件中的已编码的口令进行比较,如果两者相匹配,便认为是合法用户。顺便说明一下,即使攻击者能获取口令文件中的已编码口令,他也无法对它们进行译码,因而不会影响到系统的安全性。

尽管对口令进行加密是一个很好的方法, 但它也不是绝对的安全可靠。 其主要威胁来自于两个方面:
(1) 当攻击者已掌握了口令的解密密钥时, 就可用它来破译口令。
(2) 利用加密程序来破译口令, 如果运行加密程序的计算机速度足够快, 则通常只要几个小时便可破译口令。
因此,人们还是应该妥善保管好已加密的口令文件,来防止攻击者轻意地获取该文件。

基于物理标志的认证技术

基于磁卡的认证技术

根据数据记录原理,可将当前使用的卡分为磁卡和IC卡两种。磁卡是基于磁性原理来记录数据的,目前世界各国使用的信用卡和银行现金卡等,都普遍采用磁卡。这是一块其大小和名片大小相仿的塑料卡,在其上贴有含若干条磁道的磁条。 一般在磁条上有三条磁道,每条磁道都可用来记录不同标准和不同数量的数据。磁道上可有两种记录密度,一种是每英寸含有15比特的低密度磁道;另一种是每英寸含有210比特的高密度磁道。如果在磁条上记录了用户名、账号和金额,这就是金融卡或银行卡;而如果在磁条上记录的是有关用户的信息,则该卡便可作为识别用户身份的物理标志。
在磁卡上所存储的信息,可利用磁卡读写器将之读出: 只要将磁卡插入或划过磁卡读写器,便可将存储在磁卡中的数据读出,并传送到相应的计算机中。用户识别程序便利用读出的信息去查找一张用户信息表(该表中包含有若干个表目, 每个用户占有一个表目,表目中记录了有关该用户的信息), 若找到匹配的表目,便认为该用户是合法用户;否则便认为是非法用户。 为了保证持卡者是该卡的主人,通常在基于磁卡认证技术的基础上,又增设了口令机制,每当进行用户身份认证时,都要求用户输入口令。

基于IC卡的认证技术

IC卡即集成电路卡的英文缩写。在外观上IC卡与磁卡并无明显差别,但在IC卡中可装入CPU和存储器芯片,使该卡具有一定的智能,故又称为智能卡或灵巧卡。IC卡中的CPU用于对内部数据的访问和与外部数据进行交换,还可利用较复杂的加密算法,对数据进行处理,这使IC卡比磁卡具有更强的防伪性和保密性,因而IC卡会逐步取代磁卡。根据在磁卡中所装入芯片的不同可把IC卡分为以下三种类型:
(1) 存储器卡。在这种卡中只有一个E2PROM(可电擦、可编程只读存储器)芯片,而没有微处理器芯片。 它的智能主要依赖于终端,就像IC电话卡的功能是依赖于电话机一样。由于此智能卡不具有安全功能,故只能用来存储少量金额的现金与信息。常见的智能卡有电话卡、 健康卡,其只读存储器的容量一般为4~20 KB。
(2) 微处理器卡。它除具有E2PROM外,还增加了一个微处理器。只读存储器的容量一般是数千字节至数万字节;处理器的字长主要是8位的。在这种智能卡中已具有一定的加密设施, 增强了IC卡的安全性。
(3) 密码卡。在这种卡中又增加了加密运算协处理器和RAM。之所以把这种卡称为密码卡,是由于它能支持非对称加密体制RSA;所支持的密钥长度可长达1024位,因而极大地增强了IC卡的安全性。一种专门用于确保安全的智能卡,在卡中存储了一个很长的用户专门密钥和数字证明书,完全可以作为一个用户的数字身份证明。当前在Internet上所开展的电子交易中, 已有不少密码卡是使用了基于RSA的密码体制。
将IC卡用于身份识别的方法,明显地优于使用磁卡。这一方面是因为,磁卡是将数据存储在磁条上,比较易于用一般设备将其中的数据读出、修改和进行破坏;而IC卡则是将数据保存在存储器中,使用一般设备难于读出,这使IC卡具有更好的安全性。 另一方面,在IC卡中含有微处理器和存储器, 可进行较复杂的加密处理,因此,IC卡具有非常好的防伪性和保密性; 此外,还因为IC卡所具有的存储容量比磁卡的大得多, 通常可大到100倍以上,因而可在IC卡中存储更多的信息, 从而做到“一卡多用”,换言之,一张IC卡,既可作为数字身份证, 又可作为信用卡、电话卡及健康卡等等。

指纹识别技术

(1) 指纹。
指纹有着“物证之首”的美誉。尽管目前全球已有近60亿人口, 但绝对不可能找到两个完全相同的指纹。 因而利用指纹来进行身份认证是万无一失的,而且非常方便。又因为它不会像其它一些物理标志那样出现用户忘记携带或丢失等问题,而且使用起来也特别方便,因此,利用指纹来进行身份识别是有广阔前景的一种识别技术,世界上已有愈来愈多的国家开展了对指纹识别技术的研究。
(2) 指纹识别系统。
早在80年代,美国及其它发达国家便开始了对指纹识别技术的研究,并取得了一定的进展。在所构成的指纹识别系统中包括:指纹输入、指纹图像压缩、 指纹自动比较等8个子系统。但他们的指纹识别系统是建立在大型计算机系统的基础上的,而且由于系统的庞大、价格的昂贵, 始终使该技术难于普及;直至近几年,随着VLSI的迅速发展, 才使指纹识别系统小型化, 使该技术进入了广泛应用的阶段。

基于公开密钥的认证技术

申请数字证书

由于SSL所提供的安全服务,是基于公开密钥证明书(数字证书)的身份认证,因此,凡是要利用SSL的用户和服务器, 都必须先向认证机构(CA)申请公开密钥证明书。
(1) 服务器申请数字证书。
首先由服务管理器生成一密钥对和申请书,服务器一方面将密钥和申请书的备份保存在安全之处;另一方面则向CA提交包括密钥对和签名证明书申请(即CSR)的加密文件,通常以电子邮件方式发送。 CA接收并检查该申请的合法性后,将会把数字证书以电子邮件方式寄给服务器。
(2) 客户申请数字证书。
首先由浏览器生成一密钥对,私有密钥被保存在客户的私有密钥数据库中,将公开密钥连同客户提供的其它信息,一起发往CA。如果该客户符合CA要求的条件, CA将会把数字证书以电子邮件方式寄给客户。

SSL握手协议

(1) 身份认证。
SSL协议要求通信的双方都利用自己的私用密钥对所要交换的数据进行数字签名,并连同数字证书一起发送给对方, 以便双方相互检验。如上节所述,通过数字签名和数字证书的验证可以认证对方的身份是否真实。
(2) 协商加密算法。
为了增加加密系统的灵活性,SSL协议允许采用多种加密算法。客户和服务器在通信之前,应首先协商好所使用的某一种加密算法。通常先由客户提供自己能支持的所有加密算法清单,然后由服务器从中选择出一种最有效的加密算法, 并通知客户,此后,双方便可利用该算法对所传送的信息进行加密。
(3) 协商加密密钥。
先由客户机随机地产生一组密钥,再利用服务器的公开密钥对这组密钥进行加密后,送往服务器,由服务器从中选择4个密钥,并通知客户机,将之用于对所传输的信息进行加密。

数据加密和检查数据的完整性

(1) 数据加密。
在客户机和服务器间传送的所有信息,都应利用协商后所确定的加密算法和密钥进行加密处理,以防止被攻击。
(2) 检查数据的完整性。
为了保证经过长途传输后所收到的数据是可信任的,SSL协议还利用某种算法对所传送的数据进行计算, 以产生能保证数据完整性的数据识别码(MAC),再把MAC和业务数据一起传送给对方;而收方则利用MAC来检查所收到数据的完整性。
欢迎大家加我微信交流讨论(请备注csdn上添加)

以上是关于系统安全性之认证技术的主要内容,如果未能解决你的问题,请参考以下文章

没有Bug的OS内核? 鸿蒙黑科技之操作系统形式验证与安全认证

网络安全系统之四 PKI体系

Linux服务器安全之用户密钥认证登录

KJ1570矿用人员定位系统,煤安认证更安全

KJ1570矿用人员定位系统,煤安认证更安全

OpenHarmony 源码解析之安全子系统 (应用权限管理)