Openssl 加密,解密,CA認證

來源:互聯網
上載者:User

標籤:開來源程式   加密   認證   

今天我們來說一說openssl,那到底什麼是openssl呢?

  OpenSSL是一個安全工具集,同時也提供了開來源程式庫。它支援ssl(Secure Sockets Layer, v2/v3),TLS(Transport Layer Secure, v1)。這套工具集的應用範圍非常之廣

OpenSSL由三部分組成:libencrypto庫,libssl庫,openssl多用途命令列工具

接著我們說一下密碼編譯演算法和協議:

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

                   特性:
                    (1)、加密、解密使用同一個密鑰;
                    (2)、將未經處理資料分割成為固定大小的塊,逐個進行加密;
                    
           缺陷:
                    (1)、密鑰過多;
                    (2)、密鑰分發困難;

        2,公開金鑰加密:密鑰分為公開金鑰與私密金鑰
                公開金鑰:從私密金鑰中提取產生;可公開給所有人;pubkey
                私密金鑰:通過工具建立,使用者自己留存,必須保證其私密性;secret key;
                特點:用公開金鑰加密的資料,只能使用與之配對兒的私密金鑰解密;反之亦然;
                
                用途:
                    數位簽章:主要在於讓接收方確認發送方的身份;
                    金鑰交換:發送方用對方公開金鑰加密一個對稱金鑰,並發送給對方;

                    資料加密

            演算法:RSA, DSA, ELGamal
                    DSS: Digital Signature Standard
                    DSA:Digital Signature Algorithm

      3,單向加密:即提出資料指紋;只能加密,不能解密;
                特性:定長輸出、雪崩效應;
                功能:完整性;
                演算法:
                    md5:Message Digest 5, 128bits
                    sha1:Secure Hash Algorithm 1, 160bits
                        sha224, sha256, sha384, sha512

      4,金鑰交換

               公開金鑰加密:通過擷取對方的公開金鑰對資料進行加密,只有對方的私密金鑰才能解密

               DH演算法(Deffie-Hellman):由兩個人名組成

然後我們說一下加密解密過程:

加密過程:
第一步:發信者先用單向加密的演算法計算出資料的特徵碼,然後用自己的私密金鑰加密特徵碼,並將其結果附加在資料後面,
第二步:然後產生一個臨時的對稱金鑰,並使用這段對稱金鑰密碼編譯這整段資料,
第三步:然後使用收信者的公開金鑰加密這臨時的對稱金鑰,並附加在這段資料後面,然後發送給收信者
解密過程:
第一步:收信者收到資料後,先用自己的私密金鑰解密這段資料,得到對稱式加密的密鑰後,解密其對稱式加密的資料,
第二步:然後用發信者的公開金鑰解密這段特徵碼,能解密的話,發信者的身份得到認證
第三步:收信者再用同樣的單向加密的計算方法計算這段資料,並與解密出來特徵碼進行比較,如果特徵碼相同,則資料完整性得到認證

各密碼編譯演算法管理命令

openssl:預設在Centos 7上面預設安裝,可以直接使用,有很多子命令可以分別管理。

    子命令分為三類:

        標準命令

        資訊摘要命令(dgst命令)

        加密命令(enc子命令)

    標準命令:enc,ca,req,genrsa等等

