软考-信息安全工程师学习笔记16——认证技术方法
liuian 2024-12-02 22:19 18 浏览
认证技术方法:
- 口令认证技术
- 智能卡技术
- 基于生物特征认证技术
- 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
相关推荐
- GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!
-
「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...
- 高丽大学等机构联合发布StarGAN:可自定义表情和面部特征
-
原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...
- TensorFlow和PyTorch相继发布最新版,有何变化
-
原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...
- 「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口
-
上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...
- 20K star!搞定 LLM 微调的开源利器
-
LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...
- 大模型DeepSeek本地部署后如何进行自定义调整?
-
1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...
- 因配置不当,约5000个AI模型与数据集在公网暴露
-
除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...
- 基于pytorch的深度学习人员重识别
-
基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...
- DeepSeek本地部署:轻松训练你的AI模型
-
引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...
- 谷歌今天又开源了,这次是Sketch-RNN
-
前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...
- Tensorflow 使用预训练模型训练的完整流程
-
前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...
- 30天大模型调优学习计划(30分钟训练大模型)
-
30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...
- python爬取喜马拉雅音频,json参数解析
-
一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...
- 五、JSONPath使用(Python)(json数据python)
-
1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...
- Python网络爬虫的时候json=就是让你少写个json.dumps()
-
大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
- 标签列表
-
- 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)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- vscode美化代码 (33)
- python bytes转16进制 (35)