网络通信安全基础OpenSSL

OpenSSL:

NIST:

保密性:

数据保密性

隐私性

完整性:

数据完整性

系统完整性

可用性 

安全攻击:

被动攻击:窃听

主动攻击:伪装、重放、消息篡改、拒绝服 

安全机制:

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

安全服务:

认证

访问控制

数据保密性

连接保密性

无连接保密性

选择域保密性

流量保密性

数据完整性

不可否认性 

密码算法和协议:

对称加密

公钥加密

单向加密

认证协议 

Linux系统:OpenSSL, gpg(pgp) 

加密算法和协议:

对称加密:加密和解密使用同一个密钥;

DESData Encryption Standard

3DES

AESAdvanced (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

1995SSL 2.0, Netscape

1996: SSL 3.0

1999: TLS 1.0

2006: TLS 1.1 RFC 4346

2008TLS 1.2

2015: TLS 1.3 

分层设计:

1、最低层:基础算法原语的实现,aes, rsa, md5

2、向上一层:各种算法的实现

3、再向上一层:组合算法实现的半成品

4、用各种组件拼装而成的种种成品密码学协议/软件:

tls, ssh, 

OpenSSL:开源项目

三个组件:

openssl: 多用途的命令行工具;

libcrypto: 公共加密库;

libssl: 库,实现了ssltls 

openssl命令: 

openssl version:程序版本号 

标准命令、消息摘要命令、加密命令 

标准命令:

enc, ca, req, … 

对称加密:

工具:openssl enc, gpg

算法:3des, aes, blowfish, twofish 

enc命令:

加密:openssl enc -e -des3 -a -salt -in anaconda-ks.cfg -out anaconda-ks.ciphertex 
解密: openssl enc -d -des3 -a -salt -in anaconda-ks.ciphertex -out anaa.cfg

-des3

openssl ? 

单向加密:

工具:md5sum, sha1sum, sha224sum, sha256sum,…, openssl dgst 

dgst命令:

openssl dgst -md5 /PATH/TO/SOMEFILE  

MAC: Message Authentication Code,单向加密的一种延伸应用,用于实现在网络通信中保证所传输的数据的完整性; 

机制:

CBC-MAC

HMAC:使用md5sha1算法 

生成用户密码:

passwd命令 

openssl passwd -1 -salt SALT

例一:生成密码

[root@localhost ~]# openssl passwd -1 -salt 123456789 

生成随机数:

openssl rand -base64|-hex NUM

NUM: 表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2; 

公钥加密:

加密:

算法:RSA, ELGamal

工具:gpg, openssl rsautl

数字签名:

算法:RSA, DSA, ELGamal 

密钥交换:

算法:dh 

DSA: Digital Signature Algorithm

DSSDigital Signature Standard

RSA 

生成密钥对儿:

openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

例一:生成密钥私钥

[root@localhost ~]# openssl genrsa -out rsakey.private 2048
Generating RSA private key, 2048 bit long modulus
.+++ 

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

提取出公钥:

# openssl rsa -in /PATH/FROM/PRIVATEKEY.FILE -pubout

例一:提取出公钥

[root@localhost ~]# openssl rsa -in rsakey.private -pubout 

随机数生成器:

/dev/random:仅从熵池返回随机数;随机数用尽,阻塞;

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/77642

(0)
kangkang
上一篇 2015-09-06 10:48
下一篇 2015-09-06 19:50

相关推荐

  • 马哥教育21期网络班—第11周课程+练习—-成长进行时–不退步–上

    1、详细描述一次加密通讯的过程,结合图示最佳。 对称加密: 加密和解密使用同一个密钥; 缺点:如何通信方多的话,需要保存多组密钥 公钥加密:密钥是成对儿出现 公钥:公开给所有人;pubkey 私钥:自己留存,必须保证其私密性;secret key 特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然; 数字签名:主要在于让接收方确认发送方…

    Linux干货 2016-09-19
  • 20160802课堂作业

    作业: 在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 #groupadd g1 #groupadd g2 #groupadd g3 #useradd -G g2 alice #useradd -G…

    Linux干货 2016-08-04
  • centos7 搭建SVN服务器

    运维常见的工作就是日常软件的安装和维护,SVN虽然被Git侵占了市场份额,但是仍然是高效简捷的源码管理工具。从日常软件的安装部署开始,熟悉一些Linux的常用命令。

    Linux干货 2018-03-26
  • 使用mysql-mmm实现高可用mysql读写分离

    MMM介绍:  MMM全称为Multi-Master Replication Manager for MySQL,即为主主复制管理器;根据MMM官网介绍,其工作原理类似于lvs,都是利用vip地址;但lvs只有一个组件便可以正常工作,而MMM则使用三个组件,分别是mysql-mmm、mysql-mmm-agent、mysql-mmm-monitor…

    Linux干货 2015-08-04
  • nfs服务部署wordpress

    NFS服务简介 NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。 NFS 的基本原则是“容许不同…

    2017-04-28
  • 笔记一.如何使用VMWare Workstations 12 创建虚拟机

    笔记一.如何使用VMWare Workstations 12 创建虚拟机   一、准备工作 1.下载并安装VMWare Workstations 12 http://www.epinv.com/post/6304.html 下载链接 二、创建虚拟机步骤 1.打开VMWare Workstations 12 选择创建虚拟机 2.在创建虚拟机…

    Linux干货 2017-02-14