網絡通信安全基礎OpenSSL

OpenSSL:

NIST:

保密性:

數據保密性

隱私性

完整性:

數據完整性

系統完整性

可用性 

安全攻擊:

被動攻擊:竊聽

主動攻擊:偽裝、重放、消息篡改、拒絕服 

安全機制:

加密、數字簽名、訪問控制、數據完整性、認證交換、流量填充、路由控制、公證

安全服務:

認證

訪問控制

數據保密性

連接保密性

無連接保密性

選擇域保密性

流量保密性

數據完整性

不可否認性 

密碼算法和協議:

對稱加密

公鑰加密

單向加密

認證協議 

Linux系統:OpenSSL, gpg(pgp) 

加密算法和協議:

對稱加密:加密和解密使用同一個密鑰;

DESData Encryption Standard

3DES

AESAdvanced (128bits, 192bits, 258, 384, 512bits)

Blowfish

Twofish

IDEA

RC6

CAST5 

特性:

1、加密、解密使用同一個密鑰;

2、將原始數據分割成固定大小的塊,逐個進行加密; 

缺陷:

1、密鑰過多;

2、密鑰分發; 

公鑰加密:密鑰是成對兒出現

公鑰:公開給所有人;pubkey

私鑰:自己留存,必須保證其私密性;secret key

特點:用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然; 

數字簽名:主要在于讓接收方確認發送方身份;

密鑰交換:發送方用對方的公鑰加密一個對稱密鑰,并發送給對方;

數據加密: 

算法:RSA, DSA, ELGamal 

單向加密:只能解密,不能解密;提取數據指紋;

特性:定長輸出、雪崩效應;

算法:

md5: 128bits

sha1: 160bits

sha224

sha256

sha384

sha512 

功能:

完整性; 

密鑰交換:IKE

公鑰加密:

DH (Deffie-Hellman)

A: p, g

B: p, g 

A: x

–> p^x%g 

p^y%g^x = p^xy%g

B: y

–> p^y%g 

p^x%g^y = p^xy%g 

PKI: Public Key Infrastructure

簽證機構:CA

注冊機構:RA

證書吊銷列表:CRL

證書存取庫 

X.509:定義了證書的結構以及認證協議標準

版本號

序列號

簽名算法ID

發行者名稱

有效期限

主體名稱

主體公鑰

發行者惟一標識

主體的惟一標識

擴展

發行者簽名 

SSL: Secure Socket Layer

TLS: Transport Layer Security

1995SSL 2.0, Netscape

1996: SSL 3.0

1999: TLS 1.0

2006: TLS 1.1 RFC 4346

2008TLS 1.2

2015: TLS 1.3 

分層設計:

1、最低層:基礎算法原語的實現,aes, rsa, md5

2、向上一層:各種算法的實現

3、再向上一層:組合算法實現的半成品

4、用各種組件拼裝而成的種種成品密碼學協議/軟件:

tls, ssh, 

OpenSSL:開源項目

三個組件:

openssl: 多用途的命令行工具;

libcrypto: 公共加密庫;

libssl: 庫,實現了ssltls; 

openssl命令: 

openssl version:程序版本號 

標準命令、消息摘要命令、加密命令 

標準命令:

enc, ca, req, … 

對稱加密:

工具:openssl enc, gpg

算法:3des, aes, blowfish, twofish 

enc命令:

加密:openssl enc -e -des3 -a -salt -in anaconda-ks.cfg -out anaconda-ks.ciphertex 
解密: openssl enc -d -des3 -a -salt -in anaconda-ks.ciphertex -out anaa.cfg

-des3

openssl ? 

單向加密:

工具:md5sum, sha1sum, sha224sum, sha256sum,…, openssl dgst 

dgst命令:

openssl dgst -md5 /PATH/TO/SOMEFILE  

MAC: Message Authentication Code,單向加密的一種延伸應用,用于實現在網絡通信中保證所傳輸的數據的完整性; 

機制:

CBC-MAC

HMAC:使用md5sha1算法 

生成用戶密碼:

passwd命令 

openssl passwd -1 -salt SALT

例一:生成密碼

[root@localhost ~]# openssl passwd -1 -salt 123456789 

生成隨機數:

