--- 数据安全篇
1 DFX简介
DFX 是 Design for X(面向产品生命周期各环节的设计)的缩写,其中 X 代表产品生命 周期的某一环节或特性,如可制造性(M-Manufacturability)、可装配性(A-Assembly)、 可靠性(R- Reliability)等 DFX 主要包括:可造性设计 DFM: Design forManufacturability, 可装配性设计 DFA: Design forAssembly,可靠性设计 DFR: Design forReliability,可服务 性设计 DFS: DesignforServiceability,可测试性设计 DFT: Design for Test,面向环保的设 计 DFE: Design for Environment 等
2 数据安全篇
2.1 基本概念 数据安全有对立的两方面的含义:
一是数据本身的安全,主要是指采用现代密码算法 对数据进行主动保护,如数据保密、数据完整性、双向强身份认证等,
二是数据防护的安 全,主要是采用现代信息存储手段对数据进行主动防护,如通过磁盘阵列、数据备份、异 地容灾、防火墙防止攻击等手段保证数据的安全。数据安全是一种主动的包含措施,数据本身的安全必须基于可靠的加密算法与安全体 系,主要是有对称算法与公开密钥密码体系两种。数据信息安全不仅是单一电脑的问题,也不仅是服务器或路由器的问题,而是整体网 络系统的问题。所以信息安全要考虑整个网络系统,结合网络系统来制定合适的信息安全 策略。由于网络安全涉及到的问题非常多,如防病毒、防人侵破坏、防信息盗窃、用户身 份验证等,这些都不是由单一产品来完成,也不可能由单一产品来完成,最重要的是,各 种各样的单位产品堆砌依然无法给予数据信息安全完整的保护。数据信息安全也必须从整 体策略来考虑,采用功能完善、技术强大的数据信息安全保障系统。所以在对数据安全的 方案上,我们会对数据本身以及数据存储服务器进行一些防护机制,确保数据安全。
2.2 系统安全架构
2.3 数据安全服务器机制
2.4 数据安全策略
- 数据安全策略从技术和规则两个方面加以控制,大数据底层技术所不支持的安全机制, 则需要集成其他技术框架进行解决。数据安全策略是基于访问控制策略实现的,是基 本安全性的核心。它包括了身份认证、访问授权、机密性、完整性、安全审计、高可 用性等方面,主要是从与帐号相关的方面来维护数据库的安全性,一些数据验证、权 限、加密以及相应数据操作日志记录。
2. 访问控制策略主要包括这些问题
A. 避免帐号被人列举:比如,非管理员获得所有数据库用户帐号列表。
B. 最小化权限原则:数据库管理员仅仅分配帐号的足够使用权限。比如,如果一个用户 只需要进行数据库的查询工作,那么这个用户使用的权限就只能局限于 select 语句, 而不能有 delete、update 等语句的使用权限。权限的扩散以及超越应用范围的访问是 访问控制的一大威胁。
C. 最高权限最小化原则:确保不会分配多余的管理员权限帐号。管理员帐号的数量和安 全危险性是成正比的。
D. 帐号密码安全原则:分配帐号的密码必须符合密码安全原则的要求。基本密码安全要 求包括:密码长度(8 位以上)、密码复杂性(必须同时包括字母、数字和符号)、 密码结构非连续性(密码构成内容必须是在键盘上分别隔离的元素,1234%qwert 这 样的密码结构就是不符合要求的)等。有条件的或者有非常高安全要求的环境甚至可 以采用一次性密码。密码的安全性是访问控制的主要威胁,特别是最高管理员,比如 root 帐号的密码。
E. 用户认证是否足够安全:密码是否进过加密,确保认证过程的密码安全性,用户认证 过程是否有日志记录。SQLServer 和 Mysql 默认情况下,数据的传输是明文的,包括 密码(只是进过非常简单的编码),因此,有必要情况下必须采用 SSL 加密。
F. 详尽的访问审核:访问审核能够为损害等提供可查依据,Mysql 提供了详尽的审核功 能,比如:SQL 语句、角色添加删除、登录事件的成功失败、对象的使用、语句权限 的使用、密码更改、数据库事件、锁事件、存储过程事件以及服务关闭启动等等。Mysql 数据库提供了 SQL 事件探查器,可以用来监视这些事件等。
G. 文件的访问控制:确保文件不会被人修改、删除。这些文件包括数据库系统文件、数 据库文件、日志文件以及备份文件等。
2.5 编码中的数据安全 --- java篇
2.5.1 概述 Java 语言被设计为类型安全且易于使用。它提供了自动内存管理,垃圾收集和对数组 的范围检查。这减少了开发人员的整体编程负担,产生更少的细微编程错误,以及更安全, 更健壮的代码。
2.5.2 安全守则
- 严格控制访问级别,善用 private,protected,public 以及默认的访问级别。
- 代码中的加减密算法,推荐使用 JDK 默认提供的加解密算法或国密算法,禁止使用自 研加解密算法,秘钥和公钥要进行妥善保存,防止泄漏。
- SQL 语句禁止硬拼接,并推荐使用预编译的方式进行执行,以防止 SQL 注入。
- 对于文件传输场景要保证数据的完整性和一致性,建议使用 MD5 对文件的完整性进 行保证。
- 代码中禁止出现关键敏感信息和关键字,如“password”,“admin”,“root”等。
- 对于敏感关键信息在返回的时候如有要求需要进行脱敏处理。
- 对于外部参数统一做好参数校验,防止出现脏数据,错误数据和嗅探测试。
- 对于压缩文件禁止使用解压缩后进行读取,以防止出现深水炸弹问题。
- 对于 Web 测的请求,要启用 XSS 跨站脚本防御能力。
- 对于高敏感信息,建议在发送方和接收方都采用编解码,以防数据泄漏。
- 文件下载场景要防止越权下载。文件上传场景要对文件进行二次校验,防止前端 JS 失效和攻击场景。
- 敏感信息记录日志的时候,必须进行脱敏处理,理,以防数据泄漏。
- 关键敏感信息禁止明文存储,如用户密码。
关注公众号 soft张三丰