一、安全机制
安全机制
信息安全防护的目标
- 保密性 Confidentiality
- 完整性 Integrity
- 可用性 Usability 运维两大要点:保证数据安全,保证系统运行高可用性
- 可控制性Controlability 系统处于可控范围内
- 不可否认性 Non-repudiation 特定手段保障不可否定性
安全防护环节
- 物理安全:各种设备/主机、机房环境
- 系统安全:主机或设备的操作系统 acl权限ro权限之类
- 应用安全:各种网络服务、应用程序
- 网络安全:对网络访问的控制、防火墙规则 iptables命令
- 数据安全:信息的备份与恢复、加密解密
- 管理安全:各种保障性的规范、流程、方法
安全
- 安全攻击: STRIDE
- Spoofing 假冒 假冒发邮件
- Tampering 篡改
- Repudiation 否认
- Information Disclosure 信息泄漏 wireshark抓包工具 ftp连接主机被抓包泄露口令信息,telnet泄露口令每个字符一个包
- Denial of Service 拒绝服务 例ping命令 ping -f -s 65507 尽全力发送数据包 生产中较常见
- Elevation of Privilege 提升权限
不安全的传统协议
- telnet、FTP、POP3等等;不安全密码
- http、smtp、NFS等等;不安全信息
- Ldap、NIS、rsh等等;不安全验证
密码算法和协议:
- 对称加密
- 公钥加密
- 单向加密
- 认证协议
- Linux系统:OpenSSL, gpg(pgp协议的实现)
二、对称和非对称加密
1、对称加密
简介:
A–>B
明文–加密–密文–传输–解密–明文
加密算法:算法得公开,秘钥key不公开
量子计算机普及后密码可以采取暴力破解,一个个试出来
对称加密:加密和解密使用同一个密钥
常见对称加密算法:
DES:Data Encryption Standard,56bits 数据加密标准,较强
3DES: 更强
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5
特性:
1、加密、解密使用同一个密钥,效率高
2、将原始数据分割成固定大小的块,逐个进行加密
缺陷:
1、密钥过多
2、密钥分发 不方便传给对象
3、数据来源无法确认 无法确认对象
2、非对称加密
简介:
Alice—>Bob
Alice :Pa公钥(公开),Sa私钥(不公开)
Bob:Pb,Sb (同上)
如果用A公钥加密,则必须用A私钥解密
同样用B私钥加密,则必须用B公钥解密
则A如果想传给B数据且只让B看,用B公钥加密,且加密后A也打不开
A分享数据给所有人,用A私钥加密,大家都能用A公钥打开,且能确认数据来源是A
拿到私钥可以推出公钥,反过来不可
公钥加密:密钥是成对出现
公钥:公开给所有人;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))
结合签名和加密
分离签名
三、散列算法
单项散列简介:
hash(data)=digest摘要
data不同,digest必不同
digest不可反推算出data,digest长度固定大小
md5:128
sha1:160
/etc/shadow 就是 sha512加密算法
md5sum /etc/fstab > md5.log 得出/etc/fstab的hash值存入文件中
md5sum –check md5.log 检查文件有无改动,会有标准输出,只要内容不变名字没所谓
sha1sum /etc/fstab sha1算法
将任意数据缩小成固定大小的“指纹”,即摘要(digest)
任意长度输入
固定长度输出
若修改数据,指纹也会改变(“不会产生冲突”)
无法从指纹中重新生成数据(“单向”)
功能:数据完整性
常见算式
md5: 128bits、sha1: 160bits、sha224、sha256、sha384、sha512
常用工具
md5sum | sha1sum [ –check ] file
openssl、gpg
rpm -V 检查数据完整性
四、密钥交换
密钥交换:IKE( Internet Key Exchange )
公钥加密:将公钥加密后通过网络传输到对方进行解密,安全度不高,不常用;
DH (Deffie-Hellman):生成会话密钥,
参看: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
DH:
1、A: a,p 协商生成公开的整数a, 大素数p (素数即质数:除了1和此整数自身外,不能被其他自然数整除的数。)
B: a,p
2、A:生成隐私数据 :x (x<p ),计算得出 a^x%p,发送给B
B:生成隐私数据 :y,计算得出 a^y%p,发送给A
3、A:计算得出 [(a^y%p)^x] %p = a^xy%p,生成为密钥
B:计算得出 [(a^x%p)^y] %p = a^xy%p,生成为密钥
五、应用程序:RPM 文件完整性的两种实施方式
被安装的文件
MD5单向散列
rpm –verify package_name (or -V)
发行的软件包文件
GPG公钥签名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat* 光盘下也有此文件
rpm –checksig pakage_file_name (or -K)
六、加密工具 gpg
1、使用gpg实现对称加密
对称加密file文件 gpg -c file
查看生成的加密文件 ls file.gpg
在另一台主机上解密file gpg -o file -d file.gpg
-d解密但只是标准输出,-o跟文件名生成新文件,选项位置有要求
2、使用gpg实现对称加密
在hostB主机上用A公钥加密文件 ——-> 在hostA主机上解密
流程:A生成公私对钥 –> A(公钥)传给B –> 在B上用A(公钥)加密文件–> 传文件给A –> 在A上解密文件 ==> OK
在hostA主机上生成公钥/私钥对
gpg –gen-key 建议在虚拟机上操作,长度1024-4096之间默认2048,有效期默认永久,起名至少五个字符以上如qiqiqi,邮箱可不写,对生成的私钥设口令可不输入系统会询问几遍,移动鼠标生成随机数!存在/root/.gnupg里面
在hostA主机上查看公钥
gpg –list-keys 可以看到公钥名字qiqiqi
在hostA主机上导出公钥到aaaa.pubkey
gpg -a –export -o aaaa.pubkey 文件名随便写,cat aaaa.pubkey可读字符
从hostA主机上复制公钥文件到需加密的B主机上
scp aaaa.pubkey hostB:
在hostB主机上导入公钥
gpg –import aaaa.pubkey
gpg –list-keys 可以看到A主机的公钥qiqiqi
用从hostA主机导入的公钥,加密hostB主机的文件f1,生成f1.gpg
gpg -e -r qiqiqi f1 这里要用A主机公钥名字,而不是存放公钥的文件名
file f1.gpg 查看文件类型
复制加密文件到hostA主机
scp f1.gpg hostA:
在hostA主机解密文件
gpg -d f1.gpg 预览加密文件解密后的内容,并不生成新文件
gpg -o f2 -d f1.gpg 解密后的文件生成新文件f2
删除公钥和私钥
gpg –delete-keys qiqiqi 删除公钥,/root/.gnupg/pubring.gpg 文件会减小
gpg –delete-secret-keys qiqiqi 要写公钥的名字
七、CA和证书
PKI: Public Key Infrastructure 公钥基础设施
签证机构:CA(Certificate Authority) 类似公安局
注册机构:RA
证书吊销列表:CRL 网站上名字是“CRL分发点”,可下载文本查看
证书存取库:CB
X.509:定义了证书的结构以及认证协议标准,如下:
版本号
序列号 主体公钥
签名算法 CRL分发点
颁发者 扩展信息
有效期限 发行者签名
主体名称 (即颁发对象)
证书类型:
证书授权机构的证书
服务器
用户证书 例如发送邮件,加密邮箱时有
获取证书两种方法:
- 使用证书授权机构
生成签名请求(csr) –> 将csr发送给CA –> 从CA处接收签名
- 自签名的证书 : 自已签发自己的公钥
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99674