网络通信安全基础OpenSSL

栏目: 服务器 · 发布时间: 7年前

内容简介:网络通信安全基础OpenSSL

OpenSSL:

NIST:

保密性:

数据保密性

隐私性

完整性:

数据完整性

系统完整性

可用性

安全攻击:

被动攻击:窃听

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

安全机制:

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

安全服务:

认证

访问控制

数据保密性

连接保密性

无连接保密性

选择域保密性

流量保密性

数据完整性

不可否认性

密码算法和协议:

对称加密

公钥加密

单向加密

认证协议

Linux 系统: OpenSSL, gpg(pgp)  

加密算法和协议:

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

DES Data Encryption Standard

3DES

AES Advanced (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

1995 SSL 2.0, Netscape

1996: SSL 3.0

1999: TLS 1.0

2006: TLS 1.1 RFC 4346

2008 TLS 1.2

2015: TLS 1.3

分层设计:

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

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

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

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

tls, ssh,

OpenSSL :开源项目

三个组件:

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

libcrypto: 公共加密库;

libssl: 库,实现了 ssl tls

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 :使用 md5 sha1 算法

生成用户密码:

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

DSS Digital 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 :从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Python

Head First Python

Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99

Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具