OpenSSL

OpenSSL:

NIST:
    保密性:
        数据保密性
        隐私性
    完整性:
        数据完整性
        系统完整性
    可用性

安全攻击:
    被动攻击:窃听
    主动攻击:伪装、重放、消息篡改、拒绝服务

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

安全服务:
    认证
    访问控制
    数据保密性
        连接保密性
        无连接保密性
        选择域保密性
        流量保密性
    数据完整性
    不可否认性

密码算法和协议:
    对称加密
    公钥加密
    单向加密
    认证协议

Linux系统:OpenSSL, gpg(pgp)

加密算法和协议:
    对称加密:加密和解密使用同一个密钥;
        DES:Data Encryption Standard
        3DES:
        AES:Advanced (128bits, 192bits, 258, 384, 512bits)
        Blowfish
        Twofish
        IDEA
        RC6
        CAST5

        特性:
            1、加密、解密使用同一个密钥;
            2、将原始数据分割成固定大小的块,逐个进行加密;

        缺陷:
            1、密钥过多;
            2、密钥分发;

    公钥加密:密钥是成对儿出现
        公钥:公开给所有人;pubkey
        私钥:自己留存,必须保证其私密性;secret key
        特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

        数字签名:主要在于让接收方确认发送方身份;
        密钥交换:发送方用对方的公钥加密一个对称密钥,并发送给对方;
        数据加密:

        算法:RSA, DSA, ELGamal

    单向加密:只能解密,不能解密;提取数据指纹;
        特性:定长输出、雪崩效应;
        算法:
            md5: 128bits
            sha1: 160bits
            sha224  
            sha256
            sha384
            sha512

        功能:
            完整性;

    密钥交换:IKE
        公钥加密:
        DH (Deffie-Hellman)
            A: p, g
            B: p, g

            A: x
                --> p^x%g

                p^y%g^x = p^xy%g
            B: y
                --> p^y%g

                p^x%g^y = p^xy%g

PKI: Public Key Infrastructure
    签证机构:CA
    注册机构:RA
    证书吊销列表:CRL
    证书存取库

    X.509:定义了证书的结构以及认证协议标准
        版本号
        序列号
        签名算法ID
        发行者名称
        有效期限
        主体名称
        主体公钥
        发行者惟一标识
        主体的惟一标识
        扩展
        发行者签名

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命令:
                加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
                解密:~]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
                    -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 -1 -salt SALT

        生成随机数:
            openssl rand -base64|-hex NUM
                NUM: 表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2; 

        公钥加密:
            加密:
                算法:RSA, ELGamal
                工具:gpg, openssl rsautl
            数字签名:
                算法:RSA, DSA, ELGamal

            密钥交换:
                算法:dh

            DSA: Digital Signature Algorithm
            DSS:Digital Signature Standard
            RSA:

            生成密钥对儿:
                openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

                # (umask 077; openssl genrsa -out key.pri 2048)

                提取出公钥:
                # openssl rsa -in /PATH/FROM/PRIVATEKEY.FILE -pubout


            随机数生成器:
                /dev/random:仅从熵池返回随机数;随机数用尽,阻塞;
                /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值