安全的本质--理解CIA和AAA
1. 安全是什么?
任何应用最本质的东西其实都是数据,安全的本质就是保护数据被合法地使用。
机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),我们可以简称为 CIA 三元组,是安全的基本原则。
机密性用一句话来说就是,确保数据只被授权的主体访问,不被任何未授权的主体访问。
完整性就是确保数据只被授权的主体进行授权的修改。
可用性就是确保数据能够被授权的主体访问到。
通常来说,在互联网企业发展初期,可用性的优先级较高。
如果涉及金钱相关的业务,则完整性的优先级更高;
而涉及个人隐私相关的业务,则保密性的优先级更高。
2. 如何解决安全问题?
有一个安全解决方案框架叫做“黄金法则”,它从认证(Authentication)、授权(Authorization)、审计(Audit)这三个层面去解决安全问题。
事前防御属于认证,事中防御属于授权,事后防御属于审计。
2.1 认证
认证其实包括两个部分:身份识别和认证。
- 身份识别其实就是在问“你是谁”,你会回答“你是你”。
- 身份认证则会问“你是你吗”,那你要证明“你是你”这个回答是合法的。
身份识别和认证通常是同时出现的一个过程。身份识别强调的是主体如何声明自己的身份,而身份认证强调的是,主体如何证明自己所声明的身份是合法的。
比如说:
- 当你在使用用户名和密码登录的过程中,用户名起到身份识别的作用,而密码起到身份认证的作用;
- 当你用指纹、人脸或者门卡等进行登入的过程中,这些过程其实同时包含了身份识别和认证。
认证形式可以大致分为三种。按照认证强度由弱到强排序,分别是:
- 你知道什么(密码、密保问题等);
- 你拥有什么(门禁卡、安全令牌等);
- 你是什么(生物特征,指纹、人脸、虹膜等)。
2.2 授权
在确认完“你是你”之后,下一个需要明确的问题就是“你能做什么”。
除了对“你能做什么”进行限制,授权机制还会对“你能做多少”进行限制。
比如:
- 手机流量授权了你能够使用多少的移动网络数据。
- 我们申请签证的过程,其实就是一次申请授权的过程。
2.3 审计
当你在授权下完成操作后,安全需要检查一下“你做了什么”,这个检查的过程就是审计。
当发现你做了某些异常操作时,安全还会提供你做了这些操作的“证据”,让你无法抵赖,这个过程就是问责。
3. 参考
《安全攻防技能30讲》–何为舟
安全的本质--理解CIA和AAA相关推荐
- C# == equals 本质理解
C# == equals 本质理解 using System; using System.Diagnostics; using System.Text; using System.Collection ...
- 面向过程和面向对象的本质理解
http://kiritor.blog.51cto.com/7400479/1226762/ 面向过程和面向对象的本质理解 面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象 ...
- bert本质理解记录一
bert的双向理解:本质上来讲就是高层(输入层为最底层)的每个隐藏单元能接受上一层的所有信息(并非只是左边或者右边);类似DNN神经网络,每个隐藏神经元都能接受到上一层的所有信息;双向比单向功能更加强 ...
- Lerp 函数本质理解
今天写了两个知识点,发现 CSDN 上都是抄过来抄过去,虽然看看别人写的能解决自己一大部分困惑,然而深入以后还是有不能理解透彻的地方.所以自己把自己理解的加在后面,如有不对,望指教. Unity 中好 ...
- 多分类loss函数本质理解
一.面对一个多分类问题,如何设计合理的损失函数呢? 1.损失函数的本质在数学上称为目标函数:这个目标函数的目标值符合最完美的需求:损失函数的目标值肯定是0,完美分类的损失必然为0 : 2.损失函数分为 ...
- 论文中常用的反证法思路本质理解
有些定理从正面不容易证明,从反面反而容易一些,那么就需要用到反证法. 反证法核心思想:假设条件成立(式子1),而结论不成立(式子2),那么就用这两个式子去推,推出某些与目前已知的定理或者公理矛盾的结果 ...
- 电机矢量控制原理本质理解及分析仿真
本篇文章为电机矢量控制FOC的原理详细解析,以及我自己学习的心得,整理了我学习的资源,以一部电机的视角来写的,但是电机控制的本质原理是相同的,希望对大家有帮助!! 觉得本篇文章有帮助的希望点赞!收藏! ...
- 关于一些运算((与运算)、|(或运算)、^(异或运算)........)的本质理解【转】...
看到一篇博客,关于一些运算的解析,觉得有用,怕以后找不着,直接复制下来,以备以后学习用 原文链接:https://blog.csdn.net/xiaopihaierletian/article/det ...
- (与运算)、|(或运算)、^(异或运算)的本质理解
按位与运算符(&) 参加运算的两个数据,按二进制位进行"与"运算. 运算规则:0&0=0; 0&1=0; 1&0=0; 1&1= ...
最新文章
- 数据结构 —— 为结构体内变量赋值
- 后端 消息 转发_【后端开发】Servlet怎么转发
- 【讲●解】KMP算法
- Linux的学习思路
- 在python中使用什么工具管理模块_怎么使用Python pip(管理模块工具)
- 计算机核心手稿,梁思成建筑手稿曝光:在没有计算机的年代,他的认真细致令人敬佩...
- 关于json时间字符串格式化处理
- 什么时候不选择mysql_MySQL请选择合适的列_MySQL
- SQLi LABS Less-34
- CDH ecosystem components
- Oracle安装基本步骤
- 微信公众号新变动!你都发现了吗?
- 如何获取自己的公网地址
- c++怎么判断系统是64位还是32位
- matlab如何实现动态显示,matlab 坐标图动画,动态显示数据
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
- 使用ffmpeg将mkv,rmvb转换成mp4
- Python全栈工程师(25:Mysql数据库)
- sybase表基本操作
- PAT 乙级 1006 换个格式输出整数
热门文章
- brctl 设置ip_Linux 网桥配置命令:brctl
- 360浏览器清除缓存_微信缓存清理教程
- RocketMQ的各种集群模式的搭建和消息可靠性保证和服务可用性描述
- linq判断集合中相同元素个数_java----Collection集合常用方法
- c语言变量定义数组,C语言中数组的定义和使用
- linux根据进程的运行路径,停止进程
- Flink java wordcount案例(批处理、流处理)
- pytorch搭建TextCNN与使用案例
- 使用sshpass借助scp自动输入密码传输一个文件夹下的全部内容
- Django账号绑定邮箱时发送链接