HTTPS 协议

Posted 吃饭睡觉打豆豆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS 协议相关的知识,希望对你有一定的参考价值。

 

 

前三步是建立TCP连接(三次握手)

1.  建立连接后客户端向服务器发起数字证书请求,而后服务器下发数字证书,并确认使用非对称加密算法种类

2.  得到服务器下发的数字证书后,客户端会向第三方认证机构认证此证书是否有效

3.  客户端本地随机生成一组非对称加密密钥,同时将密钥本身通过公钥(数字证书中包含)加密后传给服务端

4.  服务端拿到密钥后就可以与客户端进行加密通讯

 

对称加密算法

  • DES Data encrption  standard , 56 bits
  • 3DES  使用DES加密三次
  • AES  advanced encrption standard 
    • AES192
    • AES256
    • AES512
  • Blowfish

 

单向加密

  • MD4
  • MD5
  • SHA1
  • SHA192,SHA256
  • CRC-32

 

公钥加密

  身份认证(数字签名)--主要

  数据加密

  • RSA
  • DSA

 

 

普通的模型

  应用层(HTTP 、FTP 、SMTP 、TELNET)封装   --   传输层封装(TCP、UDP)  --   网络层封装(IP包)

安全模型

  应用层(HTTP 、FTP 、SMTP 、TELNET)封装    --     调用SSL库对数据进行加密   --  传输层封装(TCP、UDP)  --   网络层封装(IP包)

SSL : Secure Socket Layer  

TLS : Transport  Layer Security  (国际标准化组织)

 

OpenSSL :SSL开源实现(加密工具)

  libcrypto :加密库

  linssl:TLS/SSL实现

  openssl:多用途命令行工具,私有证书颁发

 

命令:openssl ?  可以列出openssh支持加密类型

root@ubuntu:/etc# openssl ?
openssl:Error: \'?\' is an invalid command.

Standard commands
asn1parse         ca                ciphers           cms               
crl               crl2pkcs7         dgst              dh                
dhparam           dsa               dsaparam          ec                
ecparam           enc               engine            errstr            
gendh             gendsa            genpkey           genrsa            
nseq              ocsp              passwd            pkcs12            
pkcs7             pkcs8             pkey              pkeyparam         
pkeyutl           prime             rand              req               
rsa               rsautl            s_client          s_server          
s_time            sess_id           smime             speed             
spkac             srp               ts                verify            
version           x509              

Message Digest commands (see the `dgst\' command for more details)
md4               md5               rmd160            sha               
sha1              

Cipher commands (see the `enc\' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb       
aes-256-cbc       aes-256-ecb       base64            bf                
bf-cbc            bf-cfb            bf-ecb            bf-ofb            
camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb  
camellia-256-cbc  camellia-256-ecb  cast              cast-cbc          
cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb         
des               des-cbc           des-cfb           des-ecb           
des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb       
des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb      
des-ofb           des3              desx              rc2               
rc2-40-cbc        rc2-64-cbc        rc2-cbc           rc2-cfb           
rc2-ecb           rc2-ofb           rc4               rc4-40            
seed              seed-cbc          seed-cfb          seed-ecb          
seed-ofb

 使用

#使用sha1 算法对passwd文件进行加密
root@ubuntu:/etc# openssl sha1 /etc/passwd
#MD5加密
root@ubuntu:/etc# openssl sha1 /etc/passwd
#获得随机数
root@ubuntu:/etc# openssl rand -base64 123

 

以上是关于HTTPS 协议的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码-psysh调试代码片段工具

typescript Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming/angular-2/

typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming

typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming

typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming

c#代码片段快速构建代码