分享
 
 
 

安全连接方式SSL

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

安全连接方式SSL

通常的连接方式中,通信是以非加密的形式在网络上传播的,这就有可能被非法窃听到,尤其是用于认证的口令信息。为了避免这个安全漏洞,就必须对传输过程进行加密。对HTTP传输进行加密的协议为HTTPS,它是通过SSL(Secure socket layer)进行HTTP传输的协议,不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。

使用公用密钥的方式可以保证数据传输没有问题,但如果浏览器客户访问的站点被假冒,这也是一个严重的安全问题。这个问题不属于加密本身,而是要保证密钥本身的正确性问题。要保证所获得的其他站点公用密钥为其正确的密钥,而非假冒站点的密钥,就必须通过一个认证机制,能对站点的密钥进行认证。当然即使没有经过认证,仍然可以保证信息传输安全,只是客户不能确信访问的服务器没有被假冒。如果不是为了提供电子商务等方面对安全性要求很高的服务,一般不需要如此严格的考虑。

下面我们就分几节来谈到如何在Apache服务器上实现SSL。

第一节SSL

SSL除了可以用在Web服务器与浏览器之间信息交换以外,还可以支持其他我们所熟识的网络应用。以TCP/IP网络层来看,SSL是定位在网络层之上的应用协议,如图:

HTTPFTPSMTP

Secure Socket Layer

TCP层

IP层

任何以TCP/IP层以上的网络协议SSL都可以支持,因此HTTP、FTP、SMTP等等皆是SSL的保护范围。SSL协议一共包含两个部分:SSL Handshake协议和SSL Record协议。前者是负责通信前的一些参数协商,后者则是定义SSL的内部数据格式。

SSL Handshake协议

SSL中Handshake协议可以说是SSL的前置步骤,就好象初次见面的两个人回先自我介绍一番再开始谈话一样。通信的饿双方(商店的服务器与客户计算机)先进行“沟通”与“协调”有关SSL通信的参数设置,其中包括:

※通信中所使用的SSL版本。※信息加密用的算法 ※客户端的身份验证要求 ※所使用的公开金钥算法

这个协议的饿大致步骤如下:

(1)Client Hello:首先,由客户端计算机向服务器Say Hello,并同时将客户端计算机所能支持的安全模块告诉对方,以便沟通。信息内容包括:SSL协议版本、本次联机的饿识别码以及加密模块等。

(2)Server Hello:这时商店端服务器在收到这个信息后,立即送出包含以下信息的响应信息给客户端: ※服务器的数字证书,让客户端可以检查服务器的身份。

※如果服务器要求双方相互认证的话,则送出“认证请求”的饿信息。要求客户端也提出识别身份的数字证书。

※服务器用来加密的金钥。

(3)加解密参数:当客户端收到服务器的信息后,就可根据要求来响应,并且也将客户端的公用金钥也送给对方,作为后续信息的加解密之用。到这个阶段为止,通信双方都已经达成了共识,并准备传送真正的信息内容。

(4)HTTP数据流:协调的工作已经大功告成了!这时双方就可以HTTP协议来进行数据交换了。

SSL Record协议

顾名思义Record协议,是在描述SSL信息交换的过程中的记录格式。SSL协议是介于应用层和网络层之间,因此它回接收来自应用层的信息,并加以包装后交由下一层(也就是网络层来传送)。

第二节Apache上实现SSL

虽然Apache服务器不支持SSL,但Apache服务器有两个可以自由使用的支持SSL的相关计划,一个为Apache-SSL,它集成了Apache服务器和SSL,另一个为Apache+mod_ssl,它是通过可动态加载的模块mod_ssl来支持SSL,其中后一个是由前一个分化出的,并由于使用模块,易用性很好,因此使用范围更为广泛。还有一些基于Apache并集成了SSL能力的商业Web服务器,然而使用这些商业Web服务器主要是北美,这是因为在那里SSL使用的公开密钥的算法具备专利权,不能用于商业目的,其他的国家不必考虑这个专利问题,而可以自由使用SSL。

以下是我们安装说需要的各部分说明

apache_1.3.11.tar.gz

(服务器)

mod_ssl-2.5.0-1.3.11.tar.gz

(SSL接口模块)

openssl-0.9.4.tar.gz

(ssl安全和算法类库)

mod_perl-1.21.tar.gz

(perl接口模块)

rsaref20.tar.Z(RSA算法包)

perl5.005_03.tar.gz(perl环境)

如果你的系统是从头装起的话,建议你留出一个叫/chroot的分区用来运行Apache。

至于这个分区的大小,取决于你自已,一般来说,一个普通的网站有40M也就够了。但你的系统如果早就运行了Apache,你可以另外开辟一个分区,或者选择不用独立分区来安装,仅仅在根下面开一个目录。

