SSL:Secure Socket Layer

特点:

保密性:数据保密性,隐私性

完整性:数据完整性,系统完整性

可用性:加密能够解密。

OSI:x.800定义了安全***机制

 

现代互联网安全服务的基础安全框架叫做PKI机制:Public Key Infrastructure

PKI:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:

 

DSS:Digital Siganature Standard

 

加密协议种类

对称加密:加密解密用同一个密钥:3des,aes

公钥加密:密钥成对出现:公钥-私钥,加密速度慢,常用于数字签名和密钥交换。

            RSA,DSA(DSS)

单向加密:主要用于提取数据指纹或特征码。

            MD5,sha1

密钥交换:DH:Deffie-Hellman算法

SSL是一种库,是TCP/IP协议层中的半层,基于TCP实现的,必须要有虚拟电路支持。

请求服务器中的数字证书:其中是使用者的公钥

CA:证书签证机构

数字证书格式:

版本号version:

序列号serial number:CA用于唯一标识此证书

签名算法标识:

发行者名称:CA自己名称

有效期:起止日期

证书主体名称:证书拥有者的名称:

证书主体公钥信息:证书拥有者自己的公钥

发行商的唯一标识:

证书主体的唯一标识:

扩展信息:

签名:CA对此证书的数字签名

证书的用途:

用户证书:用户之间通信用的

主机证书 (httpd):服务器的进程间通信用的

Open SSL 的组成部分:

libcrypto:加密解密库文件

libssl:ssl协议实现

openssl:多用途命令行工具,每种功能都使用专用的子命令来实现

openssl:子命令分类:

标准命令

消息摘要命令

加密,解密相关命令

加密 openssl enc -e加密 -a以文本模式输出 -salt:加些随机数进来 -in加密哪个文件 -out放在哪 -des3密码

解密 openssl enc –d

p_w_picpath 加密前

 p_w_picpath 加密中

p_w_picpath 加密后

 

单向加密 openssl dgst –CIPHER file

p_w_picpath

 

生成用户密码:openssl passwd –1 –salt 8bit 随机数

p_w_picpath 

不知为啥生出了一堆

 

生成随机数:openssl rand –hex|-base64 NUM

p_w_picpath

p_w_picpath

 

公钥加密

数字签名:RSA/DSA

密钥交换DH:

操作过程:私钥能提取出公钥

openssl genrsa –out 文件 位数

(umask 077;openssl genrsa –out 文件 位数)在括号中运行的表示在子shell中运行

p_w_picpath

私钥中提取公钥

openssl rsa –in 私钥文件 –pubout

p_w_picpath

 

公钥加密为了完成密钥交换

私钥机密为了完成身份验证

 

随机数生成器:

random,urandom

熵池:保存硬件中断产生的随机数

/dev/random:从熵池中取随机数,熵池里的随机数耗尽,取随机数的进程会被阻塞

/dev/urandom:从熵池中取随机数,熵池里的随机数耗尽,会用伪随机数生成器替代,不安全。

 

构建私有CA

1、生成私钥;

2、生成自签署证书;

p_w_picpath

查看CA_Default

dir:定义CA工作目录

certs:$dir引用dir的值:为客户端发放的证书存取库

crl_dir:吊销文件

database:数据库

 

new_certs_dir:刚生成的证书

certificate:CA自己的证书

serial:会不断加一

crlnumber:吊销编号

private_key:存放私钥的

 

步骤:

自己生成

1、在CA工作目录里生成自己的私钥, 私钥的位置是private_key

2、生成自签证书:

     openssl req –new –x509 –key /etc/pki/CA/private/cakey.pem –out /etc/pki/CA/cacert.pem –days

        -new 生成新证书的签署请求

        -key私钥文件路径,提取公钥用的

        -days N:证书有效时长,单位是天

        -out输出文件保存位置:

        -x509:直接输出自签署的证书文件,通常只有构建CA才这么用

3、提供辅助文件

        touch /etc/pki/CA/index.txt

        echo 01> serial

 

1

p_w_picpath

2、3

p_w_picpath

 

给节点发证书:

1、节点申请

        1.1 生成私钥:

                (umask 077; openssl genrsa -out privatekey.key 2048)
        1.2 生成证书请求

                req -new -key privatekey.key -out privatekey.csr -days 365

2、CA签发证书:

                openssl ca –in file –out file –days N

3、把签署好的证书发还给请求者

建立文件夹

p_w_picpath

生成证书

p_w_picpath

发送请求



 

 

OpenSSH:

CS架构协议:

   Server需要sshd:  /stc/ssh/sshd_config

   Client需要ssh,xshell,putty  /stc/ssh/ssh_config

   scp:安全跨主机复制工具,基于ssh实现

   sftp

sshsecure shell,用来取代telnet(23/tcp)

 

telnet是有xinetd这个超级守护进程来管理的:

打开telnet,他是明文的,容易被盗

chkconfig telnet on

p_w_picpath

service xinetd restart

ss –tnl 查找23tcp端口

iptables -F清空防火墙规则

ssh protocol

v1不安全 v2安全

两种方式认证:

      基于口令认证:

      基于密钥认证:基于DH

      在客户端生成一对密钥,私钥自己留着,公钥通过私密方式保存到远程服务器某用户的家目录专用于ssh通信的文件中

命令行用法:

ssh [选项] –l user host,不指定用户名就以自己当前用户名代入

ssh [选项] user@host

也可以通过ssh一次执行一条命令然后返回

p_w_picpath

 

私钥登录:

1、创建私钥

ssh [选项] [user]@[local] -p指明端口号

p_w_picpath

2、复制到服务器上

p_w_picpath

 

 

scp:远程复制文件:

push:scp –r(目录递归) –p(权限)自己的文件 user@host:/path -P指明端口号

pull:scp user@host:/path 位置

 

服务器端配置sshd:/etc/ssh/sshd_config

1、port默认是22,尽量不使用默认,大家都爱用22022

2、protocol 2,1不安全

3、限制可登录用户:禁用root登入,

                PermitRootLogin,默认是yes

                AllowUsers user1 user2,白名单

                AllowGroups grp1

                DenyUsers user1黑名单

4、仅监听需要监听的ip地址:

                ListenAddress

5、强密码策略:

                建议随机数

6、禁止使用空密码登入:

7、限制登入频度:默认是6次