墨菲定律:一种心理学效应,是由爱德华·墨菲(edward a. murphy)提出的,原话:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择 主要内容: 任何事都没有表面看起来那么简单 所有的事都会比你预计的时间长 会出错的事总会出错 如果你担心某种情况发生,那么它就更有可能发生
1、信息安全防护的目标: 保密性 confidentiality 完整性 integrity 数据不能被串改,要保证数据的完整性 可用性 usability 让系统一直处于稳定可用状态 可控制性 controlability 系统要处于可控制的范围内 不可否认性 non-repudiation 否定事情的正确性 2、安全防护环节: 物理安全:各种设备/主机、机房环境 系统安全:主机或设备的操作系统 应用安全:各种网络服务、应用程序 网络安全:对网络访问的控制、防火墙规则 数据安全:信息的备份与恢复、加密解密 管理安全:各种保障性的规范、流程、方法
安全×××: stride spoofing 假冒 tampering 篡改 repudiation 否认 information disclosure 信息泄漏 denial of service 拒绝服务 elevation of privilege 提升权限 安全设计基本原则: 使用成熟的安全系统 以小人之心度输入数据 外部系统是不安全的 最小授权 减少外部接口 缺省使用安全模式 安全不是似是而非 从stride思考 在入口处检查 从管理上保护好你的系统
常用安全技术 认证 授权 审计 安全通信 在通信的过程中,要保证信息的安全 密码算法和协议 对称加密 公钥加密 单向加密 认证协议
凯撒密码 加密思想是在当前字母往后移三位,比如说:love,oryh,如果最后一位是z的话继续转圈回来从a开始继续往下走
对称加密:加密和解密使用同一个密钥 des:data encryption standard,56bits 3des:相对于des的三倍加密方式 aes:advanced (128, 192, 256bits) blowfish,twofish idea,rc6,cast5 特性: 1、加密、解密使用同一个密钥,效率高 2、将原始数据分割成固定大小的块,逐个进行加密 缺陷: 1、密钥过多 2、密钥分发 3、数据来源无法确认 算法的几个要求: 1、公钥可以公开 2、key 算法和密钥配合起来一块使用,密钥不公开,保证用不同的密钥结合相同算法加密出来的结果是破解不了的
公钥加密:密钥是成对出现 公钥:公开给所有人;public key 私钥:自己留存,必须保证其私密性;secret key 特点: 用公钥加密数据,只能使用与之配对的私钥解密;反之亦然 功能: 数字签名:主要在于让接收方确认发送方身份 对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方 数据加密:适合加密较小数据 缺点: 密钥长,加密解密效率低下 算法: rsa(加密,数字签名) dsa(数字签名) elgamal 基于一对公钥/密钥对 用密钥对中的一个加密,另一个解密 实现加密: 接收者 生成公钥/密钥对:p和s 公开公钥p,保密密钥s 发送者 使用接收者的公钥来加密消息m 将p(m)发送给接收者 使用密钥s来解密:m=s(p(m)) 结合签名和加密 分离签名
将任意数据缩小成固定大小的“指纹” 任意长度输入 固定长度输出 若修改数据,指纹也会改变(“不会产生冲突”) 无法从指纹中重新生成数据(“单向”) 功能: 数据完整性 常见算法 md5: 128bits、sha1: 160bits、sha224 、sha256、sha384、sha512 常用工具 md5sum | sha1sum [ --check ] file openssl、gpg rpm -v
密钥交换: ike( internet key exchange ) 公钥加密: dh (deffie-hellman):生成会话密钥,由惠特菲尔德·迪菲(bailey whitfield diffie)和马丁·赫尔曼(martin edward hellman)在1976年发表 参看:https://en.wikipedia.org/wiki/diffie%e2%80%93hellman_key_exchange dh: a: g,p 协商生成公开的整数g, 大素数p b: g,p a:生成隐私数据 :a (a<p ),计算得出 g^a%p,发送给b b:生成隐私数据 :b,计算得出 g^b%p,发送给a a:计算得出 [(g^b%p)^a] %p = g^ab%p,生成为密钥 b:计算得出 [(g^a%p)^b] %p = g^ab%p,生成为密钥
文件完整性的两种实施方式 被安装的文件 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)
对称加密file文件 gpg -c file ls file.gpg
在另一台主机上解密file gpg -o file -d file.gpg
在hostb主机上用公钥加密,在hosta主机上解密 在hosta主机上生成公钥/私钥对 gpg --gen-key 在hosta主机上查看公钥 gpg --list-keys 在hosta主机上导出公钥到cobbler.pubkey gpg -a --export -o cobbler.pubkey 从hosta主机上复制公钥文件到需加密的b主机上 scp cobbler.pubkey hostb: 在需加密数据的hostb主机上生成公钥/私钥对 在hostb主机上导入公钥 gpg --import cobbler.pubkey 用从hosta主机导入的公钥,加密hostb主机的文件file,生成file.gpg gpg -e -r cobbler file file file.gpg 复制加密文件到hosta主机 scp fstab.gpg hosta: 在hosta主机解密文件 gpg -d file.gpg 删除公钥和私钥 gpg --delete-keys cobbler gpg --delete-secret-keys cobbler