基于OpenSSL的密码支撑平台的研究与开发_钟源

基于OpenSSL的密码支撑平台的研究与开发_钟源
基于OpenSSL的密码支撑平台的研究与开发_钟源

Openssl生成证书步骤说明

Openssl生成证书步骤说明 命令操作: 1、生成普通私钥: 2、生成带加密口令的密钥: 在生成带加密口令的密钥时需要自己去输入密码。对于为密钥加密现在提供了一下几种算 通过生成的私钥去生成证书:

在生成证书的时候需要按照提示输入一些个人信息。 通过私钥生成公钥: 格式转换:(证书、私钥、公钥)(PEM <----->DER) 从DER格式转换成PEM格式一样,就是把inform的格式改成DERoutform的格式改成PEM 即可。 服务器和客户端认证的证书生成 下面是一个服务器和客户端认证的证书、私钥生成方法:(server.crt、client.crt、ca.crt) 用默认openssl配置文件生成证书,先创建文件夹 创建文件夹demoCA/newcerts: mkdir -p demoCA/newcerts 创建个空文件index.txt: touch demoCA/index.txt 向文件serial中写入01: echo 01 > demoCA/serial 1.首先要生成服务器端的私钥(key 文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key 文件(参数des3 便是指加密算法,当然也可以选用其他你认 为安全的算法.),以后每当需读取此文件(通过openssl 提供的命令或API)都需输入口令.如果觉得不方 便,也可以去除这个口令,但一定要采取其他的保护措施!

去除key 文件口令的命令: openssl rsa -in server.key -out server.key 2.openssl req -new -key server.key -out server.csr 生成Certificate Signing Request(CSR),生成的csr 文件交给CA 签名后形成服务端自己的证书. 屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可. 3.对客户端也作同样的命令生成key 及csr 文件: openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr 4.CSR 文件必须有CA 的签名才可形成证书.可将此文件发送到verisign 等地方由它验证,要交一大笔钱, 何不自己做CA 呢. openssl req -new -x509 -keyout ca.key -out ca.crt 5.用生成的CA 的证书为刚才生成的server.csr,client.csr 文件签名: openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key 现在我们所需的全部文件便生成了. 另: client 使用的文件有:ca.crt,client.crt,client.key server 使用的文件有:ca.crt,server.crt,server.key .crt 文件和.key 可以合到一个文件里面,本人把2 个文件合成了一个.pem 文件(直接拷贝过去就行了)

最受欢迎的十大WEB应用安全评估系统

最受欢迎的十大WEB应用安全评估系统 在国内一些网站上经常看到文章说某某WEB应用安全评估工具排名,但是很可惜,绝大多数都是国外人搞的,界面是英文,操作也不方便,那游侠就在这里综合下,列举下国内WEB安全评估人员常用的一些工具。当然,毫无疑问的,几乎都是商业软件,并且为了描述更准确,游侠尽量摘取其官方网站的说明: 1.IBM Rational AppScan IBM公司推出的IBM Rational AppScan产品是业界领先的应用安全测试工具,曾以Watchfire AppScan 的名称享誉业界。Rational AppScan 可自动化Web 应用的安全漏洞评估工作,能扫描和检测所有常见的Web 应用安全漏洞,例如SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)及缓冲溢出(buffer overflow)等方面安全漏洞的扫描。 游侠标注:AppScan不但可以对WEB进行安全评估,更重要的是导出的报表相当实用,也是国外产品中唯一可以导出中文报告的产品,并且可以生成各种法规遵从报告,如ISO 27001、OWASP 2007等。 2.HP WebInspect

目前,许多复杂的Web 应用程序全都基于新兴的Web 2.0 技术,HP WebInspect 可以对这些应用程序执行Web 应用程序安全测试和评估。HP WebInspect 可提供快速扫描功能、广泛的安全评估范围及准确的Web 应用程序安全扫描结果。 它可以识别很多传统扫描程序检测不到的安全漏洞。利用创新的评估技术,例如同步扫描和审核(simultaneous crawl and audit, SCA)及并发应用程序扫描,您可以快速而准确地自动执行Web 应用程序安全测试和Web 服务安全测试。 主要功能: ·利用创新的评估技术检查Web 服务及Web 应用程序的安全 ·自动执行Web 应用程序安全测试和评估 ·在整个生命周期中执行应用程序安全测试和协作 ·通过最先进的用户界面轻松运行交互式扫描 ·满足法律和规章符合性要求 ·利用高级工具(HP Security Toolkit)执行渗透测试 ·配置以支持任何Web 应用程序环境 游侠标注:毫无疑问的,WebInspect的扫描速度相当让人满意。 3.Acunetix Web Vulnerability Scanner

