linux加密解密基础、PKI及SSL、创建私有CA

1.加密解密基础:
 
         数据在网络中传输过程中要保证三个要点:

(1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改。
          (2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利用
          (3)数据的可用性:保证授权用户能按需访问存取文件数据

2.常见的加密技术:

对称加密
  公钥加密
  单向加密
 
         (1)对称加密:加密解密使用同一个密钥,将原始数据分割成固定大小的块,逐个进行加密

加密算法: 
                   DES:data encryption standard (数据加密标准)
                   3DES: DES增强版
                   AES:advance encryption standard(高级加密标准)
                    (128bits,192,458,384,512bits)
         (2)公钥加密:密钥是成对儿使用,用公钥加密,必须用与之配对的私钥解密,反之亦然。
                  公钥: 公开给所有人, pubkey
                  私钥, 自己留存,必须保证其私密性。secret key

加密算法:
                   RSA : 由麻省理工Ron Rivest、Adi Shamir、Leonard Adleman三人提出的加密算法,以三个名字首字母命名
                   DSA :Digital Signature Algorithm (数字签名算法)
         (3)单向加密: 只能加密不能解密,提取数据特征码
              加密算法:
                   md5:128bits
                   sha1:160bits
                   sha256
                   sha386
                   sha512

PKI :Public Key Infrastructrure (公钥基础设施)
               PKI是一种规范,它是使用公开密钥技术和数字证书来确保系统信息安全,并负责验证数字证书持有者身份的一种体系。

组成:
            签证机构: CA
            注册机构: RA
           证书吊销列表:CRL
           证书存取库
      CA是PKI的一个机构,专门负责证书的签署和颁发。

x.509:定义证书的结构及认证协议标准:
              组成:
                   版本号:v1,v2,v3
                   序列号: 唯一标识号
                   签名算法ID:标识符
                   发行者名称:
                   有效期限
                   主体名称
                   主体公钥
                   发行者唯一标识
                   主体的唯一标识
                   扩展信息
                   发行者签名

SSL:Secure Socket layer(安全套接字层)
              1995年由网景公司设计,发布SSL2.0版本,后推出3.0版本,1999年推出TLS1.0,相当于SSL3.0升级版,现在常用TLS1.2版本

分层设计:
               1、最低层:基础算法原语的实现,aes, rsa, md5
               2、向上一层:各种算法的实现
               3、再向上一层:组合算法实现的半成品
               4、用各种组件拼装而成的种种成品密码学协议/软件:tls, ssh

3.SSL/TLS的开源项目:Openssl
 
         (1)openssl的三个组件:
                   openssl: 多用途的命令行工具;在公司内部实现私有证书的颁发从而验证其身份信息
                   libcrypto: 公共加密库;提供了各种加密函数
                   libssl: 库,实现了ssl及tls;
  
      openssl命令:

enc, ca, dgst
   
       对称加密:
            工具:openssl enc, gpg
            算法:3des, aes, blowfish, twofish

enc命令:
                 加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
                 解密:~]# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab

单向加密:
            工具:md5sum, sha1sum, sha224sum, sha256sum,..., openssl dgst

dgst命令:
                 openssl dgst -md5 /PATH/TO/SOMEFILE
  
    [[email protected] ~]# openssl dgst -md5 /tmp/fstab
    MD5(/tmp/fstab)= 32402066bd3db486a37ac6bd26b201fb#md5加密

4.建立私有CA:
              OpenCA
              openssl

证书申请及签署步骤:
          1、生成申请请求;
          2、RA核验;
          3、CA签署;
          4、获取证书;

创建私有CA:
              openssl的配置文件:/etc/pki/tls/openssl.cnf

(1) 创建所需要的文件
   # touch index.txt
   # echo 01 > serial
   #
  (2) CA自签证书
   # (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
   # openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem
    -new: 生成新证书签署请求;
    -x509: 专用于CA生成自签证书;
    -key: 生成请求时用到的私钥文件;
    -days n:证书的有效期限;
    -out /PATH/TO/SOMECERTFILE: 证书的保存路径;

(3) 发证
   (a) 用到证书的主机生成证书请求;
    # (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
    # openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
   (b) 把请求文件传输给CA;
   (c) CA签署证书,并将证书发还给请求者;
    # openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

查看证书中的信息:
     openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|-serial

(4) 吊销证书
   (a) 客户端获取要吊销的证书的serial
    # openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

(b) CA
    先根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致;

吊销证书:
     # openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

(c) 生成吊销证书的编号(第一次吊销一个证书)
    # echo 01 > /etc/pki/CA/crlnumber

(d) 更新证书吊销列表
    # openssl ca -gencrl -out thisca.crl

查看crl文件:
     # openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text

时间: 2024-10-12 02:20:31

linux加密解密基础、PKI及SSL、创建私有CA的相关文章

linux关于加密解密技术基础、KPI及创建私有CA

linux加密和解密技术基础.KPI及创建私有CA 一.加密方式分为:1.对称加密:加密和解密使用同一个密钥:      对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,在对称加密算法中常用的算法有:DES. 3DES.TDEA.AES.    Blowfish.Twofish          IDE.ARC6.CAST5等.    特性:      1.加密.解密使用同一个密钥:      2.强原始数据分割成固定大小的块,逐个进行加密

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

一.加密解密技术基础 (一) 安全的目标:      1.保密性,confidentiality      2.完整性,integrity         系统完整性,数据完整性      3.可用性,avaliability(二) 攻击类型:     1. 威胁保密性的攻击:窃听.通信量分析     2. 威胁完整性的攻击:更改.伪装.重放.否认     3. 威胁可用性的攻击:拒绝服务(DoS)(三) 解决方案:      技术(加密和解密).服务(用于抵御攻击的服务以及为了实现上述目标而特

Linux学习笔记—— 基于CentOS创建私有CA及应用

这篇文章应该是有史以来,历时最长最纠结的一次,毫不夸张的讲总结到词穷的地步了.现在每次一到理论知识梳理的过程,总有种茶壶里的饺子,稍微懂点但有说不出来,哎!这辈子估计当不了老师了,话不多说还得撸起袖子接着写不是. 第一章.详细描述一次加密通讯的过程,结合图示最佳. HTTPS在基于SSL建立会话前,会经历4次握手过程以获取会话密钥.流程如下: 图示1 HTTPs 通讯流程详细说明 1. 客户端请求(ClientHello) 客户端向服务器发送会话请求,这一步称为ClientHello.Clien

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

基本概念: 加密作为数据安全保障的一种方式,它不是近代才产生的,历史已经相当久远:加密算法就是加密的方法. 数据加密解密: 数据加密的基本过程就是对原来为明文的文件或数据按特定算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取.阅读的目的.该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程 为什么需要对数据加密:加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取:比如个

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

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说

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

加密解密技术基础.PKI及创建私有CA 一.背景 随着互联网的快速发展,整个互联网中涌入了大量的用户,正所谓林子大了什么鸟都有,随之而来的就是数据的安全性得不到保障:因此就有了对数据的加密及解密. 二.安全的目标 1.目标: 信息加密的目的是为了确保所传输的信息具有保密性,不被其他人所劫持后篡改信息:如果被篡改后接收方也应该能知道,而且也应该确保没被劫持的信息接收方可以读取. 2.数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改. (2)

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

加密解密技术基础,PKI以及创建私有CA 加密算法和协议:1.对称加密:加密和解密使用同一个密钥 DES:Data Encryption Standard; 3DES:Triple DES; AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits) Blowfish Twofish IDEA RC6 CAST5 特性: (1)加密.解密使用同一个密钥: (2)将原始数据分割成为固定大小的块,逐个进行加密: 缺陷:

Linux之加密解密基础技术

下文主要介绍了什么是加密解密:为何要用到加密解密技术:加密解密技术能够为我们带来什么样的好处:常见的几种加密解密技术介绍以及Linux中的openssl. 一.什么是加密,解密 加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送:再用对应的技术手段进行解封,该过程的逆过程就称为解密.这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作:用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作. 二.为什么

Linux之加密解密基础、openssl及CA基础应用

加密解密基础简介 数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改 (2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利 (3)数据的可用性:保证授权用户能按需访问存取文件数据 因此加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密).加密技术包括两个元素:算法和密钥.算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来