数据加密 整理

来源:互联网 发布:淘宝客怎么做 编辑:程序博客网 时间:2024/04/29 19:13

密码算法

1. 数字签名

摘要算法,对任意长度的数据,计算出固定长度的16进制字符串。

MD5:128bit,32位十六进制

SHA1:160bit,40位十六进制

用途:校验数据的完整性;密码的传输和保存

2. 对称加密

加密算法,加密和解密时使用相同的密钥(或是使用两个可以简单地相互推算的密钥)

常见算法:DES、AES、3DES、Blowfish、IDEA、RC5、RC6。

优点:加密解密速度快,对资源消耗小
缺点:无法保证密钥传输过程的安全性

3.非对称加密

加密算法,加密解密由公钥+私钥完成.公钥是公开出去的,私钥是自己保存的。

常见算法:RSA
包含

KeyGen:密钥生成算法,PK,SK=KeyGen()

Encrypt:加密算法,X=Encrypt(PK,M)

Decrypt:解密算法,M=Decrypt(SK,X)

Sign:签名算法,sign= Sign(SK,M)。

Verify:验证算法,b= Verify(PK,sign,M)

注:PK:公钥。SK:密钥。M:明文。X:密文。sign:明文的签名

用途:

a:公钥加密,私钥解密。用于传输数据的加密。

b: 私钥签名,公钥验签。用于传输数据的完整性校验。

优点:加密解密使用不同的密钥

缺点:加密解密速度慢,资源消耗大

HTTP数据传递的加密

HTTP对称加密

1. 客户端生成对称密钥K2. 明文传输K到服务端3. 服务端接收到K,明文加密为密文返回4. 客户端通过K,将密文解密。

缺点:密钥传输过程安全性无法保证,会被嗅探。

HTTP非对称加密

1. 客户端随机生成非对称加密密钥PK1,SK12. 客户端把PK1明文发送给服务端。3. 服务端随机生成对称加密K,并用PK1加密后发送给客户端4. 客户端拿到通过PK1加密后的K,通过SK1解密后,获取到服务端发来的对称加密密钥。5. 双方完成对称加密密钥的交换,接下来就可以用 k 来进行数据加密传输。

缺点:缺乏身份认证机制,容易受到中间人攻击。

HTTPS传输

CA:证书管理机构。负责发放证书,确保证书申请者的身份和合法性等。

1. 客户端发出请求,告诉服务器支持的加密算法,SSL/TLS协议版本号等2. 服务端选出最终算法和协议回复客户端,并带上服务器的证书(包含PK)3. 客户端校验证书的合法性并取出服务器PK,使用最终算法生成对称密钥K,4. 客户端使用服务端的PK加密K后发送给服务端5. 服务端使用SK解密出对称密钥K,并校验数据的完整性。然后使用K加密数据返回给客户端6. 客户端使用K解密数据并校验数据的完整性,握手完毕7. 双方完成对称加密密钥的交换,接下来就可以用 k 来进行数据加密传输。

相关术语

SSL/TLS

SSL:(Secure Socket Layer,安全套接字层),网景公司开发,目前3.0版本

TLS:(Transport Layer Security,传输层安全协议),国际互联网工程任务组(IEEF)基于SSL3.0标准化,为SSL的继任者

作用:在传输层对数据进行加密,定义传输规则。

HTTPS

Http上加了SSL/TLS的外壳,用来保证数据传输的安全性。端口为443。

OpenSSL

实现了SSL/TLS协议的的包含加密算法,密码库等相关开发工具的软件开发包,

SSH

SSH,Secure Shell。IETF制定,应用层和传输层基础上的安全协议。端口号为22

作用:常用于远程登录和其他相关网络服务通讯安全通道的建立。说白了,也是验证客户端的合法性.

客户端与服务端为了安全做的校验操作基本跟SSL类似,对称与非对称and数字签名轮番上阵。
多了一个流程就是服务端验证客户端的合法性操作。

验证方式:

  1. 帐号密码登录 ssh seny@192.168.0.100

    a.客户端给服务器发送登录请求,服务器会返回其公钥b.[询问是否信任该服务器]客户端如果选择信任,则将公钥保存到本地known_hostsc.[输入密码登录],数据会被服务器的公钥加密传输d.服务端收到数据解密后验证密码成功,建立登录会话。

    缺点:每次登录需要输入口令,并且服务器的公钥的合法性不容易验证。(不像SSL一样有CA证书)

  2. 公钥登录 ssh 192.168.0.100

    a. 客户端[本地生成公钥私钥],将[PK上传到服务器端]保存到PK列表authorized_keysb. 客户端请求登录时带着PK请求服务器验证。服务器去authorized_keys查看是否匹配c. 如果有匹配的,则将随机生成的数据用该PK加密后发送给客户端。d. 客户端将收到的密文用SK解密后发送回服务器e. 服务器验证数据是否正确,如果正确则建立登录会话。

    缺点:登录验证时间较长。

    注:

        如果登录者的帐号与服务器帐号不一样,客户端可以在.ssh/config里进行配置    Host 192.168.0.179    user seny    另外要求authorized_keys的权限为600,.ssh为700

OpenSSH

SSH协议的开源实现工具包。跟OpenSSL角色类似,但是毛关系没有。

VPN(Virtual Private Network)

虚拟专用网络,在公网上通过VPN技术相关协议建立虚拟网络,同时加密压缩传输数据。

  1. VPN服务器公网IP为1.1.1.1,建立VPN网关192.168.0.1
  2. 客户端连接配置服务器公网IP,通过账号密码连接到VPN网关
  3. VPN网关给客户端分配ip 192.168.0.101.此时客户端就相当于处于VPN服务器所在的内网

该操作比较常见于员工出差通过VPN访问公司内网资源。

常见协议:PPTP,L2TP,IPSec等

VPN代理

单独配置VPN服务器,只是用来与访问VPN服务器所在的内网资源。如果配合代理转发,则可以将VPN服务器作为跳板访问外网。

在上面三个步骤基础上增加

4.配置IPv4转发,将访问VPN网关的数据转发到另外一个可以访问公网的网卡上。

此时,通过该VPN通道连接到VPN网关的客户端,不仅可以访问内网资源,还可以通过VPN服务器连接外网(FQ)。

Proxy

访问者与最终目标服务器之间的中转站。

常见协议:HTTP代理,sock5代理。

通讯流程:

1. 访问者将访问请求发送给本地的代理客户端2. 代理客户端将数据发送给远程的代理服务器3. 代理服务器将数据发送给最终访问服务器4. 代理服务器将返回的数据发送回代理客户端5. 代理客户端将数据返回给访问者

注:一般代理软件会增加PAC(Proxy auto-config)模式,会根据配置文件决定是否需要将此请求转发。

云主机

常见国外提供商:AWS,Azure,Linode,Digital Ocean。

技术改变世界。

原创粉丝点击