自签名OpenSSL证书流程

自签名OpenSSL证书流程 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施! 去除key文件口令的命令: openssl rsa -in server.key -out server.key [生成过程中提示需要输入私钥的密码,现设为111111] 2.openssl req -new -key server.key -out server.csr -config https://www.360docs.net/doc/b42315928.html,f 生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可. [利用私钥生成CA的证书请求,在这个过程中,按步骤提示输入各种信息,注意前面国家、州等信息和以后生成客户端.csr文件等,需要填入的信息时,需要保持一致,否则验证会通不过] Country Name(只能填2个字母) : cn State or Province Name : sz Locality Name : ns Organization Name : vc Organization Unit Name : odc Common Name : rome Email Address : rome80@https://www.360docs.net/doc/b42315928.html,(邮箱名可以不一样,可以区别不同的证书) 其中有一个A challenge password,不知道做什么用,填111111 An optional company name : milano -config https://www.360docs.net/doc/b42315928.html,f是配置文件信息 在生成.csr和证书的.crt时,都要填入上述信息 3.对客户端也作同样的命令生成key及csr文件: openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr -config https://www.360docs.net/doc/b42315928.html,f 4.openssl genrsa -des3 -out ca.key 1024 [这步是自己加上去的,先生成ca的私钥]

详述SSL和TLS的Web安全渗透测试

如果Web服务中的SSL和TLS协议出现安全问题,后果会如何?很明显,这样的话攻击者就可以拥有你所有的安全信息,包括我们的用户名、密码、信用卡、银行信息……所有的一切。本文将向读者详细介绍如何针对Web服务中的SSL和TLS协议进行安全渗透测试。我们首先对这两种协议进行了概述,然后详细介绍了针对加密信道安全性的黑盒测试和白盒测试。最后列出了一些常用的安全测试工具。 一、简介 目前,许多重要的Web服务都使用了SSL和TLS协议对通信进行保护。我们知道,http协议是使用明文进行传输的,但是像网络银行之类的web应用如果使用http协议的话,那么所有的机密信息都会暴露在网络连接中,这就像银行用一个透明的信封给我们邮寄信用卡帐号和密码一样,在从银行到达用户之间任何接触过这封信的人,都能看到我们的帐号和密码。为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明文,这样就产生了https通信流量。例如网络银行之类的应用,在服务器和客户端之间传输密码,信用卡号码等重要信息时,都是通过https协议进行加密传送的。 SSL和TLS是两种安全协议,它们通过加密技术为传输的信息提供安全信道、机密性和身份验证等安全功能。我们知道由于对高级密码技术的出口限制,会造成遗留系统使用的是弱加密技术。如果系统采用了弱密码,或者说密码强度过低的话,攻击者可以在有效的时间内破解密钥,而攻击者一旦得到了密钥,就像小偷得到了我们家的钥匙一样,所有的锁都会形同虚设。但是,新Web服务器就不会使用弱加密系统了吗?答案是否定的,因为许多新Web服务器也经常被配臵成处理虚密码选项。为了实现这些安全特性,协议必须确保使用的密码算法有足够的强度,并且密码算法得到了正确的实现。即使服务器安装使用了高级的加密模块,但是如果配臵不当的话,也有可能为安全特性要求较高的通信信道的设臵了较弱的加密技术。下面,我们将详细介绍如何对这两种协议的配臵进行安全审计。 二、测试SSL/TLS的密码规范 我们知道,http协议是使用明文进行传输的,为了提高其安全性,经常需要通过SSL或者TLS隧道传输这些明文,这样就产生了https通信流量。除对传输的数据进行加密处理之外,https(安全超文本传输协议,HTTPS)还能利用数字证书为服务器或客户端提供身份标识。 过去,美国政府对加密系统的出口有许多限制,如密钥长度最大为40位,因为密钥长度越短,它就越容易破解。后来,密码出口条例已经放宽了许多,但是,检查服务器的SSL配臵仍然十分重要,因为它有可能配臵使用了弱加密技术。基于SSL的服务不应该提供选择弱密码的机会。 注意,我们这里所说的弱密码,指的是加密强度不够、容易破解的加密系统。不同的加密算法具有不同的密码强度,但是在算法一定的情况下,密钥的长度越长,加密强度越高。 技术上,选择加密技术的过程如下所示:在建立SSL连接的初期,客户端向服务器发送一个Clien t Hello消息,以告知服务器它支持哪些加密技术等。一般情况下,客户端通常是一个Web浏览器,所以浏览器是目前最常见的SSL客户端;然而,任何支持SSL的应用程序都可以作为SSL客户端使用。比如,有时候SSL客户端是些SSL代理(如stunnel),它们使得那些不支持SSL的工具也能与SSL服务通信。同理,SSL服务器端通常为Web服务器,但是其他应用程序也可以充当SSL服务器端。加密套件规定了具体的密码协议(DES、RC4、AES)、密钥长度(诸如40、56或者128位)和用于完整性检验的散列算法(SHA、MD5)。收到Client Hello消息后,服务器以此确定该会话所使用的加密套件。当然,通过配臵可以规定服务器能够接受哪些密码套件,这样的话,我们就能够控制是否跟仅支持40位加密的客户端通话 三、黑盒测试 为了检测可能支持的弱密码,必须找出与SSL/TLS服务相关的端口。通常情况下,要检查端口443,因为它是标准的https端口;不过运行在443端口上的却未必是https服务,因为通过配臵,https服务可以运行在非标准的端口上,同时,Web应用程序也许使用了其它利用SSL/TLS封装的服务。一般而言,为了找出这些端口,必须找出使用了哪些服务。

