189 8069 5689

加密解密技术基础、PKI及创建私有CA-创新互联

在OSI模型和tcp/ip模型中,应用发送某个数据到服务器,通过很多条路径才能到达服务器,在发送的路上,因为数据是明文,且任意人都可以查看,这就给数据带来了风险。因此,加密就很有必要了。

站在用户的角度思考问题,与客户深入沟通,找到江达网站设计与江达网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名虚拟主机、企业邮箱。业务覆盖江达地区。

加密解密技术基础、PKI及创建私有CA

常见的密钥算法和协议
 对称加密(加密解密使用同一个密钥)
 公钥加密(非对称加密,公钥和私钥)
 单向加密(只能加密,不能解密)
 认证协议

对称加密

 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加 密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密 性好,而且对计算机功能要求也没有那么高。IDEA加密标准由 PGP(Pretty Good Privacy)系统使用。

工作过程

下面举个例子来简要说明一下对称加密的工作过程。甲和乙是一对生意搭档, 他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两 把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。加密解密技术基础、PKI及创建私有CA

上面是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。这个思想被用到了现代计算机通信的信息加密中。在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。

对称加密常用的算法:

    DES:Data Encryption Standard;
    3DES:Triple DES;
   AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
   Blowfish
   Twofish
   IDEA
   RC6
   CAST5

 特性:
  1、加密、解密使用同一个密钥;
  2、将原始数据分割成为固定大小的块,逐个进行加密;

 缺陷:
  1、密钥过多;
  2、密钥分发困难;

公钥加密

  与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果 用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两 个不同的密钥,所以这种算法叫作非对称加密算法。

工作过程

1.A要向B发送信息,A和B都要产生一对用于加密非对称加密算法和解密的公钥和私钥。

2.A的私钥保密(自己保存),A的公钥告诉B;B的私钥保密(自己保存),B的公钥告诉A。

3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。

4.A将这个消息发给B(已经用B的公钥加密消息)。

5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

加密解密技术基础、PKI及创建私有CA

     特性:

    公钥:从私钥中提取产生;可公开给所有人;pubkey
   私钥:通过工具创建,使用者自己留存,必须保证其私密性;private key;
  特点:

    用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

  用途:
   数字签名:主要在于让接收方确认发送方的身份;
   密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
   数据加密

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

单向加密

 又叫单向散列算法,又称hash函数,Hash函数(也称杂凑函数或杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数。这个输出串称为该消息的杂凑值。一般用于产生消息摘要,密钥加密等。即提取出数据指纹;只能加密,不能解密;

    特性:定长输出、雪崩效应;
   功能:完整性验证;
   常见算法:
     md5:Message Digest 5, 128bits
     sha1:安全的哈希算法 Secure Hash Algorithm 1, 160bits
        sha224, sha256, sha384, sha512

密钥交换:

    IKE(Internet Key Exchange)一种用以获得认证密钥的协议。

 密钥交换的两种机制:

   1、公钥加密实现:

发送方用接收方的公钥加密自己的密钥,接收方用自己的私钥解密得到发送方的密钥,逆过来亦然,从而实现密钥交换。

   2、使用DH算法:前提发送方和接受方协商使用同一个大素数P和生成数g,各自产生的随机数X和Y。发送方将g的X次方modP产生的数值发送给接收方,接受方将g的Y次方modP产生的数值发送给发送方,发送方再对接收的结果做X次方运算,接受方对接收的结果做Y次方运算,最终密码形成,密钥交换完成。

通信阶段加密解密

加密解密技术基础、PKI及创建私有CA

BOB和ALICE通信阶段

 黑框A:表示要传输的数据
 黑框B:就是单项加密对这段数据提取的特征码,这段特征码同时运用了非对称加密,具体过程是用BOB的私钥加密,传输给ALICE,只要到达后ALICE能解密,表明对方确实是BOB。这一过程同时起到了用户认证和数据完整性的校验。黑框B又称为数字签名
 红框A:这一阶段会生成一段很长的随机数(密钥)然后配合对称加密算法对黑框A和黑框B加密,但是我们如何把加密的密钥传输给ALICE呢?这就要用到红框B了
 红框B:这一阶段是用ALICE的公钥加密这串随机数(对称加密阶段的密钥),ALICE接收到数据后如果能用自己私钥解密,那就证明接受者确实ALICE

加密过程:
 第一步:用单向加密算法提取数据(黑框A)的特征值
 第二步:用自己的私钥加密这段特征值形成黑框B
 第三步:用对称加密算法,对黑框A和黑框B来加密,得到红框A
 第四步:用ALICE的公钥来加密第三步所用的密钥,得到红框B

解密过程:
 第一步:ALICE用自己的私钥解密红框B得到对称加密的密钥
 第二步:用这个密钥解密红框A内容
 第三步:用BOB的公钥解密黑框B,如果能成功,说明发送方确实是BOB,这就完成了身份验证(解密后会得到一串数据的特征值)
 第四步:用同样的单项加密算法来对这段数据提取特征值,如果和第三步的特征值一样,说明这段数据是完整的,这就完成了数据完整性的校验

还有一个问题就是BOB和ALICE如何获得对方的公钥,或者说如何证明获得的公钥就是对方。这就需要引入另一方证书颁发机构CA,下面是对证书颁发机构跟BOB/ALICE之间的解释

 黑框C:代表要颁发给BOB/ALICE的公钥,组织,地址等信息
  黑框D:是对黑框C进行单向加密后得到的数字签名,然后用自己的私钥对其加密,传输给BOB和ALICE,拿着这个证书颁发机构的公钥(这些证书颁发机构 的公钥一般已经被microsoft事先放在windows里面,当然其他操作系统也是一样的)的BOB和ALICE如果能对这个证书进行解密,说明这个 证书颁发机构不是冒充的
 红框E:表示颁发给BOB和ALICE的证书

CA的工作方式:

加密解密技术基础、PKI及创建私有CA

PKI

PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2);CA 操作协议;CA 管理协议;CA 政策制定。一个典型、完整、有效的PKI 应用系统至少应具有以下五个部分;

           公钥基础设施
   签证机构:CA
   注册机构:RA
   证书吊销列表:CRL
   证书存取库

