漫画:鉴权与安全访问控制的技术血脉

简介: 在互联网大潮中,B/S逐渐流行,对于这类从传统软件转化来的项目,一般采用的是用户名密码登陆的鉴权方式。为了对用户身份做认证,一般采用的是邮箱认证。09年的时候,静儿还在人人网,当时在研究自动化测试。有段时间有个小公司在搞活动,新注册用户可以抽奖,中奖率特别高。静儿就用自动化测试工作批量注册邮箱和此网站用户,刷出来好多小礼物。充分验证了自己的自动化测试工具的实用性。

12132328-216ce15aed6f5bef.png


用历史观来看一种技术的演进,称之为“技术血脉”。


12132328-279b6b5cc6f3ea8f.jpg


十年前,静儿做的是传统软件的项目,都是企业定制的项目,系统安装在企业的机器上,通过硬件来做物理隔离。系统的安全访问控制靠操作系统来保证。


12132328-fb1d2f597b836745.jpg


在互联网大潮中,B/S逐渐流行,对于这类从传统软件转化来的项目,一般采用的是用户名密码登陆的鉴权方式。为了对用户身份做认证,一般采用的是邮箱认证。09年的时候,静儿还在人人网,当时在研究自动化测试。有段时间有个小公司在搞活动,新注册用户可以抽奖,中奖率特别高。静儿就用自动化测试工作批量注册邮箱和此网站用户,刷出来好多小礼物。充分验证了自己的自动化测试工具的实用性。


当时,虽然各个网站还没有开始使用验证码。但是静儿那时候做过爬虫,对于爬虫这类攻击,很多网站还是采取了一定策略的。最常见的就是对IP做流量控制。比如半小时内不能点击超过2万次,超过则自动返回访问受限制,半小时后自动恢复。如果这件事情反复发生,被后台工作人员检测到,可以加入黑名单。


用户注册有一部分是“连携”的,这是个日语词,中文应该叫合作吧。就是下面的“其他方式登录”。这种实现到现在为止业界也还是采用oauth来实现,静儿八年前的项目经历完全可以排上用场。


12132328-a825763f40889ce9.jpg


   再后来网站对于用户注册开始使用验证码了。验证码的实现类似于分布式session的实现,都是在服务端保存一个客户端key对应的value。只是验证码的value只是一个字符串。静儿那时候都是采用分布式缓存作为服务端验证码的存储工具。


   在人人网工作四年之后,静儿出去面试,朋友给介绍了一个做PaaS的公司,按现在的话说就是云CRM。当时是在公司楼下一家咖啡馆,他们CTO带着一个兄弟过来,请我喝咖啡,让我聊聊访问控制,因为他们当时这块没有很好的解决方案。我就说了一下RBAC(基于角色的访问控制)的思路。


   静儿去了一家创业公司,因为项目规模小了,公司也没有统一的基础设施,权限认证这些都是自己来实现。本着只采用成熟的技术的原则,对于后台管理,当时静儿用的是Spring Security。Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全访问控制功能解决方案的安全框架。


它支持认证一体化如下认证技术:


HTTP  BASIC authentication headers(一个基于IEFT RFC的标准)


HTTP Digest authentication headers(一个基于IEFT RFC的标准)


HTTP X.509 client certificicate exchange(一个基于IEFT RFC的标准)


LDAP(一个非常常见的跨平台认证方法)


Form-based authentication(提供简单用户接口的需求)


OpenID authentication


Computer Associates Siteminder


JA-SIG Central Authentication Service(CAS,一个开源的单点登录系统)


Transparent authentication context propagation for Remote Method Invocation and HttpInvoker(一个Spring远程调用协议)


   两年后,为了实现7年前定的“要作为技术人员去国外出差”的目标,静儿入职了乐视。自然,全公司统一独立部署的SSO(单点登录)是必不可少的。严格来说,静儿那时候做的限流也是安全访问控制的一部分。


新美大这边的鉴权与安全访问控制就比较多了。SSO鉴权作为一个基础组件提供客户端和服务端自然是最基本的。在此基础上添加了新美大自研的基于角色权限控制。但是对于一些接口维度的,根据实际情况,会采用一些BA认证。比如根据token来指定配额。对于一些底层服务,内部也肯定会用到TLS做认证。


12132328-815fc4aee52a893e.jpg


后记


大家可能注意到静儿的前几篇文章比较注重自下而上思考,自上而下表达的结构化思维,而本篇是历史序的纵向思维。


作为技术人员,从各个维度对技术对项目做思考是一种基本意识。武功境界中所谓“人剑合一”的原理也是多练习多思考的结果。而技术人员想达到“人技合一”必然要从各个维度积累沉淀。


12132328-4871ea23d79a53fa.jpg

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
3月前
|
监控 安全 网络安全
安全防御之授权和访问控制技术
授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问相应的资源。
296 0
|
10天前
|
存储 安全 数据库
InfluxDB安全机制:用户认证与访问控制
【4月更文挑战第30天】InfluxDB的安全机制聚焦于用户认证和访问控制,包括启用默认禁用的用户认证,创建和管理加密密码的用户,以及实施细粒度的权限和角色管理。建议启用认证、设置强密码,合理分配权限,定期更新和审计,以及使用HTTPS确保数据传输安全,以增强数据库安全性。
|
自然语言处理 Kubernetes 安全
从零开始入门 K8s | K8s 安全之访问控制
访问控制是云原生安全的一个重要组成部分,也是 K8s 集群在多租环境下必要且基本的安全加固手段。在 K8s 体系中,访问控制又分为三个重要的组成部分,请求认证,鉴权和运行时刻的 admission 准入控制。在本文中,作者将带领大家了解这 3 部分的基本定义和使用方法,并给出多租环境下安全加固的相关最佳实践。
从零开始入门  K8s | K8s 安全之访问控制
|
9月前
|
安全 关系型数据库 MySQL
MySQL安全与权限管理:保障数据安全与访问控制
本文深入探讨了MySQL数据库的安全与权限管理,通过详细的代码示例,介绍了用户与权限的概念,权限管理与访问控制的方法,以及数据库安全性策略的制定与实施。MySQL提供了强大的安全性功能,能够帮助管理员保护数据库的数据安全和限制用户的访问权限。了解如何创建用户、授予权限,以及如何制定数据库安全性策略,将使管理员能够有效地管理和保护数据库,降低潜在的安全风险。
429 0
|
11月前
|
JSON 安全 前端开发
应用层安全架构设计-访问控制
应用层安全架构设计-访问控制
82 0
|
安全 网络安全 数据安全/隐私保护
IIS安全:配置web服务器权限更好地实现访问控制
IIS安全:配置web服务器权限更好地实现访问控制
336 1
|
存储 安全 测试技术
云效安全那些事儿—访问控制与数据安全
云效 Codeup 提供了代码 GPG 签名,拒绝未签名的提交;支持代码属主验证,约束提交记录属主。 在质量管控上,云效 Codeup 精细化读写权限管控,支持代码提交卡点机制,保障提交质量。 接下来我们一起看看云效 Codeup 的这些安全防护功能如何使用。
1250 0
云效安全那些事儿—访问控制与数据安全
|
12天前
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**