分类
知识中心

SSL证书彼此交换公钥加密技术

在对SSL证书进行讲解之前,我们先来了解一下加密方法。SSL采用一种叫做公开密钥加密(Public-key cryptography)的加密处理方式。

近代的加密方法中加密算法是公开的,而密钥却是保密的。通过这种方式得以保持加密方法的安全性。

加密和解密都会用到密钥。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了。如果密钥被攻击者获得,那加密也就失去了意义。

SSL证书共享密钥加密的困境

加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system),也被叫做对称密钥加密。

 

以共享密钥方式加密时必须将密钥也发给对方。可究竟怎样才能安全地转交?在互联网上转发密钥时,如果通信被监听那么密钥就可会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。

 

使用两把密钥的公开密钥加密

公开密钥加密方式很好地解决了共享密钥加密的困难。

公开密钥加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。

使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。

另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行求值,这并非轻而易举就能办到。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么密码破解还是存在希望的。但就目前的技术来看是不太现实的。

 

HTTPS采用混合加密机制

HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥加密与共享密钥加密相比,其处理速度要慢。

所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式

分类
知识中心

HTTPS加密和认证以及完整性保护HTTP安全

如果在HTTP协议通信过程中使用未经加密的明文,比如在Web页面中输入信用卡号,如果这条通信线路遭到窃听,那么信用卡号就暴露了。

另外,对于HTTP来说,服务器也好,客户端也好,都是没有办法确认通信方的。因为很有可能并不是和原本预想的通信方在实际通信。并且还需要考虑到接收到的报文在通信途中已经遭到篡改这一可能性。

为了统一解决上述这些问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure)。

经常会在Web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不再用http://,而是改用https://。另外,当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个带锁的标记。对HTTPS的显示方式会因浏览器的不同而有所改变

分类
知识中心

数字签名解决无法证明报文完整性

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确。

接收到的内容可能有误

由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。

换句话说,没有任何办法确认,发出的请求/响应和接收到的请求/响应是前后相同的。

比如,从某个Web网站上下载内容,是无法确定客户端下载的文件和服务器上存放的文件是否前后一致的。文件内容在传输途中可能已经被篡改为其他的内容。即使内容真的已改变,作为接收方的客户端也是觉察不到的。

像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM)。

如何防止篡改

虽然有使用HTTP协议确定报文完整性的方法,但事实上并不便捷、可靠。其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。

提供文件下载服务的Web网站也会提供相应的以PGP(Pretty Good Privacy,完美隐私)创建的数字签名及MD5算法生成的散列值。PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值。不论使用哪一种方法,都需要操纵客户端的用户本人亲自检查验证下载的文件是否就是原来服务器上的文件。浏览器无法自动帮用户检查。

可惜的是,用这些方法也依然无法百分百保证确认结果正确。因为PGP和MD5本身被改写的话,用户是没有办法意识到的。

为了有效防止这些弊端,有必要使用HTTPSSSL证书提供认证和加密处理及摘要功能。仅靠HTTP确保完整性是非常困难的,因此通过和其他协议组合使用来实现这个目标。下节我们介绍HTTPS的相关内容。

分类
知识中心

HTTP通信使用明文可能会被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和响应的内容)进行加密。即,HTTP报文使用明文(指未经过加密的报文)方式发送。

 

TCP/IP是可能被窃听的网络

 

如果要问为什么通信时不加密是一个缺点,这是因为,按TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。

 

所谓互联网,是由能连通到全世界的网络组成的。无论世界哪个角落的服务器在和客户端通信时,在此通信线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除某个环节中会遭到恶意窥视行为。

 

即使已经过加密处理的通信,也会被窥视到通信内容,这点和未加密的通信是相同的。只是说如果通信经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的。

 

窃听相同段上的通信并非难事。只需要收集在互联网上流动的数据包(帧)就行了。对于收集来的数据包的解析工作,可交给那些抓包(Packet Capture)或嗅探器(Sniffer)工具。

 

广泛使用的抓包工具Wireshark,它可以获取HTTP协议的请求和响应的内容,并对其进行解析。

 

像使用GET方法发送请求、响应返回了200 OK,查看HTTP响应报文的全部内容等一系列的事情都可以做到。

 

加密处理防止被窃听

 

在目前大家正在研究的如何防止窃听保护信息的几种对策中,最为普及的就是加密技术。加密的对象可以有这么几个。

 