CA:
 公共信任的CA,私有CA;

 建立私有CA:
   openssl
   OpenCA

openssl命令:
  配置文件:/etc/pki/tls/openssl.cnf

构建私有CA:
  在确定配置为CA的服务上生成一个自签证书,并为CA提供所需要的目录及文件即可;

步骤:

    1、生成私钥

    2、生成自签证书

    3、为CA提供所需的目录和文件

操作步骤

  (1) 生成私钥;

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

 (2) 生成自签证书;

 [root@bogon ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
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]:test
Organizational Unit Name (eg, section) []:test
Common Name (eg, your name or your server's hostname) []:test
Email Address []:abc@qq.com

   选项解释:

     -new:生成新证书签署请求;
     -x509:生成自签格式证书,专用于创建私有CA时;
     -key:生成请求时用到的私有文件路径;
     -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;
     -days:证书的有效时长,单位是day;

 (3) 为CA提供所需的目录及文件;

[root@bogon ~]#  mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
[root@bogon ~]#  touch  /etc/pki/CA/{serial,index.txt}
[root@bogon ~]#  echo  01 > /etc/pki/CA/serial

要用到证书进行安全通信的服务器,需要向CA请求签署证书:
 步骤:(以httpd为例)

(1) 用到证书的主机生成私钥;

[root@bogon ~]#  mkdir /etc/httpd/ssl 
[root@bogon ~]#  cd /etc/httpd/ssl
[root@bogon ~]#  (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

(2) 生成证书签署请求

[root@bogon ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

(3) 将请求通过可靠方式发送给CA主机;
   U盘复制或其它可靠方式

(4) 在CA主机上签署证书;

[root@bogon ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

查看证书中的信息:

[root@bogon ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

吊销证书:
 步骤:
  (1) 客户端获取要吊销的证书的serial(在使用证书的主机执行):

[root@bogon ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject

  (2) CA主机吊销证书
   先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;

 吊销:

[root@bogon ~]# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

  注:其中的SERIAL要换成证书真正的序列号;

  (3) 生成吊销证书的吊销编号(第一次吊销证书时执行)

[root@bogon ~]#  echo  01  > /etc/pki/CA/crlnumber

  (4) 更新证书吊销列表

[root@bogon ~]#  openssl  ca  -gencrl  -out  thisca.crl

  查看crl文件:

[root@bogon ~]#  openssl  crl  -in  /PATH/FROM/CRL_FILE.crl  -noout  -text

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:加密解密技术基础、PKI及创建私有CA-创新互联
文章来源:http://cdxtjz.cn/article/dpgggd.html

其他资讯