加密解密以及CA签证

在当今互联网时代,数据越来越来重要。那么如何加密?解密?以及通过什么方式来认证了??

接下来,我就会和大家谈谈加密,解密以及CA签证的实现。

首先大家的知道一些加密,解密的基本常识:

  1. 互联网上中间人一般用的攻击方式有:

    1. 窃听
    2. 篡改别人数据
    3. 劫持会话
  2. 数据加密的常用的三种方式有:

    1. 对称加密
    2. 非对称加密
    3. 单向加密
  3. SSL:seure socket layer, 安全的套接字层
  4. TSL:transport layer security,
    传输层安全,功能 与SSL相似
  5. 随机数生成器:/dev/random和/dev/urandom 。 -salt:添加杂质,也就是依赖于随机数生成器
  6. 随机数的来源:熵池和伪随机数生成器。熵池中的随机数来自快设备中断和键盘,鼠标的敲击时间间隔;伪随机数生成器中的随机数来自于熵池和软件产生。
  7. openssl rand [-base64] num :也可以用来生成随机数。

    [[email protected] ~]# openssl rand -base64 12

    v8qA8lKAa19aZAWV

?

我直接把对称加密以及非对称加密以图片显示:

?

下面来说下何谓对称加密,非对称加密(公钥加密),单向加密

?

  1. 对称加密:

1、加密方和解密方使用同一个密钥。

2、加密解密的速度比较快,适合数据比较长时的使用。

3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。

4、加密算法:DES(Data Encryption Standard)、3DES、AES(AdvancedEncryption Standard,支持128、192、256、512位密钥的加密)、Blowfish。

5、加密工具:openssl、gpg(pgp工具)

二.非对称加密(公钥加密):

1、每个用户拥用一对密钥加密:公钥和私钥。

2、公钥加密,私钥解密;私钥加密,公钥解密。

3、公钥传输的过程不安全,易被窃取和替换。

4、由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。

5、某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。

6、公钥加密的另一个作用是实现密钥交换。

7、加密和签名算法:RSA、ELGamal。

8、公钥签名算法:DSA。

9、加密工具:gpg、openssl

?

三.单向加密:

1、特征:雪崩效应、定长输出和不可逆。

2、作用是:确保数据的完整性。

3、加密算法:md5(标准密钥长度128位)、sha1(标准密钥长度160位)、md4、CRC-32

4、加密工具:md5sum、sha1sum、openssldgst。

5、计算某个文件的hash值,例如:md5sum/shalsum?FileName,openssl dgst–md5/-sha1 FileName。

?

下面我就来谈谈openssl是什么?如何实现CA自签证?

openssl:

1)组件:libcrypto:加密库。

libssl:实现ssl功能的库。

openssl:多用途的加密工具,能够提供对称加密、公钥加密、单向加密,且可以作为一个简单的本地CA用。

2)openssl的主配置文件:/etc/pki/tls/openssl.cnf

使用openssl实现私有CA

建立私有CA(如下是实现的具体步骤)

????????????[[email protected] ~]# cd /etc/pki/tls

????????????

????????????[[email protected] tls]# ls

????????????cert.pem certs misc openssl.cnf private

????????????

????????????[[email protected] tls]# vim openssl.cnf

????????????

????????????[[email protected] tls]# cd ..

????????????

????????????[[email protected] pki]# ls

????????????CA ca-trust java nssdb rpm-gpg rsyslog tls

????????????

????????????[[email protected] pki]# cd CA/

????????????

????????????[[email protected] CA]# ls

????????????certs crl newcerts private

????????????

????????????[[email protected] CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)

????????????Generating RSA private key, 2048 bit long modulus

????????????.......................................................................................................................................................+++

????????????.................................+++

????????????e is 65537 (0x10001)

????????????[[email protected] CA]# ls

????????????certs crl newcerts private

????????????

????????????[[email protected] CA]# ls -l private/

????????????total 4

????????????-rw-------. 1 root root 1679 Dec 4 15:00 cakey.pem

????????????[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem

????????????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) [CN]:

????????????State or Province Name (full name) [Beijin]:

????????????Locality Name (eg, city) [Beijin]:

????????????Organization Name (eg, company) [ChangSheng]:

????????????Organizational Unit Name (eg, section) []:OD

????????????Common Name (eg, your name or your server‘s hostname) []:ca.changsheng.com

????????????Email Address []:[email protected]

????????????

????????????[[email protected] CA]# ls

????????????cacert.pem certs crl newcerts private

