• 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
  • 相关阅读:
    循环
    list和tuple
    Python字符串和编码注意点
    【转载】国内安卓推送的希望
    【转载】Android属性动画和视图动画的区别
    【转载】Android 属性动画详解
    【转载】 android 属性动画详解
    java8 新特性学习详细篇2
    java8 新特性详细篇
    JAVA8十大新特性
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9031221.html
Copyright © 2020-2023  润新知