Linux下利用openssl 生成SSL证书步骤

Linux下利用openssl 生成SSL证书步骤 1、概念 首先要有一个CA根证书,然后用CA根证书来签发用户证书。 用户进行证书申请:一般先生成一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的CA根证书来签发证书。 2、后缀详解 .key格式:私有的密钥 .csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request 的缩写 .crt格式:证书文件,certificate的缩写 .crl格式:证书吊销列表,Certificate Revocation List的缩写 .pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式 3、添加 index.txt 和 serial 文件 cd /etc/pki/CA/ touch /etc/pki/CA/index.txt touch /etc/pki/CA/serial echo 01 > /etc/pki/CA/serial 4、CA根证书的生成 4.1 生成CA私钥(.key) openssl genrsa -out ca.key 2048 [root@CA]# openssl genrsa -out ca.key 2048 Generating RSA private key, 2048 bit long modulus .............+++ .....+++ e is 65537 (0x10001) 4.2 生成CA证书请求(.csr) openssl req -new -key ca.key -out ca.csr [root@CA]# openssl req -new -key ca.key -out ca.csr You are about to be asked to enter information that will be incorporated into 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 blank For some fields there will be a default value,

浅谈WEB应用安全问题及防范

浅谈WEB应用安全问题及防范 随着WEB应用技术的发展,越来越多的企业或学校使用WEB应用来进行企业或学校信息开放性管理,使机构管理信息暴露在越来越多的威胁中。由于WEB应用具有一定的运行特点,传统防火墙对于其存在的安全问题缺少针对性和有效性,新的防护工具——Web应用防火墙应运而生。 标签:web应用开放性安全问题Web防火墙 随着信息资源逐渐向数据高度集中的模式,Web成为一种普适平台,Web 应用成为了越来越多的企业或学校进行核心业务及信息管理的承载者。Web应用提供了丰富的开放资源和高效率的新工作方式,但它的开放性、易用性和易开发性同样也使Web应用的安全问题日益突出,已成为了网络安全核心问题之一。 1 Web应用的工作原理和特点 Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。 目前广泛使用的Web应用程序一般是B/S模式,使用标准的三层架构模型:第一层是客户端;使用动态Web内容技术的部分属于中间层;数据库是第三层。在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL 语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web 页面形式显示出来。 因此,Web应用具有以下特点: 1.1 易用性 Web应用所基于的Web浏览器的界面都很相似,对于无用户交互功能的页面,用户接触的界面都是一致的,因此Web应用的操作简单易上手。 1.2 开放性 在Web应用的B/S模式下,除了内部人员可以访问,外部的用户亦可通过通用的浏览器进行访问,并且不受浏览器的限制。 1.3 易扩展性

影响WEB安全的因素

