课程名称:课程版本(301)+ 3.8.2 TLS and TDE(TLS 和 TDE)
学习时长:
18分钟
课程收获:
掌握动态加密和静态加密应对的使用场景和配置过程
课程内容:
-
数据泄漏的风险
- 中间人攻击
- 物理拆除磁盘
-
tidb加密
- 传输层加密
- 静态加密
TLS
- 传输层安全协议 (Transport layer Security) 简称 SSL
- TLS 连接属性
- secure 互信的安全连接
- authenticated 互信身份的机制
- reliable 更可靠的网络连接
证书
由可信的证书机构颁发 简称 CA
- CA 证书
- 密钥
- 密钥对应CA发布的证书
密钥证书生成的两种方式
- CA
- SSL 生成自签名的证书
TLS认证配置过程
Config tidb
[Security]
ssl-cert = “/path/to/tidb-cert.pem”
ssl-key = “/path/to/tidb-key.pem”
mysql 客户端的版本大于等于 5.7 以上都可以支持使用安全连接到 tidb
验证 cecure 的方式,在客户端连接成功后,命令行中
- \s
- show status like ‘%Ssl%’
通过使用CA 证书,来规避中间人攻击的场景
连接时,启用SSL 的CA证书信息
mysql -h host -p port -u username --ssl -ssl-ca=/path/to/ca-cert.pem
客户端需要使用 CA证书认证,则必须具备
- version >= 5.7.3
- –ssl
旧版本的客户端对CA支持不够完善,即使使用了SSL,也会被服务端关闭连接
开启客户端认证,避免中间人攻击
config tidb
[security]
ssl-cert = “/path/to/tidb-cert.pem”
ssl-key = “/path/to/tidb-key.pem”
ssl-ca = “/path/to/ca-cert.pem”
client
mysql -h host -p port -u username --ssl-cert = “/path/to/client-cert.pem” --ssl-key = “/path/to/client-key.pem”
tidb 组件之间也需要配置 mtls 的加密连接
以为来保证各个连接之间都是安全的
证书更新不需要重启服务器
直接按照原来的路径,替换原来的证书
通过生成的证书时,需要设置 Common Name(CN),来限制连接
以此来杜绝 Client 可以直接连接其他组件的场景
tikv
- 静态加密
- encryption-at - rest ,对磁盘上的数据进行加密
- transparent Data Encryption (TDE)
- 不对网络或者内存中的数据进行加密
- 文件系统,云场景都可以提供不同的加密方式
- TIDB 只支持对所有的数据进行加密啊,不支持对单独的列进行加密
- tikv 加密
- 配置密钥信息
- [security.encryption] aes128-ctr , aes192-ctr , aes256-ctr , plaintext
- data-encryption-method = aes 128-ctr
- data-key-rotation-period = 7d
- [security.encryption.master-key]
- type = kms
- key-id = XXX
- region = ???
- [security.encryption] aes128-ctr , aes192-ctr , aes256-ctr , plaintext
- 配置主要key
- KMS key-mangagement service
- use special hardware(HSM) to store master key
- the master key 不对硬件之外暴露
- 生产环境推荐 kms 的 master key
- 了解工作过程
- 信封加密
- master key
- aws kms key
- userd to encrypt data keys 生成 datakeys
- 每个用户使用不同的度量(manually rotated)
- Data key
- 使用随机字符生成
- 使用data key 加密文件信息
- 自动滚动
- rotate master key
- 发现密码泄露后,自动滚动采用新的密钥
- 其他的注意事项
- 内存中的数据均是未加密的
- PD不支持 静态加密
- Tiflash 也不支持静态数据加密
- 日志信息中也有可能是明文的
- 加密信息路径是明文的,并且不能更改
- 配置密钥信息