数据_____基础设施平台
以数据安全传输基础设施平台为例
正常两个APP数据进行传输过程:APP1到APP2,然后APP2加工后传输到APP1,这个过程被称为socket
有了安全传输平台后两个APP数据进行传输过程:APP1通过安全传输平台加密,然后传输到APP2,APP2得到的数据通过安全传输平台解密,加工,然后传回再传到APP1中。
这里涉及到了加密和解密的知识:
(1)加密三要素: a) 明文和密文 ;b) 算法 ;c) 密钥 Y = ax+b
三者之间的关系: 明文 用 密钥 通过 算法 加密 得到 密文。
(2)加密分类:
对称加密: 加密的密钥和解密的密钥 一致
优点: 加密速度快、加密效率高
缺点:加密强度低、安全性差。密钥的分发困难。
应用场景: 文件加密、数据加密
非对称加密:加密的密钥和解密的密钥 不一致 (公钥 私钥)
优点: 加密强度高、安全性好 密钥的分发容易。
缺点: 加密速度慢、加密效率低
应用场景:进行身份鉴别、密钥保护
假如说有数据加密的两端: 加密端 解密端,两端的密钥都是abc123,
现在想要abc123这个密钥在两端产生出来,通常的想法就是用网络将密钥从解密端传输到加密端
但是这样安全是没办法保证的,一旦过程中被窃取,就gg了,所以不能直接传输。
企业里常用的方法是:在解密端产生abc然后通过之前建立好的通路将abc传输给加密端,加密端产生123,生成密钥之前协商好一个算法,在生成密钥过程中算法固定,对于加密端来说,有了解密端给的abc 自己还产生了123 ,就可以通过算法生成密钥 a1b2c3,然后再把自己产生的123发一份给解密端,于是解密端的密钥也出来了a1b2c3 。---这个过程被称为socket 但是这里的socket和之前的socket可不一样。
为了解决密钥的分发困难的问题,可以在安全传输平台里加入server端 和 client端(当然了这只是一种称呼方式)
所谓的server端不过是一台PC主机上跑了服务器进程而已
而所谓的client端不过是同一台PC主机上跑了客户端进程而已
server端 产生一部分密钥abc client端产生一部分密钥123 , 然后进行socket通信 ,先要建立TCP/IP。于是两端就通过固定算法产生了一样的密钥,那么问题来了,产生的密钥肯定是要用的,那放哪呢?
如果存数据库,那每次加密都要去数据库里读取,效率不高。因为数据库在打开和关闭的时候效率最低。数据库检索的过程就是解析语句的过程还好,但是打开关闭数据库内存资源消耗最大,所以尽可能的减少数据库的多次访问。
所以可以用内存来存储密钥,调用密钥进行加密,server、client、APP1都是进程,进程与进程之间用什么传输>>>管道、信号、mmap、socket,这里用mmap 共享内存
那么应用程序如何使用呢?就是给安全传输平台安装两个函数接口,一个函数接口进行加密,一个进行解密
密钥不可能一直不变把,那么密钥怎么更新呢?客户端和服务器的密钥都应该是随机数,更换算法来生成新的随机数,老的密钥是要存贮的,铁定不能放到共享内存里,就要引入数据库,
引入数据库的目的都是为了数据持久化存储
引入共享内存的目的就是提高访问效率
-------------------------------------------------------------------------------------------------------------------
今天先到这