基于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]。
- 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在该证书中指定的策略是否相符合。证书的验证过程通常是对证书链的验证,这通常要执行多个上述项目的循环验证已得出最终验证结果。