影响WEB安全的因素 大家经常会听到看到很多很多有关安全性方面的信息,可以说形形色色,对于在网络安全方面不太专业的同志来说,有点眼花缭乱,理不出头绪。在这里,我来帮大家整理一下。 以我个人多年来从事Web安全方面的工作经验及国外一些权威安全机构对Web安全的层次性的理解,我们通常把它分为三个层次: 1、网络安全。如防火墙、路由器、网络结构等相关的安全问题 2、系统与服务安全。如Window/Linux/Unix系统本身的漏洞或运行于其上的服务的安全,象Apache/OpenSSL/Weblogic等本身的安全性漏洞 3、Web应用程序安全。具体应用程序的安全性漏洞,比如:某网站邮件系统因为存在脚本安全性问题,导致该邮件系统的用户在收到具有恶意代码的邮件时不知不觉的,其密码与帐号信息被人窃取。 说到这,大家应该清楚,不管你是在任何地方看到有关计算机安全性问题的方方面面,都逃不出这三大部分,同时我也要向读者声明一下:在这里,我主要是给大家陆续的介绍上述第三部分内容,即Web应用程序安全性相关知识与技能。 据权威搜索引擎公司统计数据显示,目前70%以上的网站,或多或少的存在安全隐患,这里的安全隐患指的就是Web应用程序的安全。至于网络、系统与服务的安全性问题,我个人认为它的生存周期基本上是:发现->上报软件开发商->打补丁->下载更新程序。作为我们用户,及时的给系统与服务打上最新的补丁,配合一定的防火墙安全策略,是可以基本保证其安全的。但是Web应用程序基本上是每个组织各持一套自己的程序,一切问题都必需自己动手去解决,恰恰因为此种特性,才导致目前运行于互联网上的Web应用的安全性普遍存在。为什么呢?因为只有少数组织或个人有能力驾驭网络安全相关的技术与经验,而绝大多数的即使是专业做网站开发的公司也不一定有知识有能力或有意识去考虑安全性问题.还要向读者罗嗦一点是的:安全需要意识,没有安全意识的组织与个人,是无法保证其开发出的产品的安全性的。这一点很重要,很多人只是从媒体上看到听到一些安全性问题,总觉得安全性问题离自己很遥远,其不知安全性问题正在对其造成越来越严重的破坏......。前不久上海有一位朋友,银行卡的资金不明转出,且被人取走,报警后,经警方多方调查跟踪,最络查明:其经常使用网上银行的笔记本电脑中了“灰鸽子”木马,导致其操作电脑的行为及其电脑上的现在资源完全暴露无遗。有人要问:“灰鸽子”是如何跑到其计算机上的呢?当然进去的途径有多种,比如我们是网友,我通过QQ发给你让你运行一下;或者我向你推荐一款你比较感兴趣的免费软件,该软件内部已经绑定了“灰鸽子”木马程序......,还有一点很重要的就是通过网页来传播。比如通过脚本注入的方式,强行的不停的提示你下载并运行该程序;通过上传漏洞上传到一个你信任的网站上,当它提示你下载并安装时,你发现它来自你信任的网站,于是就接受了...... 总之,Web应用程序是我们接触最多最有可能通过带来安全隐患的载体。我将在之后的文章里步步向大家介绍Web应用程序安全性相关的知识、方法与我个人的多年从事web 应用程序安全性检测的经验。希望我的努力就是您的需要。 ----转自《Web安全性问题的层次关系》 1.不要上带颜色的网站,90%有毒。 2.不要下载没名气的网址提供的软件,游戏下载,所谓的破解版。 3.不要接受人家传送的网址,如QQ,MSN,先询问下是否是本人发的。 4.装好杀毒软件,推荐卡巴斯基。

使用OpenSSL建立根CA及自签名证书制作过程

使用OpenSSL建立根CA及自签名证书制作过程 2009-12-24 11:35:32| 分类:openssl |字号订阅 Openssl版本:0.9.8 版本,可从https://www.360docs.net/doc/b42315928.html,处下载。 1.先建立如下目录结构: $home/testca # testca 是待建CA的主目录 ├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录) ├─private/ # private目录用来存放CA私钥 └─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件 此外使用命令 echo "01" > serial touch index.txt 在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。 1.生成CA的私钥和自签名证书 (根证书) 创建配置文件:vi "$HOME/testca/conf/gentestca.conf" 文件内容如下: #################################### [ req ] default_keyfile = /home/cx/testCA/private/cakey.pem default_md = md5 prompt = no

distinguished_name = ca_distinguished_name x509_extensions = ca_extensions [ ca_distinguished_name ] organizationName = ss organizationalUnitName = sstc commonName = sstcCA emailAddress = GChen2@https://www.360docs.net/doc/b42315928.html, #自己的邮件地址 [ ca_extensions ] basicConstraints = CA:true ######################################## 然后执行命令如下: cd "$HOME/testca" openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf" 执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888 可以用如下命令查看一下CA自己证书的内容 openssl x509 -in cacert.pem -text –noout 创建一个配置文件,以便后续CA日常操作中使用 vi "$HOME/testca/conf/testca.conf"

五个常见的Web应用漏洞及其解决方法

