前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自从掌握了网络安全,工资直接翻了番,真香!

自从掌握了网络安全,工资直接翻了番,真香!

原创
作者头像
Java程序猿
发布2023-02-24 16:31:26
3930
发布2023-02-24 16:31:26
举报
文章被收录于专栏:Java核心技术Java核心技术

前言

早期的互联网 -- 1980年代,我们需要共享数据,传输数据;所传输或者共享的数据均为明文,随着互联网发展,安全成为了国家的一种战略资源。我们做的,比如编程,运维 -- 手工业安全属于一种科学研究--安全的算法都是需要以数学难题为基础来进行研究,每个国家都疯狂的去研究自己的加密算法,以及去破译别人的加密算法;美国--禁止出口长于256位的加密算法,DH算法 -- 密钥交换(交换对称密钥)。

为了保证数据安全,我们必须满足以下四点:

1、数据必须被加密;

2、完整性校验(哈希、单向加密、指纹);

3、源认证;

4、证书体系(openssl就是用来实现这个PKI证书体系架构的,它包含了前三点)

数据加密

数据必须被加密

1、对称密钥加密

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

优点:效率高

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

2、非对称密钥加密

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

  • A -- B
  • A就有自己的私钥      B就有A的公钥
  • B用A的公钥进行加密,然后把数据传给A,A用自己的私钥进行解密
  • B怎么拿到A的公钥:

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

缺点:效率低(非常慢)

非对称加密的三个作用:

密钥交换、证书签发、数据加密

流加密

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

块加密

代码语言:javascript
复制
0101 0100 1001 0101 1100 1001 0100 1010
有一个VI值
0000 0101 0001 1000
0101 0001 1000  1101

完整性校验

测试数据的完整性,保证数据没有被篡改

原理:获取B机器对数据的hash值,A机器对获取的数据在hash一次,A的hash值和B的hash值相互比较,相同说明数据完整,不同说明数据不可信。

  • hash的特点:不可逆性、雪崩效应
  • MAC信息认证代码
  • 随机生成密钥对,再将密钥对加上数据报文一起做HASH -- HMAC,这种方式即完成了源认证同时也完成了完整性校验

源认证

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

  • 数字签名 (数据加密(太慢,不适用)、密钥交换)
  • 再做密钥交换的时候,我们使用了公钥加密私钥解密
  • 数字签名 私钥加密 -- 公钥解密
  • 只有自己拥有自己的私钥,用自己的私钥对数据进行加密,对端,使用自己的公钥进行解密,如果能解密说明数据源是正确的;否则不可信任

证书机制 -- PKI

  • 怎么去创建CA服务器
  • 颁发根证书 -- 认证CA服务的有效性
  • 我们通过PKI(公共密钥基础设施)架构,来实现上面提到的三点认证机制

PKI包括:

  • CA -- 证书服务器CA服务器,用来做证书签发
  • RA -- 搭建CA的机构,注册证书的机构
  • CRL -- 证书吊销列表
  • PKI证书体系架构原理

openssl

  • openssl管理工具
  • 两个加密程序调用接口--库文件
  • dh  --  非对称密钥算法(完成密钥交换)

常见文件:

代码语言:javascript
复制
/etc/pki/tls
  • 1995年由网景公司开发 ssh1.0
  • 1996年ssh2.0
  • 1999年把ssh交给了stl协议
  • 网络安全学习笔记合集自取!
代码语言:javascript
复制
/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、客户:

代码语言:javascript
复制
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
代码语言:javascript
复制
curl http://localhost
curl https://localhost

需要搭建自己的CA服务器

服务:

代码语言:javascript
复制
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

客户:

代码语言:javascript
复制
(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

服务:

代码语言:javascript
复制
openssl ca -in http.csr -days 365 -out http.crt 
 有了证书以后:
scp httpd1.crt root@192.168.94.128:/root

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 为了保证数据安全,我们必须满足以下四点:
  • 数据加密
    • 1、对称密钥加密
      • 2、非对称密钥加密
      • 非对称加密的三个作用:
        • 流加密
          • 块加密
            • 完整性校验
              • 源认证
                • 证书机制 -- PKI
                  • PKI包括:
                    • openssl
                      • 常见文件:
                        • 以https为例
                          • 实验:如何去使用openssl工具搭建https访问站点
                            • 需要搭建自己的CA服务器
                              • 服务:
                                • 客户:
                                  • 服务:
                                  相关产品与服务
                                  SSL 证书
                                  腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档