Apache2.4.x与Apache2.2.x的一些区别

改用Apache2.4一段时间了,一直没发现它和Apache2.2的有什么区别,一些基本配置都是差不多,直到前几天配置虚拟主机是才发现了一些小小的不同
一直以来我都是在htdocs目录下配置虚拟主机的,大体上使用的方法如下:
01.<VirtualHost *:80>
02.    DocumentRoot  “D:/www/Apache24/htdocs”
03.    ServerName localhost
04.    <Directory D:/www/Apache24/htdocs>
05.        DirectoryIndex index.html index.php
06.    Order Deny,Allow
07.    Allow from all
08.    </Directory>
09.</VirtualHost>
但是最近我想在目录htdocs之外配置虚拟主机,还是按照上面的老套路来配置,结果出现的403错误:
1.<STRONG>Forbidden</STRONG>
2.You don’t have permission to access / on this server.
瞬间没了头绪,这是在Apache2.2所没有的出现过的情况啊,然后试着将虚拟主机的根目录改成htdocs目录之下,也就是
1.DocumentRoot  “D:/www/Apache24/htdocs/test”
发现网站又能正常运行了,反复试了多次都是同一的结果。然后我就想到底是哪个地方出现了问题,这个问题困扰了我几天,百度找了无数答案,大部分都是说目录的权限有错误,需要修改权限,或者是selinux设置的问题,可是我运行的环境是windows,所以这些情况也被排除在外;有些说是需要设置Allow from all ,也没有效果。
通过查看错误日志,发现有那么一行:
1.AH01630: client denied by server configuration: D:/www/
但是我的Order指令设置都是正确的,这样我郁闷了一段时间,无意中发现了一篇文章描述Apache2.4与Apache2.2之间的一些指令的差异,刚好解决了我的问题,
其中的一些指令已经无效,如:
1.Order Deny,Allow<BR>Deny from all<BR>Allow from al
取而代之的是:
1.Deny from all
2.变成
3.Require all denied
4.
5.Allow from all
6.变成
7.Require all granted
于是我将虚拟机配置为:
1.<VirtualHost *:80>
2.    DocumentRoot “D:/www/sphinx/api”
3.    ServerName www.mysphinx.com
4.    <Directory “D:/www/sphinx/api”>
5.    DirectoryIndex index.html index.php
6.    Require all granted
7.    </Directory>
8.</VirtualHost>
发现还是提示403错误,只不过这次的错误日志的错误变成:
1.AH01276: Cannot serve directory D:/www/sphinx/api/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive
这是因为里面的根目录里面没有index.html 或者 index.php,我们可以添加index.html文件或者将设置改成如下:
1.<VirtualHost *:80>
2.    DocumentRoot “D:/www/sphinx/api”
3.    ServerName www.mysphinx.com
4.    <Directory “D:/www/sphinx/api”>
5.    Options FollowSymLinks Indexes
6.    Require all granted
7.    </Directory>
8.</VirtualHost>
这样就算大功告成了,不过我敢肯定Apache2.4与Apache2.2的区别不止于此,只是我还没有发现而已,期待进一步的发现
Posted in Linux | 评论关闭

对称密钥算法和公钥算法的优缺点

对称密钥算法
对称密钥算法是应用较早的加密算法,技术成熟。在对称密钥算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥
常见的对称加密算法有:
DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。
3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。
AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。
Blowfish:是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。
优点:
算法公开、计算量小、对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,加密速度快,经过密钥和加密算法逐个加密后,发送给接收方,接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据,解密速度快
加密效率高、密钥管理简单、适宜一对一的信息加密传输,加密算法简单
使用长密钥时安全性较高破解困难
缺点:
密钥单一安全性得不到保证
由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了,交易双方都使用相同的密钥。在数据传送前,发送方和接收方必须商定好密钥,如果一方的密钥被泄露,那么加密信息失去安全性。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容
密钥管理比较困难
对称加密算法在分布式网络系统上使用较为困难,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担,使用成本较高。
假设两个用户需要使用对称密钥算法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将极为困难。
使用范围不如公钥算法
而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。
公钥算法
这是一种不对称加密算法。公钥算法包括快速公钥算法与传统公钥算法。快速公钥算法与传统公钥算法相比具有更广泛地应用前景,对快速公钥系统的研究是当前公钥系统研究的一个热点。
公钥算法使用两把完全不同但又是完全匹配的一对公钥和私钥。其基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用收信者的公钥加密信件,收信者使用自己的私钥钥解密信件。
常见的公钥算法有:
RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公 开作为加密密钥,可用于加密,也能用于签名。
DSA:数字签名算法,仅能用于签名,不能用于加解密。
DSS:数字签名标准,技能用于签名,也可以用于加解密。
ELGamal:利用离散对数原理对数据进行加解密或数据签名,其速度非常慢。
优点:
安全性高
算法强度复杂,非对称密码体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,提高了安全性。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。
缺点:
效率低
加解密耗时长、速度慢,只适合对少量数据进行加密,效率非常低,不适合经常为大量的原始信息进行加密。我们可以先用单密钥机制对原始信息进行加密,然后再通过公钥机制对这个单密钥进行加密。算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
公钥认证问题
有时有些简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。
Posted in 网络安全 | 评论关闭

常见公钥加密算法有哪些

什么是公钥加密
公钥加密,也叫非对称(密钥)加密(public key encryption),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。在公钥加密体制中,没有公开的是私钥,公开的是公钥。
常见公钥加密算法有哪些
常见算法
RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以说是RSA方法的特例)、Diffie-Hellman (D-H) 密钥交换协议中的公钥加密算法、Elliptic Curve Cryptography(ECC,椭圆曲线加密算法)。使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开金钥加密算法,ElGamal是另一种常用的非对称加密算法。
非对称
是指一对加密密钥与解密密钥,这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。
如果加密密钥是公开的,这用于客户给私钥所有者上传加密的数据,这被称作为公开密钥加密(狭义)。例如,网络银行的客户发给银行网站的账户操作的加密数据。
如果解密密钥是公开的,用私钥加密的信息,可以用公钥对其解密,用于客户验证持有私钥一方发布的数据或文件是完整准确的,接收者由此可知这条信息确实来自于拥有私钥的某人,这被称作数字签名,公钥的形式就是数字证书。例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。
对称密钥密码体制
所谓对称密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
数据加密标准DES属于对称密钥密码体制。它是由IBM公司研制出,于1977年被美国定为联邦信息标准后,在国际上引起了极大的重视。ISO曾将DES作为数据加密标准。
DES是一种分组密码。在加密前,先对整个的明文进行分组。每一个组64位长的二进制数据。然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。
最后将各组密文串接起来,即得出整个的密文。
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。
对称加密
指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。
常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
常见公钥加密算法有哪些
非对称加密
指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。
常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
Hash算法
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA
加密算法的效能通常可以按照算法本身的复杂程度、密钥长度(密钥越长越安全)、加解密速度等来衡量。上述的算法中,除了DES密钥长度不够、MD2速度较慢已逐渐被淘汰外,其他算法仍在目前的加密系统产品中使用。
Posted in 网络安全 | 评论关闭