当前位置 : IT培训网 > Web前端 > Web培训 > 三分钟教会你web服务器安全方案如何构建

三分钟教会你web服务器安全方案如何构建

时间:2018-11-23 11:03:53  来源:编程网  作者:IT培训网  已有:名学员访问该课程
如何构建一个安全的web服务器?那就需要制定一个web服务器安全方案,Security Web Server安全的web服务指的是可以加密(encrypt)和解密(decrypt)所有的HTTP请求和相应的web服务。这将用到SSL(Security Sockets Layer)协议。与SSL协议的类似的一个协议

  如何构建一个安全的web服务器?那就需要制定一个web服务器安全方案,Security Web Server安全的web服务指的是可以加密(encrypt)和解密(decrypt)所有的HTTP请求和相应的web服务。这将用到SSL(Security Sockets Layer)协议。与SSL协议的类似的一个协议是TLS(Transport Layer Security)。下面我们就一步步来认识并熟悉。

  安全的web服务器如何搭建?

  SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

  SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

  TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。

  TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1,它是写入了 RFC 的。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。

  本文主要介绍SSL协议的工作原理和使用。顺便提一下,此时不再使用HTTP而是使用HTTPS,默认端口是443。

  SSL工作原理

  SSL是一种用来安全地在网络通信的协议。为了理解为什么需要SSL,我们先来看一下没有SSL的互联网是一种什么景象吧。

  1、 An Internet without SSL

  为了更加通俗地解释,我们使用打电话来的场景来叙述。那么当你打电话的时候会出现什么状况呢?我再和谁通话?在打电话的时候你怎么能确定在和你讲电话的人就是你要找的人呢?尤其是在你第一次打电话找一个以前素未谋面的人的时候,你怎么能确定电话另一边的人不是骗子呢?会不会有人在窃听呢?在无加密的情况下窃听电话是很简单的事情,在互联网也是如此。鉴于以上两点,为了安全我们需要做到两点:确定我们在通信的电脑就是我们想要的那一台; 确保我们的传输数据是安全的。

  2、 SSL工作原理

  传统的加密方法使用密码来保护数据的安全,通信的双方都知道这个密码,然后使用这个密码加密和解密数据。但是这是不安全的,因为你的密码除了你竟然还有人知道!安全的做法是使用密钥。密钥分为公钥和私钥,私钥是你自己保留的,公钥可以人尽皆知。使用你的公钥加密的数据你在收到之后使用你自己的私钥解密,这样的话即使别人拿到了你的信息和公钥也没有办法解密你的数据。

  步骤

  1)获得一个SSL证书(或者创建一个自己的私人证书)

  创建一个证书签名请求CSR(Certificate Signing Request),同时创建一个私钥。 向第三方证书授权机构CA(Certificate Authority)请求,CA机构会审核你的请求,审核通过以后就会给你一个公钥(public key)当然这个公钥是使用CA机构自己的私钥加密过的。 将得到的公钥安装在你的服务器上

  2)浏览器和服务器通信

三分钟教会你web服务器安全方案如何构建_www.itpxw.cn

  3、 加密技术

  比方说你想要访问银行系统并完成一笔交易,可以肯定的是你一定希望这个过程是安全的。在本文3.2小结我们描述了安全交易的过程,现在我们来简单叙述一下加密技术。

  对称加密(Symmetric Cryptography)一个密钥同时用来加密和解密,但是使用这种方式的前提是这个密钥是足够安全的,除了交换信息的双方,没有第三者知道这个密钥。 非对称加密(Asymmetric Cryptography)使用两个密钥,一个用来加密,另一个用来解密。

  补充:

  加密算法应该是算法原理公诸于世的,但是依据加密后的数据很难推算出原来的明文,或者得到明文的代价比获得的收益大的多。这样的加密算法才算是安全的加密算法。

  现在你可以用银行的公钥来加密你的交易数据,但是这里仍然存在一个隐患:银行如何确定这笔交易是没有被篡的呢?会不会有人截获了你的信息并更改,然后破坏这笔交易?所以银行需要确定信息的完整性。一个简单的办法是对传输的信息创建一个概要(concise summary)并将其一并发到银行系统,银行系统也会创建一个概要并和你发来的概要进行比较,最终确定信息的完整性,这被称为message digest。Message digest 可以对长文本信息创建简短的、固定长度的摘要,并且摘要算法被设计为很难从摘要得到原文。

  最后一步,银行需要确定这笔交易确实来自于你而不是其他人。你需要在信息中包含一个你的电子签名(digital signature).可以通过使用自己的私钥加密message digest和一些其他信息来生成电子签名。尽管电子签名可以被破解,但是只有私钥拥有者才可以生成自己的电子签名。

  3、 在Apache应用SSL

  我们在编译的时候已经把相应的模块编译过了,因此我们只需要很少的步骤就可以了。

  首先,创建自己的证书:

  mkdir /etc/apache/certs

  openssl genrsa -des3 -out self_signed.key

  openssl req -new -key self_signed.key -out self_signed.csr

  openssl req -x509 -key self_signed.key -in self_signed.csr -out self_signed.cert

  然后,去掉如下的注释:

  LoadModule ssl_module modules/mod_ssl.so

  然后,对httpd.conf做如下修改:

  Listen 443

  SSLEngine on

  SSLCertificateFile "/etc/apache/certs/self_signed.cert"

  SSLCertificateKeyFile "/etc/apache/certs/self_signed.key"

  打开浏览器,输入 https:127.17.0.2 会出现如下:

三分钟教会你web服务器安全方案如何构建_www.itpxw.cn

  你可以看到由于我们是自己创建的证书,并没有经过第三方权威证书认证机构认证,因此需要点击信任证书才会得到座后的结果(依然提示我们证书不被信任,不过不要担心)。

三分钟教会你web服务器安全方案如何构建_www.itpxw.cn

顶一下
(0)
0%
踩一下
(0)
0%

IT培训0元试听 每期开班座位有限.0元试听抢座开始! IT培训0元试听

  • 姓名 : *
  • 电话 : *
  • QQ : *
  • 留言 :
  • 验证码 : 看不清?点击更换请输入正确的验证码

在线咨询在线咨询

温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。

------分隔线----------------------------
------分隔线----------------------------

推荐内容

相关热点