安全与加密

简介:

  数据在传输的时候是以广播的方式一个一个路由的发送到明白主机,当有心之人想要截取我们的数据,只要在数据包的所走的路径上的任意一环上接入他们的设备就可以获取我们的通信信息。我们想保证自己通信的私密性,需要把我们通信的数据加密,传输给对方解密后才可以看到正常的通信信息。

  数据加密前我们要了解数据传输的流程:数据传输时分为4层的,应用层,传输层,网络层,网际层。其中下三层都是定义好的规范,我们的数据只好在应用层做手脚,这时我们需要一个软件在我们发送数据前把数据加密,然后进行数据包的封装传输。

既然已有数据加密的位置,这里需要定义加密的算法,数据加密分为三种:1对称加密,2单向加密,3非对称加密。既然是加密算法并且大家都要使用,那么就需要把算法公布出来(不公布算法直接发布软件让别人使用,这种行为想想都害怕,怎么保证发布软件的人不破解我们的数据)。

算法是公开的那么怎么保证数据加密,这就需要使用不同密钥,就好比锁家家都使用,但是只有我们自己的钥匙可以开自己家的们。

单向加密

  单向加密的作用是保证文件的独特性,有时我们传输一个文件我们不要求这个必须是保密的,但是我们要求这个文件必须和和发布者的一模一样。这时发布者只要把这个文件的单向加密后的数据放在网页上,我们下载完数据后也使用单向加密算一次,对比两次的单向加密的结果就可以了。单向加密其本质就是提取文件的特征码,源文件保持不变。一个例子:

1
2
   openssl dgst -md5 FILE  #把FILE文件进行单向加密
   md5sum FILE

  单向加密的详细文档可以查看man dgst。单向加密的一些常用选项:

  -md5#加密算法,加密算法还有sha1sha224sha256

  每个算法都有对应的工具sha1sumsha224sumsha256sum

对称加密

对称加密的意思是数据加密和解密使用同一个密钥,和我们平时使用的门锁类似,开门关门都使用同一把钥匙。实现的方法:

1
2
   opensslenc -e -des3 -a -salt - in  FILE -out FILE.S  #使用这个命令加密数据,是把FILE加密成FIEL.S,加密算法使用的是des3。命令执行后需要输入密码。
   opensslenc -d -des3 -a -salt - in  FILE.S -out FILE.S  #这个命令是把FILE.S文件解密为FILE。这时需要加密时输入的密码
1
2
3
4
5
6
7
8
     gpg -c FILE  #会生成FILE.gpg的加密文件
    gpg -o FILE -d FILE.gpg  #解密FILE.gpg文件为FILE
    对称加密的详细用法可以使用: man  enc查看,对称加密的一些常用的参数
    -e  #对文件进行加密
    -d  #对文件进行解密
    -des3  #使用des3算法,算法还有aes,blowfish,twofish
    -a  #base64的编码方式
    -salt  #这项是默认的,可以不写,加密文件的时候添加一些其它数据


非对称加密

  非对称加密是这一节的重点,非对称加密使用的是一对密钥:公钥和私钥。公钥放在互联网上,允许任何人下载使用;私钥只有一个主机持有。通过公钥加密的数据只有私钥可以解开,通过私钥加密的数据只有公钥可以解开。一个例子:

  使用非对称加密需要先生成私钥,然后从私钥中提取公钥。

1
2
opensslgenrsa -out FILE.PRIVE 2048  #生成一个2048为的私钥
opensslrsa - in  FILE.PRIVE -pubout -out FILE.PUB  #从私钥FILE.PRIVE中提取公钥FILE.PUB

以下这些内容根本不重要,我们在网上传送数据何时使用过加密算法,何时那么费劲过,加密文件最多也就是使用对称加密给文件加个密码。

