加密技术通常分为两大类:“对称式”和“非对称式”。
  对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits 对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DESIDEAAES
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须把自己早已随机生成的公钥送给发信方,而自己保留私钥。RSADSA其中RSA可以加密而DSA只可以作为签名
不可逆加密: 即单向加密:能够提取任何数据特征码 输出定长 不可逆 雪崩效应(输入信息的微小改变会对结果造成巨大影响)
PKI Public key Infrastructure公钥基础架构 是现代互联网电子商务最基础的安全架构。PKI 即公共密钥体系。它利用公共密钥算法的特点,建立一套证书发放、管理和使用的体系,来支持和完成网络系统中的身份认证、信息加密、保证数据完整性和抗抵赖性。目前在 Internet 上主要使用 RSA 公共密钥方法,密钥长度 512 1024 位,是广泛使用的 SSL/TLS S/MIME 等安全通信协议的基础。
数据在通信过程中要做到以下几点:1,数据的完整性,2,数据的真实性,3,数据的保密性。首先数据的完整性可以使用单向加密,数据的真实性可以使用非对称加密,保密性可用对称加密。
一份数据在网络中传输过程:这份数据首先由发送方通过对称算法加密再用单向加密对数据的特征码加密来实现完整性确保不被他人篡改;然后使用非对称算法用自己的私钥对单向加密后的结果加密附于数据后面,保证数据的真实性即发送方的身份得以确认;然后再使用对称算法将整个过程加密,最后再用接收方的公钥对加密的结果加密最后接收方就可以得到完整的安全的数据了。但是这个过程中还是存在不安全的因素的,比如说公钥的确定,这是就需要双方信任的第三者的出现,这个第三者来确定对方的公钥,这就是CA的出现,就有数字证书,证书包括以下内容:证书=Public key + expire date(有效期限) + owner's information/fqdn + how the Certificate may be used + CA's information + CA用自己私钥做的签名 使用单向加密算法 抽取整个证书的特征码 将此特征码用私钥加密
就要一种协议SSLSecure Sockets Layer),用于补充TCP/IP协议栈的安全性问题,属于一个半层协议,工作在应用层和传输层之间,对上层数据进行加密。与其功能相同的还有TLS(Transport Layer Security),其属于SSL的升级版
这里就要介绍一种工具openssl 这种多用途工具 生成密钥对 生成颁发请求 生成自签证书等等
openssl ciphers 所支持的参数
openssl list-cipher-commands  显示支持的加密方法
openssl passwd -1 用来生成加密的密码
Openssl的加密:openssl enc -des3 -in 加密文件名 -out 加密后文件名
解密:openssl enc -d -des3 -in 加密后的文件 -out 解密后文件
如何做一个企业内部的CA呢?
做证书之前我们要知道证书存放的位置:/etc/pki/CA和配置文件存放位置/etc/pki/tls/openssl.conf在该文件中我们可以修改默认参数
生成私钥到密钥存放的家目录下:#umask77openssl genrsa 1024 >private/cakey.pem
因为我们的私钥只有自己可以看的所有使用umask77
私钥和公钥是一对的所以公钥是从私钥中提取的,可以使用:openssl rsa in cakey.pam –pubou
例如:
#openssl genrsa -out mykey.key 1024  生成一个1024位的私钥保存到mykey.key
或者#openssl genrsa 1024 > mykey.key
#openssl rsa -in mykey.key -pubout 可以从mykey.key中提取对应公钥
#openssl req -new -x509 -key mykey.key -out mykey.crt -days 3655 生成自签证书
将一个服务器做成CA
#vim /etc/pki/tls/openssl.cnf
[ CA_default ] 修改成:dir=/etc/pki/CA 其余东西默认参数可以修改
#cd /etc/pki/CA
#openssl genrsa 1024 > private/cakey.pem
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
#mkdir certs newcerts crl
#touch index.txt serial
#echo 01 >serial
客户端设置:
http服务为例
#cd /etc/httpd
#mkdir certs
#cd certs
#openssl genrsa 1024 >httpd.key
#openssl req -new -key httpd.key -out httpd.csr
CA签署客户端的请求 并生成证书
#openssl ca -in httpd.crs -out httpd.crt
然后客户端将生成的证书拷贝到本地
下面介绍下openssh
首先查看是否安装了该软件包:rpm –qa |grep openssh
主进程是:sshd
ssh的配置文件:/etc/ssh/sshd_config这里说下他的几个主要参数
Port 22 
Port”设置sshd监听的端口号。 
ListenAddress 192.168.1.1 
ListenAddress”设置sshd服务器绑定的IP地址。   
ServerKeyBits 1024 
ServerKeyBits”定义服务器密匙的位数。 
LoginGraceTime 600 
LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
KeyRegenerationInterval 3600 
KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。 
PermitRootLogin no 
PermitRootLogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。     
X11Forwarding no 
X11Forwarding”设置是否允许X11转发。 
PrintMotd yes 
PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。   
LogLevel INFO 
LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshdman帮助页,已获取更多的信息。 
AllowUsers admin 
AllowUsers”的后面可以跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串用空格隔开。主机名可以是DNS名或IP地址。