基于openssl的安全web服务器开发
利用OpenSSL实现IIS服务器安全通信

第11卷第1期沙洲职业工学院学报V ol. 11, No.1 2008年3月 Journal of Shazhou Professional Institute of Technology Mar. , 2008 利用OpenSSL实现IIS服务器安全通信汤建龙,陆国浩(沙洲职业工学院,江苏张家港 215600)摘要:简述了基于SSL的信息安全通道的原理及应用,介绍了利用OpenSSL软件包在windows 2000 server上IIS服务器搭建一条基于SSL的信息安全通道的过程,其中包括对CA服务的配置,WEB服务器端证书的申请、安装和配置,以及客户端和服务端SSL的通信过程。
关键词:OpenSSL;IIS;证书中图分类号:TP39 文献标识码:A 文章编号:1009-8429(2008)01-0012-05Realizing the Secure Communication on the IIS server with the OpenSSLTANG Jian-long,LU Guo-hao( Shazhou Professional Institute of Technology, Zhangjiagang 215600, China )Abstract: This paper summarizes the principle and the application of SSL-based information security channel, introduces the process for the SSL-based information security channel with the Open SSL software package on the Windows 2000 server and the IIS server, including the CA service configuration, the application for, the installation as well as the disposition of the WEB server certificate, and the SSL course of communications between the client end and the server end.Key words: OpenSSL; IIS; Certificate0 引言随着计算机网络技术的发展,互连网成为人们日常生活中获取信息的主要方式之一。
Openssl软件部署过程与介绍

