编辑
2025-01-19
安全
00
请注意,本文编写于 111 天前,最后修改于 110 天前,其中某些信息可能已经过时。

目录

安全的本质
1. 安全的本质
2. CIA三元组
3. 安全原则的优先级
安全原则
1. 黄金法则
2. 认证(Authentication)
3. 授权(Authorization)
4. 审计(Audit)
5. 安全建设管理
6. 总结
密码学基础
1. 密码学的重要性
2. 对称加密算法
3. 非对称加密算法
4. 散列算法
5. 密码学的应用场景
6. 总结与推荐
7. 扩展思考
身份认证
1. 身份认证的重要性
2. 身份认证的分类
3. 身份认证面临的威胁
4. 身份认证的安全措施
5. 单点登录(SSO)的解决方案
6. 单点登录的实现建议
7. 总结
8. 扩展思考
访问控制
1. 访问控制的重要性
2. 访问控制的基本模型
3. 常见的访问控制机制
4. 访问控制机制的选择
5. 威胁评估的步骤
6. 总结
7. 扩展思考

安全的本质

1. 安全的本质

  • 安全的本质是保护数据被合法地使用。用户使用产品的过程就是与企业进行数据交换的过程,因此保护数据的合法使用是安全的核心。
  • 数据安全涉及三个方面:机密性(Confidentiality)完整性(Integrity)可用性(Availability),简称CIA三元组

2. CIA三元组

  • 机密性(Confidentiality):确保数据只被授权的主体访问,不被未授权的主体访问。核心是“不可见”。

    • 保护技术包括加密、隔离、混淆、隐藏等。
    • 常见的攻击形式包括破解加密算法、权限滥用、弱密钥等。
  • 完整性(Integrity):确保数据只被授权的主体进行授权的修改,核心是“不可改”。

    • 强调对修改行为的日志记录和审计。
    • 保护技术包括加密、签名等。
    • 常见的攻击形式包括恶意篡改、误删除、程序bug等。
  • 可用性(Availability):确保数据能够被授权的主体访问到,核心是“可读”。

    • 可用性不仅仅是安全问题,也是工程上的挑战。
    • 常见的挑战包括DDoS攻击、系统扩容、资源冗余等。

3. 安全原则的优先级

  • 不同的企业在不同的发展阶段,CIA三元组的优先级会有所不同:
    • 互联网企业初期:可用性优先级较高。
    • 涉及金钱的业务:完整性优先级较高。
    • 涉及个人隐私的业务:机密性优先级较高。
  • 随着业务的发展,完整性和机密性的重要性会逐渐增加。

安全原则

1. 黄金法则

  • 黄金法则是解决安全问题的主要思路,包含三个核心部分:认证(Authentication)授权(Authorization)审计(Audit)
  • 这三个部分描述了用户在使用应用程序过程中的生命周期:先进行登录(认证),再进行操作(授权),最后留下记录(审计)。

2. 认证(Authentication)

  • 认证包括身份识别身份认证
    • 身份识别:确定“你是谁”,通常通过用户名、指纹、人脸等方式声明身份。
    • 身份认证:证明“你是你”,通常通过密码、指纹、人脸识别等方式验证身份的合法性。
  • 认证的强度可以分为三类:
    1. 你知道什么(如密码、密保问题)。
    2. 你拥有什么(如门禁卡、安全令牌)。
    3. 你是什么(如生物特征:指纹、人脸、虹膜)。
  • 多因素认证:结合多种认证方式(如密码+手机验证码)来增强安全性。

3. 授权(Authorization)

  • 授权解决的是“你能做什么”的问题,即对用户的操作进行限制。
    • 授权机制可以是手动的(如签证审批)或自动的(如免签政策)。
    • 常见的授权策略包括自主访问控制强制访问控制
  • 授权机制需要在可用性安全性之间找到平衡,避免过度限制用户操作。

4. 审计(Audit)

  • 审计解决的是“你做了什么”的问题,通过日志记录用户的操作历史,确保操作的可追溯性。
    • 审计的核心是日志记录,确保日志的完整性,防止篡改。
    • 问责是审计的延伸,确保用户无法否认自己的操作,提供法律保护。
  • 审计是事后防御的重要手段,能够发现授权机制无法覆盖的安全漏洞。

5. 安全建设管理

  • 安全建设是一个长期过程,需要自上而下的推动,企业高层需要理解安全的重要性。
  • 安全建设可以分为三个层次的计划:
    1. 战略计划:长期安全目标,与企业长期发展方向结合。
    2. 战术计划:基于战略目标,拆解出详细的任务计划(如项目列表、安全预算等)。
    3. 操作计划:具体实现战术计划,包括人员分配、资源投入等。

6. 总结

  • 黄金法则是安全解决方案的核心,涵盖了用户操作的各个环节。
  • 安全是木桶原理的领域,不能只专注于某一个方向,必须全面发展。
  • 安全没有“银弹”,不能追求100%的安全,而是要在可用性和安全性之间找到平衡。

密码学基础

这份PDF文件是《安全攻防技能30讲》课程的第三讲,主题是“密码学基础:如何让你的密码变得‘不可见’?”。以下是核心知识点的总结和扩展:

1. 密码学的重要性

  • 密码学是安全的基础技术支撑,保护数据的机密性完整性可用性(CIA三元组)。
  • 密码学广泛应用于认证、授权、审计等安全机制中,确保数据在传输和存储过程中的安全性。

2. 对称加密算法

  • 对称加密:加密和解密使用同一个密钥
    • 优点:加密速度快,适合大量数据的加密。
    • 缺点:密钥分发困难,密钥管理复杂。
    • 常见算法
      • DES:56位密钥,已过时,不推荐使用。
      • IDEA:128位密钥,无专利限制,广泛使用。
      • AES:128/192/256位密钥,国际标准,安全性高,性能好。
      • 国密SM1/SM4:中国自主研发的对称加密算法,SM1保密,SM4公开。
    • 应用场景:HTTPS、VPN、数据库加密、Cookie加密等。

3. 非对称加密算法

  • 非对称加密:加密和解密使用不同的密钥(公钥和私钥)。
    • 优点:解决了密钥分发问题,适合一对多的通信场景。
    • 缺点:加密速度慢,适合小数据量的加密。
    • 常见算法
      • RSA:基于大质数分解的数学难题,密钥长度较长,性能较好。
      • ECC:基于椭圆曲线数学难题,密钥长度短,安全性高。
      • 国密SM2:中国自主研发的非对称加密算法,基于椭圆曲线,安全性高。
    • 应用场景:SSH登录、Git上传、数字签名等。

4. 散列算法

  • 散列算法:将任意长度的输入转换为固定长度的输出(哈希值),具有不可逆性
    • 特点
      • 鲁棒性:相同的输入生成相同的输出。
      • 唯一性:不同的输入生成不同的输出(理想情况下)。
    • 常见算法
      • MD5:128位哈希值,已被破解,不推荐使用。
      • SHA:160/256位哈希值,SHA-256安全性高,推荐使用。
      • 国密SM3:中国自主研发的散列算法,安全性高。
    • 应用场景:密码存储、文件完整性校验、Git提交记录等。
    • 加盐:在散列计算前加入随机字符串(盐),增加安全性,防止彩虹表攻击。

5. 密码学的应用场景

  • 对称加密:适合大量数据的加密,如HTTPS、数据库加密等。
  • 非对称加密:适合密钥分发和数字签名,如SSH登录、Git上传等。
  • 散列算法:适合密码存储和完整性校验,如用户密码存储、文件校验等。

6. 总结与推荐

  • 对称加密:优先使用AES-CTR,性能好,安全性高。
  • 非对称加密:优先使用ECC,密钥短,安全性高。
  • 散列算法:优先使用SHA256加盐,安全性高,适合密码存储。

