TCP/IP:
http
smtp
dns
pop3
imp4

中间人***:
窃听
数据注入
回话劫持

数据加密方式:
1、对称加密
2、公钥加密
3、单向加密

加密:clear text --> cipher code

加密算法:

1、加密方和解密方使用同一个密钥(对称加密)
2、(公钥加密)
Public Key:
secret Key:
date -->P K -->code
Code -->S K -->Data

3、单向加密:获取数据的特征码
1)、定长输出
2)、不可逆
3)、雪崩效应

CA:证书签发机构
PKI:(Public Key Infrastructure)公钥基础设施


1、对称加密
DES:数据加密标准(data encryption standard)
3DES:3倍DES
AES:高级加密标准(128、256、512位的加密标准)
Blowfish:

工具:
openssl enc
gpg(pgp)

2、公钥加密
加密和签名:RSA,ELGamal

签名;DSA

工具:
gpg
openssl rsautl

3、单向加密
MD5:128
SHA1:160
CRC-32

工具:
md5sum
sha1sum
openssl dgst


SSL:secure Socket Layer
sslv1,sslv2,sslv3
TLS:transport layer security
tls 1.1
openssl:
libcrypto(加密库)
libssl:support for TLS/ssl protocols()

openssl:多用途的加密工具,,对称加密,公钥加密,单向加密,也可以当做本地CA使用(自建CA)

[root@wangzhen ~]# openssl
OpenSSL> help
openssl:Error: 'help' is an invalid command.

Standard commands
asn1parse ca ciphers crl crl2pkcs7
dgst dh dhparam dsa dsaparam
enc engine errstr gendh gendsa
genrsa nseq ocsp passwd pkcs12
pkcs7 pkcs8 prime rand req
rsa rsautl s_client s_server s_time
sess_id smime speed spkac verify
version x509

Message Digest commands (see the `dgst' command for more details)
md2 md4 md5 rmd160 sha
sha1

Cipher commands (see the `enc' command for more details)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

OpenSSL> quit

openssl speed 加密速率测试

/dev/random 随机数生成器
随机数来源于熵池,若熵池用完,则卡在那不动
/dev/urandom 随机数生成器
随机数来源于熵池和伪随机数(软件生成),若熵池用完则用软件生成伪随机数

几种计算文件信息的摘要工具:
sha1sum [– –check ] file
md5sum [– –check ] file
cksum
openssl dgst
openssl dgst -sha1 FILENAME = sha1sum FILEMANE
gpg
rpm –V

sha1sum +FILENAME:

[root@wangzhen wangzhen]# touch wz.txt
[root@wangzhen wangzhen]# sha1sum ./wz.txt
da39a3ee5e6b4b0d3255bfef95601890afd80709 ./wz.txt
[root@wangzhen wangzhen]# vim ./wz.txt
[root@wangzhen wangzhen]# sha1sum ./wz.txt
f2eb7d92ab9863a95fe3aab6cf729d1f16592d97 ./wz.txt

# openssl genrsa 1024 > secret.key

# openssl rsa -in mkkey.sec -pubout

------------------------------------------------------------------------
用某个人的公钥解密签名来确认某个人的信息
-------------------------------------------------------------------------
SSL: Secure Socket Layer
sslv1,sslv2,sslv3
TLS: Transport Layer Security
tls 1.1

OpenSSL
libssl: Support for TLS/SSL protocols
libcrypto: Generic encryption support
openssl: Multi-purpose encryption utility
openssl:
crl: 证书调销列表
genrsa:生成私钥
ca: 生成证书
enc:对称加密
dgst:信息摘要算法,实现单向加密
openssl speeed 速率测试
openssl enc –des3 –salt –a –in inittab –out inittab.des3 加密
openssl enc –d –des3 –salt –a –in inittab.des3 –out text 解密

随机数来源:
Pseudo-Random Numbers and Entropy Sources
keyboard and mouse events
block device interrupts
熵池
伪随机数生成器



随机数生成器:
/dev/random
熵池

/dev/urandom
熵池
伪随机数生成器

openssl rand [ -base64 ] num
echo -n "redhat" | openssl base64

可以计算一个文件的校验码 :
md5sum test
sha1sum test

#############################################################
openssl genrsa command ##
(umask 77; openssl genrsa 1024 > my.key) ##
openssl rsa -in my.key -pubout -out my.pubkey ##
openssl genrsa -des3 -out privkey.pem 2048 ##
Can encrypt the key for theft protection ##
## Service will prompt for password when started ##
## Attacker may be able to recover the password from main memory in any case ##
#############################################################

# (umask 077; openssl genrsa 1024 > http.key)生成用户的私钥
# openssl req -new -key http.key -out httpd.csr 颁发CA证书
1、证书持有者的相关信息
2、CA的相关信息
3、证书的使用方法
4、公钥

x509


签署:附加签名信息

cd/etc/pki/CA
mkdir certs crl newcerts


# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656(证书有效期)

# openssl ca -revoke httpd.crt 吊销CA证书

# openssl genrsa 1024 > SECRET.FILE
# (umask 77; openssl genrsa 1024 > my.key)

# openssl genrsa -des3 -out SECRET.FILE 1024
# openssl rsa -in my.key -pubout -out my.pubkey

openssl --> CA

1、证书持有者的相关信息
2、CA的相关信息
3、证书的使用方法
4、公钥


证书的格式
x509


证书如何使用


openssl
CA creates the final certificate from the Certificate Signing Request
Dose not contaion the private key!
CA must verify the identity of the CSR owner before signing
/etc/pki下的配置文件
CA nssdb rpm-gpg tls
/etc/pki/tls/openssl.conf
dir=/etc/pki/CA


make *.csr creates key if necessary
openssl req command
# umask 77; openssl req –new –key my.key out my.csr
#openssl req –noout –in my.csr –text
To output the contents of a CSR in human-readable format
#openssl ca –in my.csr –out my.crt
Verify information, then approve
Every certificate issued should have a unique
serial number (stored in index.txt)
Keep a copy of the final CRT file so the
certificate can be revoked if necessary
Creating a self-signed test certificate
openssl req -new -x509 -key my.key -out my.pem -days 1095

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656
# openssl ca -revoke httpd.crt


openca

gpg




首先发送者将准备发送的数据使用单向加密算法,使用自己的私钥加密这个特征码,并且附加在这个单向加密后的数据后面,发送方最终会使用某个算法(使用接收方的公钥去加密这个数据,并将其附加在这个数据后面,发送这个加密后的总体给接收方),接收方使用自己的私钥解密这个数据,然后使用发送方的公钥解密这个数据的特征码,校验这个数据的特征码,进而确认这个数据是完整的!