中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

互聯網安全之-------openssl

發布時間:2020-06-01 19:30:09 來源:網絡 閱讀:419 作者:q980916297 欄目:安全技術

在互聯網通信中,比如QQ、MSN等等,如果我們進行交談的內容沒有被加密,這樣的話別人都可以隨訪問了,這是不合適的,所有我們就要對我們通信的內容進行加密,然后再進行通信就相對比較安全了

     在互聯網上數據傳輸有兩種:明文傳輸和加密傳輸。明文傳輸的協議有:ftp、http、smtp、telnet。但是為了數據的完整性和安全性,所以后來引用了加密等相關手段來保證數據的安全和完整性。

加密類型

加密類型原理常用的算法優點缺點
對稱加密雙方使用同一種加密算法對數據進行加密解密

DES, 3DES, AES

加密速度快,適合對大量數據進行加密,可以保證數據的機密性
   雙方采用相同加密算法,這樣無法保證數據的完整性,如果要加密的數據多的話,對秘鑰無法有效的管理
非對稱加密

身份驗證:私鑰加密,公鑰解密

數據發送:公鑰加密,私鑰解密

RSA

DSS

可以保證數據的可用性,和機密性加密速度慢,要用的秘鑰相當長
單項加密直接利用加密算法對數據進行加密,只能加密不能解密

md5,sha1

,sha256,

sha512

可以保證數據的完整性不可解密


   那么一個完整的數據發送是怎么樣一個過程呢?

1、發送方使用選定的單向加密算法計算原始數據的特征碼;

2、發送方使用自己的私鑰加密特征碼,附加于原始數據后面;

3、發送方生成一次性對稱密鑰,并使用此密鑰加密數據(原始數據+加密后的特征碼);

4、發送方使用接收方的公鑰加密一次性對稱密鑰,附加于加密數據后面

5、發送;

1、接收方使用自己的私鑰解密加密的一次性對稱密鑰;

2、使用對稱密鑰解密數據,得到加密的特征碼和原始數據;

3、使用發送方的公鑰解密加密的特征碼;

4、使用與發送方相同的單向加密算法重新計算數據的特征碼,并與解密出的特征做比較

對于非對稱加密而言,獲取對方的公鑰非常關鍵,最簡單的就是自己建一個站點,把

自己的公鑰公布出去,但是別人在獲得的時候,怎么能確保這公鑰就是公布者的呢?

    所以簡單的公鑰分發機制已經不能保證公鑰來源合法性了,于是就有了分布式分發機制,最常見的就是數字證書了

數字證書

    我們為什么要用到數字證書呢?大家想象一下,我們要進行通信的時候,怎么去保證對方一定是我們想要進行交流的那個人呢?做數字簽名?那么怎么保證這數字簽名是合法的呢?這時候就需要第三方機構,分發一種大家都認可的數字證書,比如說×××,當我們看到對方的數字證書的時候,是不是就確定了對方的身份了?

數字證書的格式:  

  數字證書:x.509v3(常用的)

      版本號(version)

      序列號():證書本身在CA中惟一標識;

      簽名算法標志              //  讓使用者確定使用的哪種數據加密算法,以用來驗證證書合法性

      發行者名稱

      有效期:

      證書主體名稱:(組織(主機),個人)

      證書主體公鑰信息:

      發行商惟一標志

      證書主體的惟一標志

擴展:

      簽名:

PKI(Public Key Infrastructure)它是一種規范,定義了一個CA所具有的的機構

組成部分:

         端實體(申請者)

         注冊機構(RC)

        簽證機構(CA)-->簽證機構(CA)

       證書撤消列表(CRL)發布機構

      證書存取庫

         那我們如何去制作一個證書申請呢?如果我們僅要求對公司內部的員工分發證書,那么去第三方機構申請證書是需要一定費用的,這時候我們自己建立一個CA并給自己頒發一個證書,這樣就好很多了

要想自建CA的話,我們要借助一個工具,OpenSSL,

openssl由三部分組成,

  libcrypto:實現加密解密的工具,很多需要加密的程序都會調用這個庫

  libssl :實現ssl功能的

  openssl :openssl的命令行工具

Openssl:常用的幾個命令介紹

versinon 查看openssl的版本號

enc 加密

          -des3 指定加密算法為des

           -in    指定加密/解密文件

           -e     加密

           -d      解密

          -out 制定將加密或者解密過后的文件存放的位置

例如

                將一個文件加密的過程我們就用:

                 openssl enc -des3 -in /path/to/somefile -e -out /path/to/somefile.des3

                 將加密過后的文件解密我們就使用:

                openssl enc -des3 -in /path/to/somefile.des3 -d -out /path/to/somefile

 dgst

              -hex 以16禁止顯示計算出的特征碼

               -out 保存的文件  

      例:以md5的算法獲取一個文件的特征碼

               openssl dgst -md5 -hex /path/to/somefile

speed  速度測試工具

                不帶任何參數將每一種加密算法都測試一遍,指定加密算法的話,只測試指定的算法    

