本文所说的中间人***是指,当主机A与主机B在相互通信的过程中,主机C对此通信所实施的***手段,这里主要介绍4种***模式与现在常用的解决方案


1.物理中断

物理中断,顾名思义是指将主机A与主机B之间的物理连接掐断,使之无法在网络上找到对方,基本情形如下:(A与B之间通信被C物理中断) A<---------XXX C XXX--------->B;

日常生活中,多见于拔掉网线插头,盗取网线等情况,解决方案上基本以隔离(建立机房,布置暗线等)或行政、法律约束为主


2.窃听

窃听,偷听他人说话而得到不该自己知道的信息,该模式的基本情形如下所示:

A<-------------------------------->B

|

C

在主机A与主机B正常通讯的过程中,主机C以非常手段得了A与B相互通信的信息,如果信息涉及银行账号、密码或商业情报等重要内容,则会造成非常严重的后果

针对该种模式的解决方案:采用信息加密技术,保证数据机密性


加密:由两部分组成,算法&密钥(算法要够复杂,密钥要够安全);


对称加密,也称为单密钥加密,采用单钥密码系统的加密方法,同一个密钥可以同时用于信息的加密和解密,由于其速度的优势,对称性加密通常在消息发送方需要加密大量数据时使用,主要的加密工具有:DES;3DES;AES等


非对称加密,与对称加密算法不同,加密盒解密使用的是两个不同的密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。常用的加密工具有RSA和DSA等


实验一:对称加密openssl

本实验使用的加密工具为openssl,加密文件/etc/passwd

#openssl enc -e -des -in /etc/passwd -out /tmp/passwd.des -->加密,使用des算法

enter des-cbc encryption password:marmotc -->设定密钥为marmotc

Verifying - enter des-cbc encryption password:marmotc

#openssl enc -d -des -in /tmp/passwd.des -out /tmp/passwd -->解密

enter des-cbc decryption passwd:marmotc -->输入密钥


实验二:非对称加密GPG

GnuPG(全称:GNU PrivacyGuard,简称:GPG),大多用于加密信息的传递,是一款免费的加密和数字签名工具。GPG提供了“公钥/私钥”对,即采用了非对称加密手段,利用“公钥”对信息进行加密,因加密时单向的,只有“私钥”能解开加密信息,故信息安全性上能够得到相应的保证

测试用户:user1和user2

  1. user1生成非对称密钥对:[user1@localhost ~]$gpg --gen-key

  2. gnupg文件的存放位置:[user1@localhost ~]$ls .gnupg/

  3. 查看已有的公钥:[user1@localhost ~]$gpg --list-keys

  4. 查看已有的私钥:[user1@localhost ~]$gpg --list-secret-keys

  5. user1将自己的公钥导出:[user1@localhost ~]$gpg --export --armor user1 > /tmp/user1.key -->这里的user1是--list-keys中所查看的uid列里的名字或邮箱,该内容在生成密钥的过程由使用者输入而得

  6. user2导入user1的public key(这里是user1.key):[user2@localhost ~]$pgp --import user1.key

  7. user2用user1的public key加密文件file.gpg,并将加密文件file.gpg.asc发送给user1:[user2@localhost ~]$gpg --encrypt --armor --recipient user1 file.gpg

  8. user1用pgp解密file.gpg.asc得到原文件file.gpg:[user1@localhost ~]$gpg file.gpg.asc