加密解密基础

  1. 对称加密: 加密和解密使用同一个密钥

    常见的加密算法有:DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5

    特性:

      1. 加密、解密使用同一个密钥

      2.将原始数据分隔成固定大小的块,逐个进行加密

    缺陷:

      1. 密钥过多

      2. 密钥分发困难

  2. 公钥加密: 密钥是成对出现的

    公钥:pubkey,公开给所有人

    私钥:secret key, 自己留存,必须保证其私密性

    常见的加密算法有: RSA、DSA(只能用于数字签名,不能用于数据加密), ELGamal

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

  3. 单向加密: 只能加密,不能解密,用来提取数据特征码,验证数据完整性

    常见加密算法有:MD5、SHA1、SHA224、SHA256、SHA384、SHA512

      特性: 定长输出,雪崩效应,一个小的改变,加密后的密钥就大不同

  密钥交换(IKE): 常见的有公钥加密、DH(Deffie-Hellman)来实现密钥交换

PKI: Public Key Infrastructure 公钥基础设施

  主要组件:  

     签证机构:CA
   注册机构:RA
   证书吊销列表: CRL
   证书存取库

    目前签发的证书:x.509

     x.509: 定义了证书的结构以及认证协议标准:

            版本号
            序列号
            签署算法ID
            有效期限
            发行者名称
            主体名称
            主体公钥
            发行者唯一标识
            主体的唯一标识
            扩展
            发行者签名

SSL:Secure Socket Layer, 安全的套接字层

TLS: Transport Layer Security  

openssl:开源项目

  三个组件:   

  openssl: 多用途的命令行工具
  libcrypto: 公共加密库
  libssl: 库,实现了ssl及tls

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

openssl version: 查看程序版本号

  常见的标准命令有enc、ca、req

  对称加密:

    工具: openssl enc, gpg    

加密: # openssl enc -e -des3 -a -salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/SOMEFILE
解密: # openssl enc -d -dec3 -a -salt -in /PATH/FORM/SOMEFILE -OUT /PATH/TO/SOMEFILE

  单向加密:

    工具:openssl dgst, md5sum,sha1sum,sha224sum,sha256sum...

 加密: openssl dgst -md5 /PATH/TO/SOMEFILE

  生成用户密码:passwd

  # openssl passwd -1 -salt SALT

  生成随机数:rand

  # openssl rand -base64|-hex NUM
  NUM:表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2

  公钥加密:

    加密: RSA, ELGamal

    工具:gpg, openssl, rsautil

加密私钥:# (umask 077; openssl genrsa -out private.key 2048)
提取公钥:# openssl rsa -in private -pubout

创建私有CA

  1. 创建所需要的文件 

# touch index.txt
# echo 01 > serial

  2.CA自签证书

#(umask 077;openssl genrsa -out  /etc/pki/CA/private.pem 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/casert.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

# scp /etc/httpd/ssl/httpd.csr root@192.168.1.103:/tmp/

   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. 生成吊销证书的编号(第一次吊销一个证书)    
# ech 01 > /etc/pki/CA/crlnumber

     d. 更新证书吊销列表 

 # openssl ca -gencrl -out thisca.crl

       查看crl文件

# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text 

      

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

  1. 创建私有CA, 加密解密基础, PKI, SSL

    发现了一篇图文并茂的超棒的  加密解密, CA, PKI, SSL 的基础文章, 链接如下:https://blog.csdn.net/lifetragedy/article/details/5223 ...

  2. Linux下OpenSSL加密解密压缩文件(AES加密压缩文件)

    OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法.下面介绍使用Openssl进行文件的对称 ...

  3. linux SElinux防护 加密解密 gpg签名与认证

    SElinux Security-Enhanced Linux由美国国家安全局主导开发一套强化linux安全的mac扩展模块 selinux的运作机制:集成到linux内核上(2.6及以上)操作系统提 ...

  4. AES加密、解密(linux、window加密解密效果一致,支持中文)

    转自: http://sunfish.iteye.com/blog/2169158 import java.io.UnsupportedEncodingException; import java.s ...

  5. 6、Linux基础--文件类型、属性信息、创建用户与用户组

    笔记 1.晨考 1.解析映射文件 /etc/hosts 2.磁盘挂载文件 /etc/fstab 3.设置开机自启动脚本的步骤 1.修改/etc/rc.local 2.设置可执行权限 chmod +x ...

  6. ssl协议,openssl,创建私有CA

    SSL是Security Socket Layer:安全的套接字层 他介于HTTP和TCP协议层之间 SSL是Netscape公司开发的,属于个人 TLS是标准委员会制定的 OpenSSL是SSL的开 ...

  7. 【linux基础】第九周作业

    1.详细描述一次加密通讯的过程,结合图示最佳. 加密通讯:A <--> B 1)A与 B通信,首先A.B双方都应该持有对方的公钥,即证书,并验证证书的合法性. 2)加密: i.     A ...

  8. Linux 加密安全和私有CA的搭建方法

    常用安全技术 3A: 认证:身份确认 授权:权限分配 审计:监控做了什么 安全通信 加密算法和协议 对称加密: 非对称加密 单向加密:哈希(hash)加密 认证协议 对称加密: 加密和解密使用的是同一 ...

  9. php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密

    PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...

随机推荐

  1. 用vue怎么写点击保存之后的返回的代码?

    点击完保存调用接口之后,如果使用  this.$router.go(-1); 返回到编辑页面,数据不会有更新,使用 this.$router.replace({ name: '信息展示', param ...

  2. 关于Java项目打包成Runnable jar文件后运行时图片不显示的问题

    现象:在eclipse中能够无误运行,但导出Runnable jar后运行jar包时不显示图片. 原因:路径问题. 方法1: 新建一个文件夹.文件夹中放那个jar包和image文件夹.在这种情况下,双 ...

  3. PHPExcel 读取 xls

    <?php $xlsPath = './test.xls'; //指定要读取的exls路径 //$type = 'Excel2007'; //设置要解析的Excel类型 Excel5(2003或 ...

  4. 解决python tkinter 与 sleep 延迟问题

    多线程(threading——join) join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后, 才可以接着 ...

  5. 学号 20175201张驰 《Java程序设计》第4周学习总结

    学号 20175201张驰 <Java程序设计>第4周学习总结 教材学习内容总结 第5章 继承:避免多个类间重复定义共同行为,用我们已经有的类,去创建新的类 任何子类都可以继承它的父类的成 ...

  6. 上海嘉韦思杯部分writeup

    第二题 打开赛题,看到加密字符串,进行base64解密,发现是JSFUCK,再次解密,控制台得到flag. 第三题 打开频谱图得到flag,flag中有三个_,联想到音频文件详细信息中的三个zero, ...

  7. zt (stack overflow 介绍)

    这是「解密 Stack Overflow 架构」系列的第一篇,本系列会有非常多的内容.欢迎阅读并保持关注. 为了便于理解本文涉及到的东西到底都干些了什么,让我先从 Stack Overflow 每天平 ...

  8. python小程序--one

    #!/usr/bin/env python # _*_ coding:utf8 _*_ import sys user_lock_file="user_lock.txt" # 用户 ...

  9. codeforces-5

    这题可害苦了我最后用了大哥的代码才过的 Diverse String #include<iostream> #include<cstdio> #include<strin ...

  10. Django框架详细介绍---Form表单

    一.概述 在HTML页面中,利用form表单向后端提交数据时,需要编写input等输入标签并用form标签包裹起来,与此同时,在很多应用场景之下需要对用户输入的数据校验,例如注册登录页面中,校验用户注 ...