![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
身份认证与授权
文章平均质量分 86
路多辛
分享编程知识与经验
展开
-
Web 应用最安全的会话实现和保持方式是什么?
什么是会话管理?会话管理是一种在无状态的 HTTP 协议上保持用户状态的技术, Web 服务器通过会话管理可以识别和跟踪用户的请求。为什么需要会话管理?由于 HTTP 协议本身不保存状态信息,所以服务器需要一种机制来区分不同用户的请求,以及在多个请求之间保持用户的状态信息。会话创建会话信息应该由服务器端创建,服务器端创建会话 ID 以及会话信息后存储起来,将会话 ID 返回给 Web 客户端存储。会话 ID应 该是随机的、不可预测的,并且有足够的熵。会话 ID 通常是通过安全的随机数生成算法生成。原创 2024-04-21 20:34:36 · 1151 阅读 · 2 评论 -
基于 .netrc 文件的身份验证详解
netrc(Network Resource Configuration)文件是一种在 Unix 和类 Unix 系统中用于存储网络登录和身份验证信息的文件,通常位于用户计算机的 home 目录下,文件名为 .netrc。这个文件可以包含(Machine)、登录名(Login)和密码(Password)三元组和其他字段,以便在执行诸如 FTP、HTTP、HTTPS、git 等命令行工具时自动进行身份验证。原创 2024-03-16 11:05:29 · 1453 阅读 · 0 评论 -
到底什么是单点登录(SSO)?
单点登录(Single Sign-On,简称 SSO)是一种集中式的身份验证和授权机制,用户只需在一处输入一次凭证(例如用户名和密码)就可以访问多个相关但独立的软件系统。在数字化时代,企业和组织通常会使用多个应用程序和服务来支撑其业务流程。如果没有单点登录,也就意味着用户需要记住多个系统的用户名和密码,这对于用户来说既不方便也不安全,单点登录的出现就是为了解决这个问题。原创 2024-02-29 21:42:50 · 1226 阅读 · 1 评论 -
ChatGPT 开放接口使用的认证方式 API Key Authentication 详解
API Key 通常是一个字符串,由 API 提供者生成并提供给 API 调用者。当 API 调用者发起请求时,需要在请求中包含这个 API Key,服务端接收到请求后会检查这个 Key 是否有效。原创 2024-02-07 16:58:48 · 1842 阅读 · 0 评论 -
权限系统设计详解(三):ABAC 基于属性的访问控制
ABAC(Attribute-Based Access Control,基于属性的访问控制)是一种灵活的访问控制机制,可以根据多个属性来控制用户对资源的访问。这些属性可以是用户属性(如职位、年龄、部门)、资源属性(如文档分类、创建日期)、环境属性(如访问时间、网络位置)和行为属性(如读取、写入、执行)等。ABAC 通过定义一系列的访问策略,这些策略基于属性进行评估,以决定是否允许用户执行特定的操作。ABAC 提供了比传统的访问控制模型(如基于角色的访问控制 RBAC)更高的灵活性和更细的粒度。原创 2024-02-04 21:39:32 · 3351 阅读 · 1 评论 -
权限系统设计详解(二):IBAC 基于身份的访问控制
IBAC(Identity-Based Access Control,基于身份的访问控制)是信息安全管理中的一种传统访问控制模型,根据用户的身份(如用户名或用户ID)来授权用户对系统资源的访问。这种方法直接将访问权限与个体的身份相关联,是最直观的访问控制方式之一。与RBAC(基于角色的访问控制)不同,IBAC 更加强调用户身份的作用,通过身份信息来控制访问权限。原创 2024-02-02 21:44:01 · 1007 阅读 · 0 评论 -
权限系统设计详解(一):RBAC 基于角色的访问控制
RBAC(Role-Based Access Control,基于角色的访问控制)是一种被广泛使用的权限管理模型,用于控制用户对系统资源的访问权限。通过将权限与角色相关联,然后将角色分配给用户,从而实现更灵活、更易于管理的安全策略。原创 2024-01-31 21:48:33 · 1621 阅读 · 0 评论 -
HTTP API 认证技术详解(五):Token-based Authentication
Token-based 认证是一种无状态的认证方式,被广泛用于现代 Web 应用程序中,客户端在登录成功后,服务器会返回一个 Token,客户端需要保存这个 Token。在后续的请求中,客户端需要在请求头中带上这个 Token,服务器通过验证 Token 的有效性来完成身份认证。原创 2024-01-24 21:09:24 · 1438 阅读 · 0 评论 -
HTTP API 认证技术详解(四):HMAC Authentication
HMAC(Hash-based Message Authentication Code)认证是一种被广泛使用的技术,用于验证消息的完整性和真实性。HMAC 结合了哈希函数和加密密钥,比单纯的哈希更安全。在网络通信和数据存储中,HMAC 可以确保传输的数据未被篡改,并验证消息发送者的身份。原创 2024-01-17 21:38:45 · 1235 阅读 · 0 评论 -
HTTP API 认证技术详解(三):JWT Authentication
JWT(JSON Web Tokens)是一种开放标准(RFC 7519),定义了一种紧凑的、自包含的格式,用于实现网络应用程序中的身份验证和授权机制。原创 2024-01-15 21:56:08 · 1266 阅读 · 0 评论 -
HTTP API 认证技术详解(二):Digest Access Authentication
Digest Access Authentication 是一种基于 HTTP 协议的身份验证机制,通过数字摘要来验证用户的身份,相较于基本认证(Basic Authentication)使用用户名密码的方式,提供了更高的安全性和灵活性。在 Digest 认证中,不会直接发送密码,而是发送摘要信息,这样即使在非安全的通道上也不会因被截获数据而泄露密码。原创 2024-01-14 20:34:31 · 1168 阅读 · 0 评论 -
HTTP API 认证技术详解(一):Basic Authentication
Basic Authentication 是一种 HTTP 认证协议,用于进行简单的身份验证。RFC 2617 是认证方法的实现规范,MDN HTTP Authentication 进行了具体的描述。当用户尝试访问受保护的资源时,服务器会判断 Header 里面有没有 Authorization 字段,如果没有,会返回一个 401 Unauthorized 状态码,并在响应的 WWW-Authenticate 头部指定认证类型为 Basic。原创 2024-01-13 11:16:22 · 2110 阅读 · 0 评论 -
API 接口到底要不要添加签名机制?
API 签名机制是用于确认消息的来源和保护数据完整性的一种安全措施。发送方(客户端)使用和接收方(服务器端)预先约定的密钥和签名算法,对请求数据(请求体、时间戳、随机数等按照特定规则进行排序和拼接)计算出一个签名。发送方将生成的签名作为请求头或请求参数的一部分,随 API 请求一起发送。接收方在接收到请求后,使用相同的密钥和签名算法,对请求数据(和发送方采用一样的排序和拼接方式)计算出一个签名,并与接收到的签名进行比较,一样则处理请求,否则拒绝。原创 2023-12-24 19:37:49 · 1377 阅读 · 0 评论 -
一文读懂如何安全地存储密码
使用适应性哈希算法存储密码是目前的最佳实践,这些算法专门为密码存储而设计,提供了盐值的自动管理和计算强度的调整能力,以此来抵御各种攻击手段。适应性哈希算法是针对密码存储做了特别设计的算法,设计时考虑了计算时间,可以调整计算复杂度,以适应硬件性能的提升,使得即使在计算能力增强的情况下,破解密码的难度也能保持在一个较高的水平。每种密码存储方法都有其优缺点,但最佳实践是使用适应性哈希算法,适应性哈希算法专门为密码存储而设计,提供了盐值的自动管理和计算强度的调整能力,以此来抵御各种攻击手段。这种方式最好不要使用。原创 2023-11-24 22:00:08 · 1140 阅读 · 0 评论 -
安全高效又易用的密码哈希神器-bcrypt 算法解析
所以采用强密码和有效的密码管理策略变得越来越重要,因此 bcrypt 应运而生,它是一种安全且灵活的密码哈希算法,能够抵御各种攻击,保障用户的数据安全。缺陷是每次哈希的结果都是一样的,相同的密码总是生成相同的哈希值,使得攻击者可以使用彩虹表(预先计算的哈希值列表)来反向查找密码。对密码进行哈希时,bcrypt 首先生成一个随机的盐(salt),盐是一个足够长的随机数,通常是128位(16字节),盐的作用是确保对同一个密码每次哈希的结果都不同。这是最不安全的存储方法,项目中是绝不能使用的。原创 2023-11-14 21:48:58 · 214 阅读 · 0 评论 -
HMAC 详解:在 Golang 中实现消息认证码
HMAC(Hash-based Message Authentication Code)是一种基于 Hash 函数和密钥的消息认证码,由 H.Krawezyk,M.Bellare,R.Canetti 于1996年提出的一种基于 Hash 函数和密钥进行消息认证的方法,并于1997年作为 RFC2104 被公布。HMAC 将密钥、消息和哈希函数一起使用,确保消息在传输过程中不被篡改,还可以验证消息的发送者身份。原创 2023-11-10 21:25:38 · 639 阅读 · 0 评论 -
使用 Golang 实现基于时间的一次性密码 TOTP
上篇文章详细讲解了一次性密码 OTP 相关的知识,基于时间的一次性密码 TOTP 是 OTP 的一种实现方式。这种方法的优点是不依赖网络,因此即使在没有网络的情况下,用户也可以生成密码。所以这种方式被许多流行的网站使用到双因子或多因子认证中,包括 Google、GitHub、Facebook 和 Salesforce 等等。原创 2023-11-06 21:51:39 · 571 阅读 · 0 评论 -
增强数字世界安全性的一次性密码 OTP 详解
一次性密码(One Time Password),简称 OTP,是只能使用一次的密码。每次做身份认证时都会生成一个新的密码,在使用一次之后立即失效,不能重复使用。这种密码只能使用一次,因此即使攻击者能够窃取到密码,也无法再次使用该密码进行身份认证。原创 2023-11-04 10:58:46 · 233 阅读 · 0 评论 -
如何理解互联网系统中的用户身份认证?
在互联网系统中,用户身份认证是非常重要的一种机制,用于确认用户的身份,从而确定用户是否具有访问或操作某些资源的权限,保证只有经过授权的用户才能访问特定的资源。互联网系统中的用户身份认证和现实世界中不同的是,一切信息都是使用数据来表示的,当然用户的身份也是使用数据来表示的,也被称为数字身份。计算机只能识别用户的数字身份,所以对用户的授权本质上是对用户数字身份的授权。原创 2023-11-02 21:42:20 · 251 阅读 · 0 评论