通信的加密

 

一种方式就是将通信加密。HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。

 

用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL证书组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL。

 

内容的加密

 

还有一种将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。

 

在这种情况下,客户端需要对HTTP报文进行加密处理后再发送请求。

 

诚然,为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。主要应用在Web服务中。有一点必须引起注意,由于该方式不同于SSL或TLS将整个通信线路加密处理,所以内容仍有被篡改的风险。稍后我们会加以说明

 

分类
知识中心

给HTTP披上一层SSL保护层

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。

通常,HTTP直接和TCP通信。当使用SSL证书时,则演变成先和SSL通信,再由SSL和TCP通信了。简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。

在采用SSL证书后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。

SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL加密技术是当今世界上应用最为广泛的网络安全技术。

分类
安全播报

遇到支付网址“http”开头时要当心 谨防上当

央视《新闻直播间》节目针对网络诈骗进行报道,曝光了一个网络诈骗团伙假冒购物网站进行诈骗,将受害者网银内的钱全部转走。天威诚信提醒网民,当网购支付页面的网址前缀不是“https”而是“http”时一定要注意,很可能已经被骗子盯上。

 

据央视报道,一个网络诈骗团伙,他们就是假冒购物网站,将受害者网银内的钱全部转走!提醒大家完成网购订单进入支付页面,网址前缀会变成”https”,表示已加密;若支付页面仍是”http”,一定提高警惕。

 

网站只有部署了ssl证书后,网址前缀才会变成”https”,同时还会在网站上呈现小金色锁、绿色地址栏等标识。

遇到支付网址“http”开头时要当心 谨防上当-1

 

SSL证书是一种加密传输协议,通过SSL认证之后,数据信息在网民和服务器之间的加密传输就得以保证,数据信息得以保护,同时用户也可以通过服务器证书验证自己访问的网站是否真实可靠。

 

现在网上出现了仿真度极高的假冒银行官网。假银行官网会诱骗消费者输入用户名和密码,骗子可以直接看到,随后将受骗者的银行存款席卷一空。提醒大家,网上支付一定要核对网址。认准网址前缀的”https”标识

分类
知识中心

如何实现Tomcat http自动跳转至https

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTPS,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面

与http区别:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

SSL协议:

SSL安全套接层协议(Secure Socket Layer)

为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之IE.或Netscape浏览器即可支持SSL。

当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

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

如何配置:

1、生成服务器端证书文件

可以使用Windows系统或者Linux系统

(1) Windows环境

条件:已经安装JDK

步骤:

l 进入%JAVA_HOME%/bin目录

l 执行命令

keytool -genkey -alias tomcat -keyalg RSA -keystore F:tomcat.keystore -validity 36500

参数简要说明:“F:tomcat.keystore”含义是将证书文件保存在F盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天

l 在命令行填写必要的参数:

A、输入keystore密码:此处需要输入大于6个字符的字符串

B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址

C、 “你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

l 完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件

(2) Linux环境

条件:安装了JDK

步骤:

l 进入$JAVA_HOME/bin目录

l 执行命令

./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500

参数简要说明:“/etc/tomcat.keystore”含义是将证书文件保存在路径/usr/local/ac/web/下,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天

l 在命令行填写必要的参数:

截图如下:

截图部分说明:

A、Enter keystore password:此处需要输入大于6个字符的字符串

B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址

C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、Enter key password for <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

l 完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件

2、配置TOMCAT服务器

(1) 如果你是在Windows环境中生成证书文件,则需要将生成的证书tomcat.keystore拷贝到Tomcat将要引用的位置,假设tomcat的应用证书的路径是“/etc/tomcat.keystore”,则需要将证书文件拷贝到“etc/”下;如果是在Linux环境按照上述介绍的步骤生成证书文件的话,此时证书文件已经在“etc/”下。

(2) 配置Tomcat,打开$CATALINA_HOME/conf/server.xml,修改如下,

<Connector port=”8080″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”8443″ />

修改参数=>

<Connector port=”80″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”443″ />

 

<!–

<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”

maxThreads=”150″ scheme=”https” secure=”true”

clientAuth=”false” sslProtocol=”TLS”/>

–>

去掉注释且修改参数=>

<Connector port=”443″ protocol=”HTTP/1.1″ SSLEnabled=”true”

maxThreads=”150″ scheme=”https” secure=”true”

