1.基本介绍
1.1 未加密传输的安全弊端
- 如果在网络传输中没有加密,就是以明文传输。传输的数据可以被抓包软件直接截获,并能读取里面的数据。
1.2 加密基本原理
- 对称加密:对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。常见的对称加密算法:DES,AES,3DES等等。
- 非对称加密:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。 常见的非对称加密算法:RSA,ECC
- 公钥私钥:公钥和私密要配对。公钥加密的数据用私钥来解密,私钥加密的数据用公钥来解密。
1.3 数字证书
- 当公钥被替换成别的公钥之后,替换前对应的私钥就不能解密了,只能用替换后对应的私钥解密,但是并不能判断公钥是否被替换,所以引入数据证书的概念。数字证书由权威机构发布,所以无法伪造。并且数字证书里面包含公钥和对应所有者信息,所以就可以判断公钥是否属于自己。
1.4 SSL协议
- 网络传输中有很多加密技术,有DES、AES、RSA、SSL等,我们这里采用OpenSSL的开源加密算法。
- SSL协议位于TCP/IP协议与各种应用层协议之间,利用数据加密技术,可以确保数据在网络上传输过程中不会被截取及窃听。
- SSL协议可分为两层:
- SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
- SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
- OpenSSL:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
2.OpenSSL移植
- 移植OpenSSL库到开发板
2.1 解压
- tar zxvf openssl-1.0.0s.tar.gz
2.2 配置
- mkdir _install
- ./config no-asm shared –prefix=${PWD}/_install (no-asm表示在编译过程中不要使用汇编代码加快编译过程)
2.3 修改Makefile
- CC = arm-linux-gcc
- AR = arm-linux-ar
- RANLIB = arm-linux-ranlib