PKI相关概念及OpenSSL

随着互联网的高速普及和发展,已经完全成为咱们生活中不可缺乏的一部分,它不只提高了咱们的工做效率,还成为人与人沟通必不可少的桥梁。众所周知,互联网这把双刃剑有时候也会给咱们带来一些麻烦,而这些麻烦可大可小,在数据为王的今天,面对各类安全隐患咱们应该如何应对呢?
算法

###############################################
数据库

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

相关文章
相关标签/搜索