Openssl软件部署过程与介绍OpenSSLOpenSSL软件介绍Netscape⽹景公司⽣产了最初的浏览器,但为了提⾼浏览器访问页⾯的安全性,对TCP/IP模型进⾏了⼀定改进,在传输层与应⽤层之间,创建了⼀个3.5层的概念,称为SSL((Secure Sockets Layer 安全套接层))层,SSL不是⼀个软件,只是⼀个库,让应⽤层将数据传输到传输层前,调⽤了ssl层的功能对数据进⾏了加密,⽬前⽐较流⾏的版本是(SSLv2 v3),但是SSL是netscape公司进⾏定义的,不够开放性,因此为了使加密功能更加开放,TSL(传输层安全协议)协议就出现了,⽬前⽐较流⾏的版本是(TSLv1==ssl v3),TSL更像是传输层上实现的数据加密。
SSL数据通讯实现原理由于借助SSL实现安全数据通讯的⽅式⽐较多,本⽂只以最基本的HTTP协议为例,了解⼀下SSL数据安全通讯的过程。
具体实现过程说明如下:1. http是基于tcp协议进⾏建⽴的,因此在建⽴tcp连接之前要先进⾏tcp的三次握⼿过程2. 三次握⼿之后,不马上进⾏数据的传输,⽽是进⾏SSL的建⽴3. 客户端⾸先向服务器端发起数据传输请求,但服务端不会回复http数据包,⽽是与客户端⼀来⼀回协商⽣成/建⽴SSL会话,确认是选⽤SSLv2还是SSLv3,TSL协议,并且还要协商加密算法。
4. 服务端与客户端的加密协议协商好后,服务端会将⾃⼰的证书发送给客户端5. 客户端在获取到证书后,先进⾏对证书的验证,确认是否是信任机构颁发的,并且验证证书是否是完整的,以及确认证书是没有注销的,验证完毕后,获得的证书中的公钥就可以进⾏使⽤了6. 证书合法性验证完毕后,客户端会建⽴⽣成⼀个会话密钥7. 客户端选择随机数⽣成⼀个随机密钥,并且利⽤服务端的公钥对随机密钥进⾏加密,发给服务端8. 服务器端收到公钥加密的数据,就可以利⽤⾃⼰的私钥进⾏解密,获得对称密钥,就可以对传输数据进⾏加密了OpenSSL软件概念说明OpenSSL软件组成openssl是由三部分组成:1.libcrpto:通⽤加密库2.libssl:TSL/SSL功能的实现,基于会话的,实现了⾝份认证,数据机密性和会话完整性的TSL/SSL库3.openssl:提供的命令⾏⼯具,多⽤途命令⼯具,模拟实现私有证书颁发机构;命令⾏⼯具是通过多种⼦命令实现openssl的相应功能OpenSSL软件详细说明01. 获取OpenSSL软件的版本信息:openssl version <- 查看openssl版本信息02.获取OpenSSL配置⽂件信息:/etc/pki/tls/f <- openssl配置⽂件,主要⽤于配置成私有ca时进⾏使⽤03.获取OpenSSL命令详细参数:[root@web01 ~]# openssl ?openssl:Error: '?' is an invalid command.#标准命令Standard commandsasn1parse ca ciphers cmscrl crl2pkcs7 dgst dhdhparam dsa dsaparam ececparam enc engine errstrgendh gendsa genpkey genrsanseq ocsp passwd pkcs12pkcs7 pkcs8 pkey pkeyparampkeyutl prime rand reqrsa rsautl s_client s_servers_time sess_id smime speedspkac ts verify versionx509Message Digest commands (see the `dgst' command for more details)#单向加密命令md2 md4 md5 rmd160sha sha1Cipher commands (see the `enc' command for more details)#加密命令aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecbaes-256-cbc aes-256-ecb base64 bfbf-cbc bf-cfb bf-ecb bf-ofbcamellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecbcamellia-256-cbc camellia-256-ecb cast cast-cbccast5-cbc cast5-cfb cast5-ecb cast5-ofbdes des-cbc des-cfb des-ecbdes-ede des-ede-cbc des-ede-cfb des-ede-ofbdes-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofbdes-ofb des3 desx ideaidea-cbc idea-cfb idea-ecb idea-ofbrc2 rc2-40-cbc rc2-64-cbc rc2-cbcrc2-cfb rc2-ecb rc2-ofb rc4rc4-40 seed seed-cbc seed-cfbseed-ecb seed-ofb zlib[root@web01 ~]#openssl speed <- 测试当前主机对所有openssl⽀持的加密算法的加密速度进⾏测试显⽰,同时也对服务器性能做⼀个测试# openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d][-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt][-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug][-none] [-engine id]ciphername <- 指定加密的算法[-in filename] <- 指定要加密的⽂件[-out filename] <- 指定加密后输出的⽂件[-e] [-d] <- e是加密⽂件,d是解密⽂件,不指定默认就是加密的[-a] <- 基于base64位进⾏编码,可选参数#举例说明,加密⼀个⽂件# openssl enc -des3 -salt -a -in inittab -out initab.des3 <- 输⼊密码后即加密成功# openssl enc -des3 -d -salt -a -in initab.des3 -out inittab <- 输⼊密钥后即解密成功说明:其中命令中的salt参数,主要⽤于避免密码加密后,对密钥串的反推#输出⼀个⽂件的特征码⽅式md5sum inittabsha1sum inittabopenssl dgst -sha1 inittab <- 利⽤openssl⽣成⽂件特征码dgst---表⽰指定使⽤信息摘要命令-sha1---表⽰指定摘要命令选⽤sha1算法#⽣成和⽤户⼀样的密码串openssl passwd -1 <- 采⽤md5加密⽤户密码串#⽣成伪随机数⽅法openssl rand -base64 45 <- 给出⼀个任意的数字,就会⽣成任意的随机数利⽤OpenSSL软件实现HTTPS访问过程第⼀步:创建⼀个私钥⽂件(运维⼈员需要会)[root@web01 serv_key]# openssl genrsa 2048 > server.key --->创建私钥信息,并指定私钥长度为2048,将⽣成的私钥信息保存在⼀个⽂件中Generating RSA private key, 2048 bit long modulus...............................................................................................................................................+++...................+++e is 65537 (0x10001)[root@web01 serv_key]# (umask 077;openssl genrsa -out server.key 2048) -->将私钥信息直接进⾏保存,加密长度⼀定⼈放在输出⽂件后台,同时临时修改umask,将⽂件的权限变为600 Generating RSA private key, 2048 bit long modulus.....+++........................+++e is 65537 (0x10001)[root@web01 serv_key]# lltotal 4-rw-r--r-- 1 root root 1679 Mar 1 10:49 server.key[root@web01 serv_key]#第⼆步:⽣成证书⽂件信息1.⽣成⾃签发证书(运维⼈员可以⾃⾏操作)[root@web01 serv_key]# openssl req -new -x509 -key server.key -out server.crt -daysreq ------> ⽤于请求创建⼀个证书⽂件new ------>表⽰创建的是新的证书x509 ------>表⽰定义证书的格式为标准格式key ------>表⽰调⽤的私钥⽂件信息out ------>表⽰输出证书⽂件信息days ------->表⽰证书的有效期365You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:cn <---- 定义⽣成证书的国家State or Province Name (full name) []:gd <---- 定义⽣成证书的省份Locality Name (eg, city) [Default City]:gz <---- 定义⽣成证书的城市Organization Name (eg, company) [Default Company Ltd]:baidu <---- 定义⽣成证书的组织Organizational Unit Name (eg, section) []:it <- 定义⽣成证书的职能部门Common Name (eg, your name or your server's hostname) []:web01 <---- 定义主机服务器名称说明:此输出信息⾮常重要,客户端在获取证书前,会利⽤主机名与相应服务器之间建⽴连接,然后获得证书Email Address []:liuyang97@2.向证书颁发机构申请证书(ca证书机械完成)1.⽣成请求的证书⽂件[root@web01 serv_key]# openssl req -new -key server.key -out server_new.csrYou are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:cnState or Province Name (full name) []:gdLocality Name (eg, city) [Default City]:gzOrganization Name (eg, company) [Default Company Ltd]:baiduOrganizational Unit Name (eg, section) []:itCommon Name (eg, your name or your server's hostname) []:web01Email Address []:liuyang97@Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:liuyang1 <-- 设置证书的密码信息An optional company name []:liuyang1 <-- 确认证书的密码信息[root@web01 serv_key]# lltotal 12-rw-r--r-- 1 root root 1367 Mar 1 10:59 server.crt-rw------- 1 root root 1675 Mar 1 10:52 server.key-rw-r--r-- 1 root root 1094 Mar 1 11:07 server_new.csr3.将⽣成的证书⽂件发给证书机构,证书机构会返还⼀个公钥回来第三步:配置Nginx负载均衡服务器配置,加载私钥和证书信息[root@lb01 server_key]# cat /application/nginx/conf/nginx.confworker_processes 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream oldboy {server 10.0.0.7:80;server 10.0.0.8:80;server 10.0.0.9:80;}#永久定向server {listen 80;server_name ;rewrite ^(.*)$ https://$host$1 permanent;}#ssl认证server {listen 10.0.0.3:443 ssl;server_name ;ssl_certificate /server/server_key/server.crt;ssl_certificate_key /server/server_key/server.key;root html;index index.html index.htm;location / {proxy_pass http://oldboy;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}}server {listen 10.0.0.4:80;server_name ;root html;index index.html index.htm;location / {proxy_pass http://oldboy;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}}}[root@lb01 server_key]#第四步:测试访问访问会⾃动跳转访问bbs正常访问。
浅谈计算机网络安全漏洞及防范措施——OpenSSL心脏出血漏洞分析讲解

