馬哥教育網絡21期+第十一周練習博客(上)

馬哥教育網絡21期+第十一周練習博客(上)

1、詳細描述一次加密通訊的過程,結合圖示最佳。

加密同性過程中使用到最重要的就是openssl
    安全加密傳輸過程中要確保如下幾個環節:
    保密性:數據保密性,隱私性
    完整性:數據完整性,系統完整性
    可用性:數據的可用性,系統可用性
安全攻擊:
    被動攻擊:竊聽
    主動攻擊:偽裝,重放,消息篡改,拒絕服務等等
面對以上的安全攻擊定義了如下的安全機制:
    數據加密,數字簽名,訪問控制,數據完整性,認證交換機制,流量填充,路由控制,公證等等
安全服務:
    認證服務
    訪問控制
    數據的保密性:連接保密性,無連接保密性,選擇域保密性,流量保密性
    數據完整性
    不可否認性
在確保以上的安全服務當中采用了密碼算法和協議進行加密:
    密碼算法和協議:對稱加密,公鑰加密,單向加密,認證協議
        對稱加密:加密與解密使用同一個密鑰,將原始數據分割成固定大小的塊,逐個進行加密;
            缺點:密鑰過多,一個連接就要使用一組密鑰進行加密,密鑰分發;
        公鑰加密:密鑰成對出現,公鑰公開給所有人,私鑰自己留存,但必須保證其私密性
            特點:用公鑰加密的數據,必須使用與之配對的私鑰進行解密,反正亦然;
        在公鑰加密中如何防止被篡改其公鑰呢?
        數字簽名:讓接收方確認發送方身份;
        密鑰交換:發送方用對方公鑰加密一個堆成密鑰,并發送給對方,然后進行數據加密;
    單向加密:只能加密,無法解密,提取數據指紋;
        特性:定長輸出,雪崩效應
        功能:保證了數據的完整性

綜上所述:一次加密通信過程:
    例如兩者A,B進行加密通信:
    雙方建立TCP連接,B將自己的CA證書發送給A,A使用存留本機的CA證書庫中找到其公鑰進行解密,如果能解密說明證書可信任,下一步比對其主機名,如果主機名正確可以進行交換,下一步使用單向加密,加密其特征碼與證書中的特征碼進行比對,如果正則,此證書則完全被信任,下一步進行數據交換!
    A將呀發送的內容進行編寫發送給B;
    使用單向加密算法提取數據的特征碼,用自己的私鑰加密這段特征碼附加在這段數據后面
    A再用對稱密鑰將這整段數據進行加密,此時B是沒有這段對稱加密的密鑰的,那么可以使用B的公鑰加密這段對稱密鑰附加在上一段數據后面。
    B使用自己的私鑰解密對稱加密得到對稱加密密鑰,使用對稱解密算法得到明文數據和特征碼,使用對方的公鑰解密特征碼,使用同樣的算法提取特征碼,說明數據完整性得到驗證;
    以上密鑰需要在網上傳送所以這里需要使用到密鑰交換協議:IKE
    A需要拿到B的證書,B需要拿到A的證書,雙方發送由第三方信任的簽署機構發送的證書,
    需要找到發行者的名稱與發行者的簽名,用本地CA的公鑰解密發行者的簽名比較如果正確是可靠
    使用X509里面的加密算法和特征碼做比較,如果正確,證書是可信的!