五个常见的Web应用漏洞及其解决方法开放Web应用安全项目(OW ASP)很快会发布今年的10大Web应用安全漏洞清单。这个清单与去年并没有太大差别,这表明负责应用设计与开发的人仍然没能解决以前那些显而易见的错误。许多最常见的Web应用漏洞仍然广泛存在,许多恶意软件搜索和攻击这些漏洞,连黑客新手都能轻松做到。 本文介绍了5个最常见的Web应用漏洞,以及企业该如何修复初级问题,对抗那些针对这些漏洞的攻击。 注入攻击和跨站脚本攻击 Web应用主要有2种最常见的严重缺陷。首先是各种形式的注入攻击,其中包括SQL、操作系统、电子邮件和LDAP注入,它们的攻击方式都是在发给应用的命令或查询中夹带恶意数据。别有用心的数据可以让应用执行一些恶意命令或访问未授权数据。如果网站使用用户数据生成SQL查询,而不检查用户数据的合法性,那么攻击者就可能执行SQL注入。这样攻击者就可以直接向数据库提交恶意SQL查询和传输命令。举例来说,索尼的PlayStation 数据库就曾经遭遇过SQL注入攻击,并植入未授权代码。 跨站脚本(XSS)攻击会将客户端脚本代码(如JavaScript)注入到Web应用的输出中,从而攻击应用的用户。只要访问受攻击的输出或页面,浏览器就会执行代码,让攻击者劫持用户会话,将用户重定向到一个恶意站点或者破坏网页显示效果。XSS攻击很可能出现在动态生成的页面内容中,通常应用会接受用户提供的数据而没有正确验证或转码。 为了防御注入攻击和XSS攻击,应用程序应该配置为假定所有数据——无论是来自表单、URL、Cookie或应用的数据库,都是不可信来源。要检查所有处理用户提供数据的代码,保证它是有效的。验证函数需要清理所有可能有恶意作用的字符或字符串,然后再将它传给脚本和数据库。要检查输入数据的类型、长度、格式和范围。开发者应该使用现有的安全控制库,如OW ASP的企业安全API或微软的反跨站脚本攻击库,而不要自行编写验证代码。此外,一定要检查所有从客户端接受的值,进行过滤和编码,然后再传回给用户。 身份验证和会话管理被攻破 Web应用程序必须处理用户验证,并建立会话跟踪每一个用户请求,因为HTTP本身不具备这个功能。除非任何时候所有的身份验证信息和会话身份标识都进行加密,保证不受其他缺陷(如XSS)的攻击,否则攻击者就有可能劫持一个激活的会话,伪装成某个用户的身份。如果一个攻击者发现某个原始用户未注销的会话(路过攻击),那么所有帐号管理功能和事务都必须重新验证,即使用户有一个有效的会话ID。此外,在重要的事务中还应该考虑使用双因子身份验证。 为了发现身份验证和会话管理问题,企业要以执行代码检查和渗透测试。开发者可以使用自动化代码和漏洞扫描程序,发现潜在的安全问题。有一些地方通常需要特别注意,其中包括会话身份标识的处理方式和用户修改用户身份信息的方法。如果没有预算购买商业版本,那么也可以使用许多开源和简化版本软件,它们可以发现一些需要更仔细检查的代码或进程。

OpenSSL证书制作过程

比亚迪培训讲义 在J2EE中使用数字证书 深圳市金蝶中间件有限公司 2007年12月

Table of Contents 1 数字证书使用的场合 (3) 2 数字证书的颁发 (3) 2.1 概述 (3) 2.2 创建自签名CA (3) 2.2.1 生成ca私钥 (3) 2.2.2 生成ca待签名证书 (4) 2.2.3用CA私钥进行自签名,得到自签名的CA根证书 (4) 2.2.4 https://www.360docs.net/doc/b42315928.html,f配置文档 (5) 2.3 颁发服务器证书 (7) 2.3.1 生成服务器私钥对及自签名证书 (7) 2.3.2 生成服务器待签名证书 (7) 2.3.3 请求CA签名服务器待签名证书,得到经CA签名的服务器证书 (8) 2.3.4把CA根证书导入密钥库 mykeystore (8) 2.3.5把经过CA签名的服务器证书导入密钥库mykeystore (8) 2.4 颁发客户端证书 (9) 2.4.1 生成客户端私钥 (9) 2.4.2生成客户端待签名证书 (9) 2.4.3请求CA签名客户端待签名证书,得到经CA签名的客户端证书 (10) 生成客户端的个人证书client.p12 (10) 2.5 CA根证书导入客户端 (11) 2.6个人证书导入客户端 (11) 3 在J2EE中使用证书 (11) 3.1 配置SSL双向认证 (11) 3.1.1 服务器端密钥库和信任库 (12) 3.1.2修改Muxer服务 (12) 3.1.3修改SecurityService服务 (13) 3.2 在程序中获取证书信息 (13) 4 练习 (13) 5 附录 (14) 5.1 SSL v3的处理步骤 (14) 5.2 命令行调试SSL证书 (14)