1
2
3
4
5
6
7
8
9
10
        gpg--gen-key  #生成密钥对
        gpg--list  #查看公钥
        gpg-a - export  -o FILE.pubkey  #导出公钥到FILE.pubkey文件中
        gpg-- import  FILE.pubkey  #导入公钥
        gpg-e -r NAME FILE  #使用NAME公钥加密FILE文件
        gpg-d FILE  #解密FILE文件,解密需要有对应文件的私钥
        gpg--delect-keys NAME  #删除NAME公钥
        gpg--delect-secret-keys NAME  #删除NAME私钥
        gpg的详细用法 man  gpg
        genrsa的详细用法 man  genrsa

加密类型对比


加密速度

密钥数量

分发难度

密钥安全性

对称加密

难,方式很多,很混乱

安全机制很不健全

单向加密

最简单,官网公布

不需要安全性

非对称加密

中,通过CA分发

有健全的安全机制

加密类型对比表

传大量私密数据,我们一般采取三种加密方式联合验证的方式传输。假如ab发送数据,数据的格式如:keydate+sadate+pbkey

pb代表的是b的公钥,sa代表a的私钥,key代表对称加密的密钥。这个方法不仅保证加密的安全性,也保证了加密的速度,同时也知道这个数据时谁发送的。

非对称加密的密钥认证

  非对称加密的有一个重点,我们若想和某个主机b通信,必须要有他的公钥才可以发送私密消息,倘若一个网站直接拿出一个公钥说这是就是主机a的公钥,我们怎么证明这个公钥就是b的公钥。互联网上就建设了一些认证机构CA,一个提供服务的服务器要使用加密数据可以去CA机构认证,我们的操作系统会把这些机构认证的公钥下载并导入系统。

  有时公司构建一个内部使用的网站不对外提供服务,只是公司内部使用并且需要保证数据安全,这时我们可以建立一个CA给我们公司的网站提供服务。以下我们直接构建一个CA,并模拟一个CA颁发证书的流程。CA的配置文件shi/etc/pki/tls/openssl.cnf

1第一步我们要构建一个CA