另外我假定你的系统已经通过了一定的安全检测――在安装Apache之前(如果有其它漏洞存在的话,你认为运行在其上的Apache会怎样,所谓覆巢之下,焉有完卵:),检测至少要包括(但不仅限于)――移除不安全的SUID程序、升级某些守护进程,去掉不必要的服务。还假定你是的WEB

SERVER是运行TCP/IP而且有自己的地址。

一、平台

以下测试都在下列平台下通过:

1、Slackware

4.x

distribution

using

gcc

2.7.2.3

and

Perl

v5.005_02

2、Solaris

7

on

Sparc

using

gcc

v2.8.1

and

Perl

v5.005_03

3、Digital UNIX V4.0F distribution

using

gcc

2.7.2.3

and Perl

v5.005_03

二、获取所需要的软件

因为阿帕奇并没有在她的包里自己SSL,因此我们必须先下载到这些加密网页所必需的部份:

1、Apache

Web

Server

-

http://www.apache.org/dist/

不必多说,我们当然需要获得这个web

server,现在的版本是1.3.11,阿帕奇是现在世界

上使用最广泛的web

server。

2、mod_ssl

-

http://www.modssl.org

这是一个为Apache1.3.x

web

server提供强力加密的的软件模块,它使用的是SSL

v2和v3 以及TLS(Transport

Layer

Security)v1

协议。该软件包是在BSD的license下开发的,在非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的版本号是-格式的,也就是说,你如果用的是1.3.11

的Apache,那么就该用2.50-1.3.11的mod_ssl。

3、mod_perl

-

http://perl.apache.org/dist/

Apache1.3.x 的perl接口模块

4、Open

SSL

-

http://www.openssl.org

这一软件包提供了SSL

v2/v3(Secure

Sockets

Layer)及TLS

v1(Transport

Layer

Security) 协议的加密保护。

5、RSAref

-

用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了RSA加密算法的实现软件包

6、Perl减压缩、安装(详见Perl介绍)

Perl是一种编程语言。它是一种非常流行的编程语言,在文本处理、端口通信、协调多个不同应用以及完成其他诸多任务时都受到人们的欢迎。Perl同时也是一种颇有名气的流行CGI编程语言,不过这只是Perl诸多应用中的一种

我们将把这些程序安装于/usr/local目录下

增加功能模块可以给阿帕奇更强大的功能,如果你需要更多的模块的话,自己去获得它并且加载,比如mod_php这一模块也是现在流行的,可以使阿帕奇提供php脚本支持……

三、软件包的安装

在实际安装前我们要决定我们将把web

server安装在什么环境下,对于一个对安全有相当高要求的人来说,可以将服务器和软件安装于chroot环境,chroot改变root

目录并且仅在这一目录中执行程序,这提供了一个内建的小环境,即使入侵者已经通过cgi程序或者其它办法通过80端口获得了系统的进入权限,它也只能够在这一受限的环境中活动,从安全角度考量,这当然是最好的,但对系统管理员来说,这样安装相对麻烦一些,还必须把一些必要的库,perl以及相关工具也搬到chroot中,所以――你自己决定吧,这里我们介绍的是在chroot下安装。

展开这些软件包:

#gzip

-d

-c

apache_1.3.11.tar.gz

|

tar

xvf

-

#gzip

-d

-c

mod_ssl-2.5.0-1.3.11.tar.gz

|

tar

xvf

-

#gzip

-d

-c

openssl-0.9.4.tar.gz

|

tar

xvf

-

#gzip

-d

-c

mod_perl-1.21.tar.gz

|

tar

xvf

-

展开并且编译rsaref

#mkdir

rsaref

#cd

rsaref

#gzip

-d

-c

../rsaref20.tar.Z

|

tar

xvf

-

#tar

xvf

rsaref.tar

#cp

-rp

install/unix

temp

#cd

temp

#make

#mv

rsaref.a

librsaref.a

#cd

../../

编译OpenSSL

#cd

openssl-0.9.4

#perl

util/perlpath.pl

/usr/bin/perl

(Path

to

Perl)

#./config

-L`pwd`/../rsaref/temp/

#make

#make

test

#cd

..

将mod_perl加到Apache的编译选项里

#cd

mod_perl-1.21

#perl

Makefile.PL

APACHE_PREFIX=/usr/local/apache

APACHE_SRC=../apache_1.3.11/src

USE_APACI=1

你会得到下面的提示:

Configure

mod_perl

with

../apache_1.3.11/src

?

[y]

直接按enter就是默认的yes

然后Makefile会问你是否建立httpd,可以用n选择不。

#make

#make

install

#cd

..

将mod_ssl加到Apache中

#cd

mod_ssl-2.5.0-1.3.11

#./configure

--with-apache=../apache_1.3.11

--prefix=/usr/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有