随着互联网的高速普及和发展,已经完全成为咱们生活中不可缺乏的一部分,它不只提高了咱们的工做效率,还成为人与人沟通必不可少的桥梁。众所周知,互联网这把双刃剑有时候也会给咱们带来一些麻烦,而这些麻烦可大可小,在数据为王的今天,面对各类安全隐患咱们应该如何应对呢?
算法
###############################################
数据库
1、数据传输过程当中的安全隐患vim
2、如何解决数据传输过程当中的安全性安全
3、https保证数据安全传输bash
4、OpenSSL简介服务器
5、openssl实现私有CA网络
6、OpenSSH服务 ###############################################ssh
1、数据传输过程当中的安全隐患tcp
机密性ide
使用ftp、http、smtp、telnet这些协议进行传输的数据是明文,任何人监听便可截获数据,如图:
完整性
数据传输过程当中别人篡改,如图:
身份验证
监听者假装PAUL身份与KEBO通讯,如图:
2、如何解决数据传输过程当中的安全性
机密性
使用一种转换规则将明文转换为密文传输,接收方使用一样规则转换将密文转换为明文,如图:
转换算法:密钥(就算对方知道转换算法,不知道秘钥依然没法还原plaintext)
对称加密:加解密同一个密匙,算法计算速度快,安全性彻底依赖于密匙,
缺点:通讯对象不少的状况下,没法有效的对密钥进行管理。
优势:算法计算速度快。
常见类型有:
DES Data Encrption Standard 56bit(计算机暴力破解)
3DES 三次DES(当然能够解决一部分现有问题)
AES 高级加密标准 128bit 密钥
AES192 AES256 AES512 越长速度越慢,安全性越高
Blowfish
大小相同的数据库(再进行加密)
完整性
发送方提取元数据特征码,而且附加在元数据后面,接收方接收到数据以后进行一样的操做提取特征码,对比两个特征是否一致,来判断传输过程当中元数据是否被修改如图:
单向加密算法的特色:
一、输入同样,输出必然相同
二、雪崩效应:输入的微小改变,将会引发结果的巨大改变
三、定长输出:不管原始数据多大,结果大小都是相同的(定长输出)
四、不可逆:没法根据特征码还原源数据
常见类型有:
MD4
MD5
SHA1
SHA192 SHA256 SHA384 输出长度
CRC-32循环冗余校验码校验用的,输入不同,有可能输出同样
身份验证
非对称加密算法中,发送方用本身的私钥加密数据,能够实现身份验证,如图:
非对称加密算法的特色
一、公钥来自于私,钥公钥加密私钥解密。
二、拿别人公钥成功解密可证实这我的的身份,由于只有加密者的公钥能够解密。
三、发送方用本身的私钥加密数据,能够实现身份验证
缺点:公钥加密算法不多用来加密数据,速度太慢,一般用来实现身份认证。
优势:有效解决的对密钥管理的问题。
证书颁发机构如何签署证书
首先CA对证书申请者的姓名、地址、公钥等相关数据提取特征码,以后CA用本身的私钥对这段特征码进行加密,这段加密的特征码又称数字签名,申请者数据和CA的数据签名共同组成证书。
证书如何确保公钥的可靠性:
一、接收方有CA的证书,所以能够获得可靠的CA公钥。
二、接收方使用CA公钥解密发送方证书中的特征码。
三、若是能够机密,则能够确认此证书确实是CA签署的(信任具备传递性)。
四、接收方对证书中数据部分提取特征码,对比与机密特征码是否一致。
五、若是一致则说明姓名、地址、公钥等信息彻底可靠。
机密性+完整性+身份验证
PAUL收到数据,用对称秘钥机密实现机密性,用KOBE公钥机密特征码实现其身份验证,对元数据从新提取特征码,对比机密解密出来的特征码是否一致实现完整性。
注释:以上全部内容称为PKI,目前流行的TLS/SSL均使用 x509证书格式。
PKI的第二种实现叫作OpenGPG,也是一种证书管理机制。
3、https保证数据安全传输
Secure Socket Layer
它是https得以实现的一个基础,它自己只是一个库,应用层和传输层之间,当应用层(http)数据到达传输层(tcp)以前,调用SSL加密数据,今后http摇身一变成为https,smtp成为smtps,众多明文协议均可以经过调用SSL实现密文传输,可是https和http仍然是两种彻底不一样的协调,虽然他们上层的功能是同样的。
https通讯过程
4、OpenSSL简介
为网络通讯提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、经常使用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,OpenSSL是SSL的开源实现。
文件结构
libcrpto 通用加密库
libssl TLS/SSL的实现
基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
opensll 多用途命令行工具
实现私有证书颁发机
加解密数据
提取文件特征码
生成用户的密码串
5、openssl实现私有CA
建立CA
一、修改配置文件vim /etc/pki/tls/openssl.cnf 如图:
三、生成自签证书
三、准备目录
mkdir certs newcerts crl touch index.txt touch serial echo 01 > serial
客户端证书颁发请求
每一种应用都有本身的证书,刚才的秘钥是CA用的,此处用同一台机器模拟客户端,如图:
CA签署证书
一、签署此证书后传送给客户端
查看数据库是否签署成功
6、OpenSSH服务
openssh是telnet的开源密文实现,telnet为TCP/23号端口,ssh为TCP/22号端口,OpenSSH即便软件,又是协议,常见版本有sshv一、sshv1,因v1没法有效拒绝中间人***,因此目前v2版较为常见。
ssh --> telnet如何实现认证加密
一、基于口令的认证(登陆普通用户,再su到root)
二、基于秘钥的认证
配置文件
客户端 ssh /etc/ssh/ssh_config
服务器 sshd /etc/ssh/sshd_config
基于口令的认证
远程登陆
以非登录的方式执行远程主机命令
基于秘钥的认证
一、生成一对密钥
命令默认建立路径和文件
二、使用ssh-copy-id 工具公钥传输至服务器端某用户的家目录下的.ssh/authorized_keys文件中,再次登陆无需密码。
三、使用scp手动完成复制公钥至目标主机操做,在没有ssh-copy-id命令状况下使用,如图:
总结:
一、密码应该常常换;切足够复杂
二、使用非默认端口
三、限制登陆客户地址
四、禁止管理员直接登陆
五、使用基于秘钥的认证
六、仅容许有限用户登录
七、禁止使用版本1