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