對稱式加密:
        工具:openssl  enc,  gpg
        支援的演算法:3des, aes, blowfish, towfish   
        enc命令:
           加密:~]# openssl  enc  -e  -des3  -a  -salt  -in fstab -out fstab.ciphertext
           解密:~]# openssl  enc  -d  -des3  -a  -salt  -out fstab -in fstab.ciphertext
 單向加密:
            工具:openssl dgst, md5sum, sha1sum, sha224sum,sha512sum ...
              dgst命令:
                ~]# openssl  dgst  -md5  /PATH/TO/SOMEFILE  (md5sum /PATH/TO/SOMEFILE)

 650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/7F/84/wKioL1chmgrh2Li0AAA34msFJMI558.png" title="QQ20160428125942.png" alt="wKioL1chmgrh2Li0AAA34msFJMI558.png" />        產生使用者密碼:
            工具:passwd, openssl  passwd           
                openssl  passwd  -1  -salt  SALT               
        產生隨機數:
            工具:openssl  rand
            
            ~]# openssl  rand  -hex  NUM
            ~]# openssl  rand  -base  NUM

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7F/84/wKioL1chmRfQlZpWAAAYLTfCIFs035.png" title="QQ20160428125659.png" alt="wKioL1chmRfQlZpWAAAYLTfCIFs035.png" />      
公開金鑰加密:

     產生私密金鑰:~]# (umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE  NUM_BITS(2的次方))
         ~]# (umask 077; openssl genrsa -out /tmp/hello.txt 1024)
     提出公開金鑰: ~]#  openssl  rsa  -in  /PATH/FROM/PRIVATE_KEY_FILE  -pubout
         ~]# openssl rsa -in /tmp/hello.txt -pubout

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7F/86/wKiom1chmzaD4yhnAABpxcpSCO4015.png" title="QQ20160428130929.png" alt="wKiom1chmzaD4yhnAABpxcpSCO4015.png" />

PKI及建立私人CA

    PKI:公開金鑰基礎設施(Public Key Infrastructure)

        簽證機構:CA

        登錄授權單位:RA

        憑證撤銷清單:CRL

        整數存取庫

openssl命令:
         設定檔:/etc/pki/tls/openssl.cnf           
      構建私人CA:
         在確定配置為CA的服務上產生一個自簽認證,並為CA提供所需要的目錄及檔案即可;       
           步驟:
              (1) 產生私密金鑰;
                   ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

              (2) 產生自簽認證;
                   ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
                       -new:產生新認證簽署請求;
                       -x509:產生自簽格式認證,專用於建立私人CA時;
                       -key:產生請求時用到的私人檔案路徑;
                       -out:產生的請求檔案路徑;如果自簽操作將直接產生簽署過的認證;
                       -days:認證的有效時間長度,單位是day;

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7F/86/wKiom1chnuKztjK6AACNt2i8MYs539.png" title="QQ20160428132507.png" alt="wKiom1chnuKztjK6AACNt2i8MYs539.png" />

              (3) 為CA提供所需的目錄及檔案;
                        ~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
                        ~]# touch  /etc/pki/CA/{serial,index.txt}
                        ~]# echo  01 > /etc/pki/CA/serial

要用到認證進行安全通訊的伺服器,需要向CA請求籤署認證:

(1) 用到認證的主機產生私密金鑰;
            ~]# mkdir  /etc/httpd/ssl
            ~]# cd  /etc/httpd/ssl
            ~]# (umask  077; openssl  genrsa -out  httpd.key  2048)
(2) 產生認證簽署請求              
           ]# openssl req -new -key httpd.key -out httpd.csr -days 365

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7F/84/wKioL1cho2rQB_NsAACrUTk4bDc341.png" title="QQ20160428134106.png" alt="wKioL1cho2rQB_NsAACrUTk4bDc341.png" />

(3) 將請求通過可靠方式發送給CA主機;
        scp certs/httpd.csr  [email protected]:/tmp
(4) 在CA主機上籤署認證;
         ~]# openssl ca  -in  /tmp/httpd.csr  -out  /etc/pki/CA/certs/httpd.crt  -days  365
(5) 簽署完認證以後發給伺服器主機
        ~]# scp /etc/pki/CA/certs/httpd.crt [email protected]:/etc/httpd/ssl/httpd.crt

查看認證中的資訊:
       ~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

吊銷認證:
      步驟:
         (1) 用戶端擷取要撤銷憑證的serial(在使用認證的主機執行):
            ~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject
         (2) CA主機吊銷認證
             先根據客戶提交的serial和subject資訊,對比其與本機資料庫index.txt中儲存的是否一致;
                        
       吊銷:# openssl  ca  -revoke  /etc/pki/CA/newcerts/SERIAL.pem

本文出自 “11295442” 部落格,請務必保留此出處http://11305442.blog.51cto.com/11295442/1768566

Openssl 加密,解密,CA認證

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.