linux 加密和证书

安全目标:
机密性:明文传输的ftp, http,telnet 不安全
数据完整性:
身份验证:
可用性:
安全技术:认证,授权,安全通信,审计
密码算法和协议:对称加密,公钥加密,单向加密,认证协议

1、对称加密:加密,解密使用同一个秘钥,效率高

DES:Data Encrption Standard, 56bit
3DES:
AES:Advanced
Blowfish
缺点:秘钥过多,分发问题,来源无法确认
gpg实现加密: gpg -c file –>file.gpg
解密:gpg -o file -d file.gpg

2、公钥加密:非对称加密

密钥对:公钥:P 私钥:S 信息:M
M=S(P(M))
发送方用自己的私钥加密数据,可以实现身份验正
发送方用对方的公钥加密数据,可以保证数据机密性
公钥加密算法很少用来加密数据:速度太慢
公钥加密:(加密/签名)
数字签名
数据加密
对称密钥交换
算法:RSA: 加密、签名,DSA:签名,ElGamal
gpg实现公钥加密:
gpg –gen-key

3、单向加密:提取数据特征码

输入一样:输出必然相同
雪崩效应:输入的微小改变,将会引起结果的巨大改变
定长输出:无论原始数据是多在,结果大小都是相同的
不可逆:无法根据特征码还原原来的数据
协商生成密码:密钥交换(Internet Key Exchange, IKE)
Diffie-Hellman协议:
A –> B p, g (大素数,生成数)
A: x B: y
A: g^x%p –> B
B: g^y%p –> A
g, p, g^x%p, g^y%p
A: (g^y%p)^x=g^yx%p
B: (g^x%p)^y=g^xy%p
单向加密算法:MD5 SHA1 SHA256

4、CA

PKI: Public Key Infrastructure
签证机构CA: Certificate Authority
注册机构:RA
证书吊销列表:CRL
x509:
公钥及期有效期限
证书的合法拥有者
证书该如何被使用
CA的信息
CA签名的校验码..

5、OpenSSL: 开源

libcrypto: 加密库
libssl: TLS/SSL的实现
基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库、
openssl: 多用途命令行工具
6、openssl实现私有CA:
1、生成一对密钥
2、生成自签署证书
openssl genrsa -out /PATH/TO/KEYFILENAME NUMBITS
openssl rsa -in /PATH/TO/KEYFILENAME -pubout

CA服务器:
1、vim /etc/pki/tls/openssl.cnf
dir=/etc/pki/CA

2、cd /etc/pki/CA
make certs newcerts crl
touch index.txt
echo 01 > serial

3、自签证书
(umask 077; openssl genrsa -out private/cakey.pem 2048)
openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3000

OpenSSL:
1、创建CA
自己生成一对密钥;
生成自签证书;
2、客户端
生成一对密钥;
生成证书颁发请求, .csr;
将请求发给CA;
3、CA端
签署此证书;
传送给客户端;
OpenSSL: TLS/SSL, (libcryto, libssl, openssl)

9、OpenSSH:
telnet, TCP/23, 远程登录
认证明文
数据传输明文

ssh: Secure SHell, TCP/22 C/S
OpenSSH软件包(开源)
客户端:Linux: ssh
Windows: SecureCRT xshell
服务器端:sshd
openssh (ssh, sshd)
sshd: 主机密钥
netstat
-t: tcp connections
-u: udp connections
-l: listening
-p: process
配置文件:
ssh (ssh_config)
sshd (sshd_config)
/etc/ssh
ssh:
ssh -l USERNAME REMOTE_HOST [‘command’]
ssh USERNAME@REMOTE_HOST
-p port

基于密钥的认证:
一台主机为客户端(基于某个用户实现):
1、生成一对密钥
ssh-keygen
-t {rsa|dsa}
-f /path/to/keyfile
-N ‘password’
2、将公钥传输至服务器端某用户的家目录下的.ssh/authorized_keys文件中
使用文件传输工具传输(ssh-copy-id, scp)
ssh-copy-id -i /path/to/pubkey USERNAME@REMOTE_HOST

总结:
1、密码应该经常换且足够复杂;
2、使用非默认端口;
3、限制登录客户地址;
4、禁止管理直接登录;
5、仅允许有限制用户登录;
6、使用基于密钥的认证;
7、禁止使用版本1

PKI
A –> B:
证书: 用户信息,公钥
颁发者的信息,签名
证书有效期限
A发送方:
1、计算数据的特征码(单向加密);
2、用自己的私钥加密特征码,并附加在数据后面;
3、生成一个临时对称密钥;
4、用此密钥结合某算法加密数据及加密后的特征码;
5、对接收方的公钥加密此对称密钥,并附加加密后的数据后面;
6、发送至接收方;
B接收方:
1、用自己的私钥解密加密的对称密钥;
2、用对称密钥解密数据;
3、用对方的公钥解密加密的特征码;
4、用同样的算法计算数据的特征码,并与解密而来的特征码进行比较;
A –> B:
SSL: Secure Socket Layer, SSLv2, SSLv3
TLS:Transport Layer Security, TLSv1

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86882

(1)
cuicui
上一篇 2017-09-11 01:00
下一篇 2017-09-11 09:56

相关推荐

  • wordpress配置安装

    1、首先进行lamp框架的搭建 服务器环境:Linux Centos 7.2.1511 64位 内存:2G  磁盘空间100GB IP地址:10.55.10.79 进行httpd,php,php-mysql,mariadb-server的安装,安装均使用yum安装 ~]# yum -y install httpd php php-mysql mar…

    Linux干货 2016-11-04
  • 8月11日shell编程脚本及课后作业

    shell脚本编程 本章内容 编程基础 脚本基础格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据    程序编程风格:       过程式:以指令为中心,数据服务于指令   &nbs…

    Linux干货 2016-08-15
  • ​文本编辑器nano

    新建/打开文件     nano 路径+文件名,文件存在则为打开,否则新建;(未输入文件名,编辑完成后,保存退出会提示输入文件名); nano     note:nano中,黑底白字表示快捷键操作。其中“^”表示Ctrl键,则Ctrl+G就表示成“^G”。“M”表示 Alt键,则Alt+W表示为“M…

    Linux干货 2016-05-05
  • bash特性

    一、命令历史     概念:shell进程能够将之前执行过的命令保存记录下来     存储位置:         1、命令历史的文件             使用以下环境变量查看相关参数:     &…

    Linux干货 2016-09-19
  • Week 1–Linux基础2

    四. Linux系统命令使用格式:  但首先,在linux中我们要知道linux系统中基本的命令格式如下: 命令字 【命令选项】 【命令参数】   Command 【option】 【arguments】 在这里主要介绍这几个命令的使用格式(Ifconfig,echo, tty, startx, export, pwd, history, shut…

    Linux干货 2016-12-05
  • 从shell眼中看世界–展开和引用

    这篇博客的目的在于加深对于展开和引用的理解,阐释展开和引用之间联系。 ‘ ‘ :强引用,其中的变量引用不会被替换为变量值,而保持原字符串       ” “:弱引用,其中的变量引用会被替换为变量值    如果之前对于’ …

    Linux干货 2017-04-16

评论列表(1条)

  • h
    h 2017-09-13 11:14

    内容不错,注意排版,继续加油!