利用openSSL实现SSl双向认证学习笔记

SSl双向认证学习笔记 2010-09-02 13:16:39| 分类:ssl | 标签:|字号大中小订阅 url]https://www.360docs.net/doc/b42315928.html,/sunyujia/archive/2008/10/03/3014667.aspx[/url] [url]https://www.360docs.net/doc/b42315928.html,/nataka/archive/2005/09/03/470539.aspx[/url] [url]https://www.360docs.net/doc/b42315928.html,/thread-743287-1-1.html[/url] 第一节基础知识 最近要做一个SSL的应用,先后了解了两个命令,一个是keytool,一个是openssl。keytool是JDK得集成环境 。只要安装了JDK,基本上都会有(^_^,除非你安装太老的!),我用的1.5。在安装openssl的时候,花了半天时间 。 用SSL进行双向身份验证意思就是在客户机连接服务器时,链接双方都要对彼此的数字证书进行验证,保证这 是经过授权的才能够连接(我们链接一般的SSL时采用的是单向验证,客户机只验证服务器的证书,服务器不验证客户 机的证书。而连接网上银行时使用的U盾就是用来存储进行双向验证所需要的客户端证书的)。 JDK工具KEYTOOL -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥 、私钥和证书 -alias 产生别名 -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中 -keyalg 指定密钥的算法 -validity 指定创建的证书有效期多少天 -keysize 指定密钥长度 -storepass 指定密钥库的密码 -keypass 指定别名条目的密码 -dname 指定证书拥有者信息例如:"CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn" -list 显示密钥库中的证书信息keytool -list -v -keystore 别名-storepass .... -v 显示密钥库中的证书详细信息 -export 将别名指定的证书导出到文件keytool -export -alias 别名-file 文件名.crt -file 参数指定导出到文件的文件名 -delete 删除密钥库中某条目keytool -delete -alias 别名-keystore sage -keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias 别名-keypass .... -new .... -storepass ... -keystore 别名 -import 将已签名数字证书导入密钥库keytool -import -alias 别名-keystore 证书名-file 文件名 (可以加.crt 后缀) 命令: 生成证书 keytool -genkey -keystore 文件名(可包含路径) -keyalg rsa -alias 别名-validity 有效期 查看证书 keytool -list -v -keystore 路径 把证书导出到文件 keytool -export -alias 别名-keystore 证书名-rfc -file 文件名(可包含路径) 修改密码 keytool -keypasswd -alias 别名-keypass 旧密码-new 新密码 导出证书到新的TrustStore keytool -import -alias 别名-file 文件名-keystore truststore 此处省略3000字,待补^_^

常见WEB安全漏洞及整改建议

常见WEB安全漏洞及整改建议 1. HTML表单没有CSRF保护 1.1 问题描述: CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。 1.2 整改建议: CSRF的防御可以从服务端和客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的CSRF防御也都在服务端进行。有以下三种方法: (1).Cookie Hashing(所有表单都包含同一个伪随机值): (2).验证码 (3).One-Time Tokens(不同的表单包含一个不同的伪随机值) 1.3 案例: 1.服务端进行CSRF防御 服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。 1.3.1 Cookie Hashing(所有表单都包含同一个伪随机值): 这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败.

//构造加密的Cookie信息 $value = “DefenseSCRF”; setcookie(”cookie”, $value, time()+3600); ?> 在表单里增加Hash值,以认证这确实是用户发送的请求。 $hash = md5($_COOKIE['cookie']); ?> ”> 然后在服务器端进行Hash值验证 if(isset($_POST['check'])) { $hash = md5($_COOKIE['cookie']); if($_POST['check'] == $hash) { doJob(); } else {

OpenSSL 命令常用证书操作

在OpenSSL开发包中,包含一个实用工具:openssl,比如我用MinGW GCC 编译OpenSSL 0.9.8k 后,openssl 就保存在out目录下。openssl 工具是完成密钥、证书操作和其它SSL 事务的入口环境,直接运行不带参数的openssl 命令后,可以得到一个shell 环境,在其中可以以交互的方式完成SSL 相关的安全事务。 不过有时,如果用一个带参数选项的openssl 命令完成操作,会更方便。下面是我使用openssl 做证书操作时,记录的常用命令用法。 1.生成密钥 生成RSA密钥,保存在file.key中,命令如下: 上面命令的含义是:产生RSA密钥,包括:私钥和公钥两部分,然后使用DES3算法,用用户输入的密码(passphrase)加密该密钥数据,保存在file.key中。 file.key默认以BASE64方式编码密钥数据,file.key的格式称为:PEM (Privacy Enhanced Mail)格式,在RFC 1421到RFC 1424中定义,PEM是早期用来进行安全电子邮件传输的标准,但现在广泛用在证书、证书请求、PKCS#7对象的存储上,所以证书文件也经常以.pem为扩展名。 2.不加密的密钥 如果在生成密钥时,使用了-des3等加密选项,则会生成被用户密码保护的加密密钥,以增强密钥数据的保密性(因为密钥文件中包含私钥部分)。但有时为了方便,需要不加密的明文密钥(这样安全性会降低),比如:使用

