软考-信息安全工程师学习笔记16——认证技术方法
liuian 2024-12-02 22:19 40 浏览
认证技术方法:
- 口令认证技术
- 智能卡技术
- 基于生物特征认证技术
- Kerberos技术
口令认证技术
口令认证是基于用户所知道的秘密而进行的认证技术。
口令认证一般要求参与认证的双方按照事先约定的规则,用户发起服务请求,然后用户被要求向服务实体提供用户标识和用户口令,服务实体验证其正确性,若验证通过,则允许用户访问。
设用户A的标识为UA,口令为PA,服务方实体为B,则认证过程描述如下:
第一步,用户A发送消息(UA,PA)到服务方B。
第二步,B收到(UA,PA)消息后,检查UA和PA的正确性。若正确,则通过用户A的认证。
第三步,B回复用户A验证结果消息。
目前,服务方实体B通常会存储用户A的口令信息。一般安全要求把口令进行加密变换后存储,口令非明文传输。
口令认证的优点是简单,易于实现
口令认证的不足是容易受到攻击,主要攻击方式有窃听、重放、中间人攻击、口令猜测等。要实现口令认证的安全,应至少满足以下条件:
- 口令信息要安全加密存储:
- 口令信息要安全传输:
- 口令认证协议要抵抗攻击,符合安全协议设计要求:
- 口令选择要求做到避免弱口令。
智能卡技术
智能卡是一种带有存储器和微处理器的集成电路卡,能够安全存储认证信息,并具有一定的计算能力。智能卡认证根据用户所拥有的实物进行,智能卡认证技术广泛应用于社会的各个方面。
通过智能卡来实现挑战/响应认证。在挑战/响应认证中,用户会提供一张智能卡,智能卡会一直显示一个随时间而变化的数字,假如用户试图登录目标系统,则系统首先将对用户进行认证,步骤如下:
- 用户将自己的ID发送到目标系统:
- 系统提示用户输入数字:
- 用户从智能卡上读取数字:
- 用户将数字发送给系统:
- 系统用收到的数字对ID进行确认,如果ID有效,系统会生成一个数字并将其显示给用户,称为挑战:
- 用户将上面的挑战输入智能卡中:
- 智能卡用这个输入的值根据一定算法计算出一个新的数字并显示这个结果,该数字称为应答;
- 用户将应答输入系统:
- 系统验证应答是否正确,如果正确,用户通过验证并登录进入系统。
基于生物特征认证技术
基于生物特征认证就是利用人类生物特征来进行验证
- 指纹识别认证:指纹识别系统通过对获取的人类用户自身拥有的独一无二的指纹特征的鉴别结果,区分不同的人类用户身份。
- 人脸识别认证:基于人的脸部特征信息进行身份识别的一种生物识别技术
- 视网膜识别认证:根据人眼视网膜中的血管分布模式不同来鉴别不同人的身份
- 语音识别认证:是依靠人的声音的频率来判断不同人的身份
Kerberos 认证技术
Kerberos 是一个网络认证协议
目标:是使用密钥加密为客户端/服务器应用程序提供强身份认证,
技术原理:是利用对称密码技术,使用可信的第三方来为应用服务器提供认证服务,并在用户和服务器之间建立安全信道。
Kerberos进行密钥分配时使用AES、DES等对称密钥加密。
Kerberos系统涉及四个基本实体:
- Kerberos客户机,用户用来访问服务器设备;
- AS(Auhentcation Server,认证服务器),识别用户身份并提供TGS会话密钥;
- TGS(Ticket Granting Server,票据发放服务器),为申请服务的用户授予票据(Ticket)
- 应用服务器(Application Server),为用户提供服务的设备或系统。
通常将AS和TGS统称为密钥分发中心KDC (Key Distribution Center)。
票据(Ticket)是用于安全的传递用户身份所需要的信息的集合,主要包括
- 客户方 Principal
- 客户方IP地址
- 时间戳(分发该Ticket的时间)
- Ticket的生存期
- 会话密钥
KerberosV5认证协议主要由六步构成:
第一步,如图所示,Kerberos客户向认证服务器AS申请票据TGT。
第二步,如图所示,当认证服务器AS收到 Kerberos客户发来的消息后,AS在认证数据库检查确认Kerberos客户,产生一个会话密钥,同时使用Kerberos客户的秘密密钥对会话密钥加密,然后生成一个票据TGT,其中TGT由Kerberos客户的实体名、地址、时间戳、限制时间、会话密钥组成。AS生成TGT完毕后,把TGT发送给Kerberos客户
第三步,如图所示,Kerberos客户收到AS发来的TGT后,使用自己的秘密密钥解密得到会话密钥,然后利用解密的信息重新构造认证请求单,向TGS发送请求,申请访问应用服务器AP所需要的票据(Ticket)。
第四步,如图所示,TGS使用其秘密密钥对TGT进行解密,同时,使用 TGT中的会话密钥对Kerberos客户的请求认证单信息进行解密,并将解密后的认证单信息与TGT中信息进行比较。然后,TGS生成新的会话密钥以供Kerberos客户和应用服务器使用,并利用各自的秘密密钥加密会话密钥。最后,生成一个票据,其由Kerberos客户的实体名、地址、时间戳、限制时间、会话密钥组成,TGS生成TGT完毕后,把TGT发送给Kerberos客户
第五步,如图所示,Kerberos客户收到TGS的响应后,获得与应用服务器共享的会话密钥。与此同时,Kerberos客户生成一个新的用于访问应用服务器的认证单,并用与应用服务器共享的会话密钥加密,然后与TGS发送来的票据-并传送到应用服务器。
Kerberos 协议中要求用户经过AS和TGS两重认证的优点主要有两点。
- 可以显著减少用户密钥的密文的暴露次数,这样就可以减少攻击者对有关用户密钥的密文的积累。
- Kerberos认证过程具有单点登录Single Sign On,SSO)的优点,只要用户拿到了TGT并且该TGT没有过期,那么用户就可以使用该TGT通过TGS完成到任一服务器的认证过程而不必重新输入密码。
Kerberos 缺点:Kerberos认证系统要求解决主机节点时间同步问题和抵御拒绝服务攻击,如果某台主机的时间被更改,那么这台主机就无法使用Kerberos认证协议了,如果服务器的时间发生了错误,那么整个Kerberos认证系统将会瘫痪。
公钥基础设施(PKI)技术
公钥证书是将实体和一个公钥绑定,并让其他的实体能够验证这种绑定关系。
需要一个可信第三方来担保实体的身份,这个第三方称为认证机构,简称CA(Certification Authority)。
CA(Certification Authority)负责颁发证书,证书中含有实体名、公钥以及实体的其他身份信息。
PKI (Public Key Infrastructure)就是有关创建,管理、存储、分发和撤销公钥证书所需要的硬件、软件、人员、策略和过程的安全服务设施。
基于PKI的主要安全服务有身份认证、完整性保护、数字签名、会话加密管理、密钥恢复。
PKI涉及多个实体之间的协商和操作,主要实体包括CA认证中心、 RA注册中心、终端实体 (End Entity)、客户端、目录服务器。
PKI各实体的功能分别叙述如下:
CA认证中心(Certification Authority):证书授权机构,主要进行证书的颁发、废止和更新; 认证机构负责签发、管理和撤销一组终端用户的证书。
RA注册中心(Registration Authority):证书登记权威机构,将公钥和对应的证书持有者的身份及其他属性联系起来,进行注册和担保:RA可以充当CA和它的终端用户之间的中间实体,辅助CA完成其他绝大部分的证书处理功能。
目录服务器:CA通常使用一个目录服务器,提供证书管理和分发的服务。
终端实体(End Etity):指需要认证的对象,例如服务器、打印机、Email 地址,用户等。
客户端(Client):指需要基于PKI安全服务的使用者,包括用户、服务进程等。
单点登录
单点登录(Single Sign On)是指用户访问使用不同的系统时,只需要进行一次身份认证,就可以根据这次登录的认证身份访问授权资源。
基于人机识别认证技术
基于人机识别认证利用计算机求解问题的困难性以区分计算机和人的操作,防止计算机程序恶意操作,如恶意注册、暴力猜解口令等。基于人机识别认证技术通常称为CAPTCHA(Completely Automated Public Turing test to tellComputers and Humans Apart)技术。
多因素认证技术
多因索认证技术使用多种鉴别信息进行组合,以提开认证的安全强度。根据认证机制所依赖的鉴别信息的多少,认证通常称为双因素认证或多因素认证。
基于行为的身份鉴别技术
基于行为的身份鉴别是根据用户行为和风险大小而进行的身份鉴别技术。如通过分析用户的基本信息,获取用户个体画像,进而动态监控用户状态以判定用户身份,防止假冒用户登录或者关键操作失误
快速在线认证(FIDO)
Fast IDentity Online 简称 FIDO,FIDO使用标准公钥加密技术来提供强身份验证。FIDO的设计目标是保护用户隐私,不提供跟踪用户的信息,用户生物识别信息不离开用户的设备。FIDO的技术原理描述如下。
登记注册
用户创建新的公私钥密钥对。其中,私钥保留在用户端设备中,只将公钥注册到在线服务。公钥将发送到在线服务并与用户账户关联。私和有关本地身份验证方法的任何信息(如生物识别测量或模板)水远不会离开本地设备。
登录使用
当用户使用 FIDO进行登录在线服务的时候,在线服务提示要求用户使用以前注册的设备登录,然后,用户使用与注册时相同的方法解锁FIDO身份验证器。用户根据帐户标识符选择正确的密钥响应在线服务的挑战,并发送签名的质询到在线服务。最后,在线服务使用存放的用户公钥和日志来验证用户响应是否正确,若正确,则通过用户认证,允许登录在线服务。
学习参考资料:
信息安全工程师教程(第二版)
建群网培信息安全工程师系列视频教程
信息安全工程师5天修炼
- 上一篇:AES加密有什么用,AES加密算法安全性如何
- 下一篇:CTF从入门到放弃day01
相关推荐
- 10种常见的MySQL错误,你可中招?
-
【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...
- MySQL主从如何保证数据一致性
-
MySQL主从(主备)搭建请点击基于Spring的数据库读写分离。MySQL主备基本原理假设主备切换前,我们的主库是节点A,节点B是节点A的备库,客户端的读写都是直接访问节点A,节点B只是将A的更新同...
- MySQL低版本升级操作流程
-
(关注“数据库架构师”公众号,提升数据库技能,助力职业发展)0-升级背景MySQL5.5发布于2010年,至今已有十年历史,官方已经停止更新。2008年发布的MySQL5.1版本,在2018年...
- MySQL数据库知识
-
MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...
- Mysql 8.4数据库安装、新建用户和数据库、表单
-
1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...
- mysql8.0新功能介绍
-
MySQL8.0新特性集锦一、默认字符集由latin1变为utf8mb4在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默...
- 全网最详细解决Windows下Mysql数据库安装后忘记初始root 密码方法
-
一、准备重置root的初始化密码Win+R键启动命令输入窗口;输入cmd打开命令执行窗口;##界面如下##输入命令:netstopmysqld#此操作会停止当前运行的...
- 互联网大厂面试:MySQL使用grant授权后必须flush privilege吗
-
从我上大学时,数据库概论老师就告诉我,MySQL使用grant对用户授权之后,一定记得要用flushprivilege命令刷新缓存,这样才能使赋权命令生效。毕业工作以后,在很多的技术文档上,仍然可以...
- # mysql 8.0 版本无法使用 sqlyog 等图形界面 登录 的解决方法
-
30万以下的理想L6来了##mysql8.0版本无法使用sqlyog等图形界面登录的解决方法当我们在cmd下登录mysql时正常时,用sqlyog等图形界面连接数据库时却...
- MySQL触发器介绍
-
前言:在学习MySQL的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下MySQL触发器相关知识。1.触发器简介触发器即trigg...
- 管理员常用的MySQL命令汇总(一)
-
以下是管理员常用的MySQL命令:以管理员身份连接到MySQL:mysql-uroot-p创建新的MySQL用户:CREATEUSER'username'@'...
- Linux(CentOS) 在线安装MySQL8.0和其他版本,修改root密码
-
一:安装MySQL数据库1),下载并安装MySQL官方的YumRepositorymysql官方仓库地址:https://dev.mysql.com/downloads/repo/yum/选择自...
- 解决 MySQL 8.0 一直拒绝 root 登录问题
-
Accessdeniedforuser'root'@'localhost'(usingpassword:YES)这个错误在网上搜一下,能看到非常多的此类...
- 大模型MCP之MYSQL安装
-
前言学习大模型的时候需要一个mysql,原因还是在公司使用电脑的时候不允许按照Docker-Desktop,我的宿主机其实是MAC,我习惯上还是在centsos上面安装,就发现这件过去很简单的事情居然...
- MySQL ERROR 1396
-
ERROR1396(HY000):OperationCREATEUSERfailedfor'usera'@'%'问题描述mysql>create...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
飞牛OS入门安装遇到问题,如何解决?
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)