Linux操作系统--初级--网络安全基础

背景

  早期的互联网 -- 1980年代,我们需要共享数据,传输数据;所传输或者共享的数据均为明文

  随着互联网发展,安全成为了国家的一种战略资源

  我们做的,比如编程,运维 -- 手工业

  安全属于一种科学研究--安全的算法都是需要以数学难题为基础来进行研究

  每个国家都疯狂的去研究自己的加密算法,以及去破译别人的加密算法;美国--禁止出口长于256位的加密算法

  DH算法 -- 密钥交换(交换对称密钥)

为了保证数据安全,我们必须满足以下四点:1、数据必须被加密;2、完整性校验(哈希、单向加密、指纹);3、源认证;4、证书体系(openssl就是用来实现这个PKI证书体系架构的,它包含了前三点)

1、数据加密

  数据必须被加密

  1、对称密钥加密

    同一个密钥进行加密,同一个密钥进行解密

    优点:效率高

    缺点:密钥维护非常困难;密钥交换非常困难;

  2、非对称密钥加密

    密钥对(公钥加密,私钥解密;私钥加密,公钥解密)

    A -- B

    A就有自己的私钥      B就有A的公钥

      B用A的公钥进行加密,然后把数据传给A,A用自己的私钥进行解密

      B怎么拿到A的公钥:

    优点:维护密钥方便,只需维护自己的私钥;数据比较安全

    缺点:效率低(非常慢)

    非对称加密的三个作用:密钥交换、证书签发、数据加密

  1、流加密

    异或(相同为0,不同为1)

  2、块加密

    0101 0100 1001 0101 1100 1001 0100 1010

    有一个VI值

    0000 0101 0001 1000

    0101 0001 1000  1101

2、完整性校验

  

  测试数据的完整性,保证数据没有被篡改
       原理:获取B机器对数据的hash值,A机器对获取的数据在hash一次,A的hash值和B的hash值相互比较,相同说明数据完整,不同说明数据不可信。
       hash的特点:不可逆性、雪崩效应

  MAC信息认证代码

    随机生成密钥对,再将密钥对加上数据报文一起做HASH -- HMAC

    这种方式即完成了源认证同时也完成了完整性校验

3、源认证

  非对称密钥的另外一个作用:

    数字签名 (数据加密(太慢,不适用)、密钥交换)

    再做密钥交换的时候,我们使用了公钥加密私钥解密

    数字签名 私钥加密 -- 公钥解密

      只有自己拥有自己的私钥,用自己的私钥对数据进行加密

      对端,使用自己的公钥进行解密,如果能解密说明数据源是正确的;否则不可信任

4、证书机制 -- PKI

  怎么去创建CA服务器

  颁发根证书 -- 认证CA服务的有效性

  

  我们通过PKI(公共密钥基础设施)架构,来实现上面提到的三点认证机制

  PKI包括:

    CA -- 证书服务器CA服务器,用来做证书签发

    RA -- 搭建CA的机构,注册证书的机构

    CRL -- 证书吊销列表

  PKI证书体系架构原理

  

   openssl

    openssl管理工具

    两个加密程序调用接口--库文件

    dh  --  非对称密钥算法(完成密钥交换)

  常见文件:

  /etc/pki/tls

    1995年由网景公司开发 ssh1.0

    1996年        ssh2.0

    1999年把ssh交给了stl协议

  /etc/pki/tls/openssl.cnf -- 默认主配置文件

  /usr/bin/openssl-- 命令文件

  /etc/pki/CA -- 证书服务器的证书服务根目录

  /etc/pki/CA/certs-- 证书存放目录

  /etc/pki/CA/crl

  /etc/pki/CA/private

  index.txt //证书索引信息文件

  serial // 证书序列号

  cakey.pem //ca证书申请文件

  cacert.pem //ca根证书文件

  ssl、tls协议连接过程

  以https为例

    

     

 实验:如何去使用openssl工具搭建https访问站点

  1、

客户:

yum install httpd -y

iptables -t filter -A INPUT -d 192.168.94.128 -p tcp --dport 80 -j ACCEPT

iptables -L -t --line-number -v -Z

/etc/init.d/httpd start

echo abc >/var/www/html/index.html

iptables -t filter -I INPUT 5 -d 192.168.94.128 -p tcp --dport 80 -j ACCEPT

 curl http://localhost

curl https://localhost

需要搭建自己的CA服务器

服务:

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial

生成根证书

先修改host文件

hostname ca.local

logout

生成这个文件cakey.pem

(umask 0777; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

openssl的命令使用可是

  openssl 子命令

  openssl help

  man 子命令 //查看到子命令的帮助信息

用文件生成证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

就会进入交互界面

CN

SD

WF

DF

DF

ca.local

admin@df.com

cd /etc/pki/CA/

ls

客户:

(umask 0777; openssl genrsa -out http.key 2048)

openssl req -new -key http.key -days 365 -out http.csr 

CN

SD

WF

DF

DF

www

admin@df.com

scp http.csr root@192.168.94.130:/root

服务:

 openssl ca -in http.csr -days 365 -out http.crt 

 有了证书以后:

scp httpd1.crt root@192.168.94.128:/root

客户:

原文地址:https://www.cnblogs.com/lyali/p/11447843.html