编号:毕业论文题目浅谈计算机网络安全漏洞及防范措施——OpenSSL心脏出血漏洞分析年月日目录序言 (1)一、“心脏出血”漏洞 (1)(一)“心脏出血”漏洞的危害 (1)1.私钥 (1)2.用户密码 (2)3.服务器配置 (3)4.服务器瘫痪 (3)(二)“心脏出血”漏洞分析 (4)1.漏洞存在的文件 (4)2.漏洞测试 (5)3.漏洞检测 (5)4.服务器瘫痪 (4)(三)“心脏出血”漏洞的防范与修复 (6)二、计算机网络安全漏洞的防范对策 (8)(一)利用防火墙防范 (8)(二)漏洞扫描 (9)(三)病毒防范 (9)(四)计算机安全设置 (10)1.入侵检测系统 (10)2.加密技术 (10)结语 (10)参考文献 (12)浅谈计算机网络安全漏洞及防范措施——OpenSSL心脏出血漏洞分析摘要:在网络技术迅速发展的今天,全世界的计算机都通过Internet联到了一起。
信息安全的内涵发生了根本的变化,它不仅从一般性的防卫变成了一种非常普通的防范,而且还从一种专门的领域变成了无处不在。
近来来,身边不断发生的各种计算机恶意侵害,严重威胁到了个人,企业甚至是国家的安全。
攻击者利用漏洞对目标计算机的完全控制,窃取机密信息,甚至令目标服务器瘫痪。
2014年4月7日openssL发布了安全公告,在OpensSLl.0.1版本中存在严重漏洞。
openssLHea而leed模块存在一个BuG,问题存在于ssFdibothc文件中的心跳部分,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memCp,函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的oPenssL服务器内存中多达64K的数据。
因此,计算机安全成为当今信息技术领域的重要研究课题。
关键词:“心脏出血”;OpenSSL;网络安全;措施Discussion on computer network security vulnerability and preventivemeasuresAbstract:With the rapid development of network technology today, the world's computers are linked together by Internet. Radically changed the meaning of information security, it not only from the general's defense has become a very ordinary precautions, but also from a specialized field has become ubiquitous. In recent years, a variety of computer side ongoing malicious infringement, a serious threat to the individual, enterprise and even national security. Complete control of attackers exploit vulnerabilities on the target computer, steal confidential information, even to the target server paralysis.In April 7, 2014, openssL issued a safety notice, there are serious flaws in the OpensSLl.0.1 version. OpenssLHea and LEED module in a BuG, the heartbeat is part of the problem that exists in the ssFdibothc file, when the attacker constructs a special packets that meet user heartbeat packet cannot provide enough data can lead to memCp,function after SSLv3 record data directly output, the vulnerability leads to an attacker can up to 64K the remote data reading loopholes version of oPenssL server memory. Therefore, computer security has become an important research subject in modern information technology field.Keywords:“Heartbleed”;OpenSSL;Networksecurity;Measures序言“心脏出血”漏洞,是安全套接层(Secure,Sockets,Layer,SSL)心跳机制实现代码中的缺陷,利用这一缺陷可以发动黑客攻击,获取服务器内存信息。
维萨拉viewLinc CMS系统说明书

监测系统和仪器生命科学、制药与生物技术应用监测与参数分布:实验室、洁净室和仓库viewLinc CMS 特点和优点▪可验证软件和数据记录仪符合美国联邦法规第 21 章第 11 节和附录 11 的规定▪方便安装和验证,可选 IQOQ 协议▪通过以太网、PoE 、Wi-Fi 或 VaiNet 无线技术轻松建立网络连接▪基于 Web 的远程监控界面▪通过电子邮件、短信、电话、PC 显示器、信号塔和报警器发出警报通知▪安全的审核跟踪和可定制的报告▪viewLinc 经验证的监测数据可以通过维萨拉的 OPC UA 或 viewLinc API 与其他系统集成▪允许从支持 Modbus 的设备输入连续监测系统 (CMS)维萨拉 viewLinc CMS 设计用于 GxP 管控环境。
该系统将维萨拉的 viewLinc 企业服务器软件与维萨拉数据记录仪、智能探头、变送器和支持 Modbus 的第三方设备结合起来。
维萨拉提供可选的文档和服务,包括:IQOQ 协议、可帮助您根据 GAMP 指南实现系统的 GxP 文档包,以及针对选定区域的现场校准、安装和验证等服务。
验证/参数分布系统维萨拉参数分布系统是为苛刻的验证应用而设计的,它包括 vLog 软件和维萨拉的数据记录仪,用于下载、显示、分析和报告。
vLog 加密且可验证,可生成表格和图形化报告,这些报告可根据您的文档需要轻松定制。
验证/参数分布系统的特点和优点▪稳定可靠的硬件可减少传感器准确度漂移▪外形紧凑的数据记录仪易于放置,对操作的干扰较小▪易于使用的 vLog 软件提供可定制的详细报告▪提供全面的 IQ/OQ 协议▪三个访问控制安全级别:Windows 、域级别和本地帐户身份验证▪报告数据的安全状态符合联邦法规第 21 章第 11 节/附录 11 的规定▪审核跟踪确保记录所有系统操作*viewLinc 企业服务器包含 OpenSSL Project 开发的用于 OpenSSL Toolkit 的软件。
OpenSSL安全漏洞威胁升级 电脑手机均可能被窃取隐私

OpenSSL安全漏洞威胁升级电脑手机均可能被窃取隐私4月11日消息,互联网严重安全漏洞OpenSSL“心脏出血”的威胁仍在发酵。
金山毒霸安全中心研究发现,不仅网民访问https攻击网站会泄露个人隐私信息,而且使用包含OpenSSL代码库的一些电脑软件,甚至安卓APP、浏览器,都有可能面临隐私被窃取的风险。
金山毒霸安全专家指出,国外已有黑客将针对个人电脑、手机、平板设备的攻击代码公开,可能已在黑客圈大面积传播。
黑客利用OpenSSL“心脏出血”漏洞构造特殊网页,诱骗网民点击访问。
当用户电脑或移动电子设备使用了OpenSSL的软件,访问到上述攻击网页时,黑客就通过服务器发送恶意“心跳包”(定时发送的通讯包)给客户端,利用漏洞多次远程读取用户系统内存数据,盗取用户数字证书,帐号,密码,上网记录等重要信息。
OpenSSL Heartbleed(“心脏出血”)漏洞被业内称为2014年度最重大的安全漏洞之一,它不久前由安全公司Codenomicon和谷歌的工程师发现,漏洞编号CVE-2014-0160。
由于OpenSSL协议广泛应用于网银、在线支付、电子邮件、电商等重要网站,所以利用此漏洞的黑客只需坐在电脑前,即可实时获取约30%以https开头网址的用户登录账号密码。
据最新消息,该漏洞不仅影响了大量网站服务器,也存在于思科和Juniper的网络设备中。
思科已经列出了10余款被确认存在漏洞的产品,而另60余款产品可能受到影响,但调查仍在进行中。
除网络设备之外,一些手机系统也存在“心脏出血”漏洞。
谷歌近日发布公告证实安卓手机用户同样受到此漏洞的威胁。
谷歌称安卓系统的4.1.1版采用了有漏洞版本的OpenSSL协议库,用户同样面临隐私遭窃取的风险。
据安全圈人士透露,由于OpenSSL漏洞的出现,在近日的地下交易市场中,各种兜售非法数据的交易显得异常火爆。
目前,国内外众多网站和网络服务商正积极应对此次重大安全事件。
openssl做证书的方法 -回复

