数据加密方案

1 什么是数据加密

1.1 数据加密的定义

数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加***将明文转变为密文,而解密则是通过解密算法和解***将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

1.2 加密方式分类

数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的**。其**的值是从大量的随机数中选取的。按加密算法分为对称**和非对称**两种。

1.2.1 对称**

加密和解密时使用同一个**,即同一个算法。如DES和MIT的Kerberos算法。单**是最简单方式,通信双方必须交换彼此**,当需给对方发信息时,用自己的加***进行加密,而在接收方收到数据后,用对方所给的**进行解密。当一个文本要加密传送时,该文本用**加密构成密文,密文在信道上传送,收到密文后用同一个**将密文解出来,形成普通文体供阅读。在对称**中,**的管理极为重要,一旦**丢失,密文将无密可保。这种方式在与多方通信时因为需要保存很多**而变得很复杂,而且**本身的安全就是一个问题。常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
数据加密方案

1.2.2 非对称**

非对称**由于两个**(加***和解***)各不相同,因而可以将一个**公开,而将另一个**保密,同样可以起到加密的作用。在这种编码过程中,一个密码用来加密消息,而另一个密码用来解密消息。在两个**中有一种关系,通常是数学关系。公钥和私钥都是一组十分长的、数字上相关的素数(是另一个大数字的因数)。有一个**不足以翻译出消息,因为用一个**加密的消息只能用另一个**才能解密。每个用户可以得到唯一的一对**,一个是公开的,另一个是保密的。公共**保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全保密的地方。任何人都可以有你的公钥,但是只有你一个人能有你的私钥。它的工作过程是:“你要我听你的吗?除非你用我的公钥加密该消息,我就可以听你的,因为我知道没有别人在偷听。只有我的私钥(其他人没有)才能解密该消息,所以我知道没有人能读到这个消息。我不必担心大家都有我的公钥,因为它不能用来解密该消息”。 常用的算法有: RSA、DSA、ECDSA等。
数据加密方案

公开**的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开**的人都可以生成和发送报文。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题。 数字签名一般采用非对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开**对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。当然,签名也可以采用多种方式,例如,将签名附在明文之后。数字签名普遍用于银行、电子贸易等。
数字签名不同于手写签字:数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。

值得注意的是,能否切实有效地发挥加密机制的作用,关键的问题在于**的管理,包括**的生存、分发、安装、保管、使用以及作废全过程。

1.3 对称和非对称加密的区别

对称加密算法

  • 优点: 算法公开、计算量小、加密速度快、加密效率高
  • 缺点: 在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,**管理成为双方的负担。

非对称加密算法

  • 优点: 安全
  • 缺点: 速度较慢

2 加密方案原则

2.1 接口安全要求

  • 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口)
  • 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)
  • 3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)
  • 4.防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等)

2.2 设计原则

  • 1.轻量级
  • 2.适合于异构系统(跨操作系统、多语言简易实现)
  • 3.易于开发
  • 4.易于测试
  • 5.易于部署
  • 6.满足接口安全需求(满足接口安全1,2,3),无过度设计。

2.3 适用范围

  • 1.所有写操作接口(增、删、改 操作)
  • 2.非公开的读接口(如:涉密/敏感/隐私 等信息)

3 数据加密解决方案

数据加密方案

3.1 客户端

客户端使用RSA + AES对重要信息进行加密。客户端加密过程主要分为以下三个步骤:

  • 1.客户端随机产生AES的**;
  • 2.对身份证信息(重要信息)进行AES加密;
  • 3.通过使用RSA对AES**进行公钥加密。

这样在传输的过程中,即时加密后的AES**被别人截取,对其也无济于事,因为他并不知道RSA的私钥,无法解密得到原本的AES**,就无法解密用AES加密后的重要信息。

3.2 服务端

服务端使用RSA + AES对重要信息进行解密。服务端解密过程主要分为以下两个步骤:

  • 1.对加密后的AES**进行RSA私钥解密,拿到**原文;
  • 2.对加密后的重要信息进行AES解密,拿到原始内容。