openssl

简介:

NIST:

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

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

可用性

安全攻击:

被动攻击:窃听

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

安全机制:

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

安全服务:

认证、访问控制、数据保密性、数据完整性、不可否认性

密码算法和协议:

对称加密、公钥加密、单向加密、认证协议

Linux系统:OpenSSL, gpg(pgp)

加密算法和协议:

1、对称加密,加密解密使用同一个秘钥

des\3des\aes\blowfish\twofish\idea\rc6\cast5

特性:加密解密使用同一个秘钥,将原始数据分割成固定大小的块,逐个进行加密

缺陷:秘钥过多、秘钥分发

2、公钥加密:密钥是成对儿出现

公钥:公开给所有人;pubkey

私钥:自己留存,必须保证其私密性;secret key

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

数字签名:主要在于让接收方确认发送方身份;

密钥交换:发送方用对方的公钥加密一个对称密钥,并发送给对方;

数据加密:

算法:RSA, DSA, ELGamal

3单向加密:只能解密,不能解密;提取数据指纹;

特性:定长输出、雪崩效应;

算法:md5、sha1、sha224、sha256、sha384、sha512...

主要功能:保证数据完整性

4密钥交换:IKE

DH (Deffie-Hellman)

A: p, g

B: p, g

A: x          --> p^x%g

B: y          --> p^y%g

p^x%g^y = p^xy%g

OpenSSL:

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/2层:ssl、tls

传输层

链路层

物理层

openssl:

三个组件:

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

libcrypto: 公共加密库;

libssl: 库,实现了ssl及tls;

command

openssl version:程序版本号

对称加密:openssl enc, gpg

3des, aes, blowfish, twofish

enc命令:

加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

解密:~]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab

-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

生成随机数: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

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

提取出公钥:

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

随机数生成器:

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

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




      本文转自echoroot 51CTO博客,原文链接:http://blog.51cto.com/echoroot/1946267,如需转载请自行联系原作者



相关文章
|
3月前
|
算法 安全 网络安全
Openssl
Openssl
69 0
|
1天前
|
安全 Shell 网络安全
openssh和openssl的区别是什么?
【4月更文挑战第14天】openssh和openssl的区别是什么?
11 0
|
算法 网络安全 数据安全/隐私保护
使用 openssl 生成证书
一、openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS 协议的实现。官网:https://www.openssl.
7368 0
|
4月前
|
网络安全 数据安全/隐私保护
|
编解码 应用服务中间件 Linux
最常见的OpenSSL命令(一)
最通用的SSL工具之一是OpenSSL,它是SSL协议的开源实现。几乎每个平台都有OpenSSL版本,包括Windows,Linux和Mac OS X.OpenSSL通常用于为许多不同平台(包括Apache)创建CSR和私钥。但是,它还有数百种不同的功能,允许您查看CSR或证书的详细信息,比较证书的MD5哈希和私钥(以确保它们匹配),验证证书是否在任何网站上正确安装,并将证书转换为其他格式。可以在此处找到OpenSSL for Windows的编译版本。
445 0
|
应用服务中间件 Linux 网络安全
最常见的OpenSSL命令(二)
最通用的SSL工具之一是OpenSSL,它是SSL协议的开源实现。几乎每个平台都有OpenSSL版本,包括Windows,Linux和Mac OS X.OpenSSL通常用于为许多不同平台(包括Apache)创建CSR和私钥。但是,它还有数百种不同的功能,允许您查看CSR或证书的详细信息,比较证书的MD5哈希和私钥(以确保它们匹配),验证证书是否在任何网站上正确安装,并将证书转换为其他格式。可以在此处找到OpenSSL for Windows的编译版本。
391 0
|
算法 数据安全/隐私保护
|
安全 算法 网络安全