????????????

????????????[[email protected] CA]# touch index.txt

????????????

????????????[[email protected] CA]# touch serial

????????????

????????????[[email protected] CA]# echo 01 >serial

?

?

?

查看证书中的相关信息

????????????# openssl x509 -in /path/to/somefile.crt -noout -text|-subject|-serial

????

?

假如在同一台主机上,:用httpd服务自己给自己签证,具体步骤如下:

?
?

[[email protected] ~]# cd /etc/httpd

[[email protected] httpd]# ls

conf conf.d logs modules run

[[email protected] httpd]# mkdir ssl

[[email protected] httpd]# cd ssl/

[[email protected] ssl]# pwd

/etc/httpd/ssl

?
?

[[email protected] ssl]# (umask 077;openssl genrsa -out httpd.key 1024) //创建密钥

Generating RSA private key, 1024 bit long modulus

...++++++

.............++++++

e is 65537 (0x10001)

[[email protected] ssl]# cat httpd.key

-----BEGIN RSA PRIVATE KEY-----

MIICXAIBAAKBgQDPtEGh9bGrkPrW+GNlmI/qBG5ggjAJwl3HOVcof/PkXq771LH/

EV28TvlQexZCnUnz/IeFesJKBZR6YmXB/bEm+gliRjBIXrzJ7j8hRa3L86foFFqw

dm98ID8Ix5RKNDb0QKAz8mk7urn8DsOzaNT2kq9VunbvpTOUI8cErLXdoQIDAQAB

AoGAOO+Tsj70hjBG4pjSPm5UvPScAS6O1o4GQO9x+fMhOy/NTdEfPelXxZ/sbehf

0MDnHc/Son9lNP9UlTvV4xiU77ighV90Dq/mOB9yVEVKHfqDgeiBRb7vuE/wvkkY

QPREJtbZBAboUredUmZ4MBB/+VYd/9/UaMzP+SAL5JWIpQECQQD1H2MUnEYzfn00

j0YzLcvp2jSpMoFSban4WXOeoz7CIhM7GLLuKVaWYlxNgREv7aDDVUzh0M1Un8I+

2hvXIF9RAkEA2OvK1vw3WavEcZq2f4VMHBRJ+7ECJpDCKHOmt9iw3ZwqlGpZs78q

o8di0z/j3KYoiWE3ddJXtMH2Sczo0GElUQJAENHbiaGDi6sFSmL+bSqaUGyhqm6F

wzM1M45nyZ3oA4g1C5wRQxhhEaakMMlHdaN3oY+r297pCAKCYK+0s1lMUQJAGpC1

5KI6vRaWFjuWQgO3EHFDpjlFRCfSP1X6guVcs6ceZ9Kmbabpt+kBJ1HZu/n1WO24

9wrthsuCOAOKN4rOIQJBAIBO36adQB2E1KI5VkxrlTc1snvTscTgiuowtM1gJUaL

aG/xT+1XYWpOWircRnH0d8dmGFajBF/EZpddoGX83jQ=

-----END RSA PRIVATE KEY-----

?
?

?
?

[[email protected] ssl]# openssl req -new -key httpd.key -out 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) [CN]:

State or Province Name (full name) [Beijin]:

Locality Name (eg, city) [Beijin]:

Organization Name (eg, company) [ChangSheng]:

Organizational Unit Name (eg, section) []:OD

Common Name (eg, your name or your server‘s hostname) []:changsheng

Email Address []:[email protected]

?
?

Please enter the following ‘extra‘ attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[[email protected] ssl]# ls

httpd.csr httpd.key

[[email protected] ssl]# openssl ca -in httpd.csr -out httpd.crt -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: Dec 4 07:33:59 2014 GMT

Not After : Dec 4 07:33:59 2015 GMT

Subject:

countryName = CN

stateOrProvinceName = Beijin

organizationName = ChangSheng

organizationalUnitName = OD

commonName = changsheng

emailAddress = [email protected]

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

DD:96:A4:9F:9F:E0:3F:5D:AB:53:34:CA:FB:A8:4B:86:E9:EB:7B:99

X509v3 Authority Key Identifier:

keyid:64:E5:92:A2:63:25:7A:66:04:4C:A4:FB:8D:F5:0C:D3:89:CA:AC:EC

?
?

Certificate is to be certified until Dec 4 07:33:59 2015 GMT (365 days)

Sign the certificate? [y/n]:y

?
?

?
?

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

[[email protected] ssl]# ll