生成私鑰:

    openssl  genrsa num  

    num  指定生成秘鑰的位數,默認是512位的,必須為2的n次方位

 例如

    openssl genrsa 2^n > /path/to/keyfile

    openssl genrsa -out /path/to/keyfile 2^n

對于私鑰也是可以加密的

  -des3 指定以des3的格式加密

  -out 指定保存的位置

:openssl genrsa -des3 2048

       注:我們的私鑰雖然加密,但是也不能讓人隨意看,所以我們應該把私鑰文件的權限改為只有自己才能看

生成公鑰

注:公鑰是從私鑰中中提取出來的:

rsa

       -in  私鑰所存放的位置

       -pubout 提取公鑰

openssl rsa -in /path/to/keyfile -pubout  叢私鑰中提取公鑰

那如何申請證書呢

用到的命令 req

          -in   指定從哪個文件讀取

         -key  指定私鑰文件在哪

         -new  實現制作證書申請

         -days 指定該證書期望使用的時間

         -out  把證書申請保存在那個文件下

例如:如何制作一個證書申請呢:

      openssl req -new -key /path/to/private_key -out /paht/to/certificate.csr

下面我們就來實現自建CA,制作證書申請,分發證書的過程:

自建CA:

# cd /etc/pki/CA/
1、為CA生成一個私鑰:

[root@www CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
...........................+++
.......+++
e is 65537 (0x10001)

2、生成自簽證書:

[root@www CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
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) []:Henan  //指定省份
Locality Name (eg, city) [Default City]:Zhengzhou   //制定城市
Organization Name (eg, company) [Default Company Ltd]:magedu  //指定組織名稱
Organizational Unit Name (eg, section) []:Tech      //指定所在的部門
Common Name (eg, your name or your server's hostname) []:www.magelinux.org            //指定主機名
Email Address []:           //郵箱
[root@www CA]#
[root@www CA]# touch index.txt serial   //提供序列號文件
[root@www CA]# ls
cacert.pem  certs  crl  index.txt  newcerts  private  serial
[root@www CA]# echo 01 > serial

注:這里做自簽證書的時候必須要加-x509,不指定的話就是證書申請

   這樣的話我們自己的CA就創建好了,自簽證書也好了,就可以拿著證工作了

3、簽署證書:
# openssl ca -in /path/to/certreq.csr -out /path/to/certfile.crt(證書文件都以crt結尾) -days 365
是一個數字簽名的過程

客戶端

    生成私鑰

[root@www ~]# mkdir /key
[root@www ~]# (umask 077; openssl genrsa -out /key/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
...............................................................................+++
.........................................................+++
e is 65537 (0x10001)
[root@www ~]#

 制作證書請求:

[root@www ~]# openssl req -new -key /key/httpd.key -out /key/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) []:Henan
Locality Name (eg, city) [Default City]:Zhengzhou
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:www.magelinux.org
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@www ~]#

簽署證書:

[root@www ~]# openssl ca -in /key/httpd.csr -out /key/httpd1.csr -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: Aug 27 06:15:30 2013 GMT
            Not After : Aug 27 06:15:30 2014 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Henan
            organizationName          = magedu
            organizationalUnitName    = Tech
            commonName                = www.magelinux.org
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A7:B0:1A:A0:BB:FB:AE:36:18:D0:72:1B:C5:A7:7C:8E:D5:F5:01:1F
            X509v3 Authority Key Identifier:
                keyid:7E:76:06:55:50:E5:CB:EE:F0:A7:F0:2E:DB:4D:CD:2B:54:C6:AF:39
Certificate is to be certified until Aug 27 06:15:30 2014 GMT (365 days)
Sign the certificate? [y/n]:

專用客戶端測試工具:

# openssl s_client -connect HOST:PORT -CAfile /path/to/cacertfile|-CApath /paht/to/cacertfiles_dir/ -ssl2|-ssl3|-tls1

   -connect 說明鏈接那個服務器的那個端口進行檢測

   -CAfile 指定使用那個CA證書進行檢測

   -CApath 指定那個路徑下的CA證書,與-CAfile二選一使用

   -ssl2 指定協議

   -state 顯示其狀態

openssl中有如下后綴名的文件

.key格式:私有的密鑰
.crt格式:證書文件,certificate的縮寫
.csr格式:證書簽名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫
.crl格式:證書吊銷列表,Certificate Revocation List的縮寫
.pem格式:用于導出,導入證書時候的證書的格式,有證書開頭,結尾的格式


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

基隆市| 永康市| 临颍县| 岚皋县| 岢岚县| 秭归县| 长宁区| 阿勒泰市| 小金县| 泉州市| 莫力| 淮安市| 张掖市| 高邮市| 江达县| 汉沽区| 新泰市| 凤庆县| 出国| 农安县| 景德镇市| 略阳县| 酒泉市| 沙湾县| 于田县| 兰州市| 延庆县| 壤塘县| 惠安县| 景谷| 久治县| 来凤县| 青冈县| 普洱| 松滋市| 芮城县| 沙田区| 九江县| 兰州市| 林口县| 邵东县|