P9PT0TZG(U9[DBON3_DOLH6.png

2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行辦法證書。
實驗環境:準備2太虛擬機
CA的配置文件在
[root@localhost CA]# cat /etc/pki/tls/openssl.cnf 
 [  ca ]
default_ca  = CA_default        # The default ca section

####################################################################
[ CA_default ]

dir     = /etc/pki/CA       # Where everything is kept
certs       = $dir/certs        # Where the issued certs are kept
crl_dir     = $dir/crl      # Where the issued crl are kept
database    = $dir/index.txt    # database index file.
#unique_subject = no            # Set to 'no' to allow creation of
                    # several ctificates with same subject.
new_certs_dir   = $dir/newcerts     # default place for new certs.

certificate = $dir/cacert.pem   # The CA certificate
serial      = $dir/serial       # The current serial number
crlnumber   = $dir/crlnumber    # the current crl number
                    # must be commented out to leave a V1 CRL
crl     = $dir/crl.pem      # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE    = $dir/private/.rand    # private random number file

x509_extensions = usr_cert      # The extentions to add to the cert

按照以上的配置文件將沒有的文件進行創建:
[root@localhost CA]# touch index.txt
[root@localhost CA]# echo 01 > serial

將其中一臺服務器創建為CA進行證書的頒發:
    1,先建立CA的私有密鑰:
    [root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
    建立私鑰密鑰,但是這里生成的密鑰文件必須是cakey.pem
    2,提取CA私鑰文件中的公鑰文件:
    [root@localhost CA]# openssl req -new -x509 -key  private/cakey.pem -days 7300 -out cacert.pem 
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:Beijing
    Locality Name (eg, city) [Default City]:Beijing
    Organization Name (eg, company) [Default Company Ltd]:xitongjicheng
    Organizational Unit Name (eg, section) []:Ops
    Common Name (eg, your name or your server's hostname) []:ca.xitongjicheng.com
    Email Address []:wanghongkai@163.com
以上就是CA創建完畢!!!
將另外一臺主機模擬成需要申請CA證書的公司!這里我們使用http進行模擬?。≡趆ttp下創建一個目錄為ssl
同樣生成私鑰文件:
[root@localhost httpd]# (umask 077; openssl genrsa -out httpd.key 2048)
提出公鑰文件:
[root@localhost httpd]# openssl req -new -key httpd.key -days 365 -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:xitongjicheng
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:WEB1.xitongjicheng.com
Email Address []:wang#@163.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

然后將B主機要申請的CA發送給CA主機!
    [root@localhost httpd]# scp httpd.csr root@172.16.0.124 /tmp/
然后CA對其申請進行認證:
[root@localhost CA]# openssl ca -in /tmp/httpd.csr -out newcerts/web1xitongjicheng.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
    Serial Number: 1 (0x1)
    Validity
        Not Before: Sep  5 23:52:50 2016 GMT
        Not After : Sep  5 23:52:50 2017 GMT
    Subject:
        countryName               = CN
        stateOrProvinceName       = Beijing
        organizationName          = xitongjicheng
        organizationalUnitName    = Ops
        commonName                = WEB1.xitongjicheng.com
        emailAddress              = wang#@163.com
    X509v3 extensions:
        X509v3 Basic Constraints: 
            CA:FALSE
        Netscape Comment: 
            OpenSSL Generated Certificate
        X509v3 Subject Key Identifier: 
            FB:7D:FF:33:03:30:AE:3F:62:48:AE:95:9B:15:36:87:9A:CE:74:38
        X509v3 Authority Key Identifier: 
            keyid:76:DB:F3:67:97:88:C7:CA:E1:20:E4:55:62:38:CE:08:92:4D:FC:AC

Certificate is to be certified until Sep  5 23:52:50 2017 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated-->這里提示證書已經更新!
這里需要主機要新的生成證書復制一份到certs目錄下進行保存!
[root@localhost CA]# cp newcerts/web1xitongjicheng.crt certs/
將已簽好的證書發還給客戶端:
root@localhost CA]# scp newcerts/web1xitongjicheng.crt 172.16.0.2:/etc/httpd/ssl/

在客戶端查看證書簽發的內容:
[root@localhost ssl]# openssl x509 -in /etc/httpd/ssl/web1xitongjicheng.crt -noout -text
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
    Issuer: C=CN, ST=Beijing, L=Beijing, O=xitongjicheng, OU=Ops, CN=ca.xitongjicheng.com/emailAddress=wanghongkai@163.com
    Validity
        Not Before: Sep  5 23:52:50 2016 GMT
        Not After : Sep  5 23:52:50 2017 GMT
    Subject: C=CN, ST=Beijing, O=xitongjicheng, OU=Ops, CN=WEB1.xitongjicheng.com/emailAddress=wang#@163.com
總結:
.key格式:私有的密鑰    
.crt格式:證書文件,certificate的縮寫    
.csr格式:證書簽名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫    
.crl格式:證書吊銷列表,Certificate Revocation List的縮寫    
.pem格式:用于導出,導入證書時候的證書的格式,有證書開頭,結尾的格式

這樣一次完整私建CA和簽發證書完成!


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

(0)
wostopwostop
上一篇 2016-09-26 07:43
下一篇 2016-09-26 07:43

相關推薦

  • 系統基礎之文件管理工具

    系統基礎之文件管理工具   linux的重要哲學思想之一,一切皆文件.那作為系統管理員,就要求對文件的操作管理特別熟悉.那么下面介紹的一個工具可以幫助到大家,更有效,快捷的完成對文件的處理.下面讓我們來認識以下的工具. 文本工具: 文件內容:   cat: 復制標準輸入到標準輸出     選項:   &nbs…

    Linux干貨 2016-08-07
  • 網卡別名與多網卡綁定

    網卡別名 一塊網卡可以配置多個ip地址,叫做網卡別名   對虛擬主機有用 格式形如:eth0:1  eth0:2 …… 實現方法:   在命令行中臨時設置: ifconfig 命令: ifconfig eth0:0 192.168.1.100/24 演示:   修改配置文件 在/etc/sysconfig/networ…

    Linux干貨 2016-09-05
  • httpd 2.2(Apache Web服務器)

    apache (Web服務器) 簡介: Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。    Apache HTTP服務器是一個模塊化的服…

    Linux干貨 2016-03-30
  • 馬哥教育網絡班20期 第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash #the purpose of program : # #08/11/2016  PATH=/bin:/sbin:…

    Linux干貨 2016-08-15
  • Quota和RAID

    高級文件系統管理 磁盤配額 quota 限制用戶在某個分區的容量,創建數目的多少!一般實施在家目錄 /home 下來限制用戶的占用空間 限制某一群組所能使用的最大磁盤配額  (使用群組限制): 限制某一用戶的最大磁盤配額  (使用用戶限制):它僅能針對整個文件系統來進行設計,無法針對某個單一的目錄來設計它的磁盤配額。 限制某一目錄 &nb…

    Linux干貨 2016-09-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-27 09:34

    寫的很好,圖畫的也很漂亮,希望繼續保持

欧美性久久久久