total 12

-rw-r--r--. 1 root root 3865 Dec 4 15:34 httpd.crt

-rw-r--r--. 1 root root 696 Dec 4 15:33 httpd.csr

-rw-------. 1 root root 887 Dec 4 15:28 httpd.key

[[email protected] ssl]# cd /etc/pki/CA

[[email protected] CA]# cat index.txt //查看数据库

V????????151204073359Z????????????????01????????unknown????????/C=CN/ST=Beijin/O=ChangSheng/OU=OD/CN=changsheng/[email protected]

[[email protected] CA]# cat serial

02

?
?

时间: 2024-12-13 10:27:09

加密解密以及CA签证的相关文章

加密解密私有CA构建

加密方式: 对称加密.公钥加密.单向加密 对称加密: 加密算法+口令+文明数据   --> 密文 -->    使用同一个口令->明文    (ps 严重依赖口令   算法可能是公开的) 破解方法:字典攻击  枚举猜测 (拒绝简单密码)(1秒可1e次,不算快  假如20位密码  键盘100个  100^20/10^8=10^32 秒) 对称加密原理:将原文按照固定大小切换block  逐块加密  将第一块加密结果与第二块加密结果异或运算结果作为第二块结果输出(块链) 对称加密算法: DE

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

加密解密原理,自建CA

目前数据的加密方式有3种:单向加密,对称加密,公钥加密(非对称加密),我们常见的加密算法有DES,MD5,SHA1...SHA512,RSA,都有各自不同的用处.简单介绍下这3中加密方式. 单向加密 通过某种Hash 函数对原始数据进行提取,提取得到一端固定长度的密文(不管文件有多大,密文长度不变),这段数据也常被称为数据指纹或特征码. 特点:1)单向加密,只能由原始数据得到特征码,而不能由特征码逆向推出原始数据. 2)雪崩效应,原始数据微小的改变会导致特征码巨大的变化 应用:常被应用于数字签名

加密解密以及私有CA的实现

一.加密和解密 什么是加密:加密之前为明文,加密后是密文,将明文转换为密文的过程就是加密. 1. 对称加密 提供算法本身,加密和解密使用的是同一个密钥,用以保证数据的机密性.但安全性依赖于密钥,而非算法. 对称加密的优点是运算特别快:缺点是安全几乎全部依赖于密钥(算法基本上是公开的),当通信对象很多的时候,很难对密钥进行有效管理. 常见算法: DES(Data Encrption Standard):早期的算法,公开可以使用的,56bit密码长度,惨遭淘汰. 3DES:DES后DES再DES A

加密解密基础及openssl构建私有CA初步

方今社会,互联网的普及给我们的生活带来了极大的便利,但任何事物都有其两面性:窗户打开了,阳光和新鲜的空气进来了,苍蝇也进来了.如何在利用互联网带来便利的同时,又尽量规避其风险,保护自己网络通信中信息的安全及私密,成为了一个热门话题,下面本文将主要探讨两个方面的问题,不当之处还请各位前辈不吝斧正. (一)加密解密基础 首先要搞清楚的一个问题是,我们平时的网络通信存在哪些风险呢?目前互联网上常见的攻击方式有两种:主动攻击和被动攻击.主动攻击包括报文伪装.重复.消息篡改.拒绝服务等:被动攻击主要是监听

openssl 构建CA及加密解密

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.主要通过在传输层与应用层间构建SSL安全套接字层实现安全传输.可选择通过SSL层进行加密传输,需要事先建立通信通道的层 加密算法和协议: 1.对称加密 特性: 1.加密.解密使用同一密钥: 2.将明文分隔成固定大小的块,逐个进行加密: 缺陷: 1.       密钥过多: 2.        密码分发方式: 3.    常见算法: DES:Dat

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

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

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

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

加密解密与OpenSSL建立私有CA

安全规范: 1)NIST规定的数据安全性标准: ①保密性:数据保密性:隐私性: ②完整性:数据完整性:系统完整性 ③可用性:数据与服务随时可用 2)OSI,X.800:定义了安全攻击,安全机制,安全服务 ①安全攻击 被动攻击:监听 主动攻击:报文伪装.重放.消息篡改.拒绝服务(将有限资源耗尽,使得正常资源无法访问DDOS) ②安全机制 加密/解密,数字签名,访问控制,数据完整性保证,认证交换,数据填充,路由控制,人为公证 ③安全服务 认证 访问控制 数据保密性: 连接保密性 无连接保密性 选择域