1. 安全是什么?

任何应用最本质的东西其实都是数据,安全的本质就是保护数据被合法地使用。

机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),我们可以简称为 CIA 三元组,是安全的基本原则。

机密性用一句话来说就是,确保数据只被授权的主体访问,不被任何未授权的主体访问。

完整性就是确保数据只被授权的主体进行授权的修改。

可用性就是确保数据能够被授权的主体访问到。

通常来说,在互联网企业发展初期,可用性的优先级较高。
如果涉及金钱相关的业务,则完整性的优先级更高;
而涉及个人隐私相关的业务,则保密性的优先级更高。

2. 如何解决安全问题?

有一个安全解决方案框架叫做“黄金法则”,它从认证(Authentication)、授权(Authorization)、审计(Audit)这三个层面去解决安全问题。

事前防御属于认证,事中防御属于授权,事后防御属于审计。

2.1 认证

认证其实包括两个部分:身份识别和认证。

  • 身份识别其实就是在问“你是谁”,你会回答“你是你”。
  • 身份认证则会问“你是你吗”,那你要证明“你是你”这个回答是合法的。

身份识别和认证通常是同时出现的一个过程。身份识别强调的是主体如何声明自己的身份,而身份认证强调的是,主体如何证明自己所声明的身份是合法的。

比如说:

  • 当你在使用用户名和密码登录的过程中,用户名起到身份识别的作用,而密码起到身份认证的作用;
  • 当你用指纹、人脸或者门卡等进行登入的过程中,这些过程其实同时包含了身份识别和认证。

认证形式可以大致分为三种。按照认证强度由弱到强排序,分别是:

  • 你知道什么(密码、密保问题等);
  • 你拥有什么(门禁卡、安全令牌等);
  • 你是什么(生物特征,指纹、人脸、虹膜等)。

2.2 授权

在确认完“你是你”之后,下一个需要明确的问题就是“你能做什么”。

除了对“你能做什么”进行限制,授权机制还会对“你能做多少”进行限制。

比如:

  • 手机流量授权了你能够使用多少的移动网络数据。
  • 我们申请签证的过程,其实就是一次申请授权的过程。

2.3 审计

当你在授权下完成操作后,安全需要检查一下“你做了什么”,这个检查的过程就是审计。

当发现你做了某些异常操作时,安全还会提供你做了这些操作的“证据”,让你无法抵赖,这个过程就是问责。

3. 参考

《安全攻防技能30讲》–何为舟

安全的本质--理解CIA和AAA相关推荐

  1. C# == equals 本质理解

    C# == equals 本质理解 using System; using System.Diagnostics; using System.Text; using System.Collection ...

  2. 面向过程和面向对象的本质理解

    http://kiritor.blog.51cto.com/7400479/1226762/ 面向过程和面向对象的本质理解 面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象 ...

  3. bert本质理解记录一

    bert的双向理解:本质上来讲就是高层(输入层为最底层)的每个隐藏单元能接受上一层的所有信息(并非只是左边或者右边);类似DNN神经网络,每个隐藏神经元都能接受到上一层的所有信息;双向比单向功能更加强 ...

  4. Lerp 函数本质理解

    今天写了两个知识点,发现 CSDN 上都是抄过来抄过去,虽然看看别人写的能解决自己一大部分困惑,然而深入以后还是有不能理解透彻的地方.所以自己把自己理解的加在后面,如有不对,望指教. Unity 中好 ...

  5. 多分类loss函数本质理解

    一.面对一个多分类问题,如何设计合理的损失函数呢? 1.损失函数的本质在数学上称为目标函数:这个目标函数的目标值符合最完美的需求:损失函数的目标值肯定是0,完美分类的损失必然为0 : 2.损失函数分为 ...

  6. 论文中常用的反证法思路本质理解

    有些定理从正面不容易证明,从反面反而容易一些,那么就需要用到反证法. 反证法核心思想:假设条件成立(式子1),而结论不成立(式子2),那么就用这两个式子去推,推出某些与目前已知的定理或者公理矛盾的结果 ...

  7. 电机矢量控制原理本质理解及分析仿真

    本篇文章为电机矢量控制FOC的原理详细解析,以及我自己学习的心得,整理了我学习的资源,以一部电机的视角来写的,但是电机控制的本质原理是相同的,希望对大家有帮助!! 觉得本篇文章有帮助的希望点赞!收藏! ...

  8. 关于一些运算((与运算)、|(或运算)、^(异或运算)........)的本质理解【转】...

    看到一篇博客,关于一些运算的解析,觉得有用,怕以后找不着,直接复制下来,以备以后学习用 原文链接:https://blog.csdn.net/xiaopihaierletian/article/det ...

  9. (与运算)、|(或运算)、^(异或运算)的本质理解

    按位与运算符(&) 参加运算的两个数据,按二进制位进行"与"运算. 运算规则:0&0=0;  0&1=0;   1&0=0;    1&1= ...

最新文章

  1. 数据结构 —— 为结构体内变量赋值
  2. 后端 消息 转发_【后端开发】Servlet怎么转发
  3. 【讲●解】KMP算法
  4. Linux的学习思路
  5. 在python中使用什么工具管理模块_怎么使用Python pip(管理模块工具)
  6. 计算机核心手稿,梁思成建筑手稿曝光:在没有计算机的年代,他的认真细致令人敬佩...
  7. 关于json时间字符串格式化处理
  8. 什么时候不选择mysql_MySQL请选择合适的列_MySQL
  9. SQLi LABS Less-34
  10. CDH ecosystem components
  11. Oracle安装基本步骤
  12. 微信公众号新变动!你都发现了吗?
  13. 如何获取自己的公网地址
  14. c++怎么判断系统是64位还是32位
  15. matlab如何实现动态显示,matlab 坐标图动画,动态显示数据
  16. 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
  17. 使用ffmpeg将mkv,rmvb转换成mp4
  18. Python全栈工程师(25:Mysql数据库)
  19. sybase表基本操作
  20. PAT 乙级 1006 换个格式输出整数

热门文章

  1. brctl 设置ip_Linux 网桥配置命令:brctl
  2. 360浏览器清除缓存_微信缓存清理教程
  3. RocketMQ的各种集群模式的搭建和消息可靠性保证和服务可用性描述
  4. linq判断集合中相同元素个数_java----Collection集合常用方法
  5. c语言变量定义数组,C语言中数组的定义和使用
  6. linux根据进程的运行路径,停止进程
  7. Flink java wordcount案例(批处理、流处理)
  8. pytorch搭建TextCNN与使用案例
  9. 使用sshpass借助scp自动输入密码传输一个文件夹下的全部内容
  10. Django账号绑定邮箱时发送链接