SSL和数字证书的概念及Web应用.docx

上传人:b****3 文档编号:2947693 上传时间:2022-11-16 格式:DOCX 页数:36 大小:221.87KB
下载 相关 举报
SSL和数字证书的概念及Web应用.docx_第1页
第1页 / 共36页
SSL和数字证书的概念及Web应用.docx_第2页
第2页 / 共36页
SSL和数字证书的概念及Web应用.docx_第3页
第3页 / 共36页
SSL和数字证书的概念及Web应用.docx_第4页
第4页 / 共36页
SSL和数字证书的概念及Web应用.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

SSL和数字证书的概念及Web应用.docx

《SSL和数字证书的概念及Web应用.docx》由会员分享,可在线阅读,更多相关《SSL和数字证书的概念及Web应用.docx(36页珍藏版)》请在冰豆网上搜索。

SSL和数字证书的概念及Web应用.docx

SSL和数字证书的概念及Web应用

SSL和数字证书的概念及Web应用

陕西省数字证书认证中心

SSL和数字证书的概念及Web应用

安全对于WEB的应用非常重要。

无论是应用于金融、商业还是个人信息的交流,人们都希望能够知道他们是在和谁交流,这就是所谓的验证,人们也希望别人所收到的就是他们所寄出的,这就是所谓的完整性,另外他们还希望这样的信息即使被别人截获,也无法被破译,这就是所谓的机密。

SecureSocketsLayer协议(即SSL)就提供了满足这些要求的一个解决方案。

在这个附录中,我们将重点讨论SSL的概念、数字证书的内容以及通过SSL实现SSL的方案,而至于涉及到SSL实现的加密技术、邮件文摘等概念,在前面的正文中已经介绍过了,在这里就不多说了。

一、简介

因为在这里主要介绍SSL技术在Web的应用,我们假设读者都是熟悉Web,HTTP以及Web服务器技术的人员。

而我们在后面的介绍中主要应用的是Apache服务器系统的SSL实现。

SSL技术涉及到加密技术、邮件文摘和数字签名的技术,这三个技术分别可以用于实现机密性、完整性以及认证的功能。

1.数字证书

我们在前面讲过,数字证书是用于在INTERNET上标识个人或者机构身份的一种技术手段,它通过由一些公认的权威机构所认证,从而可以保证其安全地被应用在各种场合。

一份数字证书包括了公钥、个人、服务器或者其它机构的身份信息(称之为主题,如下格式所示):

Subject:

DistinguishedName,PublicKey

Issuer:

DistinguishedName,Signature

PeriodofValidity:

NotBeforeDate,NotAfterDate

AdministrativeInformation:

Version,SerialNumber

ExtendedInformation:

BasicContraints,NetscapeFlags,etc.

主题的内容包括标识信息(唯一名称)、公匙,当然也包括签发该证书的证书认证机构以及证书有效时间,同时也包括另外一些信息,如序列号等。