1
2
3
4
5
6
7
8
9
10
11
12
cd  /etc/pki/CA  #切换到构建CA的目录
umask  066;openssl genrsa -outprivate /cakey .pem 2048)  #生成CA使用的2048位的私钥
touch  index.txt           #创建CA数据库
echo  01 > serial         #重置计数器,给证书编号使用,移除证书时也要使用这编号
openssl req -new -x509 -key private /cakey .pem-days 7300 -out cacert.pem  #CA生成自签名证书,输入这行命令会进入交互界面,交互界面内容如下:
Country Name (2 letter code) [XX]:CN             #这一步是输入国家
State or Province Name (full name)[]:beijing         #指定省份
Locality Name (eg, city) [DefaultCity]:haidian        #指定市
Organization Name (eg, company) [DefaultCompany Ltd]:oldking.org  #公司名称
Organizational Unit Name (eg, section)[]:directors             #部门名称
Common Name (eg, your name or your server'shostname) []:oldking.org   #服务器名字
Email Address []:oldking@gmail.com        #邮箱


2生成请求授权文件

 这是在其它主机执行的命令,也就是向CA申请证书文件的服务器执行的命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd  /etc/httpd/ssl/
umask  066;openssl genrsa -outhttpd.key 2048)     #给当前主机创建私钥密钥
openssl req -new -key httpd.key -out httpd.csr-days 730   #生成请求文件,这个同样会进入交互式模式:
Country Name (2 letter code) [XX]:CN
State or Province Name (full name)[]:beijing
Locality Name (eg, city) [DefaultCity]:haidian 
Organization Name (eg, company) [Default CompanyLtd]:oldking.org
Organizational Unit Name (eg, section)[]:IT
Common Name (eg, your name or your server'shostname) []:lw.org
Email Address []:
Please enter the following  'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:lw is good

3 CA授权

1
2
scp  httpd.csr 172.16.29.1: /root   #把请求文件发送到CA上
openssl ca - in  /root/httpd .csr -outcerts /httpd .crt -days 730   #这一步也要进入交互式模式,确认授权信息


4 CA吊销证书

1
2
3
4
5
openssl x509 - in  /PATH/FROM/CERT_FILE-noout  -serial -subject    #查找授权文件的信息
openssl ca -revoke  /etc/pki/CA/newcerts/  SERIAL.pem             #吊销指定证书
echo  01 >  /etc/pki/CA/crlnumber    #生成吊销证书的编号(第一次吊销一个证书时才需要执行)
openssl ca -gencrl -out /etc/pki/CA/crl/ca .crl      #更新证书吊销列表
openssl crl - in  /etc/pki/CA/crl/ca .crl -noout-text        #查看crl文件


总结

  这一节主要了解三个加密方式的简单用法,了解加密算法的优缺点。熟练CA授权证书的流程,并可以自建CA并给其他主机授权。





      本文转自Ailu0li 51CTO博客,原文链接http://blog.51cto.com/oldking/1882421 :,如需转载请自行联系原作者






相关文章
|
存储 安全 API
如何对 API 进行安全加密?
对API进行安全加密是保障数据安全和系统稳定的重要措施
1264 60
|
8月前
|
存储 安全 Cloud Native
云原生安全必修课:RDS透明加密(TDE)与数据脱敏联动实施方案
云原生环境下,数据泄露风险日益严峻,传统安全方案面临加密与脱敏割裂、保护不连续、权限控制粗放三大挑战。本方案融合TDE透明加密与动态数据脱敏技术,构建存储-传输-计算全链路防护体系,通过SQL级加密与角色化脱敏规则,实现细粒度数据保护。结合密钥管理、权限控制与多云适配,提升安全性与性能,广泛适用于金融、医疗等高安全要求场景。
303 3
|
7月前
|
安全 算法 量子技术
量子来了,DeFi慌了吗?——聊聊量子安全加密对去中心化金融的“革命冲击”
量子来了,DeFi慌了吗?——聊聊量子安全加密对去中心化金融的“革命冲击”
188 0
|
11月前
|
存储 安全 数据安全/隐私保护
Hyper V文件复制安全:加密与访问控制
在Hyper-V环境中,确保文件复制的安全性至关重要。主要措施包括:启用数据加密、使用HTTPS协议和磁盘加密技术(如BitLocker)保护数据传输和存储;通过身份验证、权限管理和审核日志控制访问;定期更新补丁、实施网络隔离及制定备份恢复策略。这些多层次的安全措施共同防止未经授权的访问和数据泄露,保障数据安全。
Hyper V文件复制安全:加密与访问控制
|
12月前
|
安全 算法 物联网
SSL/TLS:互联网通信的加密基石与安全实践
**简介:** 在数字化时代,互联网每天传输海量敏感数据,网络攻击频发。SSL/TLS协议作为网络安全的基石,通过加密技术确保数据安全传输。本文解析SSL/TLS的技术架构、密码学原理、应用场景及常见误区,探讨其在未来的发展趋势,强调持续演进以应对新型威胁的重要性。 SSL/TLS不仅保障Web安全,还广泛应用于API、邮件、物联网等领域,并遵循合规标准如PCI DSS和GDPR。
|
算法 安全 Java
即时通讯安全篇(一):正确地理解和使用Android端加密算法
本文主要讨论针对Android这样的移动端应用开发时,如何正确的理解目前常用的加密算法,为诸如即时通讯应用的实战开发,如何在合适的场景下选择适合的算法,提供一些参考。
381 0
|
存储 安全 前端开发
端到端加密:确保数据传输安全的最佳实践
【10月更文挑战第12天】端到端加密(E2EE)是确保数据传输安全的重要手段,通过加密技术保障数据在传输过程中的隐私与完整性,防止第三方窃听和篡改。本文介绍E2EE的工作原理、核心优势及实施步骤,并探讨其在即时通讯、文件共享和金融服务等领域的应用,强调了选择加密协议、密钥管理、数据加密及安全接口设计的重要性,旨在帮助企业和开发者有效保护用户数据,满足数据保护法规要求。
|
安全 数据安全/隐私保护 CDN
阿里云国际站:海外视频安全的DRM
阿里云国际站:海外视频安全的DRM加密
|
安全 数据安全/隐私保护 CDN
阿里云海外视频安全的DRM
阿里云海外视频安全的DRM加密