身份验证和授权机制(SSO、OAuth、SSH、ABAC、等等)

news2025/1/14 19:52:44

在信息系统中,身份验证和授权机制是确保系统安全的关键组成部分。以下是对这两种机制的详细介绍:

一、身份验证机制

身份验证是用来验证用户的身份,确保用户是他们声称的那个人。常见的身份验证机制包括:

  1. 用户名和密码认证:用户需要提供用户名和密码进行身份验证。这是最常见且基础的身份验证方式。
  2. 双因素认证:除了用户名和密码,用户还需要提供第二个身份验证要素,如手机短信验证码、一次性密码令牌或生物特征(如指纹、面部识别)等。这种方式增加了安全性,因为即使密码被泄露,攻击者还需要第二个因素才能登录。
  3. 单点登录(SSO):允许用户使用一组凭据(如用户名和密码)登录到多个相关的应用系统中。用户只需进行一次身份验证,然后就可以访问多个应用系统,而无需为每个系统输入凭据。
  4. OAuth认证:一种用于授权第三方应用程序访问用户资源的开放标准协议。它允许用户在不将其用户名和密码直接提供给第三方应用程序的情况下,授权这些应用程序访问其受保护的资源。
  5. 生物特征认证:利用人体的独特生物特征(如指纹、虹膜、人脸、声纹等)来确认和验证个人身份。这种方式无需依赖传统的身份证件或密码,且安全性较高。
  6. UKEY认证:一种基于USB加密锁进行身份认证的硬件设备。用户需要插入UKEY并进行身份验证,系统通过与UKEY通信来验证用户的合法性和完整性。
  7. 数字证书认证:利用数字证书来验证用户的身份。数字证书是一种将用户的身份信息和公钥绑定在一起的文件,用于证明用户的身份和公钥的有效性。
  8. SSH密钥认证:客户端生成公钥和私钥,公钥存于服务器,私钥由客户端保管。验证时,客户端利用私钥签名,服务器通过公钥进行验证。这种方式适合远程系统管理,且无需密码传输。

二、授权机制

授权是用来决定用户可以访问哪些资源或执行哪些操作。常见的授权机制包括:

  1. 基于角色的访问控制(RBAC):用户被赋予某些角色(如管理员、普通用户等),每个角色定义一组权限。用户通过角色间接获得权限。这种方式简单易管理,且便于进行权限的集中控制和分配。
  2. 基于属性的访问控制(ABAC):使用用户属性(如职位、部门、年龄等)和资源属性(如机密级别等)进行授权。这种方式更灵活,但复杂度较高。
  3. 细粒度控制:通过行级别或列级别的数据权限控制来限制用户对资源的访问。例如,可以限制用户只能访问自己创建的文章或数据。
  4. 策略管理:制定和执行访问控制策略,以确定用户可以访问哪些资源和可以执行哪些操作。策略管理可以基于时间、地点、设备等多种因素进行动态调整。

在实际应用中,信息系统可能会采用多种身份验证和授权机制相结合的方式来提高系统的安全性。例如,在电子商务网站中,可能会采用用户名和密码认证与双因素认证相结合的方式来进行身份验证,同时采用基于角色的访问控制和细粒度控制相结合的方式来进行授权。

下面对重点举例:

OAuth认证是一种用于授权第三方应用程序访问用户资源的开放标准协议。以下是一个关于OAuth认证的实例说明:

三、OAuth认证实例

