Linux安全和加解密(一)

本文主要介紹:1、安全機制 2、對稱和非對稱加密 3、散列算法 4、密鑰交換 5、加密工具gpg 6、CA和證書

一、安全機制

安全機制

信息安全防護的目標

  • 保密性 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

(1)
bican813bican813
上一篇 2018-05-28
下一篇 2018-05-28

相關推薦

  • 一次完整的http請求處理過程+MPM工作模式

    ? 1、建立連接:接收或拒絕連接請求? 2、接收請求:接收客戶端請求報文中對某資源的一次請求的過程? Web訪問響應模型(Web I/O)單進程I/O模型:啟動一個進程處理用戶請求,而且一次只處理一個,多個請求被串行響應多進程I/O模型:并行啟動多個進程,每個進程響應一個連接請求復用I/O結構:啟動一個進程,同時響應N個連接請求實現方法:多線程模型和事件驅動…

    2018-06-24
  • 網絡基礎

    1、網絡的特征
    2、OSI模型的七層結構
    3、LAN組成

    Linux筆記 2018-06-19
  • 第三周作業

    第三周作業 1列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 W 命令:顯示信息更加全面 第一行顯示系統的匯總信息,字段分別表示系統當前時間、系統運行時間、登陸內用戶總數及系統平均負載信息。 從第二行開始構成一個表格,共有8個欄目,分別顯示各個用戶正在做的事情及該用戶所占用的系統資料。 USER:顯示登陸用戶帳號名。用…

    2018-07-08
  • 第五周

    1、簡述rpm與yum命令的常見選項,并舉例 (1)什么是rpm? RPM?是RPM Package Manager(RPM軟件包管理器)的縮寫,可以實現安裝、升級、卸載、查詢和校驗、數據庫維護。 CentOS系統上的rpm命令管理程序: rpm –I 安裝 -U 升級 -e 卸載 -q 查詢 –builddb 數據庫維護 (2)rmp的安裝: …

    Linux筆記 2018-07-15
  • 使用until和while分別實現

    使用until和while分別實現192.168.0.0/24
    網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不通則輸出”fail!”

    Linux筆記 2018-06-15
  • 第二周(6.25-7.1)作業

    1、linux 上的文件管理命令有那些,其常用的使用方法及相關演示: 1)目錄管路命令: mkdir : make directories 命令實現格式:mkdir ? [OPTION]… ? ?DIRECTORY… -p: 按需創建父目錄;(路徑名中的基目錄前面的父目錄沒有,其自行創建) -v: ?verbose ? 顯示詳細過程 …

    2018-06-28
欧美性久久久久