openssl做证书的方法-回复OpenSSL 是一个开源的软件包,可用于创建安全套接字层(SSL)和传输层安全性(TLS)协议的证书。
证书是用于身份验证和数据加密的数字文件。
下面将一步一步介绍OpenSSL 的使用方法来生成证书。
第一步:安装OpenSSL首先,您需要安装OpenSSL 软件包。
根据您的操作系统,可以在OpenSSL 官方网站(OpenSSL 在您的系统上可用。
第二步:生成私钥要生成证书,首先需要生成一个私钥。
私钥用于生成和验证证书,因此它必须严格保密。
您可以使用以下命令在命令行中生成私钥:openssl genpkey -algorithm RSA -out private.key此命令将使用RSA 算法生成一个私钥,并将其保存在private.key 文件中。
确保将文件保存在安全的位置,并为其设置适当的权限,以防止未经授权访问。
第三步:生成证书请求生成了私钥后,接下来需要生成证书请求。
证书请求包含您的公钥以及有关您身份的信息。
以下命令将生成证书请求:openssl req -new -key private.key -out certificate.csr在此命令中,-key 参数指定您的私钥文件,-out 参数指定将保存证书请求的文件名。
您将被要求输入与您身份相关的信息,如名称、单位、电子邮件地址等。
确保在输入这些信息时提供准确的数据。
第四步:自签名证书生成证书请求后,您可以使用OpenSSL 生成一个自签名证书。
自签名证书是由您自己颁发的,因此在一些特定情况下可能不被所有设备或应用程序接受。
但它在测试和开发环境中非常有用。
以下命令将生成自签名证书:openssl x509 -req -in certificate.csr -signkey private.key -out certificate.crt此命令使用您之前生成的私钥和证书请求来创建一个自签名证书。
最后的证书将保存在certificate.crt 文件中。
Apache2.2 openssl配置Https应用

Apache2.2 openssl配置Https应用1、关于Apache网上有很多关于Apache配置Http,Https 的帖子,写的各式各样大同小异。
但说到都比较浅,至少我感觉没有说明白原理。
当然,这里我也只是针对我现在的理解来说一下Apache Https那些事。
通常我们开发的web项目都要部署在weblogic中间件上,然后为了网络安全,在停火区搭建web server用于请求转发。
最常用的web server之一就是Apache。
如果是金融领域的应用的话,基本上都是要配置Https的,以防敏感数据被窃取。
Apache有很多版本,有些版本只能配置Http的应用,要想配置Https的话,需要下载专门的Apache,我这里用的是:httpd-2.2.21-win32-x86-openssl-0.9.8r.msi,使用这个软件可以自制证书,可以配置Https。
(虽然是32位的,也可以安装在64位的windows上,我也没找到专门的64位软件)。
2、关于证书部署Https应用需要证书,可以自制也可以购买。
当然,如果你的应用是公司级的又是金融领域的,那基本上要购买了,比如天威诚信的证书。
因为自制证书可能被黑客替换,用户体验也不好每次浏览器都会提示不安全证书。
自制证书步骤:进入D:\Apache2.2\bin执行以下命令:#生成rsa私钥opensslgenrsa -des3 -out root.key#配置环境变量,制定openssl.cfg配置文件的路径setOPENSSL_CONF=C:\cert\OpenSSL-Win64\bin\openssl.cfg#生成CA的crt,用来签署下面的root.csr文件,有效期10年openssl req -new -x509 -key root.key -out ca.crt -days 3650#生成的csr文件交给CA签名后形成服务器自己的证书.重要:有一个common name可以写域名,如果为了https申请,这个必须和域名吻合,否则会引发浏览器报警openssl req -new -key root.key -out root.csr#输入key的密钥后,完成证书生成.-CA 选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成.#最后生成了私用密钥:root.key 和自己的SSL证书root.crtopenssl x509 -req -days 3650 -in root.csr -CA ca.crt -CAkey root.key -CAcreateserial -out root.crt#证书合并:cat root.key root.crt > root.pem #linuxcopy /b /y root.key+root.crt root.pem #windows#统一接入网关密码设置为:admin123C:\cert\OpenSSL-Win64\bin>openssl pkcs12-export -in root.pem -inkey root.key -out root.pfx3、配置Https背景:Weblogic10.3.6,Apache2.2 ,windows2008EnterpriseApache安装在D://Apache2.2,weblogic安装在Redhat6上。
基于OpenSSL的SM2与RSA自动切换算法的设计

基于OpenSSL的SM2与RSA自动切换算法的设计贾冀芳;张立新;廖明耀【摘要】为了SSL/TLS协议的安全性与性能能同时满足用户的需求,基于国家商用密码算法(国密算法)的安全性强于通用密码算法、性能弱于通用密码算法的现状,在OpenSSL基础上设计一种SM2与RSA自动切换的算法以满足在性能达标的前提下提高系统的安全性.SSL/TLS握手协议在性能满足需求的前提下,优先使用国密SM2算法,当每秒新建连接数达到一定峰值时,SM2的性能满足不了需求,则系统自动切换到RSA算法,满足更高每秒新建连接数的性能需求.该算法在OpenSSL的数据结构和函数上进行扩展,经过测试实现了在每秒新建SSL/TLS连接数达到一定数值时,SM2算法与RSA算法的自动切换.该算法在满足性能需求的前提下能有效提高系统的安全性.%Based on observation that security of national commercial cipher algorithms(national cipher algorithms)is stronger than general cipher algorithms, and the performance is weaker than general cipher algorithms, an automatic switching algorithm between SM2 and RSA based on OpenSSL is designed in order to improve system security under the premise of performance standards. SSL/TLS handshake protocol is given the priority to use SM2 algorithm, before new connections per second reaches a certain peak. When the new connection rate of SM2 can not meet the demand, the system automatically switches to the RSA algorithm to reach the higher rate. The algorithm is extended on the data structure and function of OpenSSL. The experimental results show that the SM2 algorithm and RSA algorithm can be switched automat-ically when the new SSL/TLS connection rate reaches a certain value. The algorithmcan effectively improve the system security under the premise of meeting the performance requirements.【期刊名称】《计算机工程与应用》【年(卷),期】2018(054)003【总页数】8页(P74-81)【关键词】SSL/TLS协议;SM2算法;RSA算法;自动切换算法;OpenSSL【作者】贾冀芳;张立新;廖明耀【作者单位】北京中电普华信息技术有限公司研发事业部,北京 100192;北京中电普华信息技术有限公司研发事业部,北京 100192;北京中电普华信息技术有限公司研发事业部,北京 100192【正文语种】中文【中图分类】TP301.61 引言我国政府高度重视密码算法国产化升级改造工作[1]。
Windows下Tomcat Web服务器的SSL配置

Windows下Tomcat W eb服务器的SSL配置本文涉及:1.windows下的OpenSSL安装2.自己签发根证书3.用这个根证书来签发服务器证书4.服务器端证书导入5.TOMCAT服务器设置6.客户端根证书安装一、软件准备1)、jsdk1.5下载2)、apache-tomcat-5.5.27下载3)、openssl0.9.7c下载/downlinks/openssl-bin.php二、软件安装安装(解压)上面下载的软件,假设安装目录如下:jsdk: D:\jdk1.5.0_07tomcat: D:\ide\apache-tomcat-5.5.27openssl: D:\GnuWin32三、SSL配置1)、添加windows环境变量JA V A_HOME= D:\jdk1.5.0_072)、建目录D:\ca,用来存放生成的临时文件。
3)、新建文件D:\GnuWin32\bin\openssl.conf,内容如下:[ req ]default_bits = 1024default_keyfile = ca-key.pemdistinguished_name = req_distinguished_nameattributes = req_attributesprompt = nooutput_password = as12345[ req_distinguished_name ]C = CNST = BeijingL = XichengquO = OU = CN = Albert SongemailAddress = test@[ req_attributes ]challengePassword = as12345674)、执行cmd.exe,在命令行窗口执行如下操作:转到OpenSSL目录:>cd D:\GnuWin32\bin生成CA私钥:>openssl genrsa -out D:\ca\ca-key.pem 1024生成待签名证书:>openssl req -new -out D:\ca\ca-req.csr -key D:\ca\ca-key.pem -config openssl.conf用CA私钥进行自签名:>openssl x509 -req -in D:\ca\ca-req.csr -out D:\ca\ca-cert.pem -signkey D:\ca\ca-key.pem -days 365转到java bin目录:>cd D:\jdk1.5.0_07\bin生成server端证书:生成KeyPair,注意keyPass,storepass 要一样>keytool -genkey -alias blog_albertsong -validity 365 -keyalg RSA-keysize 1024 -keypass as.1234-storepass as.1234-dname "cn=localhost,ou=bis,o=bis,l=Beijing,st=Beijing,c=CN" -keystore D:\ca\albertsong.jks生成待签名证书:>keytool -certreq -alias blog_albertsong -sigalg MD5withRSA-file D:\ca\albertsong.csr -keypass as.1234 -keystore D:\ca\albertsong.jks -storepass as.1234转到OpenSSL目录:>cd D:\GnuWin32\bin用CA私钥进行签名:>openssl x509 -req -in D:\ca\albertsong.csr -out D:\ca\albertsong-cert.pem -CA D:\ca\ca-cert.pem -CAkey D:\ca\ca-key.pem -days 365 -set_serial 1转到java bin目录:>cd D:\jdk1.5.0_07\bin导入信任的CA根证书到Java的默认位置:>keytool -import -v -trustcacerts -storepass changeit -alias root_albertsong -file D:\ca\ca-cert.pem -keystore D:\jdk1.5.0_07\jre\lib\security\cacerts把CA签名后的server端证书导入keystore:提示时,输入as.1234>keytool -import -v -trustcacerts -storepass as.1234-alias blog_albertsong -file D:\ca\albertsong-cert.pem -keystore D:\ca\albertsong.jks查看server端证书密码分别是changeit , as.1234>keytool -list -keystore D:\jdk1.5.0_07\jre\lib\security\cacert>keytool -list -keystore D:\ca\albertsong.jks5)、修改server.xml使T omcat支持SSL在D:\ide\apache-tomcat-5.5.27\conf\server.xml找到<!-- Define a SSL HTTP/1.1 Connector on port 8443 --><!--<Connector port="8443" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" />-->改为:<!-- Define a SSL HTTP/1.1 Connector on port 8443 --><Connector port="8443" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="D:\ide\apache-tomcat-5.5.27\conf\albertsong.jks"keystorePass="as.1234"/>6)、将D:\ca\albertsong.jks复制到D:\ide\apache-tomcat-5.5.27\conf下。
使用OpenSSLAPI进行安全编程

使用OpenSSL API 进行安全编程创建基本的安全连接和非安全连接Kenneth Ballard (kenneth.ballard@), 自由程序员简介:学习如何使用 OpenSSL ——用于安全通信的最著名的开放库——的API 有些强人所难,因为其文档并不完全。
您可以通过本文中的提示补充这方面的知识,并驾驭该 API。
在建立基本的连接之后,就可以查看如何使用 OpenSSL 的 BIO 库来建立安全连接和非安全连接。
与此同时,您还会学到一些关于错误检测的知识。
OpenSSL API 的文档有些含糊不清。
因为还没有多少关于 OpenSSL 使用的教程,所以对初学者来说,在应用程序中使用它可能会有一些困难。
那么怎样才能使用 OpenSSL 实现一个基本的安全连接呢?本教程将帮助您解决这个问题。
学习如何实现 OpenSSL 的困难部分在于其文档的不完全。
不完全的 API 文档通常会妨碍开发人员使用该 API,而这通常意味着它注定要失败。
但 OpenSSL 仍然很活跃,而且正逐渐变得强大。
这是为什么?OpenSSL 是用于安全通信的最著名的开放库。
在 google 中搜索“SSL library”得到的返回结果中,列表最上方就是 OpenSSL。
它诞生于 1998 年,源自 Eric Young 和 Tim Hudson 开发的 SSLeay 库。
其他 SSL 工具包包括遵循 GNU General Public License 发行的 GNU TLS,以及 Mozilla Network Security Services(NSS)(请参阅本文后面的参考资料,以获得其他信息)。
那么,是什么使得 OpenSSL 比 GNU TLS、Mozilla NSS 或其他所有的库都优越呢?许可是一方面因素(请参阅参考资料)。
此外,GNS TLS(迄今为止)只支持 TLS v1.0 和 SSL v3.0 协议,仅此而已。
第19章 利用OpenSSL实现安全的Web Server程序

《计算机网络高级软件编程技术》
OpenSSL库
• OpenSSL库的安装
安装VC++ 6.0 从官方网站/ActivePerl 下载ActivePerl的Win32版本并安装 从官方网站/下载OpenSSL 源代码并安装
3
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
4
《计算机网络高级软件编程技术》
编程训练目的
• 在基础类编程训练10的基础上,掌握基 于OpenSSL协议的安全Web Server的软 件结构的设计与编程实现 • 掌握利用OpenSSL生成认证证书的方法 • 熟悉客户端认证与利用IPSec实现安全通 信的方法
为Web服务器签发证书
openssl x509 -req -in serverreq.pem -sha1 -extensions usr_cert -CA rootcert.pem -CAkey rootkey.pem -CAcreateserial -out server.pem server.pem即为CA中心为Web服务器签发的证书
5
《计算机网络高级软件编程技术》
提纲
• • • • •
编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高
6
《计算机网络高级软件编程技术》
编程训练要求
编写程序,利用OpenSSL实现安全的Web Server,具体要求如下 :
• • • Server启动时可指定端口,缺省为443 可指定Web Server根目录的路径,比如C:\Server Server应能够并发处理多个请求,要求至少能支持 Get命令。可以增强Web Server的功能,如支持 Head、Post以及Delete命令等 书写必要的客户端测试程序用于发送HTTPS请求并 显示返回结果,也可使用一般的Web浏览器测试
开源基础软件网络与安全分析报告

开源基础软件网络与安全分析报告声明:本文内容信息来源于公开渠道,对文中内容的准确性、完整性、及时性或可靠性不作任何保证。
本文内容仅供参考与学习交流使用,不构成相关领域的建议和依据。
一、开源网络技术的发展与应用情况开源网络技术是指基于开放源代码的网络软件和协议,它们具有可自由访问、使用和修改的特点。
随着互联网的迅速发展,开源网络技术在网络与安全领域的应用越来越广泛。
(一)开源网络技术的历史发展1、发展背景:随着互联网的普及,开源理念逐渐流行起来。
1990年代中期,LinUX操作系统的成功催生了开源运动,各种开源软件纷纷涌现。
2、开源网络技术的兴起:开源网络技术在20世纪90年代晚期开始崭露头角。
其中最具代表性的是APaCheHTTPSerVer,它成为当时最受欢迎的Web 服务器软件,并至今仍是全球占有率最高的Web服务器。
3、开源网络技术的发展趋势:开源网络技术在过去几十年持续发展,并呈现出以下几个趋势:a.多样化:涉及到网络协议、网络安全、网络管理等多个方面,如OpenVPN、Wireshark、Snort⅜ob.社区参与:开源网络技术通常由全球开发者社区共同参与开发和维护,形成了庞大的开源社区。
C.创新驱动:开源网络技术的快速发展离不开创新,开源模式为创新提供了更好的环境。
(二)开源网络技术的应用领域1、网络基础设施:开源网络技术被广泛应用于网络基础设施的搭建和管理中。
例如,开源的路由器操作系统OPenWRT可以将普通路由器升级为功能强大的网络设备。
2、网络安全:开源网络技术在网络安全领域有着广泛的应用。
开源的入侵检测系统Snort能够帮助企业监控和防御网络攻击,而开源的防火墙软件iptables可以提供网络安全策略。
3、云计算:开源技术在云计算领域也有着重要的应用。
例如,开源的云计算平台OPenStaCk提供了虚拟机管理、存储管理、网络管理等功能,被广泛应用于云服务提供商和企业的私有云环境中。
使用OPENSSL编写服务器和客户端代码实例

使用OPENSSL编写服务器和客户端代码实例使用相同的ca生成两个证书,一个是server.cer,一个是client.cer,注意生成server.cer的时候必须指明证书可以用于服务端的。
服务器代码:1.#include "openssl/bio.h"2.#include "openssl/ssl.h"3.#include "openssl/err.h"4.5.#include <cutil.h>6.7.#define EXIT_IF_TRUE(x) if (x) \8. do { \9. fprintf(stderr, "Check '%s' is true\n", #x); \10. ERR_print_errors_fp(stderr); \11. exit(2); \12. }while(0)13.14.int main(int argc, char **argv)15.{16. SSL_CTX *ctx;17. SSL *ssl;18. X509 *client_cert;19.20. char szBuffer[1024];21. int nLen;22.23. struct sockaddr_in addr;24. int len;25. int nListenFd, nAcceptFd;26.27.// 初始化28. cutil_init();29. cutil_log_set_level(LOG_ALL);30. cutil_log_set_stderr(1);31. SSLeay_add_ssl_algorithms();32. OpenSSL_add_all_algorithms();33. SSL_load_error_strings();34. ERR_load_BIO_strings();35.36.// 我们使用SSL V3,V237. EXIT_IF_TRUE((ctx = SSL_CTX_new (SSLv23_method())) == NULL);38.39.// 要求校验对方证书40. SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);41.42.// 加载CA的证书43. EXIT_IF_TRUE (!SSL_CTX_load_verify_locations(ctx, "cacert.cer", NULL));44.45.// 加载自己的证书46. EXIT_IF_TRUE (SSL_CTX_use_certificate_file(ctx, "server.cer", SSL_FILETYPE_PEM) <= 0) ;47.48.// 加载自己的私钥49. EXIT_IF_TRUE (SSL_CTX_use_PrivateKey_file(ctx, "server.key", SSL_FILETYPE_PEM)<= 0) ;50.51.// 判定私钥是否正确52. EXIT_IF_TRUE (!SSL_CTX_check_private_key(ctx));53.54.// 创建并等待连接55. nListenFd = cutil_socket_new(SOCK_STREAM);56. cutil_socket_bind(nListenFd, NULL, 8812, 1);57.58. memset(&addr, 0, sizeof(addr));59. len = sizeof(addr);60. nAcceptFd = accept(nListenFd, (struct sockaddr *)&addr, (size_t *)&len);61. cutil_log_debug("Accept a connect from [%s:%d]\n",62. inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));63.64.// 将连接付给SSL65. EXIT_IF_TRUE( (ssl = SSL_new (ctx)) == NULL);66. SSL_set_fd (ssl, nAcceptFd);67. EXIT_IF_TRUE( SSL_accept (ssl) != 1);68.69.// 进行操作70. memset(szBuffer, 0, sizeof(szBuffer));71. nLen = SSL_read(ssl,szBuffer, sizeof(szBuffer));72. fprintf(stderr, "Get Len %d %s ok\n", nLen, szBuffer);73. strcat(szBuffer, " this is from server");74. SSL_write(ssl, szBuffer, strlen(szBuffer));75.76.// 释放资源77. SSL_free (ssl);78. SSL_CTX_free (ctx);79. close(nAcceptFd);80.}客户端代码1.#include "openssl/bio.h"2.#include "openssl/ssl.h"3.#include "openssl/err.h"4.5.#include <cutil.h>6.7.#define EXIT_IF_TRUE(x) if (x) \8. do { \9. fprintf(stderr, "Check '%s' is true\n", #x); \10. ERR_print_errors_fp(stderr); \11. exit(2); \12. }while(0)13.14.int main(int argc, char **argv)15.{16. SSL_METHOD *meth;17. SSL_CTX *ctx;18. SSL *ssl;19.20. int nFd;21. int nLen;22. char szBuffer[1024];23.24.// 初始化25. cutil_init();26. cutil_log_set_level(LOG_ALL);27. cutil_log_set_stderr(1);28. SSLeay_add_ssl_algorithms();29. OpenSSL_add_all_algorithms();30. SSL_load_error_strings();31. ERR_load_BIO_strings();32.33.// 我们使用SSL V3,V234. EXIT_IF_TRUE((ctx = SSL_CTX_new (SSLv23_method())) == NULL);35.36.// 要求校验对方证书37. SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);38.39.// 加载CA的证书40. EXIT_IF_TRUE (!SSL_CTX_load_verify_locations(ctx, "cacert.cer", NULL));41.42.// 加载自己的证书43. EXIT_IF_TRUE (SSL_CTX_use_certificate_file(ctx, "client.cer", SSL_FILETYPE_PEM) <= 0) ;44.45.// 加载自己的私钥46. EXIT_IF_TRUE (SSL_CTX_use_PrivateKey_file(ctx, "client.key", SSL_FILETYPE_PEM)<= 0) ;47.48.// 判定私钥是否正确49. EXIT_IF_TRUE (!SSL_CTX_check_private_key(ctx));50.51.// 创建连接52. nFd = cutil_socket_new(SOCK_STREAM);53. if(cutil_socket_connect(nFd, "127.0.0.1", 8812, 30) < 0)54. {55. cutil_log_error("连接服务器失败\n");56. return -1;57. }58.59.// 将连接付给SSL60. EXIT_IF_TRUE( (ssl = SSL_new (ctx)) == NULL);61. SSL_set_fd (ssl, nFd);62. EXIT_IF_TRUE( SSL_connect (ssl) != 1);63.64.// 进行操作65. sprintf(szBuffer, "this is from client %d", getpid());66. SSL_write(ssl, szBuffer, strlen(szBuffer));67.68.// 释放资源69. memset(szBuffer, 0, sizeof(szBuffer));70. nLen = SSL_read(ssl,szBuffer, sizeof(szBuffer));71. fprintf(stderr, "Get Len %d %s ok\n", nLen, szBuffer);72.73. SSL_free (ssl);74. SSL_CTX_free (ctx);75. close(nFd);76.}。
20步打造最安全的Nginx Web服务器

Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器。
它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Windows。
根据调查统计,6%的网站使用Nginx Web服务器。
Nginx是少数能处理C10K问题的服务器之一。
跟传统的服务器不同,Nginx不依赖线程来处理请求。
相反,它使用了更多的可扩展的事件驱动(异步)架构。
Nginx为一些高流量的网站提供动力,比如WordPress,人人网,腾讯,网易等。
这篇文章主要是介绍如何提高运行在Linux或UNIX系统的Nginx Web服务器的安全性。
默认配置文件和Nginx端口∙/usr/local/nginx/conf/ – Nginx配置文件目录,/usr/local/nginx/conf/nginx.conf是主配置文件∙/usr/local/nginx/html/ –默认网站文件位置∙/usr/local/nginx/logs/ –默认日志文件位置∙Nginx HTTP默认端口: TCP 80∙Nginx HTTPS默认端口: TCP 443你可以使用以下命令来测试Nginx配置文件准确性。
前端UI分享1./usr/local/nginx/sbin/nginx -t将会输出。
the configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful执行以下命令来重新加载配置文件。
1./usr/local/nginx/sbin/nginx -s reload执行以下命令来停止服务器。
1./usr/local/nginx/sbin/nginx -s stop一、配置SELinux安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制。
用SSL安全协议实现WEB服务器的安全性