假设用户正在使用网站A(如一个在线购物网站),并且希望在该网站上分享自己在社交媒体平台B(如微信)上的购物心得。为了实现这一目标,网站A需要获得用户授权以访问其在社交媒体平台B上的信息。OAuth认证流程:

  1. 用户访问网站A并触发授权请求

    • 用户在网站A上看到一个“分享到微信”的按钮,点击后,网站A会向用户展示一个授权页面。
  2. 用户同意授权

    • 在授权页面上,用户会看到网站A请求访问其在社交媒体平台B上的哪些信息(如昵称、头像、朋友圈动态等)。
    • 用户同意授权后,会被重定向到社交媒体平台B的登录页面(如果用户尚未登录)。
  3. 用户在社交媒体平台B上登录并授权

    • 用户输入社交媒体平台B的用户名和密码进行登录。
    • 登录成功后,社交媒体平台B会展示一个授权页面,询问用户是否允许网站A访问其请求的信息。
    • 用户点击“同意”后,社交媒体平台B会生成一个授权码(code),并将其返回给网站A。
  4. 网站A使用授权码获取访问令牌

    • 网站A收到授权码后,会将其以及自己的客户端ID和客户端密钥一起发送给社交媒体平台B的认证服务器。
    • 社交媒体平台B的认证服务器验证授权码的有效性后,会生成一个访问令牌(token)和一个刷新令牌(refresh token),并将它们返回给网站A。
  5. 网站A使用访问令牌访问用户资源

    • 网站A收到访问令牌后,可以将其附加在HTTP请求的头部,向社交媒体平台B的资源服务器发送请求,以获取用户的信息。
    • 社交媒体平台B的资源服务器验证访问令牌的有效性后,会返回用户请求的信息给网站A。
  6. 网站A展示用户信息

    • 网站A收到用户信息后,可以在其页面上展示用户的昵称、头像等,并允许用户分享购物心得到社交媒体平台B上。
  • OAuth认证过程中,用户的用户名和密码不会直接传递给第三方应用程序(如网站A),从而保护了用户的隐私和安全。
  • 访问令牌和刷新令牌具有时效性,过期后需要重新获取。这增加了系统的安全性,并允许用户在必要时撤销对第三方应用程序的授权。

通过上述实例,我们可以清晰地看到OAuth认证在保护用户隐私和安全的同时,实现了第三方应用程序对用户资源的访问和共享。

四、SSL证书应用

数字证书认证在多个领域有着广泛的应用,以下是一些具体的例子:

1、在网站安全中的应用
  • 应用场景:企业网站使用SSL证书来验证网站服务器身份,确保网站真实可信,防止钓鱼网站假冒。

  • 认证过程

    1. 用户访问一个部署了SSL证书的网站。
    2. 浏览器检查SSL证书是否由受信任的证书颁发机构(CA)签发。
    3. 浏览器验证SSL证书中的域名是否与访问的网站域名一致。
    4. 如果验证通过,浏览器显示安全锁标志,并以HTTPS协议与网站建立加密通信。
  • 结果:用户可以放心访问网站,数据在传输过程中得到加密保护,防止泄露或篡改。

2、代码签名证书在软件开发中的应用
  • 应用场景:软件开发者使用代码签名证书对其开发的软件代码进行数字签名。

  • 认证过程

    1. 软件开发者向证书颁发机构申请代码签名证书。
    2. 证书颁发机构验证软件开发者的身份后,颁发代码签名证书。
    3. 软件开发者使用代码签名证书对软件代码进行数字签名。
    4. 用户下载并安装软件时,系统验证数字签名的有效性。
  • 结果:用户可以确认软件来自受信任的开发者,软件代码的完整性得到保证,防止恶意软件篡改。

3、邮件安全证书(S/MIME证书)在电子邮件安全中的应用
  • 应用场景:个人或企业使用邮件安全证书对电子邮件及附件进行数字签名并加密传输。

  • 认证过程

    1. 邮件发送方向证书颁发机构申请邮件安全证书。
    2. 证书颁发机构验证邮件发送方的身份后,颁发邮件安全证书。
    3. 邮件发送方使用邮件安全证书对电子邮件及附件进行数字签名和加密。
    4. 邮件接收方使用相应的私钥解密邮件,并验证数字签名的有效性。
  • 结果:邮件的机密性、完整性和发送方身份的真实性得到保证,降低网络钓鱼和欺骗风险。

