@mrz1
2018-01-07T12:38:21.000000Z
字数 7426
阅读 1500
笔记
| PKI(Public Key Infrastructure) | 简写 |
|---|---|
| 签证机构 | CA (Certificate Authority) |
| 注册机构 | RA |
| 证书吊销列表 | CRL |
| 证书存取库 | -- |
X.509:定义了证书的结构以及认证协议标准
版本号 序列号 签名算法 颁发者有效期限 主体名称 主体公钥 CRL分发点扩展信息 发行者签名
获取证书两种方法:
| 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 IETF(Internet工程任务组) RFC 4346 |
| 2008 | TLS 1.2 当前使用 |
| 2015 | TLS 1.3 |
| 功能 | 机密性,认证,完整性,重放保护 |
两阶段协议,分为握手阶段和应用阶段



cert:Sca(Pserver)==证书:私钥(证书)
Pca[Sca(Pserver)]==公钥[私钥(证书)]
OpenSSL:开源项目
三个组件:openssl: 多用途的命令行工具,包openssllibcrypto: 加密算法库,包openssl-libslibssl:加密模块应用库,实现了ssl及tls,包nss
openssl命令:
两种运行模式:交互模式和批处理模式openssl version:程序版本号标准命令、消息摘要命令、加密命令标准命令:enc, ca, req, ...
openssl命令
对称加密:工具:opensslenc, gpg算法:3des, aes, blowfish, twofishenc命令:帮助:man enc加密:openssl enc -e -des3 -a -salt -in file -out file.s注释:-e -des3(加密算法) -a -salt(加颜料) -in(那个文件) file -out(输出文件的名字) file.s解密:openssl enc -d -des3 -a -salt –in file.s -out file单向加密:工具:md5sum, sha1sum, sha224sum,sha256sum...openssl dgstdgst命令:帮助:man dgstopenssl dgst -md5 [-hex默认] /PATH/SOMEFILEopenssl dgst -md5 testfilemd5sum /PATH/TO/SOMEFILEMAC: Message Authentication Code,单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制CBC-MACHMAC:使用md5或sha1算法生成用户密码:passwd命令:帮助:man sslpasswdopenssl passwd -1 -salt SALT(最多8位)openssl passwd -1 –salt centos(把centos加密)生成随机数:帮助:man sslrandopenssl rand -base64|-hex NUMNUM: 表示字节数;-hex时,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2公钥加密:算法:RSA, ELGamal工具:gpg, opensslrsautl(man rsautl)数字签名:算法:RSA, DSA, ELGamal密钥交换:算法:dhDSA: Digital Signature AlgorithmDSS:Digital Signature StandardRSA:
生成密钥对儿:man genrsa生成私钥openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITSopenssl genrsa -out centos6.key 2048 //文件生成后权限不安全(umask 066; openssl genrsa –out test.key –des3 2048) //安全openssl rsa -in test.key –out test2.key 将加密key解密从私钥中提取出公钥openssl rsa -in PRIVATEKEYFILE –pubout–out PUBLICKEYFILEOpenssl rsa –in test.key –pubout –out test.key.pub例子:生成私钥(umask 066; openssl genrsa –out centos6.key –des3 2048)注意:-des3设置口令从私钥中提取出公钥openssl rsa -in centos6.key -pubout -out centos6.key.pub注意:提取公钥会输入口令将加密key解密openssl rsa -in centos6.key –out centos6.key1随机数生成器:伪随机数字键盘和鼠标,块设备中断/dev/random:仅从熵池返回随机数;随机数用尽,阻塞/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞
-new: 生成新证书签署请求
-x509: 专用于CA生成自签证书
-key: 生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE: 证书的保存路径
具体的软件实现:
SSH协议版本
两种方式的用户登录认证:
OpenSSH介绍相关包:
工具:
客户端组件:
格式:
nm-connection-editor centos6 ssh连接时+X 在执行nm-connection-editor可以显示图形用xstart远程连接linux图形用户界面)允许实现对远程系统经验证地加密安全访问
/etc/ssh/ssh_host*key.pub(CentOS7默认是ssh_host_ecdsa_key.pub)文件中的公钥到客户机的~./ssh/know_hosts中。下次连接时,会自动匹配相应私钥,不能匹配,将拒绝连接
# port 22 //修改这一行 端口自己指定systemctl reload sshd //修改文件后生效
基于用户名口令登录验证

基于密钥的登录方式

基于密钥的认证:
这里私钥必须要加密不加密,一旦丢失你方便他也方便
在SecureCRT工具—>创建公钥—>生成Identity.pub文件转化为openssh兼容格式(适合SecureCRT,Xshell不需要转化格式),并复制到需登录主机上相应文件authorized_keys中,注意权限必须为600,在需登录的ssh主机上执行:ssh-keygen-i-f Identity.pub >> .ssh/authorized_keys
[root@centos6 ~]#ssh-keygen -p //在客户端生成密钥对Enter file in which the key is (/root/.ssh/id_rsa):Key has comment '/root/.ssh/id_rsa'Enter new passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved with the new passphrase.You have new mail in /var/spool/mail/root
[root@centos6 ~]#ssh-copy-id -i .ssh/id_rsa root@172.18.101.118 //把公钥文件传输至远程服务器对应用户的家目录root@172.18.101.118's password:Now try logging into the machine, with "ssh 'root@172.18.101.118'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.
[root@centos6 ~]#ssh 172.18.101.118 //连接远程服务器Enter passphrase for key '/root/.ssh/id_rsa': //这里输入的密码是自己私钥的密码Last login: Sun Jan 7 19:48:09 2018 from 172.18.101.93
[root@centos6 ~]#ssh-agent bash[root@centos6 ~]#ssh-addEnter passphrase for /root/.ssh/id_rsa: //输入自己私钥的密码Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)[root@centos6 ~]#ssh 172.18.101.118Last login: Sun Jan 7 19:49:50 2018 from 172.18.101.93登陆成功[root@centos7 ~]#这里需要注意的的每次登录需要输入下密码 退出登录失效
#!/bin/bashrpm -q expect &> /dev/null || yum -y -q install expectssh-kengen -P "" -f ~/.ssh/id_rsa &> /dev/nullwhile read ip passwd;douser=rootexpect <<EOFset timeout 10spawn ssh-copy-id $ip@$passwdexpect{"yes/no" { send "yes\n";exp_continue }"password" { send "$password\n" }}expect eofEOFdone < host.txt
[root@centos6 ~]#vim /etc/ssh/sshd_config //找到下面两项改为no就okGSSAPIAuthentication noUsePAM no