openssl與資料傳輸安全
資料安全服務的幾個方面:
1
2
3
4
5
6
|
1、認證
訪問控制 阻止對資源的未授權訪問
2、資料保密性
3、資料完整性
要保證傳送方所傳送的資料沒有被修改。。。
4、不可否認性
|
一、怎麼驗證資料的完整性。也就怎麼知道資料在傳輸的過程中沒有被修改過。這就要使用到單向加密演算法,提取資料的指紋(特徵碼)。
資料的傳輸雙方為:甲、乙
甲:在資料傳輸之前,提取該資料的“指紋”然後,把資料指紋附加在資料中一起傳送給乙。
乙:接收到該資料以後,再提取資料的“指紋”。與附加在資料中的資料指紋作比較,如果一樣,
就證明,該資料在是完整的,在傳輸的過程中沒有被修改過。
例:
1、使用【md5sum】單向加密演算法提取檔案secure的資料指紋
1
2
|
[root@server test ] # md5sum secure
1f66b7c25cd47ba8dbe78ee4c28dfd36 secure |
2、在secure檔案中新增空白行
增加前
1
2
3
|
[root@server test ] # tail -2 secure
Aug 2 09:48:27 stu13 sshd[2231]: pam_unix(sshd:session): session opened for user admin by (uid=0)
Aug 2 09:48:33 stu13 su : pam_unix( su -l:session): session opened for user root by admin(uid=
|
使用重定向增加空白行
1
2
3
|
[root@server test ] # echo "" >> secure
[root@server test ] # tail -2 secure
Aug 2 09:48:33 stu13 su : pam_unix( su -l:session): session opened for user root by admin(uid=502)
|
3、再提取檔案secure的指紋
1
2
|
[root@server test ] # md5sum secure
ffc2cd02fa9e936c29302c802131e629 secure |
說明:
從上面的事例可以看出,檔案secure新增空白行之後,該檔案的資料指紋已經發生了翻天腹地的改變了。類似於“蝴蝶效應”,在單向加密演算法中被稱為:”雪崩效應“。這也正是通過資料指紋可以檢驗資料的完整性的原因。
如果,在甲與乙的資料傳輸鏈路中,丙截獲了資料包。上面的方法也不能確保資料在傳輸的過程沒有被篡改過的。
通訊雙方:甲、乙
黑客: 丙
甲:在傳送資料包給乙之前,先提取資料指紋並把它附加在資料中一起傳送給乙
丙:在資料包的傳輸鏈路中,使用某工具截獲了甲傳送給乙的資料包。修改資料內容,並重新生成資料
指紋,再傳送給乙
乙:接收到資料包以後,提取資料指紋。做資料指紋比較,是相同的。乙就認為該資料在傳輸的過程中
沒有被篡改過。事實上,資料已經被篡改過。
原因:接收資料方乙,無從考證附加在資料包中的資料指紋是否是甲提取的。那麼,乙怎麼樣才可以驗證該資料指紋一定是甲提取的呢,還有資料指紋在傳輸的過程中沒有被修改過。這就使用到非對稱加密的功能了。
非對稱加密的金鑰是成對出現的,分為:公鑰(public key)和私鑰(secret key)。
這種加密方式有個特點:
1
2
3
4
|
公鑰是公開的,私鑰是自己保留的。
公鑰是從私鑰中提取而來的。
公鑰加密的資料,使用私鑰才能解密。
私鑰加密的資料,使用公鑰才能解密。
|
前提:
通訊雙方為:甲、乙
在資料互動之前,通訊雙方都各自生成金鑰對,都把公鑰給對方,私鑰自己保留。
資料傳輸:
甲:提取資料的指紋,並使用接收者乙的公稱加密資料指紋,然後再與資料一起傳送給乙。
乙:在接收到資料之後,使用自己的私鑰對資料指紋進行解密,如果能夠解密成功,
證明提取資料指紋的一定是甲。再提取資料的指紋。做資料指紋比較,如果它們一樣的話。
就說明,該資料在傳輸的過程中沒有被篡改過。
如果,丙在資料的傳輸鏈路上截獲了資料,篡改了資料,重新提取資料的指紋。但是丙沒有資料傳送者甲的私鑰,接收者乙使用甲的公鑰做資料指紋的製作者身份核實的時候就會發現資料指紋已經被修改了。這樣就能檢測資料在傳輸的過程中是否被修改過。即使某人截獲了資料,接收者也能正確無誤的判斷資料在傳輸的過程中是否被人篡改過。也就是資料的完整性。
但是,甲傳送給乙的資料是明文傳輸的,只保證了資料的完整性,沒有滿足資料的保密性的要求。如果它們傳送的資料是機密性的內容,在資料鏈路上的竊聽者就會截獲到資料就可以看到資料包中的絕密內容。所以,我們的資料要加密之後,再傳送的。
二、資料的保密性是如何實現的呢?
資料的加密方式有兩種:
1
2
|
1、對稱加密 2、非對稱加密 |
非對稱加密的金鑰非常長,對資料加密的速度比對稱加密的速度慢得多。速度最少相差上百倍。如果web伺服器傳輸的資料使用非對稱加密的話,會影響使用者的體驗效果的。所以對稱加密一般是用作資料加密的。
但是,使用單向加密資料,通訊雙方金鑰交換也是個問題,怎麼辦呢?
非對稱加密能夠實現金鑰的交換,對稱加密加密資料的速度又很快,那麼它們聯合起來就可以解決:資料的加密和金鑰的交換了。
甲:使用對稱加密方法,一起加密資料和資料指紋。再使用乙的公鑰加密對稱加密的金鑰。
把它們一起傳送給乙。
乙:接收到資料包以後:
使用自己的私鑰解密對稱加密的金鑰(甲使用乙的公鑰加密了金鑰) —–> 獲取到了明文的對稱加
密的金鑰
使用金鑰解密,資料與資料指紋。 —————> 分別獲取到使用乙公鑰加密的資料指紋
和明文的資料
使用自己的私鑰解密資料指紋 ——————-> 獲取到明文的資料指紋
提取資料的資料指紋 ——————-> 做資料指紋的比較。
1
2
3
4
|
前面的甲乙雙方資料通訊中: 資料的保密性,使用對稱加密。 金鑰交換是依靠非對稱加密完成的。
資料的完整性,使用單向加密。 加密資料指紋、驗證資料指紋的製作者的身
份都是非對稱加密完成的。
|
都涉及到了資料通訊雙方的公鑰。假如通訊雙方在公鑰交換的過程中,丙在資料的鏈路中,擷取到了乙發給甲的公鑰,丙自己生成金鑰對把自己的公鑰發給了甲。這樣丙就冒充乙與甲進行通訊。也就是所謂”中間人攻擊“。那麼甲怎麼確保與自己通訊的一定是乙呢?或者說自己獲取到的公鑰一定是乙的呢?這就要使用到資料證書了。
三、如何辨別公鑰的真偽?
這就需要一個第三方機構,認證中心CA。做個證明,這個證明就是所謂的資料證書。這個資料證書包含了使用者的部分資訊(如:主機名稱、郵件地址)和公鑰資訊。甲通過查這個資料證書,就知道這個公鑰一定是乙的。這樣甲就可以放心地和乙進行資料交換了。
但是,甲怎麼知道乙這個這個資料證書一定是合法的公證的CA機構頒發的呢?
這就需要身份驗證了,像公安局對***蓋章一樣,CA利用自己的私鑰在乙的數字證書加上資料簽名。甲利用CA的公鑰就可以辨別資料證書的真偽了。
Linux 中是使用:Openssl 能夠實現單向加密、對稱加密、非對稱加密、證書的發放製作以及簡單構建一個PKI(公鑰基礎設施),是一種開源的實現。
openssl它由三個主件:
1
2
3
4
5
6
|
1、libcrypto 這是一個加密庫,專門為其它軟體呼叫的加密功能的加密庫。
2、libssl 用於實現ssl協議的一個庫。很多網路應用都可以使用ssl進行加密資料。如:web 伺服器 Apache
3、命令列工具:openssl 可以實現資料的完整性校驗、加密、解密、證書的生成,還包括生成證書請求、頒發證書等等。
|
檢視openssl工具的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
[root@server ~] # openssl -h
openssl:Error: `-h` is an invalid command .
##openssl 命令的子命令。 ## dgst 表示提取資料的特徵碼(資料指紋)。 ## enc 表示使用對稱加密演算法加密資料 ## getrsa 生成私鑰 ## req 從私鑰中提取公鑰,要求輸入公司的名稱、主機、郵箱、公司地址等。生成證書籤署請求 ## ca CA機構稽核證書籤署請求後,使用該子命令發證 ## passwd 加密明文的密碼 Standard commands asn1parse ca ciphers cms crl crl2pkcs7 dgst dh dhparam dsa dsaparam enc engine errstr gendh gendsa genpkey genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8
pkey pkeyparam pkeyutl prime rand req rsa rsautl s_client s_server s_time sess_id smime speed spkac ts verify version x509 ##所支援的提取資料指紋的演算法 Message Digest commands (see the `dgst` command for more details)
md2 md4 md5 rmd160 sha sha1 ##所支援的對稱加密的演算法 Cipher commands (see the `enc` command for more details)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb camellia-256-cbc camellia-256-ecb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40 seed seed-cbc seed-cfb seed-ecb seed-ofb zlib |
如果使用openssl進行對稱加密的:
1
2
3
|
[root@server ~] # openssl enc -des3 -salt -a -in fstab -out fstab.des3
enter des-ede3-cbc encryption password: -----> 輸入密碼 Verifying - enter des-ede3-cbc encryption password: |
檢視加密後的檔案型別
1
2
|
[root@server ~] # file fstab.des3 ----> 檔案型別跟加密前一樣的。但是開啟是亂碼。
fstab.des3: ASCII text |
解密fatab.des3
1
2
|
[root@server ~] # openssl enc -d -des3 -salt -a -in fstab.des3 -out fstab
enter des-ede3-cbc decryption password: --------> 輸入密碼 |
單向加密 使用命令dgst
1
2
|
[root@server ~] # openssl dgst -md5 fstab
MD5(fstab)= 53b4962a89e6eb77a83cb7592ee7f783 |
加密明文密碼
1
2
3
4
|
[root@server ~] # openssl passwd -1
Password: ---> 輸入明文的密碼 Verifying - Password: $1$CgFeVKbO$8.KGlawM.3vHADcOS1VZT.
|
相關文章
- 讓資料傳輸更安全
- oracle net manager 資料傳輸安全Oracle
- HTTPS 如何保證資料傳輸安全HTTP
- 資料傳輸過程的安全考慮
- 從OpenSSL漏洞談及資料安全
- 20.7 OpenSSL 套接字SSL加密傳輸加密
- 談談資料傳輸中的安全性
- 大檔案資料如何做到安全傳輸?
- 工信部:資料傳輸安全白皮書(附下載)
- 如何提高大資料傳輸的安全性大資料
- IC設計資料傳輸 如何能保障安全高效?
- 不安全網路中的資料安全傳輸利器——GnuPG(上)
- 安全加密傳輸加密
- 企業資料跨境傳輸的困境與前路
- 完成資料的跨界傳輸與驗證
- 大規模資料傳輸,知易行難 — 資料傳輸與 ETL 平臺的架構演進架構
- 資料壓縮傳輸與斷點續傳那些事兒斷點
- HTTPS是怎麼保證資料安全傳輸的?HTTP
- 保險行業需要一個安全的大資料傳輸行業大資料
- iOS資料傳輸工具iOS
- 探索SPI單線傳輸模式:時鐘線與資料傳輸的簡化之道模式
- 關於印度跨境資料傳輸,印度放寬了跨境資料傳輸
- TLS是如何保障資料傳輸安全(中間人攻擊)TLS
- 【乾貨分享】Ftrans安全資料交換系統 搭建跨網資料傳輸通道
- nodejs 介面傳輸資料NodeJS
- 特殊條件資料傳輸
- iPaas資料傳輸的方式
- HDFSDATANODE資料傳輸詳解
- TCP傳輸資料長度TCP
- 《資料安全能力成熟度模型》實踐指南05:資料傳輸加密模型加密
- 企業大資料傳輸方式,鐳速提供大資料傳輸解決方案大資料
- 鐳速傳輸:安全檔案傳輸的意義
- Xamarin Essentials教程資料處理傳輸資料
- 安全設計:加速傳輸軟體鐳速傳輸安全技術解讀
- LSMW:簡單批量資料傳輸
- 資料傳輸控制方式(i/o)
- openGauss OCK加速資料傳輸
- 鐳速-跨國車企資料高速、安全跨境傳輸解決方案