7. 扩展思考

  • 密钥管理:对称加密的密钥分发是非对称加密的主要应用场景之一。非对称加密解决了密钥分发的难题,但在实际应用中,通常结合对称加密和非对称加密,先用非对称加密传输对称加密的密钥,再用对称加密加密大量数据。
  • 密码学与法律:随着《密码法》的实施,国内企业在选择加密算法时,可能需要考虑国密算法的合规性。国密算法(如SM2、SM3、SM4)在国内的应用逐渐增多,尤其是在金融、政府等敏感领域。
  • 密码学的未来:随着量子计算的发展,传统的加密算法(如RSA)可能会面临挑战。量子计算机可以在多项式时间内破解RSA等基于大数分解的加密算法,因此,未来的密码学研究可能会更多地关注抗量子计算的加密算法。

身份认证

这份PDF文件是《安全攻防技能30讲》课程的第四讲,主题是“身份认证:除了账号密码,我们还能怎么做身份认证?”。以下是核心知识点的总结:

1. 身份认证的重要性

  • 身份认证是安全的第一道门槛,确保用户身份的合法性,为后续的授权和审计提供基础。
  • 身份认证不仅仅是账号密码的输入,还包括对外认证(面向用户的登录注册)和对内认证(内部系统的登录,如服务器、数据库、Git等)。

2. 身份认证的分类

  • 对外认证:面向用户的登录注册模块,通常只有一个登录入口,可以通过多种认证方式(如密码、手机验证、生物特征等)进行认证。
  • 对内认证:面向内部系统的登录,场景复杂且分散,管理难度较大,通常需要长期治理。

3. 身份认证面临的威胁

  • 无认证:很多内部系统(如数据库、管理后台)没有认证环节,直接暴露在风险中。
  • 弱密码:用户倾向于使用简单易记的密码,导致密码容易被破解。
  • 认证信息泄漏:黑客通过钓鱼、拖库等手段获取用户的密码或身份凭证(如Cookie、Session ID),进行重放攻击。

4. 身份认证的安全措施

  • 密码强度限制:强制使用复杂密码(字母、数字、特殊字符组合),并定期修改密码。
  • 多因素认证:结合多种认证方式(如密码+手机验证码、指纹、人脸识别等),增加安全性。
  • 加密信道:使用HTTPS等加密协议,防止认证信息在传输过程中被窃听。
  • 凭证有效期:为下发的身份凭证设置有效期,减少重放攻击的风险。
  • 单点登录(SSO):通过统一的认证中心管理多个应用的登录,简化用户操作,提升安全性。

5. 单点登录(SSO)的解决方案

  • CAS(Central Authentication Service):集中式认证服务,用户只需在认证中心进行一次认证,即可访问所有应用。
  • JWT(JSON Web Token):轻量级的单点登录方案,客户端保存凭证信息,每次请求携带该凭证,适合无状态的应用场景。
  • OAuth(Open Authorization):主要用于授权,用户通过第三方(如微信、QQ)登录后,应用可以获取用户的部分信息,适合需要授权的场景。
  • OpenID:与OAuth类似,但不提供授权功能,适合仅需认证的场景。

6. 单点登录的实现建议

  • 避免自行实现简化版SSO:自行实现的SSO可能存在安全隐患,建议接入成熟的单点登录体系(如CAS、OAuth等)。
  • 选择合适的SSO方案:根据业务需求选择适合的单点登录方案,如JWT适合轻量级应用,OAuth适合需要授权的场景。

7. 总结

  • 身份认证是安全的基础,涉及对外和对内两个场景,尤其是对内认证容易被忽视。
  • 单点登录SSO是解决复杂认证体系的有效方案,能够简化用户操作并提升安全性。
  • 多因素认证加密信道凭证有效期等技术手段可以有效提升身份认证的安全性。

8. 扩展思考

  • 内部认证的治理:内部系统的认证(如服务器、数据库)往往容易被忽视,建议通过跳板机VPN等方式加强内部认证的安全性。
  • 安全意识培训:除了技术手段,提升员工和用户的安全意识也是保障身份认证安全的重要环节。
  • 密码管理工具:推荐使用密码管理工具(如LastPass、1Password)生成和存储强密码,减少弱密码的使用。

访问控制

这份PDF文件是《安全攻防技能30讲》课程的第五讲,主题是“访问控制:如何选取一个合适的数据保护方案?”。以下是核心知识点的总结:

1. 访问控制的重要性

  • 访问控制是安全的核心机制之一,确保只有经过授权的用户或系统能够访问特定的资源或执行特定的操作。
  • 访问控制与身份认证审计共同构成了安全的“黄金法则”。

2. 访问控制的基本模型

  • 主体:发起访问请求的实体,可以是用户、进程、应用或设备。
  • 客体:被访问的资源,如文件、数据库、设备等。
  • 请求:主体对客体执行的操作,如读、写、执行等。

3. 常见的访问控制机制

  • DAC(Discretionary Access Control,自主访问控制)
    • 特点:由客体的所有者定义访问控制规则,灵活性高,但安全性依赖于所有者的安全意识。
    • 适用场景:面向用户的场景,如Linux文件系统,用户可以控制自己的文件访问权限。
  • role-BAC(Role-Based Access Control,基于角色的访问控制)
    • 特点:将用户划分为不同的角色,每个角色拥有特定的权限,管理员集中管理角色和权限。
    • 适用场景:企业内部系统(如ERP),管理员可以轻松管理用户权限,适合集中管理的场景。
  • rule-BAC(Rule-Based Access Control,基于规则的访问控制)
    • 特点:基于预定义的规则进行访问控制,规则可以结合主体、客体和请求的属性。
    • 适用场景:复杂场景,如防火墙、风控系统等,适合无法清晰划分角色的场景。
  • MAC(Mandatory Access Control,强制访问控制)
    • 特点:基于安全级别标签进行访问控制,主体和客体被标记为不同的安全级别(如秘密、私人、敏感、公开)。
    • 适用场景:政府系统或高安全性要求的场景,适合能够对所有数据进行标签化的系统。

4. 访问控制机制的选择

  • DAC:适合用户自主控制权限的场景。
  • role-BAC:适合管理员集中管理的场景,简化权限分配和变更。
  • rule-BAC:适合复杂场景,如网络请求、风控系统等。
  • MAC:适合高安全性要求的场景,如政府系统。

5. 威胁评估的步骤

  • 识别数据:确定哪些数据是核心资产,评估数据泄露或损坏对公司的影响。
  • 识别攻击:根据数据的价值,推测可能的攻击方式。
  • 识别漏洞:根据应用类型,识别可能存在的安全漏洞(如XSS、SQL注入等)。

6. 总结

  • 访问控制机制是确保数据安全的重要手段,不同的机制适用于不同的场景。
  • DACrole-BACrule-BACMAC各有优缺点,实际应用中常常需要组合使用。
  • 威胁评估是安全方案落地的前提,通过识别数据、攻击和漏洞,明确公司面临的安全威胁,推动安全方案的实施。

7. 扩展思考

  • 访问控制的组合使用:在实际应用中,单一的访问控制机制可能无法满足所有需求,通常需要组合使用多种机制。例如,Linux系统中既使用DAC(用户控制文件权限),也使用role-BAC(用户组管理)。
  • 威胁评估的周期性:随着公司业务的发展,安全威胁也在不断变化,建议定期进行威胁评估,及时调整安全策略。
  • 访问控制的自动化:随着系统规模的扩大,手动管理访问控制规则变得不现实,建议引入自动化工具(如IAM系统)来简化权限管理。

image.png

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!