--- 数据安全篇 

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 系统安全架构

DFX 设计_数据

2.3 数据安全服务器机制

DFX 设计_数据安全_02

2.4 数据安全策略

DFX 设计_数据安全_03

  1. 数据安全策略从技术和规则两个方面加以控制,大数据底层技术所不支持的安全机制, 则需要集成其他技术框架进行解决。数据安全策略是基于访问控制策略实现的,是基 本安全性的核心。它包括了身份认证、访问授权、机密性、完整性、安全审计、高可 用性等方面,主要是从与帐号相关的方面来维护数据库的安全性,一些数据验证、权 限、加密以及相应数据操作日志记录。

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 安全守则 

  1. 严格控制访问级别,善用 private,protected,public 以及默认的访问级别。
  2. 代码中的加减密算法,推荐使用 JDK 默认提供的加解密算法或国密算法,禁止使用自 研加解密算法,秘钥和公钥要进行妥善保存,防止泄漏。
  3. SQL 语句禁止硬拼接,并推荐使用预编译的方式进行执行,以防止 SQL 注入。
  4. 对于文件传输场景要保证数据的完整性和一致性,建议使用 MD5 对文件的完整性进 行保证。
  5. 代码中禁止出现关键敏感信息和关键字,如“password”,“admin”,“root”等。
  6. 对于敏感关键信息在返回的时候如有要求需要进行脱敏处理。
  7. 对于外部参数统一做好参数校验,防止出现脏数据,错误数据和嗅探测试。
  8. 对于压缩文件禁止使用解压缩后进行读取,以防止出现深水炸弹问题。
  9. 对于 Web 测的请求,要启用 XSS 跨站脚本防御能力。
  10. 对于高敏感信息,建议在发送方和接收方都采用编解码,以防数据泄漏。
  11. 文件下载场景要防止越权下载。文件上传场景要对文件进行二次校验,防止前端 JS 失效和攻击场景。
  12. 敏感信息记录日志的时候,必须进行脱敏处理,理,以防数据泄漏。
  13. 关键敏感信息禁止明文存储,如用户密码。



关注公众号 soft张三丰 

DFX 设计_数据安全_04