安全总结
1、什么是安全?
安全包括机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),简称CIA三元组
机密性(不可见):确保数据只被授权的主体访问,不被任何未授权的主体访问
完整性(不可改):确保数据只被授权的主体进行授权的修改
可用性(可读):确保数据能够被授权的主体访问到
eg: 以购买VIP专栏为例,机密性就是未付费用户无法学习这个专栏;完整性就是这个专栏的内容不会变成别的其他方向的内容;可用性就是你作为付费用户,能够随时学习这个专栏
2、怎么解决安全问题
IAAAA黄金法则:身份识别(Identification)、认证(Authentication)、授权(Authorization)、审计(Audit)、问责(Accounting)
三层防御:事前防御属于认证、事中防御属于授权、事后防御属于审计
2.1 身份识别和认证(证明你是你)
用户名和密码模式 指纹、人脸或门卡模式
身份识别:主体如何声明自己身份? 用户名 指纹、人脸或门卡登记
(最终产物:身份ID,也是后续授权、审计和问责基础)
身份认证:主体如何证明自己身份合法? 密码 指纹、人脸或门卡识别
2.1.1 身份认证强度如何设计? 从弱到强
- 你知道什么(密码、密保问题等);
- 你拥有什么(门禁卡、安全令牌、手机验证等);
- 你是什么(生物特征,指纹、人脸、虹膜等)
组合认证:进一步加强认证强度,例如输入密码+短信验证
2.1.2 身份认证领域方向
2.1.3 【单点登录】对内认证方案选型
CAS是基础,JWT、OAuth、OpenID都是CAS的变种
方案 | 原理 | 优劣势分析 |
CAS流程(基础) Central Authentication Service,集中式认证服务 |
![]()
1、应用本身不具备认证能力,需重定向到认证中心的页面;例如登录时,选择WX或QQ登录,点击WX登录,跳转到WX登录页面 2、用户在认证中心进行身份认证 3、认证成功后,将凭证和用户信息返回客户端 4、客户端将凭据和其他信息发送给应用 5、应用收到凭据后,可以通过签名的方式,验证凭据的有效性。或者,应用也可以直接和认证中心通信,验证凭据并获取用户信息
|
|
JWT(JSON Web Token) |
客户端保存凭证信息,后续请求带上凭证,作为登录状态的凭证
|
不需要应用服务端去额外维护 Cookie 或者 Session |
OAuth(Open Authorization) |
通过 OAuth,用户在完成了认证中心的登录,应用只能够验证用户确实在第三方登录了,但是维持应用内的登录状态,应用还是得颁发自己的登录凭证; 这也就是为什么 QQ 授权后,应用还需要绑定你的手机号码 |
|
OpenID(Open Identity Document |
OpenID 不提供授权的功能
|
对用户来说,这个认证中心是完全透明的。但是,这个流程给予了应用过多的信任,从安全性方面考量的话,是不合理的;应用直接获取到了用户的认证信息,但应用能否保护好这些信息呢?我们并没有有效的办法去做确认 |
2.2 授权(证明你能做什么)
严格模式:每次操作都需要管理员审批和确认,例如银行大额转账,申请签证等
自动化授权模式:自主访问控制、强制访问控制
2.3 审计和问责(日志)
审计:你做了什么?=》通过日志还原历史用户操作,判断是否违规
问责:提供操作证据,无法抵赖 =》通过日志完整性,确保日志还原的操作可信
3、密码算法选型
总结AES:AES128(CTR)、ECC、SHA256加盐
3.1 对称加密算法
算法 | 密钥长度 | 加密强度 | 性能 | 版权 | 备注 | 推荐 |
DES | 56 | 弱 | 快 | 美国 |
已过时 暴力破解<24h |
|
3DES | 168 | 中 | 慢 | 美国 | ||
IDEA | 128 | 强 | 中 | 瑞士 | ||
AES | 128,192,256 | 强 | 快 | 美国 |
高级加密标准 国际上最认可密码学算法 推荐使用 CBC和CTR |
推荐 |
SM1 | 128 | 强 | 未测试 | 中国(算法保密) | ||
SM4 | 128 | 强 | 未测试 | 中国(算法保密) |
3.2 非对称加密算法 (两个质数P*Q=N,但是根据N做质因素分解得到P和Q,需要大量计算)
算法 | 加密强度 | 密钥生成性能 | 加解密性能 | 版权专利 | 备注 | 推荐 |
RSA | 弱 | 慢 | 快 |
RSA公司 |
||
ECC | 强 | 快 | 慢 | 争议中 | 160 位密钥的 ECC 加密强度,相当于 1088 位密钥的 RSA 国际上加密强度最高的非对称加密算法 |
推荐 |
SM2 | 强 | 快 | 慢 | 中国 |
3.3 散列算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix