系统安全-Man in the middleattack
窃听VS加密(解决数据机密性)
加密由两部分组成:算法&秘钥(算法要够复杂,秘钥要够安全)
对称加密:(Symmetric encryption)
采用单秘钥密码系统的加密方法,同一个秘钥可以同时用作信息的加密和解密,这种加密的方法称为对称加密,也称为单秘钥加密。
需要对加密和解密使用相同秘钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为秘钥加密。
DES(Data Encryption Standard数据加密标准)
3DES(Triple DES 三重DES)
AES(Advanced Encryption Standard 高级加密标准)
非对称加密:(Asymmetric Encryption)
与堆成加密算法不同,非对称加密算法需要两个秘钥:公开秘钥(publickey)和私有秘钥(Privatekey).
公开密钥和私有秘钥是一对,如果用公开秘钥对数据进行加密,只有用对应的私有秘钥才能解密。因为加密和解密使用的是两个不同的秘钥,所以这种算法叫做非对称加密算法。
RSA
DSA
OpenSSL对称加密
加密,使用des算法,秘钥123
[root@localhost ~]# openssl enc -e -des -in /etc/passwd -out /tmp/passwd.des
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
[root@localhost ~]# ls /tmp/
passwd.des
ssh-P53EY0D3zGlr
systemd-private-d68c3aab57b349cbbf9e8b38fb17b3c1-chronyd.service-XOpvAJ
systemd-private-d68c3aab57b349cbbf9e8b38fb17b3c1-colord.service-yD8Vnd
systemd-private-d68c3aab57b349cbbf9e8b38fb17b3c1-cups.service-1BpVhJ
systemd-private-d68c3aab57b349cbbf9e8b38fb17b3c1-rtkit-daemon.service-QWm6Y0
tracker-extract-files.
vmware-root
yum_save_tx.--13.14-.1CMzyw.yumtx
yum_save_tx.--15.11-.WjmHL_.yumtx
[root@localhost ~]# openssl enc -d -des -in /tmp/passwd.des # 解密
enter des-cbc decryption password:
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin
lp:x:::lp:/var/spool/lpd:/sbin/nologin
sync:x:::sync:/sbin:/bin/sync
shutdown:x:::shutdown:/sbin:/sbin/shutdown
halt:x:::halt:/sbin:/sbin/halt
mail:x:::mail:/var/spool/mail:/sbin/nologin
operator:x:::operator:/root:/sbin/nologin
games:x:::games:/usr/games:/sbin/nologin
ftp:x:::FTP User:/var/ftp:/sbin/nologin
nobody:x:::Nobody:/:/sbin/nologin
systemd-network:x:::systemd Network Management:/:/sbin/nologin
dbus:x:::System message bus:/:/sbin/nologin
polkitd:x:::User for polkitd:/:/sbin/nologin
abrt:x::::/etc/abrt:/sbin/nologin
libstoragemgmt:x:::daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:::Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:::User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:::Saslauthd user:/run/saslauthd:/sbin/nologin
setroubleshoot:x::::/var/lib/setroubleshoot:/sbin/nologin
rtkit:x:::RealtimeKit:/proc:/sbin/nologin
pulse:x:::PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:::qemu user:/:/sbin/nologin
ntp:x::::/etc/ntp:/sbin/nologin
radvd:x:::radvd user:/:/sbin/nologin
chrony:x::::/var/lib/chrony:/sbin/nologin
tss:x:::Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:::usbmuxd user:/:/sbin/nologin
geoclue:x:::User for geoclue:/var/lib/geoclue:/sbin/nologin
sssd:x:::User for sssd:/:/sbin/nologin
gdm:x::::/var/lib/gdm:/sbin/nologin
rpcuser:x:::RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:::Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x::::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:::Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x::::/var/spool/postfix:/sbin/nologin
sshd:x:::Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x::::/:/sbin/nologin
zhang:x:::zhang:/home/zhang:/bin/bash
alex:x::::/home/alex:/bin/bash
dhcpd:x:::DHCP server:/:/sbin/nologin
named:x:::Named:/var/named:/sbin/nologin
gluster:x:::GlusterFS daemons:/var/run/gluster:/sbin/nologin
unbound:x:::Unbound DNS resolver:/etc/unbound:/sbin/nologin
nginx:x:::Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x::::/home/mysql:/bin/bash
apache:x:::Apache:/usr/share/httpd:/sbin/nologin
nagios:x::::/home/nagios:/bin/bash
dovecot:x:::Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:::Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin
[root@localhost ~]#
GnuPG(英文:GNU Privacy Guard,简称:GPG)是加密和数字签名的免费工具,大多数用于加密信息的传递。除了仅用密码加密 外,gpg最大的不同是提供了“公钥/私钥”对,利用“公钥”别人加密信息不再需要告知密码,发送密码信息。加密是单向的,只有“私钥”能解开密码。
创建测试用户
[root@localhost ~]# useradd user1
[root@localhost ~]# echo "uplooking" | passwd --stdin user1
更改用户 user1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd user2
[root@localhost ~]# echo "uplooking" | passwd --stdin user2
更改用户 user2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
user1生成非对称密钥对
[root@localhost ~]# gpg --gen-key
gpg (GnuPG) 2.0.; Copyright (C) Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. 请选择您要使用的密钥种类:
() RSA and RSA (default)
() DSA and Elgamal
() DSA (仅用于签名)
() RSA (仅用于签名)
您的选择?
RSA 密钥长度应在 位与 位之间。
您想要用多大的密钥尺寸?()
您所要求的密钥尺寸是 位
请设定这把密钥的有效期限。
= 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?()
密钥永远不会过期
以上正确吗?(y/n)y You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" 真实姓名:Mr_zhang
电子邮件地址:seven_nighter@.com
注释:测试用户
您正在使用‘utf-’字符集。
您选定了这个用户标识:
“Mr_zhang (测试用户) <seven_nighter@.com>” 更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O
您需要一个密码来保护您的私钥。 我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 66C27E23 被标记为绝对信任
公钥和私钥已经生成并经签名。 gpg: 正在检查信任度数据库
gpg: 需要 份勉强信任和 份完全信任,PGP 信任模型
gpg: 深度: 有效性: 已签名: 信任度:-,0q,0n,0m,0f,1u
pub 1024R/66C27E23 --
密钥指纹 = 6E08 1D8D 121D 0BA9 A85B 8D33 650A 68D9 66C2 7E23
uid Mr_zhang (测试用户) <seven_nighter@.com> 请注意这把密钥还不能用来加密,您必须先用“--edit-key”指令
生成用于加密的子钥。
[root@localhost ~]#
gnupg文件存放的位置
[root@localhost ~]# ls .gnupg/
gpg.conf private-keys-v1.d pubring.gpg pubring.gpg~ random_seed secring.gpg S.gpg-agent trustdb.gpg
[root@localhost ~]#
查看已有的公钥
[root@localhost ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 1024R/66C27E23 --
uid Mr_zhang (测试用户) <seven_nighter@.com> [root@localhost ~]#
查看已有私钥
[root@localhost ~]# gpg --list-secret-keys
/root/.gnupg/secring.gpg
------------------------
sec 1024R/66C27E23 --
uid Mr_zhang (测试用户) <seven_nighter@.com> [root@localhost ~]#
user1将自己的公钥导出(测试错误)
user2将user1的秘钥导入*(测试出现问题)
测试出现问题,下次遇到了补充,目前跳过,或者自行百度。。
篡改VSHASH(数据的完整性)
hash 哈希 单向散列算法,生成hash值校验文件的完整性
- 原信息不改相同的hash算法得到的值固定不变
- 不管原始信息多长多短hash值的长度是固定不变
- hash算法是无穷集合和又穷集合的映射(不可逆)
MD5 Message-Digest Algorithm 5 (信息-摘要算法)
[root@localhost ~]# md5sum /etc/passwd
a1bc53700e0405b407f7db3fc61acd3c /etc/passwd
[root@localhost ~]#
sha1 Secure Hash ALgorithm(安全哈希算法)
[root@localhost ~]# sha1sum /etc/passwd
0061fa61324f7616dee6e8d0f09e7ada7ca8b849 /etc/passwd
[root@localhost ~]#
伪装VS CA
HTTPS基本原理

1.web服务器,生成非对称加密密钥对(web公钥,web私钥)
2.web服务器使用web身份信息+web公钥 生成web服务器的证书请求,并将证书请求发送给CA服务器
3.CA服务器使用CA的私钥对web服务器的证书请求进行数字签名得到web服务器的数字证书,并将web服务器的数字证书颁发给web服务器。
4.client访问web服务器,请求https链接,下载web数字证书
5.client下载CA数字证书(CA身份信息+CA公钥,由上一级CA颁发,也可自签名颁发),验证web数字证书(CA数字证书中有CA公钥,web数字证书是使用CA私钥签名的)
6.client与web协商对称加密算法,client生成对称加密秘钥并使用web公钥加密,发送给web服务器,web服务器使用web私钥解密
7.使用对称加密秘钥传输数据,并校验数据的完整性。
构建私有的CA机构
HTTPD+OpenSSL = HTTPS
配置CA服务器
1.配置CA,生成CA自己的公钥私钥,私钥CA对自己进行证书自签名(用脚本生成)
配置web服务器
web生成自己的私钥
生成证书请求(使用身份表示+公钥)
将证书请求发送给CA
CA服务器对证书请求进行数字签名
将签名后的数字证书颁发给web
配置web支持ssl实现https
··········································
配置https工作之后都是采用的阿里云生成的,然后在nginx中做配置,,之前采用iis的方式弄过一个,写过word,不过找不到了。。很简单。没什么难度,需要可自行百度。。
系统安全-Man in the middleattack的更多相关文章
- Linux系统运维之路
九月份开始,半年内搞定运维,博客会慢慢的更新,vim编辑器,Nginx配置文件优化 运维基础 运维基础-Linux发展史.安装.基本操作 运维基础-用户和组管理 运维基础-文件权限管理 运维基础-进程 ...
- 2012高校GIS论坛
江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- win7安装时,避免产生100m系统保留分区的办法
在通过光盘或者U盘安装Win7操作系统时,在对新硬盘进行分区时,会自动产生100m的系统保留分区.对于有洁癖的人来说,这个不可见又删不掉的分区是个苦恼.下面介绍通过diskpart消灭保留分区的办法: ...
- iOS---iOS10适配iOS当前所有系统的远程推送
一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...
- (系统架构)标准Web系统的架构分层
标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层 ...
- Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
随机推荐
- Git 应用问题(一) —— failed to push some refs to git
今天在本地创建了一个新的 repository,想关联到 Github 上的时候出现问题,如下: Gerrard@LAPTOP-79570TK2 MINGW64 /g/github-workspace ...
- 再谈 Go 语言在前端的应用前景
12 月 23 日,七牛云 CEO & ECUG 社区发起人许式伟先生在 ECUG Con 2018 现场为大家带来了主题为<再谈 Go 语言在前端的应用前景>的内容分享. 本文是 ...
- [BZOJ3817]Sum
[BZOJ3817]Sum 试题描述 给定正整数N,R.求 输入 第一行一个数 T,表示有 T 组测试数据. 接下来 T 行,每行两个正整数 n,r. 输出 输出 T 行,每行一个整数表示答案. 输入 ...
- 刷题总结——game(hdu4616)
题目: Nowadays, there are more and more challenge game on TV such as 'Girls, Rush Ahead'. Now, you par ...
- python 缺少包
https://pypi.python.org/pypi/pdfminer/20140328 到这里下载相应的包,再进行安装. tar –xivf pybloomfilter-1.0 cd py ...
- Java面试题之继承、组合、聚合有什么区别
继承:他是is-a的关系,指一个类继承另外一个类的功能 例如:public class A extends B { } 聚合:他是has-a 例如:public class A{ List<B& ...
- Django AUTHENTICATION_BACKENDS
指定认证后端 Django维护一个”authentication backends”的列表用来测试认证.当调用 django.contrib.auth.authenticate() — Django将 ...
- 【bzoj4031】[HEOI2015]小Z的房间 && 【bzoj4894】天赋 (矩阵树定理)
来两道矩阵树模板: T1:[bzoj4031][HEOI2015]小Z的房间 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形 ...
- 转 PV操作简单理解
传送门 PV操作简单理解 进程通常分为就绪.运行和阻塞三个工作状态.三种状态在某些条件下可以转换,三者之间的转换关系如下: 进程三个状态之间的转换就是靠PV操作来控制的.PV操作主要就是P操作.V操作 ...
- 递归,回溯,DFS,BFS的理解和模板
LeetCode 里面很大一部分题目都是属于这个范围,例如Path Sum用的就是递归+DFS,Path Sum2用的是递归+DFS+回溯 这里参考了一些网上写得很不错的文章,总结一下理解与模板 递归 ...