一、安全機制
安全機制
信息安全防護的目標
- 保密性 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.www58058.com/99674