Linux:Day17(下) openssl

Linux Services and Security

  OpenSSL

  OpenSSH

  dns:bind

  web:http,httpd(apache),php,mariadb(mysql)

    lamp

    nginx(tengine),lnmp;

  file server:ftp,nfs,samba

  dhcp,pxe

  iptables

OpenSSL:

  NIST:

    保密性:

      数据保密性

      隐私性

    完整性:

      数据完整性

      系统完整性

    可用性

  安全攻击:

    被动攻击:窃听

    主动攻击:伪装,重放,消息篡改,拒绝服务

  安全机制:

    加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证

  安全服务:

    认证

    访问控制

    数据保密性

      连接保密性

      无连接保密性

      选择域保密性

      流量保密性

    数据完整性

    不可否认性

  密码算法和协议:

    对称加密

    公钥加密

    单向加密

    认证协议

  Linux系统:OpenSSL,gpg(pgp)

  加密算法和协议:

    对称加密:加密和解密使用同一个密钥;

      DES:Data Encryption Standard

      3DES:

      AES:Advanced (128bits,192bits,258,384,512bits)

      Blowfish

      Twofish

      IDEA

      RC6

      CASTS

      特性:

        1、加密、解密使用同一密钥;

        2、将原始数据分割成固定大小的块,逐个进行加密;

      缺陷:

        1、密钥过多;

        2、密钥分发;

    公钥加密:密钥是成对出现

      公钥:公开给所有人;pubkey

      私钥:自己留在,必须保证其私密性;secret key

      特点:用公钥加密的数据,只能使用与之配对的私钥解密;反之亦然;

      数字签名:主要在于让接收方确认发送方身份;

      密钥交换:发送方用对方的公钥加密一个对称密码,并发送给对方;

      数据加密:

      算法:RSA,DSA,ELGamal

    单向加密:只能加密,不能解密;提取数据指纹;

      特性:定长输出、雪崩效应;

      算法:

        md5:128bits

        sha1:160bits

        sha224

        sha256

        sha384

        sha512

      功能:

        完整性;

    密钥交换:IKE

      公钥加密:

      DH(deffie-Hellman)

  PKI:Public Key Infrastructure

    签证机构:CA

    注册机构:RA

    证书吊销列表:CRL

    证书存取库

    X.599:定义了证书的结构以及认证协议标准

      版本号

      序列号

      签名算法IID

      发行者名称

      有效期限

      主体公钥

      发行者唯一标识

      主体的唯一标识

      扩展

      发行者签名

  SSL:Secure Socket Layer

  TLS:Transport Layer Security

    1995:SSL 2.0,Netscape

    1996:SSL 3.0

    1999:TLS 1.0

    2006:TLS 1.1 RFC 4346

    2008:TLS 1.2

    2015:TLS 1.3

    分层设计:

      1、最低层:基础算法原语的实现,aes,rsa,md5

      2、向上一层:各种算法的实现

      3、再向上一层:组合算法实现的半成品

      4、用各种组件拼装而成的种种成品密码学协议/软件;

        tls,ssh

  OpenSSL:开源项目

    三个组件:

      openssl:多用途的命令行工具;

      libcrypto:公共加密库;

      libssl:库,实现了ssl及tls;

    openssl命令:

      openssl version:程序版本号

      标准命令、消息摘要命令、加密命令

      标准命令:

        enc,ca,req,...

      对称加密:

        工具:openssl enc,gpg

        算法:3des,aes,blowfish,twofish

        enc命令:

          加密:

          解决:

            -des3

            openssl?

      单向加密:

        工具:md5sum,sha1sum,sha224sum,sha256sum,...,openssl dgst

        dgst命令:

          openssl dgst -md5 /PATH/TO/SOMEFILE

        MAC:Message Authentication Code,单向加密的一种延伸应用,用于实现在网络通信中保证所传输的数据的完整性;

          机制:

            CBC-MAC

            HMAC:使用md5或sha1算法

      生成用户密码:

        passwd命令

          openssl passwd -l -salt SALT

      生成随机数:

        openssl rand -base64 | -hex NUM

          NUM:表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2;

      公钥加密:

        加密:

          算法:RSA,ELGamal

          工具:gpg,openssl rsautl

        数字签名:

          算法:RSA,DSA,ELGamal

        密钥交换:

          算法:dh

        DSA:Digital Signatrue Algorithm

        DSS:Digital Signatrue Standard

        RSA:

        生成密钥对:

        随机数生成器:

          /dev/random:仅从熵池返回随机数;随机数用尽,阻塞;

          /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;

原文地址:https://www.cnblogs.com/sq5288/p/10628821.html