linux中的openssl的使用

來源:互聯網
上載者:User

 

 隨著網路的發展,安全成了一個很嚴重的問題,也就是在安全的方面要有更高的可信度,這樣才能保證使用者在internet上傳輸資料的時候能夠更加的安全,但是在我們Linux中,主要使用openssl和gpg兩個方法來實現安全機制。   首先簡單介紹一下加密技術:    加密技術可以分為單向加密,對稱式加密,非對稱式加密。    單向加密即使計算一段資料的特徵碼,這個特徵碼值是獨一無二的,對資料完整性進行校正,且輸出定長。其常見的密碼編譯演算法有MD5(128位)、SHA1(160位),看起來SHA1加密產生的校正碼會比MD5的長,當讓加密的效果會更好,但是由於加密的程度更強,所有就會導致速度會慢,所以安全和速度是兩個相對的概念,只有中和了兩者,才能更好的實現最終的目的。     對稱式加密就是加密方和解密方使用相同的密鑰,這樣就會導致加密和解密的速度更快,但是其有一個缺點,如果一個使用者和很多使用者有通訊,那麼這個使用者要麼得記住很多的密鑰,要麼使用一些相同的密鑰,這樣就在使用相同密鑰的使用者中,可以使用自己的密鑰解密其他使用者的加密資訊,從而擷取他人的資訊。常見的密碼編譯演算法有DES(128位)、AES(128、192、256位)、3DES。   非對稱式加密就是加密和解密使用的不是一個密碼,常見的演算法有DSA(支援認證)、RSA(支援認證和加密)。     但是為了為了兩個初次通訊的使用者能彼此知道對方的公開金鑰,採用了IKE(internet key exchange)機制,這樣兩個使用者在internet上傳輸資料的時候就知道彼此的公開金鑰,然後使用對方的公開金鑰來解密發來的加密的資料,而如何在通訊的過程中來確定對方的身份,這就需要藉助PKI(公開金鑰基礎設施),也就是說通過第三方來出示證明,在這裡也就是使用認證機制來驗證使用者的資訊,通常一個認證中存放著通訊人的公開金鑰。所以接下來就從加密開始,然後到頒發認證,最終實現驗證的實驗過程。 1、首先,提到的密碼編譯演算法,使用openssl對文檔加密的方法如下#mkdir /opentest#cd /opentest#cp /etc/fstab  ./#cat inittab 檔案查看如下所示: #openssl  enc -des3 -salt -a  -in inittab -out inittab.des3密碼編譯演算法的時候,我們將會看到如下的內容: 如果我們解壓出來加密後的檔案,可以看出文檔還是恢複到原來的樣子:#openssl  enc -d  -des3  -salt  -a    -in inittab.des3 -out inittab#cat inittab 如所示: 如果使用openssl -X(X為任意參數)可以看到openssl的參數資訊 這是對檔案進行簡單的加密和解密的。 計算檔案單向加密的特徵碼#openssl  dgst -sha inittab原本特徵碼的值是唯一的,但是我對inittab的檔案做了一下修改,就是在第一行加了一個“#”結果發現特徵碼的值揚中不一樣,這就是所謂的“雪崩效應”,牽一髮而動全身,所以特徵碼是用來檢驗一個使用者的所發資訊的完整性的指標,可以看出其在傳輸的過程中是否被修改。這樣就不會根據擷取的特徵碼來逆向解析原檔案,這就是單向密碼編譯演算法的優點。  使用openssl passwd -1可以機密密碼就會產生如下的加密的密碼:[root@server64 open]# openssl passwd -1
Password: 
Verifying - Password: 
$1$MECaB7dA$FUqQcS1r.LroaXLYgeQHl0當然可以使用whatis passwd 查看passwd 資訊:所以使用 man sslpasswd 來查看passwd的資訊,當讓sslpasswd中有一個-salt選項,只要-salt是一樣的,加密後的密碼就是一樣的:   2、接下來我們將介紹關於認證方面的知識   認證包括認證的頒發,認證的撤銷,認證的  一個機構要想有頒發認證的許可權,他自己也要取得別人的信任,所以要有自己的鑰展示給大家,但是公開金鑰可以很Easy的從私密金鑰中擷取的,接下來先講講私密金鑰和公開金鑰的產生方法:#cd /opentest#(umask 66;openssl genrsa 1024 >my.key)  //產生私密金鑰#openssl  rsa -in my.key -pubout -out my.pub //產生公開金鑰然後使用#cat my.key 和cat my.pub可以看到兩個檔案內容,公開金鑰是從私密金鑰中提取出來的,所以他兩個是緊密結合,成對出現的。 CA的步驟:    首先使用者要有一對公開金鑰和密鑰,然後向CA機構發起認證發出請求:但是作為CA機構自己也要有自己的認證,所以需要產生# cd /etc/pki/CA#(umask 66 ; openssl genrsa 2048 > private/cakey.pem) //為自己產生一個認證#openssl  req -new -x509  -key private/cakey.pem  -out  cacert.pem -days 3650然後執行下面互動回答,完成之後就能產生一個認證。 接下來就是使用者自己也要有一對公開金鑰和密鑰,接下來我們建立一對新的公開金鑰和密鑰,#cd /tmp/opentest#(umask 66 ; openssl  genrsa 1024>server.key)產生密鑰#openssl  rsa -in server.key -pubout -out server.pub#openssl req -new -key server.key -out server.csr //CA申請  接下來就是CA機構進行審核然後頒發認證:#openssl ca -in /tmp/opentest/server.csr -out /tmp/opentest/server.crt -days 3650 但是在CA頒發認證的之前還要進行一系列的設定,如編輯/etc/pki/tls/openssl.cnf檔案在/etc/pki/CA 下建立一些列的目錄#mkdir  certs newcerts crl  //建立認證、新認證、認證撤銷的目錄#touch index.txt serial#echo 01>serial   //初始化序號 這樣就建立了一個簡單的CA建立,頒發請求的過程   本文出自 “IT夢-齊-分享” 部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.