当前位置:网站首页>脱敏功能分享

脱敏功能分享

2020-12-06 09:02:09 osc_vpogdtu8

在这里插入图片描述

一、本次分享内容

脱敏概述

业务流程

硬件环境

技术链路

实现:代码和脚本

总结:面试点

二、概述

在这里插入图片描述

三、脱敏功能实现中的异常情况

1. 合规审查

在这里插入图片描述

在这里插入图片描述

2. 安全

3. 脱敏算法

  • 是否可逆:加密算法,散列算法
  • 破解概率
  • 脱敏后的值是否需要关联:长度

4. 客户体验:字段多,以什么方式设置脱敏规则

5. 数据量

  • 存储格式
  • 压缩格式
  • 跑批调度时间

6. 如何在hdfs之间传输数据,开启kerberos、sentry、https是否有影响。中断了咋办,权限怎么解决。

7. 脱敏后的数据加载到hive表,修复分区,远程调用

8. Spark中调用linux脚本:异步

9. 如何监控程序的运行,日志

四、业务流程

1. 脱敏规则配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



2. 脱敏规则执行

在这里插入图片描述

五、环境介绍

1. 生产环境

{1} 大数据集群:

  • 15台物理机,32核、320G内存
  • 2台应用虚拟机,2台oracle虚拟机(16核,64G内存)

{2} AI模型跑批、测试集群:

  • 5台物理机
  • 1亿条数据、170个字段、脱敏18个字段、118G、25min

{3} Spark2.2.0,cdh5.16.2

{4} 均开启kerberos和sentry

2. 演示环境

  • 大集群:4个虚拟机,开启kerberos、sentry
  • 小集群:1个虚拟机

六、演示功能、看代码 + 脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、技术链路

1. Kerberos

https://blog.csdn.net/qq_34224565/article/details/104193770

  • 工作模型
    在这里插入图片描述
  • Kerberos有认证有效期:过了有效期,需要重新认证

2. distcp

基于mapreduce的hdfs数据迁移工具

CDH官方文档关于distcp的部分
在这里插入图片描述

https://blog.csdn.net/qq_34224565/article/details/106407978

支持大文件的断点续传,通过设置-append参数

速度

权限

3. 脱敏算法

{1} 可恢复脱敏使用加密算法

  • 加密类型分为两种,对称加密与非对称加密,对称加密就是加解密用相同的秘钥。
  • 面试官主要问非对称加密,这种加密方式存在两个密钥,公钥和私钥,公钥加密的数据只能由私钥解密,私钥加密的数据也只能由公钥加密。
    • 公钥(正如其名,这是一个可以公开的密钥值),
    • 私钥(对外保密)。 A发送信息给B时,使用公共密钥加密信息。 一旦B收到A的加密信息,B则使用私人密钥破译信息密码(被B的公钥加密的信息,只有B的唯一的私钥可以解密,这样,就在技术上保证了这封信只有B才能解读——因为别人没有B的私钥)。
  • 使用私人密钥加密的信息只能使用公共密钥解密(这一功能应用与数字签名领域,我的私钥加密的数据,只有我的公钥可以解读,具体内容参考数字签名的信息)反之亦然,以确保您的信息安全。
  • 常用的算法
    • 对称:DES、3DES、TDEA、AES等
    • 非对称:RSA、Elgamal、背包算法等
    • 编码base64
      并不是加密,而是编码,在某些场合也用来实现加密的功能

{2} 不可恢复脱敏使用散列算法md5

  • md5是一种散列算法,不可逆。
    并不是用来加密的,一开始是用于对比两个食物是否为同一个,是一种签名,每个人的签名都应该是不一致的,因此需要对比两个对象时,可以不对比对象本身,而对比他们的签名(散列值)
    长度固定,32个字符

  • 它并不是绝对安全的,有一定的概率出现碰撞,也就是签名重复。毕竟数是无限的,而md5值是有限的。但在一般场景应用很广,比如密码脱敏、文件完整性的校验。
    在实际的项目开发中,用户的密码,一般会经过md5后存入数据库,验证的原理跟上文一致。楼上说的很对,一般存储密码是都会加salt后在计算md5值:md5(password + salt)或者多次md5:md5(md5(password)),这样其实可保证密码的安全性。

{3} 直接脱敏:返回固定的3个星号即可

4. 程序中调用linux脚本

{1} 执行方式

  • 同步
  • 异步

{2} 命令

  • distcp
  • msck repair table $tableName
    脱敏后的数据加载到hive表
    远程调用hive命令

5. 监控程序运行,获取程序运行状态

6. parquet

{1} 数据结构

在这里插入图片描述

{2} 特点,为啥要选用它

  • 支持嵌套数据结构
  • 更高的压缩比
    parquet的gzip的压缩比率最高,若不考虑备份可以达到27倍。spark parquet默认采用gzip压缩。
  • 列式存储
    1. 每一列中的数据类型相同,所以可以针对不同类型的列使用不同的编码和压缩方式,这样可以增大压缩效率。不压缩、gzip、snappy分别能达到11/27/19的压缩比
    2. 读取数据的时候可以把映射(Project)下推,和谓词下推,跳过不满足条件的列。
    3. 由于每一列的数据类型相同,可以使用更加适合CPU pipeline的编码方式,减小CPU的缓存失效
  • 自带schema、包含如何解析的信息
  • 完美支持hive、impala、pig、spark,spark默认的存储格式,parquet结合spark,可以完美实现分区过滤

{3} 同其他存储格式的区别

在这里插入图片描述

{4} 压缩格式之间的区别

在这里插入图片描述
在这里插入图片描述

总结:知识(面试)点

实际面试中,这一个题目实际上就能占用半小时左右的时间,如果就某个问题深入一下,估计一个小时就没了。所以大家要尽量把面试官带到自己的节奏,让他问你自己想让他问的问题。

1. 业务

{1} 脱敏规则,敏感级别

{2} 配置、执行

2. 技术

{1} 硬件环境:cdh

  • 节点数量、配置
  • 2个集群

{2} distcp

  • 断点续传
  • namenode挂掉
  • 速度
  • 权限:kerberos互信

{3} kerberos

  • 概念、工作模型
  • 使用:有效期,线程工厂和调度池的使用

{4} 脱敏算法

  • 跟脱敏规则结合、场景

{5} 编程相关:

  1. spark UDF、
  2. 脚本调用、
  3. hive数据加载

{6} parquet

  • 数据结构
  • 特点
  • 存储格式、压缩格式

版权声明
本文为[osc_vpogdtu8]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4381446/blog/4776581