安全总结

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 美国

高级加密标准

国际上最认可密码学算法

分组模式:ECB/CBC/CFB/OFB/CTR

推荐使用 CBC和CTR

推荐
SM1 128 未测试 中国(算法保密)    
SM4 128 未测试 中国(算法保密)    

3.2 非对称加密算法 (两个质数P*Q=N,但是根据N做质因素分解得到P和Q,需要大量计算)

算法 加密强度 密钥生成性能 加解密性能 版权专利 备注 推荐
RSA

RSA公司

   
ECC 争议中  160 位密钥的 ECC 加密强度,相当于 1088 位密钥的 RSA
国际上加密强度最高的非对称加密算法
推荐 
SM2 中国     

3.3 散列算法

 

posted @   mick0802  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示