4、文档签名证书在电子文件安全中的应用
  • 应用场景:个人或企业使用文档签名证书对电子文件(如PDF文件)进行数字签名。

  • 认证过程

    1. 用户向证书颁发机构申请文档签名证书。
    2. 证书颁发机构验证用户的身份后,颁发文档签名证书。
    3. 用户使用文档签名证书对电子文件进行数字签名。
    4. 其他用户可以通过验证数字签名的有效性来确认电子文件的真实性和完整性。
  • 结果:电子文件的真实性和完整性得到保证,防止被非法篡改,适用于法律和财务文档等重要文件的签署和传输。

5、数字证书在网上银行安全中的应用
  • 应用场景:用户申请并使用银行提供的数字证书来保证网上银行业务的安全。

  • 认证过程

    1. 用户到银行营业厅办理网上银行申请手续。
    2. 用户登录银行网站下载并安装根证书。
    3. 用户生成用户证书并下载到本地。
    4. 用户使用数字证书进行网上银行交易时,系统验证数字证书的有效性。
  • 结果:即使黑客窃取了用户的帐户密码,由于没有数字证书也无法进入用户的网上银行帐户,保证网上银行业务的安全。

五、SSH密钥认证

SSH密钥认证是一种安全验证用户身份的方式,主要用于SSH(Secure Shell)协议中。以下是对SSH密钥认证的详细介绍:

1、工作原理

SSH密钥认证依赖于一对非对称密钥:公钥和私钥。公钥用于加密数据,而私钥用于解密。在SSH认证过程中,客户端使用私钥签名一个挑战信息,服务器使用对应的公钥验证签名,从而验证用户的身份。

2、密钥生成与配置
  1. 密钥生成
    • 用户使用ssh-keygen工具生成一对SSH密钥(公钥和私钥)。
    • 如果私钥受密码短语保护,系统会提示用户输入密码短语。
  2. 将公钥配置到服务器
    • 用户需要将生成的公钥添加到服务器的指定位置(通常是~/.ssh/authorized_keys文件)。
    • 可以使用ssh-copy-id命令自动完成公钥的上传,也可以手动将公钥内容追加到服务器的~/.ssh/authorized_keys文件中。
3、使用流程
  1. 客户端发起连接
    • 客户端使用ssh命令尝试连接到服务器。
  2. 服务器请求认证
    • 服务器发送一个随机数(挑战信息)给客户端。
  3. 客户端响应
    • 客户端使用私钥对随机数进行签名,并将签名结果发送回服务器。
  4. 服务器验证
    • 服务器使用公钥验证签名是否正确。
    • 如果验证通过,则认证成功,允许客户端登录。
4、优势与特点
  1. 提高安全性
    • SSH密钥认证比传统的密码认证更安全,因为私钥不会发送到服务器上,避免了密码在网络上传输的安全风险。
    • 密钥对难以被破解,增加了系统的安全性。
  2. 提高便利性
    • 一旦配置好SSH密钥认证,用户可以实现无密码登录,提高了工作效率。
  3. 灵活性
    • 可以为不同的用户或不同的服务器生成不同的密钥对,灵活管理权限。
5、注意事项
  1. 私钥保护
    • 私钥文件必须妥善保管,避免泄露。
    • 可以设置密码保护私钥,增加安全性。
  2. 公钥分发
    • 确保公钥文件正确添加到目标服务器的~/.ssh/authorized_keys文件中。
  3. 权限管理
    • 在多用户环境中,确保每个用户的公钥只添加到他们的账户中,避免权限混乱。
  4. 关闭密码登录
    • 密钥登录设置成功后,建议关闭密码登录方式,防止外部暴力破解攻击。

SSH密钥认证是一种既安全又便利的身份验证方式,广泛应用于远程登录、自动化脚本、多用户环境、多台服务器管理以及自动化部署等场景。通过合理配置和使用SSH密钥认证,可以显著提高系统的安全性和工作效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识

目录 2.1 几何学 向量的内积和外积 旋转矩阵 旋转向量 四元数 李群和李代数 SO(3)上的 BCH 线性近似式 2.2 运动学 李群视角下的运动学 SO(3) t 上的运动学 线速度和加速度 扰动模型和雅可比矩阵 典型算例:对向量进行旋转 典型算例:旋转的复合 2.3 …

30_Redis哨兵模式

在Redis主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性…

苹果手机(IOS系统)出现安全延迟进行中如何关闭?

苹果手机(IOS系统)出现安全延迟进行中如何关闭? 一、设置二、隐私与安全性三、失窃设备保护关闭 一、设置 二、隐私与安全性 三、失窃设备保护关闭

【Oracle专栏】group by 和distinct 效率

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 查阅资料: 1)有索引情况下,group by和distinct都能使用索引,效率相同。 2)无索引情况下,distinct…

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包,文本处理sed,awk

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less,grep 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 文本处理 awk 创建文件 格式: touch 文件名 删除文件 复制文…

day01-HTML-CSS——基础标签样式表格标签表单标签

目录 此篇为简写笔记下端1-3为之前笔记(强迫症、保证文章连续性)完整版笔记代码模仿新浪新闻首页完成审核不通过发不出去HTMLCSS1 HTML1.1 介绍1.1.1 WebStrom中基本配置 1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标…

哥大开发AI模型助力癌症和遗传病研究,近屿智能专注培养AI人才

近日,哥伦比亚大学瓦格洛斯医学院的研究团队在《自然》杂志上发表了一项重大研究成果。他们开发出一种名为“通用表达转换器”(GET)的新型AI模型,能够准确预测任何人类细胞中的基因活性,从而揭示细胞的内部工作机制。 …

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客,作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为: 2.vs…

基于spingbott+html+Thymeleaf的24小时智能服务器监控平台设计与实现

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

MySQL社区版下载及其环境配置(msi)

MySQL官网:https://www.mysql.com/ 1、进入官网 点击Downloads 找到MySQL Community (GPL) Downloads   然后点击MySQL Installer for Windows(MySQL Community Server非向导式安装,而MySQL Installer for Windows有向导式安装&#x…

Linux-----进程通讯(消息队列)

目录 相关API 1.相关数据类型 mqd_t struct mq_attr struct timespec 2.相关系统调用接口 mq_open() mq_timedsend() && mq_send() mq_timedreceive() && mq_receive() mq_unlink() clock_gettime() 父子进程使用消息队列通讯 平行进程使用消息队列…

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum,用于软件包的管理,使用上有命令的差异。 本次配置过程使用mac,看官方文档,在linux上也可以用,但我没试过,有兴趣的同学可以试试…

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者:Gitesh Chawda创建日期:2023/06/26最后修改时间:2023/06/26描述:使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 (i) 此示例使用 Keras 2 在 Colab 中…

【Uniapp-Vue3】onShow和onHide钩子的对比和执行顺序

页面生命周期函数的执行顺序是onLoad>onShow>onReady,其中只有onReady中才能获取到DOM节点。 一、onShow函数 每一次的页面切入都会触发onShow函数。 import {onShow} from "dcloudio/uni-app"; onShow(()>{...}) 如果我点击“跳转页面1”再返…

GPT 系列论文精读:从 GPT-1 到 GPT-4

学习 & 参考资料 前置文章 Transformer 论文精读 机器学习 —— 李宏毅老师的 B 站搬运视频 自监督式学习(四) - GPT的野望[DLHLP 2020] 來自猎人暗黑大陆的模型 GPT-3 论文逐段精读 —— 沐神的论文精读合集 GPT,GPT-2,GPT-3 论文精读【论文精读】…

(STM32笔记)十二、DMA的基础知识与用法 第二部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 二、DMA传输设置1、数据来源与数据去向外设到存储器存储器到外设存储器到存储器 2、每次传输大小3、传…

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。 由于机…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 AI浪…

【RTSP】使用webrtc播放rtsp视频流

一、简介 rtsp流一般是监控、摄像机的实时视频流,现在的主流浏览器是不支持播放rtsp流文件的,所以需要借助其他方案来播放实时视频,下面介绍下我采用的webrtc方案,实测可行。 二、webrtc-streamer是什么? webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获…