Linux:Day17(下) openssl
Linux Services and Security
OpenSSL
OpenSSH
dns:bind
web:http,httpd(apache),php,mariadb(mysql)
lamp
nginx(tengine),lnmp;
file server:ftp,nfs,samba
dhcp,pxe
iptables
OpenSSL:
NIST:
保密性:
数据保密性
隐私性
完整性:
数据完整性
系统完整性
可用性
安全攻击:
被动攻击:窃听
主动攻击:伪装,重放,消息篡改,拒绝服务
安全机制:
加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
安全服务:
认证
访问控制
数据保密性
连接保密性
无连接保密性
选择域保密性
流量保密性
数据完整性
不可否认性
密码算法和协议:
对称加密
公钥加密
单向加密
认证协议
Linux系统:OpenSSL,gpg(pgp)
加密算法和协议:
对称加密:加密和解密使用同一个密钥;
DES:Data Encryption Standard
3DES:
AES:Advanced (128bits,192bits,258,384,512bits)
Blowfish
Twofish
IDEA
RC6
CASTS
特性:
1、加密、解密使用同一密钥;
2、将原始数据分割成固定大小的块,逐个进行加密;
缺陷:
1、密钥过多;
2、密钥分发;
公钥加密:密钥是成对出现
公钥:公开给所有人;pubkey
私钥:自己留在,必须保证其私密性;secret key
特点:用公钥加密的数据,只能使用与之配对的私钥解密;反之亦然;
数字签名:主要在于让接收方确认发送方身份;
密钥交换:发送方用对方的公钥加密一个对称密码,并发送给对方;
数据加密:
算法:RSA,DSA,ELGamal
单向加密:只能加密,不能解密;提取数据指纹;
特性:定长输出、雪崩效应;
算法:
md5:128bits
sha1:160bits
sha224
sha256
sha384
sha512
功能:
完整性;
密钥交换:IKE
公钥加密:
DH(deffie-Hellman)
PKI:Public Key Infrastructure
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库
X.599:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法IID
发行者名称
有效期限
主体公钥
发行者唯一标识
主体的唯一标识
扩展
发行者签名
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命令:
加密:
解决:
-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 -l -salt SALT
生成随机数:
openssl rand -base64 | -hex NUM
NUM:表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2;
公钥加密:
加密:
算法:RSA,ELGamal
工具:gpg,openssl rsautl
数字签名:
算法:RSA,DSA,ELGamal
密钥交换:
算法:dh
DSA:Digital Signatrue Algorithm
DSS:Digital Signatrue Standard
RSA:
生成密钥对:
随机数生成器:
/dev/random:仅从熵池返回随机数;随机数用尽,阻塞;
/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;
Linux:Day17(下) openssl的更多相关文章
- Linux下OpenSSL的安装与使用
Linux下OpenSSL的安装与使用 OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux.Windows.Mac OS ...
- Linux下OpenSSL加密解密压缩文件(AES加密压缩文件)
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法.下面介绍使用Openssl进行文件的对称 ...
- Thrift在Windows及Linux平台下的安装和使用示例
本文章也同时发表在个人博客Thrift在Windows及Linux平台下的安装和使用示例上. thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的R ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- mosquitto在Linux环境下的部署/安装/使用/测试
mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...
- Ruby入门--Linux/Windows下的安装、代码开发及Rails实战
Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...
- 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer
一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...
- Windows下openssl的下载安装和使用
Windows下openssl的下载安装和使用 安装openssl有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.下面对两种方式均进行详细描述. 一.下载和安装ope ...
- 【转】Linux系统下的ssh使用
Linux系统下的ssh使用(依据个人经验总结) 对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使 ...
随机推荐
- 关于bootstrap报错
在使用bootstrap报错.报错的位置如下 if("undefined"==typeof jQuery)throw new Error("Bootstrap's Jav ...
- 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现
1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...
- Spring的历史及哲学
Spring的历史和哲学 1.Spring 历史 时间回到2002年,当时正是 Java EE 和 EJB 大行其道的时候,很多知名公司都是采用此技术方案进行项目开发.这时候有一个美国的小伙子认为 E ...
- VMware端口映射配置步骤
1:编辑->虚拟网络编辑器 2:点击NAT模式-->NAT设置 3:注意:主机端口就是物理机的端口,虚拟机就是wmware中的系统 点击添加
- vue2.0 配置环境总结(都是泪啊)
最近有点空闲时间,终于把一直想学的vue提上了日程,以下是收集的一些帮助入门的链接 1:https://vuefe.cn/v2/guide/ vue2.0中文官网 2:https://router.v ...
- java游戏开发杂谈 - java是什么
java是一门编程语言, 它有三个开发平台:j2ee.j2se. j2me.(其实android也算一个了) j2ee, 也就是web开发,比如网站.各类管理系统,主要是围绕数据库.网页等进 ...
- DI是实现面向切面和面向抽象的前提
DI越来越重要 DI就是依赖注入,现在来说,大部分框架都是以DI为基础组件的,每一个框架都有自己的DI组件,像dotnet core,java spring等,也都为自己的框架量身打造了DI工具. 面 ...
- Flink的分布式缓存
分布式缓存 Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件,并把它放在taskmanager节点中,防止task重复拉取.此缓存的工作机制如下:程序注册 ...
- 【带着canvas去流浪(8)】碰撞
目录 一. canvas的能力 二. 动画框架 三. 在canvas中模拟碰撞 3.1定义小球的属性 3.2 生成新的小球 3.3 帧动画绘制函数step 3.4 定义小球的update方法 3.5 ...
- AppBoxFuture(五): 分布式文件存储-Store Everything
本来本篇是想介绍前端组件化开发用户界面,发现框架还未实现文件存储,原本计划是后续设计开发的,索性把计划提前,所以本篇将介绍基于Raft实现分布式的文件存储引擎. 一. 实现思路 既然是分布式存 ...