唯一名称用特定的格式标识一个身份,此特定的格式由X.509(ftp:

//OSIdirectory/ITUnov96/X.509/97x509final.doc)标准所确定,它由几个字段组成,其格式如下所示:

 

字段名:

CommonName

缩写:

CN

内容:

需要认证的名称

示例:

CN=JoeAverage

 

字段名:

OrganizationorCompany

缩写:

O

内容:

该名称所属的机构

示例:

O=SnakeOil,Ltd.

 

字段名:

OrganizationalUnit

缩写:

OU

内容:

机构的单元

示例:

OU=ResearchInstitute

 

字段名:

City/Locality

缩写:

L

内容:

所居住的城市

示例:

L=SnakeCity

 

字段名:

State/Province

缩写:

ST

内容:

省份或者州

示例:

ST=Desert

 

字段名:

Country

缩写:

C

内容:

国家名(ISO号)

示例:

C=XZ

 证书权威机构可以定义这些字段中哪些是必需的,哪些是可选的。

证书的二进制格式使用ASN.1(X.208标准:

ftp:

//EncodingRules(BER)基础上的DistinguishedEncoding(DER),对于某些不能传送二进制编码的系统,则使用base64编码,其版本为PEM编码。

一个用PEM编码方式的证书如下:

-----BEGINCERTIFICATE-----

MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx

FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG

A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv

cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz

bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL

MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h

a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl

cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN

AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB

gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b

vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa

lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV

HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB

gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt

2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7

dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==

-----ENDCERTIFICATE-----

数字认证机构用于确认一个密钥对的私钥的拥有者。

数字认证机构也可以为另外一个数字认证机构颁发证书,这就形成了证书链。

当然,或许这个时候你会问,是否可以不需要别人认证而建立自己的证书认证机构呢?

可以,这就是建立一个拥有“根”级别的证书认证机构。

当然,我们在这里首先假设你所拥有的机构具有现实社会的权威性,否则别人是不会相信你的。

这样的数字签证就是“自签”,证书的主题内容和签发者一致。

2.SSL简介

SSL是一个可以在连接性的协议(例如TCP/IP)以及应用层协议(如HTTP)之间的协议。

SSL可以通过双方进行认证、数字签名的使用以及加密来保障安全通信。

SSL有以下几个版本:

SSLv2.0VendorStandard(NetscapeCorp.)

(Navigator1.x/2.x,MSIE3.x和Lynx/2.8+OpenSSL。

SSLv3.0ExpiredInternetDraft(NetscapeCorp.)

改进版本,防止了一些安全漏洞,加上了一些非RSA的加密手段,并支持证书链,支持NSNavigator2.x/3.x/4.x,MSIE3.x/4.x和Lynx/2.8+OpenSSL。

TLSv1.0ProposedInternetStandard(IETF)

(ftp:

//ftp.ietf.org/internet-drafts/draft-ietf-tls-protocol-06.txt)SSL3.0的改进版本,将MAC协议升级为HMAC,支持Lynx/2.8+OpenSSL

SSL连接可以通过在客户端和服务器端之间交流一些步骤建立起来,如图F1-1所示。

 

图F1-1建立SSL连接的步骤

 

在建立SSL连接的时候主要需要以下几个步骤:

(1)确认在数据传输过程中的加密手段。

(2)建立并共享在客户端和服务器端的密匙。

(3)验证服务器(可选)。

(4)验证客户端(可选)。

其中第一步加密手段确认,允许客户端和服务器端选择一种双方都支持的加密包,SSL3.0协议定义了31种加密包。

一个加密包由以下几个部分组成:

(1)密匙交换方法,如RSA密匙交换,Diffie-Hellman密匙交换等。

(2)数据传送的加密手段,如流加密,RC4with40-bitkeys,RC4with128-bitkeys,CBCBlockCiphers,RC2with40bitkeys,DES40,DES,3DES_EDE,Idea和Fortezza等。

(3)建立邮件认证码(MessageAuthenticationCode,MAC)的邮件文摘,可以使用MD5(128位哈希),SecureHashAlgorithm(SHA)等。

其中具体的方法可以参考有关的协议。

SSL协议的具体架构如图F1-2所示。

SSLRecordProtocol用于控制在客户端和服务器端之间的数据传送。

具体的传送如图F1-3所示。

当我们了解了SSL概念之后,我们就可以在HTTP通信中,即在浏览器和服务器之间建立SSL连接,在这个时候,我们使用https而不是http,并且使用一个另外的端口(默认为443),浏览器将维护客户端的私匙,并且在连接建立的时候显示其标识。

 

图2SSL协议堆栈

 

图F1-3数据控制

二、应用SSL

在网络的实际应用中使用SSL的手段很多,我们甚至可以根据一些现有的库编写自己的SSL一贯用程序,但是在实际应用中我们通常使用现有的商业软件或者是一些自由软件。

在这里,有RSA公匙软件包可用。

(1)RSARef(RSAReference)(

(2)BSAFE3.0(

而我们所要介绍的SSLeay就是SSL应用的一个优秀的自由软件包,它提供了一种廉价的应用SSL的手段。

1.安装SSLeay软件包

SSLeay由EricYoung(eay@)和TimHudson(tjh@)开发,在INTERNET上可以获得的最新版本:

ftp:

//ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-x.x.x.tar.gz,在http:

//www.psy.uq.oz.au/~ftp/Crypto可以获取相关的文档。

当下载了文档之后,首先当然是解开该软件包,形成一个安装目录。

安装的步骤如下:

(1)如果运行在WindowsNT系统之下,运行shutil/fixNT.sh。

(2)如果你的系统有Perl,但是不在/usr/local/bin,你可以运行

perlutil/perlpath.pl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1