一、安全机制:
信息安全防护的目标
保密性Confidentiality
完整性Integrity
可用性Usability
可控制性Controlability
不可否认性Non-repudiation安全防护环节
物理安全:各种设备/主机、机房环境
系统安全:主机或设备的操作系统
应用安全:各种网络服务、应用程序
网络安全:对网络访问的控制、防火墙规则
数据安全:信息的备份与恢复、加密解密
管理安全:各种保障性的规范、流程、方法安全攻击:STRIDE
假冒Spoofing
篡改Tampering
否认Repudiation
信息泄漏Information Disclosure
拒绝服务Denial of Service
提升权限Elevation of Privilege-
常用安全技术
- 认证
- 授权
- 安全通信
- 审计
- 3A(认证、授权、审计)
-
密码算法和协议
- 对称加密
- 公钥加密
- 单向加密
- 认证协议
二、对称加密和非对称加密:
(一)对称加密:加密和解密使用同一秘钥
常用加密标准:
DES: Data Encryption Standard, 56bits
3DES
AES: Advanced Encryption Standard, (128, 192, 256bits)特性:
1、加密、解密使用同一个密钥,效率高
2、将原始数据分割成固定大小的块,逐个进行加密缺陷:
1、密钥过多:与不同用户通信需要保存不同秘钥
2、密钥分发:秘钥分发的过程要么不安全,要么分发的效率太低、成本太高
3、数据来源无法确认
(二)非对称加密:
-
公钥加密:密钥是成对出现,一个用于加密,另一个用于解密
- 公钥(public key):公开给所有人
- 私钥(secret key):自己留存,必须保证其私密性
特性:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
缺点:密钥长,加密解密效率低下
-
功能:
- 数字签名:主要在于让接收方确认发送方身份
- 对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
- 数据加密:适合加密较小数据
常用加密标准:
RSA(加密,数字签名),DSA(数字签名),ELGamal-
实现数据加密的过程:
- 接收者
生成公钥/密钥对:P和S
公开公钥P,保密密钥S - 发送者
使用接收者的公钥来加密消息M
将P(M)发送给接收者 - 接收者
使用密钥S来解密:M=S(P(M))
- 接收者
-
实现数字签名的过程
- 发送者
生成公钥/密钥对:P和S
公开公钥P,保密密钥S
使用密钥S来加密消息M
发送给接收者S(M) - 接收者
使用发送者的公钥来解密M=P(S(M))
- 发送者
(三)单向散列:
定义:将任意数据缩小成固定大小的“指纹”
-
特点:
- 任意长度输入
- 固定长度输出
- 若修改数据,指纹也会改变(“不会产生冲突”)
- 无法从指纹中重新生成数据(“单向”)
功能:验证数据完整性
常见算法:
md5: 128bits, sha1: 160bits, sha224, sha256, sha384, sha512-
常用工具
- md5sum | sha1sum [ --check ] file
- openssl, gpg
- rpm -V
实验1:md5sum, sha1sum工具验证数据完整性
-
实验2:使用gpg实现对称加密
- 发送方:
gpg -c passwd
,过程输入两次密码,生成passwd.gpg的加密文件 - 接收方:
gpg -o passwd -d passwd.gpg
,输入密码,将解密结果重定向到文件
- 发送方:
实验3:使用gpg实现公钥加密
(1)接收方:执行gpg --gen-key
命令生成密钥对
第1步:选择密钥加密标准,选择默认RSA
第2步:选择密钥位数,这里指明1024位
第3步:选择密钥有效期,选择默认值0,表示永久有效
第4步:为密钥提供一个标签便于区分
第5步:提示输入密码,可以不指定密码,直接ok继续,系统会反复提示确认密码,然后提示生成公钥和私钥成功
(2)接收方:查看公钥并且导出公钥
第1步:查看公钥gpg --list-keys
第2步:导出公钥gpg -a --export -o hellopeiyang.pubkey
第3步:将公钥发送给发送方
(3)发送方:导入接收方的公钥,用这个公钥加密文件,将密文传送给接收方
第1步:导入接收方的公钥gpg --import hellopeiyang.pubkey
,可以查看一下是否正确导入gpg --list-keys
第2步:用公钥加密文件gpg -e -r hellopeiyang message
,-r选项后指定公钥的标签名,生成"原文件名.gpg"的加密文件
第3步:将加密文件发送给接收方
(4)接收方:接收加密文件,用私钥解密文件
执行命令gpg -o message -d message.gpg
,-o选项将解密结果输出重定向到文件
(5)后续工作:删除密钥
必须先删除私钥,再删除相应的公钥
gpg--delete-secret-keys hellopeiyang
删除私钥
gpg--delete-keys hellopeiyang
删除公钥