Apache的HTTPS服务,每次启动Apache服务时,都需要用户输入保护密钥的密码,感觉麻烦的话,可以使用明文密钥。 明文密钥可以使用不带-des3等加密选项的openssl命令生成,还可以使用以下命令将加密保护的密钥转换成明文密钥,当然转换过程需要用户输入原来的加密保护密码: 3.查看密钥 查看保存在file.key中的RSA密钥的细节,如果此文件是加密保护的,会提示用户输入加密此文件的密码,命令如下: 输出的内容均是RSA密钥数据的数学信息(模数、指数、质数等),从输出的结果中也可知file.key保存的RSA密钥数据包括:私钥和公钥两部分。 该命令也能查看其它工具生成的密钥,比如SSH,只要密钥文件符合openssl支持的格式。 4.生成证书请求 由file.key产生一个证书请求(Certificate Request),保证在file.csr 中,命令如下: 指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/https://www.360docs.net/doc/b42315928.html,f。 创建证书请求时,会要求用户输入一些身份信息,示例如下:

Web的安全威胁与安全防护(一)

Web的安全威胁与安全防护(一) 摘要文章对Web的安全威胁进行分析,提出了Web安全防护措施,并基于Windows平台简述了一个Web安全防护策略的具体应用。 关键词Web;网络安全;安全威胁;安全防护1引言 随着Internet的普及,人们对其依赖也越来越强,但是由于Internet的开放性,及在设计时对于信息的保密和系统的安全考虑不完备,造成现在网络的攻击与破坏事件层出不穷,给人们的日常生活和经济活动造成了很大麻烦。WWW服务作为现今Internet上使用的最广泛的服务,Web站点被黑客入侵的事件屡有发生,Web安全问题已引起人们的极大重视。 2Web的安全威胁 来自网络上的安全威胁与攻击多种多样,依照Web访问的结构,可将其分类为对Web服务器的安全威胁、对Web客户机的安全威胁和对通信信道的安全威胁三类。 2.1对Web服务器的安全威胁 对于Web服务器、服务器的操作系统、数据库服务器都有可能存在漏洞,恶意用户都有可能利用这些漏洞去获得重要信息。Web服务器上的漏洞可以从以下几方面考虑: 2.1.1在Web服务器上的机密文件或重要数据(如存放用户名、口令的文件)放置在不安全区域,被入侵后很容易得到。 2.1.2在Web数据库中,保存的有价值信息(如商业机密数据、用户信

息等),如果数据库安全配置不当,很容易泄密。 2.1.3Web服务器本身存在一些漏洞,能被黑客利用侵入到系统,破坏一些重要的数据,甚至造成系统瘫痪。 2.1.4程序员的有意或无意在系统中遗漏Bugs给非法黑客创造条件。用CGI脚本编写的程序中的自身漏洞。 2.2对Web客户机的安全威胁 现在网页中的活动内容已被广泛应用,活动内容的不安全性是造成客户端的主要威胁。网页的活动内容是指在静态网页中嵌入的对用户透明的程序,它可以完成一些动作,显示动态图像、下载和播放音乐、视频等。当用户使用浏览器查看带有活动内容的网页时,这些应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。主要用到JavaApplet和ActiveX技术。JavaApplet使用Java语言开发,随页面下载,Java使用沙盒(Sandbox)根据安全模式所定义的规则来限制JavaApplet的活动,它不会访问系统中规定安全范围之外的程序代码。但事实上JavaApplet存在安全漏洞,可能被利用进行破坏。 ActiveX是微软的一个控件技术,它封装由网页设计者放在网页中来执行特定的任务的程序,可以由微软支持的多种语言开发但只能运行在Windows平台。ActiveX在安全性上不如JavaApplet,一旦下载,能像其他程序一样执行,访问包括操作系统代码在内的所有系统资源,这是非常危险的。

OpenSSL来制作证书,在IIS中配置HTTPS(SSL)笔记

