A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 武汉-就业部 于 2017-9-10 09:27 编辑

密码算法

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. 客户端生成对称密钥K
        2. 明文传输K到服务端
        3. 服务端接收到K,明文加密为密文返回
        4. 客户端通过K,将密文解密。

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

HTTP非对称加密
        
        1. 客户端随机生成非对称加密密钥PK1,SK1
        2. 客户端把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_hosts
        
                c.[输入密码登录],数据会被服务器的公钥加密传输
        
                d.服务端收到数据解密后验证密码成功,建立登录会话。
        
        缺点:每次登录需要输入口令,并且服务器的公钥的合法性不容易验证。(不像SSL一样有CA证书)

2. 公钥登录        

                   ssh 192.168.0.100

                a. 客户端[本地生成公钥私钥],将[PK上传到服务器端]保存到PK列表authorized_keys
               
                b. 客户端请求登录时带着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。












1 个回复

倒序浏览
666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马