openssl rand -base64|-hex NUM

NUM: 表示字節數;-hex時,每個字符4位,出現的字符數為NUM*2; 

公鑰加密:

加密:

算法:RSA, ELGamal

工具:gpg, openssl rsautl

數字簽名:

算法:RSA, DSA, ELGamal 

密鑰交換:

算法:dh 

DSA: Digital Signature Algorithm

DSSDigital Signature Standard

RSA 

生成密鑰對兒:

openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

例一:生成密鑰私鑰

[root@localhost ~]# openssl genrsa -out rsakey.private 2048
Generating RSA private key, 2048 bit long modulus
.+++ 

# (umask 077; openssl genrsa -out key.pri 2048) 

提取出公鑰:

# openssl rsa -in /PATH/FROM/PRIVATEKEY.FILE -pubout

例一:提取出公鑰

[root@localhost ~]# openssl rsa -in rsakey.private -pubout 

隨機數生成器:

/dev/random:僅從熵池返回隨機數;隨機數用盡,阻塞;

/dev/urandom:從熵池返回隨機數;隨機數用盡,會利用軟件生成偽隨機數;非阻塞;

原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/77642

(0)
kangkang
上一篇 2015-09-06 10:48
下一篇 2015-09-06

相關推薦

  • chmod 沒有執行權限的解決辦法 [轉載http://www.fblinux.com/?p=30]

    chmod沒有權限,貌似就算是root用戶也無法授權,這可咋辦?chmod是設置權限的命令,但是自身沒有了執行權限,那么就表示沒有辦法更改其他命令的權限,也沒有辦法改變自己的權限。 1 2 3 4 [root@localhost ~]# ll /bin/chmod ———-. 1 root root 48712 Oct 15 2014 …

    Linux干貨 2017-01-01
  • 分別設置CentOS 6與CentOS 7的開機啟動為3模式 遇到的問題

    vim /etc/inittab (centos 6) 把id:5: initdefault: 改成3模式 reboot 2  (centos7) vim /etc/inittab 打開文件沒有id:5: initdefault: 這一項 systemd使用比sysvinit的運行級別更為自由的target概念作為替代 第三運行級: multi-u…

    2017-05-18
  • 網絡基礎

    網絡小白一個,針對網絡的基礎知識無從下手,因此本文引用了鳥哥私房菜中的眾多概念性知識,在此謝過,本文主要從OSI七層協議,TCP協議和一些網絡中專業詞匯進行解析,并通過子網掩碼的劃分,網絡接口的配置、路由配置等實例來加深對網絡的理解。 一、OSI七層協議:     OSI七層協議的由來:   由于網絡鏈接過程…

    Linux干貨 2016-09-07
  • 緩存需知

    Edit Web緩存核心技術點需知 5.1 HTTP首部控制 5.2 基于新鮮度檢測機制: 2.1 特征1:時間局部性 2.2 特征2:空間局部性 2.3 緩存的優點 2.4 哪類數據應該被緩存 2.5 哪類數據可緩存但不應該被緩存 2.6 緩存命中率決定緩存有效性 2.7 緩存數據生命周期 2.8 緩存處理步驟 2.9 緩存和普通數據讀取的區別 1. 完整…

    Linux干貨 2017-06-01
  • select循環解析

    前言:   select命令用于創建菜單,在select循環執行時會根據list數組給出選擇菜單,用戶選擇后的結果保存在變量中,然后給出菜單,等待用戶選擇。select是個死循環,如果用戶用戶想跳出選擇循環,需要在循環體中根據條件增加break語句。 格式: select variable in list do 循環體命令 done 示例: 在這個…

    Linux干貨 2016-08-24
  • 單引號、雙引號和反引號使用方法

        首先向馬哥和馬哥團隊敬個禮,謝謝你們帶我進入Linux的世界,剛開始接觸linux時,經??吹絾我?、雙引號和反引號特殊符號,經常搞混淆和誤用,應該用雙引號,有時用到單引號。經過幾天的混亂引用,總算搞明白了一些,簡單總一下三者的使用和區別。  單引號 ‘’     單引號里的內容全部以普通字符的含義進…

    Linux干貨 2015-07-29
欧美性久久久久