一、加密类型及相关算法

    1、TCP/IP :安全

        A -->>B

            机密性:明文传输(ftp、http、smtp、telnet)

            完整性:10 (100)

            身份验证:

    2、机密性:

        plaintext --> 转换规则 --> ciphertext

        ciphertext --> 转换规则 --> plaintext

    3、数据完整性

    4、单向加密算法:提取数据特征码

        输入一样:输出必然相同

        雪崩效应:输入的微小改变,将会引起结果的巨大改变

        定长输出:无论原始数据是多长,结果大小都是相同的

        不可逆:无法根据特性码还原原来的数据

    5、协商生成密码: 密钥交换(Internet Key Exchange,IKE)

        Diffie-Hellman:协议

    6、公钥加密算法:非对称加密算法

        密钥对:

            公钥:P

            私钥:s

        发送方用自己的私钥加密数据,可以实现身份验证

        发送方用对方的公钥加密数据,可以保证数据机密性

        公钥加密算法很少用来加密数据,速度太慢

    7、PKI:Public Key Infrastructure

            CA:Certificate Authority

    8、x509 ,pkcs12

        x509:

            公钥及其有效期限

            证书的合法拥有者

            证书该如何被使用

            CA的信息

            CA签名的校验码

二、加密算法

    1、对称加密:

        DES:Data Encrption Standard,56bit

        3DES:

        AES: Advanced

            AES192,AES256,    AES512

        Blowfish

    2、单向加密:

        MD4

        MD5

        SHA1

        SHA192,    SHA256,    SHA384

        CRC-32

    3、公钥加密:(加密/签名)

        身份认证(数字签名)

        数据加密

        密钥交换

        

        RSA:加密、签名

        DSA:签名

        ELGamal

    4、OpenSSL:SSL的开源实现

        libcrpto:加密库

        libssl:TLS/SSL的实现

            基于会话的、实现了身份认证、数据机密性和会话完整性的库

        openssl:多用途命令行工具

            实现私有证书颁发机构

    5、openssl 实现私有CA:

        (1)生成一对密钥

        (2)生成自签署证书

        openssl genrsa -out /PATH/TO/KEYFILEAE NUMBER

三、证书

    1、创建CA

        自己生成一对密钥

        生成自签证书

    2、客户端

        生成一对密钥

        生成证书颁发请求:.car

        将请求发给CA

    3、CA端:

        签署此证书

        传送给客户端:

    

    openSSL : TLS/SSL , (libcryto,libssl,openssl ), TLS  PKI 

    OpenSSH :

     4、SSH      

    telnet ,TCP/23 ,远程登录 

        认证明文

        数据传输明文

    ssh:Secure SHell ,TCP/22

    C/S 

    ssh --> SSH 

    OpenSSH (开源)

        ssh(ssh_config)

        ssd(sshd_config)

        /etc/ssh

    ssh:

        ssh -l USERNAME REMOTE_HOST ['command']

        ssh USERNAME@REMOTE_HOST

    5、基于密钥的认证

        一台主机为客户端(基于某个用户实现):

        1.生成一对密钥

            ssh-keygen

                 -t   { rsa| dsa}

                -f    /path/to/keyfile

                -N 'password'

        2.将公钥传输至服务器端某用户的家目录下的.ssh/authorized_key文件中

            使用文件传输工具传输(ssh-corp-id,scp)

            ssh-corp-id -i /path/to/pubkey USERNAME@REMOTE_HOST

        3.测试登录

        

    6、scp:基于ssh的远程复制命令,可以实现在主机之间传输数据

        scp [options] SRC DEST

        REMOTE_MACHINE

            USERNAME@HOSTNAME:/path/to/somefile