背景:有一个数据库表里面有很多敏感数据,实验室老师希望对文本进行加密存储,有一个程序(分析程序)专门是负责写入敏感数据,还有另外一个程序( web 后端)是负责读。
要求:加密粒度要细,最好能做好不同等级的敏感数据才用不同密钥、不同加密算法进行加密,密钥必须存在实验室的服务器上,不能借助第三方
已有方案:
1. mysql 的表空间加密,但是自带的插件免费是全部一起加密,密钥也只有一个存在本地文件里,不知道有没有开源实现能存在远程服务器里?
2. 专门写一个加密解密的服务 api ,修改读写程序,写:每条数据都找这个 api 加密,然后自己再存数据库;读:读出来再解密。
但是方案 2 的话除开性能差很蠢,还有一些问题:
a. 怎么认证 api 调用者呢? user pass 吗?老师又希望做权限分区感觉好麻烦,而且 web 后端已经做了权限管理,老师又希望对每个访问这个数据库的程序 /人都做访问控制
b. 密钥怎么管理?不知道有没有现成的开源方案…