clientAuth=”false” sslProtocol=”TLS” keystoreFile=”/etc/tomcat.keystore” keystorePass=”www.gbcom.com.cn”/>

注释:标识为淡蓝色的两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置

<!–

<Connector port=”8009″ enableLookups=”false” protocol=”AJP/1.3″ redirectPort=”8443″ />

–>

修改参数=>

<Connector port=”8009″ enableLookups=”false” protocol=”AJP/1.3″ redirectPort=”443″ />

(3) 打开$CATALINA_HOME/conf/web.xml,在该文件末尾增加:

2.强制https访问

在tomcatconfweb.xml中的</welcome-file-list>后面加上这样一段:

Java代码

1. <login-config>

2. <!– Authorization setting for SSL –>

3. <auth-method>CLIENT-CERT</auth-method>

4. <realm-name>Client Cert Users-only Area</realm-name>

5. </login-config>

6. <security-constraint>

7. <!– Authorization setting for SSL –>

8. <web-resource-collection >

9. <web-resource-name >SSL</web-resource-name>

10. <url-pattern>/*</url-pattern>

11. </web-resource-collection>

12. <user-data-constraint>

13. <transport-guarantee>CONFIDENTIAL</transport-guarantee>

14. </user-data-constraint>

15. </security-constraint>

3、上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址不必输入“http://” 或者 “https://” ;也可以输入 “http:// ” 会跳转成为 “https://” 来登录

4、注意事项:

(1) 生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”

(2) 如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的

分类
安全播报

安全谈之四大值得关注的“网站安全问题”

从目前全世界范围内,Web 安全已经成为最为互联网信息安全整体中最重要的问题之一。

相关统计表明,全国范围内,平均每分钟就有将近50个网站遭受黑客攻击,网站管理员或各级企事业单位信息主管部门目前最棘手的就是网站的安全性问题。CNCERT 统计报表显示,针对政府行业内的这种趋势愈来愈明显。

而我国网站安全统一监控平台目前的网站整体安全性在全世界范围内与发达国家相比还存在较大差距。从近几年的权威统计报告来看,我国已经成为遭受攻击的重灾区,尤其是木马危害造成僵尸主机数量逐年上升,已经发展成世界最大规模的僵尸网络。在众多安全问题中,安全专家认为以下四个方面尤其应引起足够的重视:

1、网站上出现恶意的非法信息;

2、网站遭受大量挂马攻击(通过网站挂马传播木马占到木马传播总量的90%以上);

3、网站的漏洞百出,遭受恶意篡改;

4、缺少集中监控措施,网站安全水平参差不齐。

安全专家提醒网民在上网时,一定要注意分辨网站的安全性,以下几点是安全网站的标志:

1、网址开头为“https”;

2、网站地址栏为绿色地址栏

3、地址栏右侧有小金锁标志;

这些都是钓鱼网站无法仿冒的安全网站标志。

分类
安全播报

春节火车票预售提前 如何提防钓鱼网站

从明日日起,春运正式开始,各大航空公司也纷纷推出春运机票预订优惠活动,但节前也是各类网络诈骗的高发期。据相关数据显示,近期火车票、机票类钓鱼网站日均新增上百家,相比平时订票淡季多出五倍。

钓鱼网站通过套用网页模板的方式,伪装为“铁道部火车票官方售票处”或“航空公司、旅行社、机票代售点”等网站页面,并在醒目位置贴出400、800等预订电话,安全防范意识不足的用户很容易被骗。

此外,钓鱼网站还会利用春运火车票紧张、提前预订可享受折扣等信息,催促用户尽快向指定银行卡号付款。如果受骗用户付款后发现没有机票订单,骗子还会借400等电话以“账户冻结”、“卡单”为由对用户进行二次欺诈。

“凡是需要向个人银行卡号汇款买票的网站,无疑都是钓鱼网站。”安全专家建议网民购买火车票时选择12306.cn官方网站,对于网址可疑的票务销售网站,应该鉴定网站鉴定网站可信度、确认安全后再付款买票。

那如何鉴定网站的可信度呢?主要通过以下三方面:

1. 网站地址栏为绿色地址栏

2.网站地址栏开头为“https”;

3.网站地址栏右侧有小金锁标志。

可能很多朋友对以上三点标志都不是很了解,这些都是钓鱼网站无法仿冒的安全网站标志,是网站部署了服务器证书之后的安全标志。