用SSL安全协议实现WEB服务器的安全性现今SSL安全协议广泛地用在Internet和Intranet的服务器产品和客户端产品中,用于安全地传送数据,集中到每个WEB服务器和浏览器中,从而来保证来用户都可以与Web站点安全交流。
本文将详细介绍SSL安全协议及在WEB服务器安全的应用。
一、SSL安全协议在WEB服务器中的应用1、我们为提供具有真正安全连接的高速安全套接层SSL)交易,可以将PCI卡形式的SSL卸载(offloading)设备直接安装到Web服务器上,这种做法的好处是:(1)从客户机到安全Web服务器的数据安全性;(2)由于卸载工具执行所有SSL处理过程并完成TCP/IP协商,因此大大提高了吞吐量;(3)简化了密钥的管理和维护。
安全性加大在实现向电子商务和其它安全Web站点的服务器增加SSL加速和卸载设备的结果是提高了交易处理速度。
但是由于设备是作为应用被安装在网络上的,因此设备与安全服务器之间的数据是未加密的。
将SSL卸载设备作为PCI扩展卡直接安装在安全服务器上,保证了从浏览器到服务器的连接安全性。
SSL可以用于在线交易时保护象信用卡号以及股票交易明细这类敏感信息。
受SSL保护的网页具有"https"前缀,而非标准的"http"前缀。
2、新型专用网络设备SSL加速器可以使Web站点通过在优化的硬件和软件中进行所有的SSL处理来满足性能和安全性的需要。
当具有SSL功能的浏览器(Navigator、IE)与Web服务器(Apache、IIS)通信时,它们利用数字证书确认对方的身份。
数字证书是由可信赖的第三方发放的,并被用于生成公共密钥。
当最初的认证完成后,浏览器向服务器发送48字节利用服务器公共密钥加密的主密钥,然后Web服务器利用自己的私有密钥解密这个主密钥。
最后,浏览器和服务器在会话过程中用来加解密的对称密钥集合就生成了。
加密算法可以为每次会话显式地配置或协商,最广泛使用的加密标准为"数据加密标准"(DES)和RC4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学 号
毕业设计(论文)
基于Openssl的安全Web服务器开发
一、综述国内外对本课题的研究动态,说明选题的依据和意义
随着计算机及通讯技术的飞速发展,信息安全已经渗透到社会经济生活的各个方面,对社会进步与经济发展起着越来越重要的作用,也使人们的工作甚至生活方式发生了巨大的变革。网络规模的激增,网络复杂性和异构性的焦点化,使得网络安全问题上升到了的战略性位置。
随着信息数字化以及计算机应用的发展,对存储在计算机中的文件和其它数字信息的保护需求成为了一种必然,尤其对一个能够通过公共网络进入的共享系统来说,这种需求显得尤为迫切。针对这种需求目前发展起来的技术有防病毒技术和防火墙技术等等。有些文献将这些保护数据、阻挡非法数据访问的技术统称为计算机安全或系统安全技术。
(3)安全验证加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。
信息安全是自古以来就存在的概念,比如以前为了保证传递书信的保密性,使用腊封或其它方式将书信封装在信封内;还有使用暗号口令确认接受信息的人的身份等等方法。需要注意的是,信息安全技术是跟信息的载体形式和传送媒介密切相关的,信息载体的变化和信息传送媒介的变化必然会导致信息安全技术的变化发展。
在过去的二十多年中,信息技术取得令人惊异的发展,越来越多的有价值的信息和资料以数字信息存放在计算机等数字信息存储设备中。与此同时,信息共享技术也获得了巨大的突破,以Internet的发展为代表,短短的时间内,从美国军方的一个专用网络发展到联系着全世界千千万万人的膨大信息网络。这些客观的变化导致对信息安全的要求发生了重大的变化。
(1)数据的保密性信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。
(2)数据的一致性加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。
2.数据安全传输的实现。难点包括怎样确定客户端的请求是安全请求、服务端的非对称密钥的生成方式、任何证书在使用之前,必须将证书以及其相应的公钥公布出去等。具体的实现是服务端实行非对称加密方式(公钥体制),暴露公开密钥给客户端,客户端获取公开密钥并用其加密新的对称密钥发送给服务器,后续的数据通过新密钥加密,服务器用该密钥解密从而实现数据的安全传输。
信息安全技术的另外一个重要变化是由于网络和通信设施的产生和应用引起的。这些网络和通信设施用来在用户各种终端以及计算机之间传输数据信息,这个传输过程很容易受到非法窃听等攻击,这就需要对在网络中传输的数据采取安全的保护措施。针对这种需求发展起来的技术有VPN、SSL等。
发展趋势:
网络安全的威胁多数来自邮件和采用广播形式发送的信函。面对这些威胁,许多专家建议安装代理服务器过滤软件来防止不当信息[15]。目前已有许多厂商正在开发相关软件,直接配置在网络网关上,弹性规范网站内容,过滤不良网站,限制内部浏览。这些技术还可提供内部使用者上网访问网站的情况,并产生图表报告。系统管理者也可以设定个人或部门下载文件的大小。此外,邮件管理技术能够防止邮件经由Internet网关进入内部网络,并可以过滤由内部寄出的内容不当的邮件,避免造成网络带宽的不当占用.从入口处拦截病毒成为未来网络防病毒产品发展的一个重要方向。
三、研究的步骤、方法、措施及进度安排
1.SSL技术
SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术[1]。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上[4]。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,SSL协议提供的安全信道有以下三个特性:
6.总结
网络安全技术在21世纪将成为信息网络发展的关键技术. 21世纪人类步入信息社会后,信息这一社会发展的重要战略资源需要网络安全技术的有力保障,才能成为社会发展的推动力。在ቤተ መጻሕፍቲ ባይዱ国,信息网络安全技术的研究和产品开发还处于起步阶段,仍有大量的工作需要去研究、开发和探索,走出有中国特色的产学研联合发展之路,赶上或超过发达国家的水平,保证我国信息网络的安全,推动我国国民经济的高速发展。
二、研究的基本内容,以及要解决的主要问题
1.WEB服务功能的实现。首先要监听某一指定端口,等待客户端浏览器的连接,获取HTTP请求的头部信息,包括请求的类型,请求的内容等等。确定请求后对客户端的请求进行回复,返回请求的页面,页面传输的方式。其中OpenSSL API的使用方法和Web服务器处理多个并发请求的方法是WEB安全服务功能的重点,做好这两个功能要学习熟悉OpenSSL API的调用方法并参考书籍、网络资料。
3.证书验证。当证书用户收到一个证书的时候,需要对这个证书进行验证。证书验证的项目通常包括:验证证书的签名者以确认是否信任该证书、检测证书有效期、确认证书是否有效、确认证书没有被签发它的CA撤销、检测证书预期用途跟CA在该证书中指定的策略是否相符合。证书的验证过程通常是对证书链的验证,这通常要执行多个上述项目的循环验证已得出最终验证结果。