‘壹’ 保护数据在传输过程中安全的唯一实用的方法是什么
是数据加密。
数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,它是数据保护在技术上最重要的防线。
数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输过程中的保密性。
它通过变换和置换等各种方法将被保护信息置换成密文,然后再进行信息的存储或传输,即使加密信息在存储或者传输过程为非授权人员所获得,也可以保证这些信息不为其认知,从而达到保护信息的目的。该方法的保密性直接取决于所采用的密码算法和密钥长度。
数据加密的术语有:
1、明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;
2、密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文不应为无密钥的用户理解,用于数据的存储以及传输;
3、密钥,是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;
4、加密,把明文转换为密文的过程;
5、加密算法,加密所采用的变换方法;
6、解密,对密文实施与加密相逆的变换,从而获得明文的过程;
7、解密算法,解密所采用的变换方法。
数据加密方法:
1、异或
异或算法的好处便是数A和数B异或后,把结果再和数A异或便可得到B,或者和数B异或可重新得到数据A。利用异或的这个特性可简单实现数据的加密和解密算法。
2、构建加密机加密
加密机实际上便是异或中的其中一个数,可以根据自己的需要随意构建。
‘贰’ 哪一种存储服务提供了对传输的数据和静态数据的加密服务
主要有两种方式:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
一般的数据加密可以在通信的三个层次来实现:链路加密、节点加密和端到端加密。(3)
链路加密
对于在两个网络节点间的某一次通信链路,链路加密能为网上传输的数据提供安全证。对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个节点对接收到消息进行解密,然后先使用下一个链路的密钥对消息进行加密,再进行传输。在到达目的地之前,一条消息可能要经过许多通信链路的传输。
由于在每一个中间传输节点消息均被解密后重新进行加密,因此,包括路由信息在内的链路上的所有数据均以密文形式出现。这样,链路加密就掩盖了被传输消息的源点与终点。由于填充技术的使用以及填充字符在不需要传输数据的情况下就可以进行加密,这使得消息的频率和长度特性得以掩盖,从而可以防止对通信业务进行分析。
尽管链路加密在计算机网络环境中使用得相当普遍,但它并非没有问题。链路加密通常用在点对点的同步或异步线路上,它要求先对在链路两端的加密设备进行同步,然后使用一种链模式对链路上传输的数据进行加密。这就给网络的性能和可管理性带来了副作用。
在线路/信号经常不通的海外或卫星网络中,链路上的加密设备需要频繁地进行同步,带来的后果是数据丢失或重传。另一方面,即使仅一小部分数据需要进行加密,也会使得所有传输数据被加密。
在一个网络节点,链路加密仅在通信链路上提供安全性,消息以明文形式存在,因此所有节点在物理上必须是安全的,否则就会泄漏明文内容。然而保证每一个节点的安全性需要较高的费用,为每一个节点提供加密硬件设备和一个安全的物理环境所需要的费用由以下几部分组成:保护节点物理安全的雇员开销,为确保安全策略和程序的正确执行而进行审计时的费用,以及为防止安全性被破坏时带来损失而参加保险的费用。
在传统的加密算法中,用于解密消息的密钥与用于加密的密钥是相同的,该密钥必须被秘密保存,并按一定规则进行变化。这样,密钥分配在链路加密系统中就成了一个问题,因为每一个节点必须存储与其相连接的所有链路的加密密钥,这就需要对密钥进行物理传送或者建立专用网络设施。而网络节点地理分布的广阔性使得这一过程变得复杂,同时增加了密钥连续分配时的费用。
节点加密
尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:两者均在通信链路上为传输的消息提供安全性;都在中间节点先对消息进行解密,然后进行加密。因为要对所有传输的数据进行加密,所以加密过程对用户是透明的。
然而,与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。因此这种方法对于防止攻击者分析通信业务是脆弱的。
端到端加密
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密,消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
端到端加密系统的价格便宜些,并且与链路加密和节点加密相比更可靠,更容易设计、实现和维护。端到端加密还避免了其它加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。此外,从用户对安全需求的直觉上讲,端到端加密更自然些。单个用户可能会选用这种加密方法,以便不影响网络上的其他用户,此方法只需要源和目的节点是保密的即可。
端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。
‘叁’ 移动端与后端数据传输加密
对称加密:对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高
非对称加密:非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
方案:将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
方案的流程介绍:
1、APP客户端需要和服务器进行数据交互,它的APP首先生成了一个随机数作为对称密钥(比如AES加密的密钥)。
2、APP客户端向服务器请求公钥
3、服务器将公钥发送给APP客户端
4、APP客户端使用服务器的公钥将自己的对称密钥(比如AES加密的密钥)加密
5、APP客户端将加密后的对称密钥发送给服务器
6、服务器使用私钥解密得到APP客户端的对称密钥
7、APP客户端与服务器可以使用对称密钥来对沟通的内容进行加密与解密了
App端和后台数据加密分两部分:
1.数据传输的时候加密 (一般采用Https协议在传输层加密)
2.数据本身的加密 (使用各种加密算法)
RSA非对称加密:公钥加密,私钥解密。公钥私钥由服务端生成,公钥放在客户端私密保存,私钥放在服务端。安全性高,运算速度慢
AES对成加密:运算速度快切安全性高
上面网络通信过程是安全的,可以保证通信数据即使被截取了,也无法获得任何有效信息;即使被篡改了,也无法被客户端和服务端验证通过。
具体可参考的博文:(记得后续实践哦)
https://blog.csdn.net/wangjiang_qianmo/article/details/88073848?utm_medium=distribute.pc_relevant.none-task-blog--1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog--1.channel_param