墨菲定律:一種心理學效應,是由愛德華·墨菲(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