info@https://www.360docs.net/doc/b42315928.html, 使用OpenSSL来制作证书,在IIS中配置HTTPS(SSL)笔记 下载Win32编译的openssl版本0.9.8e. 1.获取IIS证书请求:打开IIS,右键单击【默认网站】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,【新建证书】,【现在准备证书请求--下一步】,输入【名称】,输入【单位】和【部门】,输入【公用名称】,选择【国家】并输入【省】和【市县】并【下一步】,【下一步】,【下一步】,【完成】,IIS的证书请求已经获取,就是C:\certreq.txt。这里请牢记输入的信息。 2.准备openssl工作环境:把openssl(编译后的版本)解压到D:\OpenSSL-0.9.8e\下, 在bin目录下建立目录demoCA,在demoCA下建立private和newcerts目录, 并新建index.txt,内容为空 如果没有serial文件,则到openssl网站上下载openssl的源文件,解压后,到apps\demoCA下,拷贝serial文件过来,两个目录两个文件都放到新建的 demoCA下。 3.生成自签名根证书: openssl req -x509 -newkey rsa:1024 -keyout ca.key -out ca.cer -days 3650 -config D:\OpenSSL-0.9.8e\https://www.360docs.net/doc/b42315928.html,f PEM pass phrase: password // 根证书私钥密码 Verifying - Enter PEM pass phrase: password Country Name: CN // 两个字母的国家代号 State or Province Name: HB // 省份名称 Locality Name: WUHAN // 城市名称 Organization Name: Skyworth TTG // 公司名称 Organizational Unit Name: Service // 部门名称 Common Name: https://www.360docs.net/doc/b42315928.html, // 你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址) Email Address: admin@https://www.360docs.net/doc/b42315928.html, // Email地址

十大常见漏洞

Web应用常见的安全漏洞有哪些 随着存在安全隐患的Web应用程序数量的骤增,Open Web Application Security Project (开放式Web应用程序安全项目,缩写为OWASP)总结出了现有Web应用程序在安全方面常见的十大漏洞,以提醒企业及其程序开发人员尽量避免它们给企业IT系统带来的安全风险: 一、非法输入 Unvalidated Input 在数据被输入程序前忽略对数据合法性的检验是一个常见的编程漏洞。随着OWASP对Web应用程序脆弱性的调查,非法输入的问题已成为大多数Web应用程序安全漏洞方面的一个普遍现象。 二、失效的访问控制 Broken Access Control 大部分企业都非常关注对已经建立的连接进行控制,但是,允许一个特定的字符串输入可以让攻击行为绕过企业的控制。 三、失效的账户和线程管理 Broken Authentication and Session Management 有良好的访问控制并不意味着万事大吉,企业还应该保护用户的密码、会话令牌、

账户列表及其它任何可为攻击者提供有利信息、能帮助他们攻击企业网络的内容。 四、跨站点脚本攻击 XSS 跨站漏洞以及钓鱼式攻击 XSS,中文名称为跨站脚本,是一种很常见的脚本漏洞。因为跨站脚本攻击不能直接对系统进行攻击,所以往往被人们忽视。 由于WEB应用程序没有对用户的输入进行严格的过滤和转换,就导致在返回页面中可能嵌入恶意代码。远程攻击者可以利用这些漏洞在用户浏览器会话中执行任意HTML和脚本代码。跨站脚本执行漏洞的攻击效果需要借助第三方网站来显现,此这种攻击能在一定程度上隐藏身份。 由于跨站脚本不能直接对系统进行攻击,所以跨站脚本总是伴随社会工程学来 实现攻击的,这种攻击的主要表现形式是钓鱼式攻击。钓鱼式攻击方式有很多,如获取Cookie, 伪造页面,屏蔽页面特定信息,与其它漏洞结合攻击操作系统等等。钓鱼式攻击是针对人脑的攻击方式,它的传播手段有EMAIL、IM、聊天室、恶意连接、游戏中的聊天系统,凡是能实现用户之间互动操作的系统都存在钓鱼式攻击的风险。 在电子商务蓬勃发展的今天,针对个人财务信息的钓鱼攻击事件数量成直线上升,其中一个主要攻击途径就是跨站脚本执行漏洞。据统计,国内外存在跨站脚本漏洞的网站多达60%, 其中包括许多大型知名网站。 这是一种常见的攻击,当攻击脚本被嵌入企业的Web页面或其它可以访问的Web 资源中,没有保护能力的台式机访问这个页面或资源时,脚本就会被启动,这种攻击可以影响企业内成百上千员工的终端电脑。 网站开发者角度,如何防护XSS攻击? 对XSS最佳的防护应该结合以下两种方法:验证所有输入数据,有效检 测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。 网站用户角度,如何防护XSS攻击? 当你打开一封Email或附件、浏览论坛帖子时,可能恶意脚本会自动执行,因此,在做这些操作时一定要特别谨慎。建议在浏览器设置中关闭

相关文档
最新文档