对人(用户)认证的目的是让用户合法登录并使用有关的业务操作,包括一些服务的调用;
对智能设备的认证在于建立安全通道,为接下来的数据传递提供安全保障。
对物的认证目的在于使数据能安全可靠地传递,这里的安全是指不被非法获取,可靠是指能鉴别假冒欺骗等行为,对物的认证其实是对数据来源的认证。
如果被认证的对象是人,则有三类信息可以用于认证:
(1)你所知道的(what you know),这类信息通常理解为口令;
(2)你所拥有的(what you have),这类信息包括密码本、密码卡、动态密码生产器、U盾等;
(3)你自身带来的(what you are),这类信息包括指纹、虹膜、笔迹、语音特征等。
1、指纹身份认证技术
指纹是指由手指皮肚上产生的凸凹不平的纹路,具有唯一性和永久性。而指纹认证就是通过这些皮肤的纹路在图案、断点和交点,经过比较指纹特征和预先保存的指纹特征的方式作为认证依据,就可以验证用户的真实身份。
应用场景:运算系统(第一代指纹识别系统、第二代电容式传感器、射频指纹识别技术)、采集设备、门禁系统等
2、语音身份认证技术
语音认证就是运用声音录入设备将用户语音中的词汇内容转换为计算机可读的数据,并对声音波形变化反复进行的测量、记录,然后再转化制作成声音模板保存。
应用场景:门禁系统、智能家电、智能家居、语音玩具、机器人、语音锁等
3、虹膜认证技术
虹膜是指眼睛瞳孔和巩膜之间的圆环状部分,具有唯一性和不可复制性。该技术是通过相关算法获取较为理想的认证准确度,将所有人的视网膜都以数据的形式收集起来。也因为视网膜的唯一性和不可复制性,所以几乎不会被改变、伪造,具有高度机密的特征。
应用场景:门禁考勤、社保生存认证、司法安检、教育考试、银行金融等
4、口令身份认证方式
口令认证一般分为两种,静态口令和动态口令。口令的运用方式通常都需要先注册一个用户账号,且认证者在数据库中必须是唯一的。认证的口令就是根据用户设置的字符串组合或者计算机自动生成不可预测的随机数字组合。口令认证相对于其他的认证方式要方便很多,只需要一个名称和口令,就可以从任何地方进行连接,而不需要附加的硬件、软件知识,如果连接需要使用其他的使用程序则会给用户带来不便。
应用场景:短信密码、硬件令牌、手机令牌
一次性口令(OTP , One Time Password),具有“一次一密”的特点,有效保证了用户身份的安全性。OTP 从技术上可以分为3种形式:“挑战—应答”、时间同步和事件同步。
生物特征识别认证技术
由于人的生物特征具有稳定性和唯一性,有研究人员提出可以采用生物特征识别技术代替传统的身份认证手段,构造新型的身份认证技术。
生物特征识别技术主要指使用计算机及相关技术,利用人体本身特有的行为特征和(或)生理特征,通过模式识别和图像处理的方法进行身份识别。
生物特征主要分为生理特征和行为特征:
生理特征是人体本身固有的特征,是先天性的特征,基本不会或很难随主观意愿和客观条件发生改变,是生物特征识别技术的主要研究对象,其中,比较具有代表性的技术主要有指纹识别、人脸识别、虹膜识别等;行为特征主要指人的动作特征,是人们在长期生活过程中形成的行为习惯,利用该特征的识别技术,主要包括声音识别、笔迹识别等。基于生物特征的识别技术较传统的身份认证具有很多优点,如保密、方便、不易遗忘、防伪性能较好、不易伪造或被盗、随身携带和随时随地使用等。也正是由于这些优点,很多国家已经在个人的身份证明证件中嵌入了持有者的生物特征信息,如嵌入指纹信息等。多个国家也在使用生物特征护照逐步替代传统护照。由Microsoft、IBM、NOVEL等公司共同成立的Bio API联盟,其目标就是制定生物特征识别应用程序接口(API)工业标准。
指纹识别是人们最容易接触到的生物特征识别技术,目前,大多数公司都采用指纹识别设备对员工的考勤进行记录,与原有的射频卡设别技术相比,指纹识别的优点在于避免了员工忘记携带射频卡的情况发生,同时也可以减少员工相互替代打卡的行为。
可行性依据:人的指纹信息通常在出生约9个月后成型且终身不会改变,且不同人具有相同指纹的概率极低,这种稳定性和唯一性使指纹可以作为生物特征识别的对象。
指纹识别是目前造价最低、易用性最高、应用最广泛的基于生物特征识别的身份认证技术。
指纹识别技术的核心在于指纹识别算法的设计,而指纹识别算法的主要目的是在指纹图像上找到并对比指纹的特征。
虽然指纹识别具有很多优点,但也有一定的技术缺点:某些人或某些群体可能因为指纹特征过少或纹路过浅等原因很难成像,造成指纹识别设备无法采集(或误采集);非加密的指纹采集数据信息可能会造成个人指纹信息的泄露,而该信息一旦泄露,也正是由于稳定性和唯一性,个人指纹信息可能会被滥用,造成一定的经济损失或更严重的问题;指纹采集设备需要与手指相接触才可以读取指纹信息,采集设备头表面会留下用户的指纹印痕,这些指纹印痕存在被复制的可能性,通过手模等技术同样也可以复制个人的指纹信息。
其他的生物特征识别技术还有虹膜识别。
人的虹膜结构十分复杂,可变项多达260多项,且在一生中几乎不会发生变化,具有非常高的稳定性、唯一性、非侵犯性、高准确性、防伪性等优点,也因此被认为是可靠性最高的生物特征识别技术。
虹膜识别的优点:便于用户使用;由于低错误率和识别率,虹膜识别可能是目前最可靠的生物识别技术;虹膜识别技术无需使用者与虹膜采集设备接触,避免了个人虹膜信息的物理泄露,同时也避免了疾病的传播。
缺点:虹膜识别目前还没有唯一性认证的试验;采集设备尺寸较大,对采集精度有很高的要求,且设备造价昂贵;容易受外界环境影响,如虹膜图像采集时需要外部有较好的光源,否则可能产生图像采集不清晰或图像畸变。
基于生物特征认证小结:
基于生物特征信息的认证是目前身份认证的一个流行趋势。由于生物特征的唯一性、普遍性、长久性等特点,使利用生物特征的身份认证优于传统身份认证方式,具有广阔的应用前景和市场潜力。采用生物特征为身份识别带来诸多优势时,由于其自身固有的一些性质,在实际应用中也会碰到很多非常严峻的挑战,特别是安全问题,如对生物特征信息的存储安全问题、对认证算法的安全性问题等,都有待于学者们进一步地研究解决。同时目前还没有一种生物特征识别技术能够达到完美无缺的要求,如眼睛病变可能会导致使用者的虹膜发生变化,无法采用虹膜识别对其进行身份认证。因此,采用人的多种生理特征和(或)行为特征,综合多种数据进行身份识别,可以避免单生物特征识别带来的问题,进一步提高生物特征识别系统的准确率和可靠性,也是生物特征识别技术未来的一个发展趋势。
参考3/4/5G的认证过程
分析表明,使用“挑战—应答”是一种非常有效的抵抗重放攻击和许多其他假冒攻击的方法,但挑战信息的随机性或不可预测性对保证挑战应答机制的安全性是至关重要的。
比如5G-AKA。实现目标1.用户匿名性。2.双向认证。3.消息的机密性、完整性。3.不可否认性。4.防止重放攻击。
场景:物联网
要求:由于终端资源的有限,更强调轻量级属性。
(共享密钥通常为对称密钥否则难以实现轻量级的要求)
例:
数字签名(Digital Signatures)是签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果,该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。 数字签名是一种附加在消息后的一些数据,它基于公钥加密基础,用于鉴别数字信息。一套数字签名通常定义了2种运算,一个用于签名,另一个用于验证。数字签名只有发送者才能产生,别人不能伪造这一段数字串。由于签名与消息之间存在着可靠的联系,接收者可以利用数字签名确认消息来源以及确保消息的完整性、真实性和不可否认性。 (1)数据完整性:由于签名本身和要传递的消息之间是有关联的,消息的任何改动都将引起签名的变化,消息的接收方在接收到消息和签名之后经过对比就可以确定消息在传输的过程中是否被修改,如果被修改过,则签名失效。这也显示出了签名是不能够通过简单的拷贝从一个消息应用到另一个消息上。 (2)真实性:由于与接收方的公钥相对应的私钥只有发送方有,从而使接收方或第三方可以证实发送者的身份。如果接收方的公钥能够解密签名,则说明消息确实是发送方发送的。 (3)不可否认性:签名方日后不能否认自己曾经对消息进行的签名,因为私钥被用在了签名产生的过程中,而私钥只有发送者才拥有,因此,只要用相应的公钥解密了签名,就可以确定该签名一定是发送者产生的。但是,如果使用对称性密钥进行加密,不可否认性是不被保证的。 数字签名的实施需要公钥密码体制,而公钥的管理通常需要公钥证书来实现,即通过公钥证书来告知他人所掌握的公钥是否真实。数字签名可以用来提供多种安全服务,包括数据完整性、数据起源鉴别、身份认证以及非否认等。
数字签名的一般过程如下。 (1)证书持有者对信息M做杂凑,得到杂凑值H。国际上公开使用的杂凑算法有MD5、SHA1等,在我国必须使用国家规定的杂凑算法。 (2)证书持有者使用私钥对H变换得到S,变换算法必须跟证书中的主体公钥信息中标明的算法一致。 (3)将S与原信息M一起传输或发布。其中,S为证书持有者对信息M的签名,数据中包含了所用的杂凑算法的信息。 (4)依赖方构建从自己的信任锚开始、信息发布者证书为止的证书认证路径并验证该证书路径。如果验证成功,则相信该证书的合法性,即确认该证书,确实属于声称的持有者。 (5)依赖方使用证书持有者的证书验证对信息M的签名S。首先使用S中标识的杂凑算法对M做杂凑,得到杂凑值H’;然后使用证书中的公钥对S变换,得到H"。比较H’与H",如果二者相等,则签名验证成功;否则签名验证失败。 数字签名可用于确认签名者身份的真实性,其原理与“挑战—响应”机制相同。为避免中间人攻击,基于数字签名的身份认证往往需要结合数字证书使用。
数字证书也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。最简单的数字证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般来说,数字证书主要包括证书所有者的信息、证书所有者的公钥、证书颁发机构的签名、证书的有效时间和其他信息等。 数字证书提供了一种网上验证身份的方式,主要采用公开密钥体制,还包括对称密钥加密、数字签名、数字信封等技术。可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密,这样信息就可以安全无误地到达目的地了。因此,保证了信息除发送方和接收方外不被其他人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。 数字证书采用公钥密码体制,公钥密码技术解决了密钥的分配与管理问题。在电子商务技术中,商家可以公开其公钥,而保留其私钥。购物者可以用人人皆知的公钥对发送的消息进行加密,然后安全地发送给商家,商家用自己的私钥进行解密。而用户也可以用自己的私钥对信息进行加密,由于私钥仅为本人所有,这样就产生了别人无法生成的文件,即形成了数字证书。采用数字证书,能够确认以下两点: (1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认; (2)保证信息自签发后至收到为止未曾做过任何修改,签发的文件是真实文件。 根据用途的不同,数字证书可以分为以下几类。 (1)服务器证书(SSL 证书):被安装在服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防止欺诈钓鱼站点。SSL证书主要用于服务器(应用)的数据传输链路加密和身份认证,绑定网站域名,不同的产品对于不同价值的数据要求不同的身份认证。 (2)电子邮件证书:用来证明电子邮件发件人的真实性。它并不证明数字证书上面 CN一项所标识的证书所有者姓名的真实性,它只证明邮件地址的真实性。收到具有有效电子签名的电子邮件,除了能相信邮件确实由指定邮箱发出外,还可以确信该邮件从被发出后没有被篡改过。另外,使用接收的邮件证书,还可以向接收方发送加密邮件。该加密邮件可以在非安全网络传输,只有接收方的持有者才可能打开该邮件。 (3)客户端个人证书:主要被用来进行身份验证和电子签名。被存储在专用的智能密码钥匙中,使用时需要输入保护密码。使用该证书需要物理上获得其存储介质智能密码钥匙,且需要知道智能密码钥匙的保护密码,这也被称为双因子认证。这种认证手段是目前在Internet最安全的身份认证手段之一。
匿名是指在一组由多个用户组成的匿名集中,用户不能被识别的状态。换言之,无法将这组对象中的用户或用户的行为进行任何关联。对象的匿名性必须是在一个对象集合中,以基于此类的对象集合组成一个匿名集合。例如,如果无法从一个发送者集合中找到信息的真实发送者,则实现发送匿名。
匿名通信是指掩盖实际发生的通信链接关系,使窃听者无法直接获得或能够通过观察推测出通信参与方及参与方之间的通信链接关系。
匿名认证是指用户在证明自己身份合法性的同时能够确保自己身份信息、位置信息的匿名性。
场景:RFID隐私性保护、智慧医疗系统的病例隐私性保护、网络投票有广泛应用。
方法:零知识证明身份认证、假名认证
目的:实现通信双方的身份匿名或者行动的无关联,为用户提供通信隐私保护和不可追踪性。匿名认证是指用户在证明自己身份合法性的同时能够确保自己身份信息、位置信息的匿名性。
零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的,即证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄露任何关于被证明消息的信息。用零知识构造的身份认证协议可以在完成身份认证的同时不泄露任何身份信息,也就是实现了身份的匿名性。
群组认证是指证明方向验证方证明他是某个群体的合法成员,而验证者也只能验证该用户是否属于某个群体,不能知道证明者的具体身份。达到该目标的方法有群签名、环签名、集合认证等。 群签名就是满足这样要求的签名:一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证,也可以作为群标志来展示群的主要用途、种类等。 环签名可以被视为一种特殊的群签名,它因签名按一定的规则组成一个环而得名。在环签名方案中,环中每个成员可以用自己的私钥和其他成员的公钥进行签名,却不需要得到其他成员的允许,而验证者只知道签名者来自这个环,但不知道具体的签名者。它没有可信中心、没有群的建立过程,对于验证者来说签名者是完全匿名的。环签名提供了一种匿名泄露秘密的巧妙方法。环签名的这种无条件匿名性在对信息需要长期保护的一些特殊环境中非常有用。
定义:用户只需要进行一次认证,就可以访问所有的网页、应用等其它服务了。
典型方式:CAS流程、JWT、OAuth和OpenID
CAS(Central Authentication Service,集中式认证服务)
实例方案:
假如用户现在要访问某个应用,比如微博App。
应用需要进行认证,但应用本身不具备认证功能。因此,应用将用户重定向至认证中心的页面。比如,你在登录一个应用的时候,它显示你可以选择微信、QQ、微博账号进行登录,你点击微信登录,就跳转至微信的登录页面了。
用户在认证中心页面进行认证操作。如果用户之前已经在其他应用进行过认证了,那么认证中心可以直接识别用户身份,免去用户再次认证的过程。
认证完成后,认证中心将认证的凭据,有时会加上用户的一些信息,一起返回给客户端。也就是你在微信登录完成后,回到了微博App。
客户端将凭据和其他信息发送给应用,也就是说,微博App将微信的登录凭据发送给了微博后端。
应用收到凭据后,可以通过签名的方式,验证凭据的有效性。或者,应用也可以直接和认证中心通信,验证凭据并获取用户信息。这也就是为什么微博APP能够拿到你的微信头像了。
用户完成认证。
JWT(JSON Web Token)是一种非常轻量级的单点登录流程
原理及优缺点:它会在客户端保存一个凭证信息,之后在你每一次登录的请求中都带上这个凭证,将其作为登录状态的依据。JWT 的好处在于,不需要应用服务端去额外维护 Cookie 或者 Session 了。但是,正是因为它将登录状态落到了客户端,所以我们无法进行注销等操作了。
OAuth(Open Authorization)的主要特点是授权,也是我们通常用QQ、微信登录其他应用时所采用的协议。通过 OAuth,用户在完成了认证中心的登录之后,应用只能够验证用户确实在第三方登录了。但是,想要维持应用内的登录状态,应用还是得颁发自己的登录凭证。这也就是为什么QQ授权后,应用还需要绑定你的手机号码。这也就意味着,应用是基于 QQ 的信息创建了一个自身的账号。
进行身份认证的技术方法主要是密码学方法,包括使用对称加密算法、公开密钥密码算法、数字签名算法等。
对称加密算法是根据Shannon理论建立的一种变换过程,该过程将一个密钥和一个数据充分混淆和置乱,使非法用户在不知密钥的情况下无法获得原始数据信息。当然一个加密算法几乎总伴随着一个对应的解密算法,并在对称密钥的参与下执行。典型的对称加密算法包括DES和AES。
公钥密码算法需要2个密钥和2个算法:一个是公开密钥,用于对消息的加密;一个是私钥(私有密钥),用于对加密消息的解密。根据名称可以理解,公开密钥是一个能公开的密钥,而私钥只能由合法用户掌握。典型的公钥密码算法包括RSA公钥密码算法和数字签名标准DSS。
数字签名实际是公钥密码的一种应用,其工作原理是,用户使用自己的私钥对某个消息进行签名,验证者使用签名者的公开密钥进行验证,这样就实现了只有拥有合法私钥的人才能产生数字签名(不可伪造性)和得到用户公钥的公众才可以进行验证(可验证性)的功能。
参考:https://zhuanlan.zhihu.com/p/124238842
https://zhuanlan.zhihu.com/p/84993949
重放攻击:中间人攻击:假冒攻击:DoS攻击:信息的机密性、完整性:双向认证:匿名性:不可否认性
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。