安全攻防系列一 安全基础概念

来都来了 2020-12-28 08:26:50 ⋅ 994 阅读

 

该系列记录学习极客时间–安全攻防技能30讲相关内容

安全的本质

安全的本质就是保护数据被合法地使用。

  1. 数据:应用最核心的东西;如用户信息、订单信息等等
  2. 合法:大到法律法规、业务规定;小到业务流程、字段类型;
  3. 使用:访问访问的,更改可以更改的

此处的CIA非美国中央情报局,而是信息系统的安全等级三个性质-百度百科

  1. 机密性(Confidentiality)指只有授权用户可以获取信息。
  2. 完整性(Integrity)指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。
  3. 可用性(Availability)指保证合法用户对信息和资源的使用不会被不正当地拒绝。

机密性【不可见】

定义:机密性(Confidentiality)指只有授权用户可以获取信息。

举例子:读大学时,一般情况,作为学生的你是无法获取教师薪酬的。

凡是数据都有一定等级的访问限制,FBI探员无法访问最高机密一个道理。

完整性【不可改】

定义:完整性(Integrity)指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。

举例子:大学期间,不幸运的你挂科了,恰巧你的专业是计算机相关,恰巧想改成绩,即便你非法获取到了更改权限你改了成绩;
不幸的是完整性会记录修改日志,如果你恰巧不懂完整性,那么等待你的是啥自己该有点数。。。

可用性【可读】

定义:可用性(Availability)指保证合法用户对信息和资源的使用不会被不正当地拒绝

举例子:大学期间你可以正常访问的成绩管理系统,否则你就会骂:垃圾系统,你口中的垃圾系统,大概了就是可用性太差。

安全的解决方案

认证 Authentication

认证就是我要输入帐号和密码来证明我是我

  1. 定义:确认身份,强调身份的合法性
  2. 分类:对内、对外
  3. 威胁来源:无认证、弱密码、认证信息泄漏

相信输入过用户密码的用户都明白登陆了才可以购买商品,这就是第一步,你被认为是合法用户。

下图很直观的展示了对内对外的区别,就不用赘述了。

威胁

无认证

  1. 对内来说:数据库、服务器配置等等,如果没有界限划分,删库跑路也算是恰当的例子
  2. 对外来说:不同的路由根据业务来判定是否需要认证,比如首页、订单页,两个完全不同认证范畴,是不一样的。
// 注:
有种言论说:当代人根本就是透明人,无所谓。
1. 逻辑上不太通顺;同理可以得出很多,如:男女可以裸奔的,无需穿衣服的,抛开冷暖来说。
2. 认证还是必须的,注意安全何时何地都不过时。
 

弱密码

密码强度,指一个密码对抗猜测或是暴力破解的有效程度。

弱密码举例子

admin——太容易猜出
123——同上
abcde——同上
abc123——同上
123456——由于文化因素极其常用
1234——同上
 

有点新意可行?》?

  1. FLZX3000cY4yhx9day (飞流直下三千尺,疑似银河下九天)
  2. hanshansi.location()!∈[gusucity](姑苏城外寒山寺)
  3. hold?fish:palm(鱼和熊掌不可兼得)
  4. Tree_0f0=sprintf(“2_Bird_ff0/a”)(两个黄鹂鸣翠柳)
  5. csbt34.ydhl12s(池上碧苔三四点,叶底黄鹂一两声);
  6. for_Missing superscript or subscript argument
  1. n+=”die”(人生自古谁无死)
  2. ppnn13%dkstFeb.1st。中文解析:娉娉袅袅十三余,豆蔻梢头二月初。

建议

  1. 设置强密码
  2. 定期修改
  3. 如:短信验证;对于人脸验证,持保留态度

单点登陆

单点登录的概念很简单:用户只需要进行一次认证,就可以访问所有的网页、应用和其他产品了。

CAS(Central Authentication Service,集中式认证服务)

JWT(JSON Web Token)

JWT(JSON Web Token)是一种非常轻量级的单点登录流程。它会在客户端保存一个凭证信息,之后在你每一次登录的请求中都带上这个凭证,将其作为登录状态的依据。
JWT 的好处在于,不需要应用服务端去额外维护 Cookie 或者 Session 了。
但是,正是因为它将登录状态落到了客户端,所以我们无法进行注销等操作了。

授权

对外授权

摘录–[简易图解]『 OAuth2.0』 『进阶』 授权模式总结

授权就是并非通过帐号和密码来把我的东西借给其他人

# 分类
授权码模式
简化模式
密码模式
客户端模式
刷新令牌
 

值得仔细看看

OAuth(Open Authorization)

比如:微博采用第三方的登录-QQ登录,用户QQ授权之后,微博可以通过OAuth判断是否却是授权。
应用想要维护这个状态,就需要维护自己的登录凭证,也就是后期要输入手机号注册。

强烈建议可以仔细看看这个博主的介绍—[简易图解]『 OAuth2.0』 『进阶』 授权模式总结

OpenID(Open Identity Document)

OpenID(Open Identity Document)和 OAuth 的功能基本一致。但是,OpenID 不提供授权的功能。最常见的,当我们需要在应用中使用微信支付的时候,应用只需要收集支付相关的信息即可,并不需要获取用户的微信头像

在实际情况中,基于各种业务需求的考虑,很多公司都倾向于自己去实现一套 SSO 的认证体系,它的认证流程如下图所示:

对内授权

访问控制

审计 && 问责

当你在授权下完成操作后,安全需要检查一下“你做了什么”,这个检查的过程就是审计。 当发现你做了某些异常操作时,安全还会提供你做了这些操作的“证据”,让你无法抵赖, 这个过程就是问责

  1. 审计 && 问责 的基础: 日志
  2. 问责,是对审计结果的一个保障,有的时候我们也称之为“不可否认性”
    1. 一方面,它保证了黑客无法通过篡改日志或者仿造身份,来隐藏自己的行为;
    2. 一方面它也保证了,当审计中发现了恶意的行为,需要寻求法律保护时,我们能够提供充分的证据

授权 VS 认证

  1. 认证就是我要输入帐号和密码来证明我是我
  2. 授权就是并非通过帐号和密码来把我的东西借给其他人
  3. 这其中的关键就是,是否需要输入帐号密码。记住,OAuth 不需要输入帐号和密码,你要做的只是授权。

总结

大部分情况下,事前防御属于认证,事中防御属于授权,事后防御属于审计。

密码学基础

对称加密

原理请网上参考相关资源-AES加密算法和RSA加密算法

非对称加密

原理请网上参考相关资源-AES加密算法和RSA加密算法

散列算法

MD5(消息摘要算法,Message-Digest Algorithm 5)

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。

已经被破解。

情况一:你将某文件发给别人,MD5得到128位的信息摘要,如果别人更改,则对比一摘要即可。防止篡改。

SHA

SHA(安全散列算法,Secure Hash Algorithm)。
虽然 SHA 的唯一性也被破解了,但是这也不会构成 大的安全问题。目前,SHA-256 普遍被认为是相对安全的散列算法,也是我最推荐你使用 的散列算法。

国密 SM3

参考

[简易图解]『 OAuth2.0』 『进阶』 授权模式总结
极客时间–安全攻防技能30讲
AES加密算法和RSA加密算法

 


全部评论: 0

    我有话说:

    HashiCorp开源Boundary:安全访问动态主机服务

    HashiCorp 宣布开源 Boundary,此项目可帮助运维人员及从业者通过细粒度的授权安全地访问动态主机和服务,无需管理凭据或公开网络。 Boundary 旨在使用最小特权原则 (POLP

    MongoDB系列之----概述()

    MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统

    Express 系列之---概述()

    Express是目前最流行的基于Node.js的Web开发框架,可以快速地搭建一个完整功能的网站。

    商城系统 DBShop V3.0 Beta 发布

    全新重构,首次亮相。 系统简介 DBShop企业级商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多

    「开源资讯」陌陌安全团队开源Java静态代码审计插件

    陌陌安全本次开源的Java静态代码安全审计插件,侧重于在编码过程中发现项目潜在的安全风险,并提供键修复能力。 此插件作为Java项目静态代码安全审计工具,侧重于在编码过程中发现项目潜在的安全风险

    Teaclave 0.2.0 发布:让隐私安全计算更简单

    Apache Teaclave (incubating) 是一个隐私安全计算平台,为隐私数据计算赋能。基于硬件安全能力,Teaclave 确保敏感数据在可信域外和离岸场景下安全可控的流通和处理,无需

    面试官:HashMap为什么是线程不安全的?

    一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全?

    Redis系列 基本用法&应用场景

        说明 redis的最基本使用方法以及使用场景。 字符串 // stringasync function stringFun() { const [key

    转载:RocketMQ基础概念剖析&源码解析

    ,Kafka的Topic也是种逻辑概念,每个Topi...

    Git 2.29稳定版发布,实验性支持更安全的SHA-256

    Git 2.29 稳定版已发布。此前发布的多个版本都在为将 Git 使用的安全哈希算法从 SHA-1 迁移至 SHA-256 做准备,2.29 版本终于实验性支持 SHA-256,可用于提升代码仓库

    Alpine Linux 3.13.2 发布,面向安全的轻量级 Linux 发行版

    Alpine Linux 是一个面向安全的轻量级 Linux 发行版,该发行版以安全为理念,面向 x86 路由器、防火墙、虚拟专用网、IP 电话盒及服务器而设计。另外,不同于常见的

    iOS直播---主要的概念()

    直播可谓风生水起, 热火朝天, 借此也对音视频进行次深入学习, 希望有需要的大家一块学习.第一步对直播的大

    Joomla 3.9.23 发布,免费建站系统

    Joomla 3.9.23现已发布。这是Joomla 3.x系列安全版本,解决了7个安全漏洞,并包含35个以上的错误修复和改进。 3.9.23是什么? Joomla 3.9.23包含7个安全漏洞

    Python 基础系列--数字类型【2】

    脚脚印,方能走的更远

    Linux 下安装 Elasticsearch5.6.x 详细步骤以及踩坑解决方案

    网上有各种ES版本的安装步骤和问题解决方案,但是在安装过程中还是遇到了许多问题,那么今天来整理份详细的安装过程以及碰到的问题和心得;有什么不对的和问题希望大家留言一起讨论。

    Kooteam 0.1.3 发布,重构系统日志模块,简化安装流程

    Kooteam是款轻量级的在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发等工具,并接入了微信小程序,钉钉开放平台,使用便捷高效。

    商城系统 DBShop V3.0 Beta 201122 发布

    系统简介 DBShop企业级商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多支付、多货币;严谨的