760 likes | 915 Views
网络安全与电子商务. 计算机网络教研室 王 宏 2006 年 03 月 18 日. 第 2 章 ( 二 ) 电子邮件安全. 本章包括以下 6 节: 2.1 Internet 的安全 2.2 网络通信安全 2.3 WEB 安全 2.4 WEB 服务器安全 2.5 WEB 浏览器安全 2.6 E-MAIL 与 OUTLOOK EXPRESS 安全 2.7 FTP 安全. 目的和要求: 1. 了解 INTERNET 上的安全隐患 。 2. 了解 网络通信安全及相关协议 。 3. 了解 WEB 安全和邮件安全的漏洞和原理。
E N D
网络安全与电子商务 计算机网络教研室 王 宏 2006年03月18日
第2章 (二) 电子邮件安全 本章包括以下6节: 2.1 Internet 的安全 2.2 网络通信安全 2.3 WEB安全 2.4 WEB 服务器安全 2.5 WEB 浏览器安全 2.6 E-MAIL与OUTLOOK EXPRESS安全 2.7 FTP安全
目的和要求: • 1. 了解INTERNET上的安全隐患。 • 2. 了解网络通信安全及相关协议。 • 3. 了解WEB安全和邮件安全的漏洞和原理。 • 4. 能熟练配置WEB安全和邮件安全 • 难点: • 了解WEB安全和邮件安全的漏洞和原理 • 要点: • WEB服务器和客户端安全措施以及邮件安全措施
2.6 邮件服务器的安全 常用的邮件服务器: • 1. Windows NT 4.0 Server+Exchange 5.5 Server Windows 2000 Server+Exchange 2000 Serve Windows Server 2003邮件服务器 • 2 . MDaemon • 3. CMailServer邮件服务器 • 4. Foxmail Server邮件服务器 • 5. Sendmail邮件服务器 • 6. Postfix邮件服务器 • 7. imail • 8. lotus notes • 9. Winmail Server
(一)传统电子邮件 系统组成与工作模式: 终端用户 发送方 用户代理 UA 要发送的 邮件队列 报文传诵 客户 代理MTA TCP连接 终端用户 接收方 用户代理 UA 用户邮箱 报文传送 服务器 代理MTA
(一)传统电子邮件 相关协议: • SMTP: • POP3 • IMAP4 • RFC 822 • MIME • HTTP • HTML
(一)传统电子邮件 SMTP: 默认端口 TCP 25. 是最早出现和使用最普遍的最基本的INTERNET邮件服务协议,它规定了客户与服务器MTA之间双向通信的规则和信封信息的传递. SMTP的两种工作情况: 邮件从客户机传输到服务器; 邮件从某个服务器传输到另一个服务器. 起初SMTP不需要额外的身份验证,导致垃圾邮件增多,现在也可以设置需要身份验证.
MAIL FROM :<USER1@126.COM> RCPT TO : <USER2@126.COM> 由用户代理使用的首部字段 名称:字段值 RFC 822指明了首部字段的解释.其中X-开始的为用户自定义,如果字段较长,被拆在几行,均以空格开头 用户想要传输的报文和数据 信封 信头 信体 (一)传统电子邮件 • SMTP协议格式:
(一)传统电子邮件 SMTP命令:每个简单命令后接参数 • HELLO • MAIL FROM • RCPT TO • DATA • QUIT 服务器对客户的应答:,由3 个数字组成,后接字符串,如: 220 WELCOME TO COREMAIL SYSTEM 221 CLOSING CONNETION GOOD BYE
(一)传统电子邮件 • POP3 : TCP端口号 110,是目前最常使用的电子邮件服务协议之一.它是一种允许用户从邮件服务器接收邮件的协议,具有简单邮件存储转发的功能,属于离线式工作协议,与SMTP相结合可以完成收发邮件的工作.
(一)传统电子邮件 POP3的状态: • 鉴别(AUTHORIZATION): 客户对服务器标识自己.如果服务器鉴别成功,服务器就打开客户的邮箱,会话进入处理阶段. • 处理(TRANSACTION): 客户请求服务器提供信息(如邮件列表)或完成动作 • 更新(UPDATE):更新服务器上的客户信息,中断会话连接
(一)传统电子邮件 POP3命令: • USER name -----给出用户信箱名 • PASS password -----给出用户信箱口令 • STAT -----------------请求服务器返回消息数和大小 • RETR msgnum -----请求服务器发送指定的报文 • DELE msgnum -----请求服务器删除指定的报文 • QUIT ---------------结束会话 POP3的回答有单行和多行,成功+OK;失败 –ERR。多行应答,附加信息行,终止是一行中包含一个点字符后跟 CR和LF。
(一)传统电子邮件 • IMAP4(INTERNET MESSAGE ACCESS PROTOCOL ,VERSION 4): 提供了访问和操作服务器上的邮件信息的方法,它允许用户象操作本地邮箱一样访问服务器上的远程文件夹,同时也允许用户下载邮件以提供离线浏览. • IMAP4提供了:建立\删除和重命名邮箱,检查新邮件消息,永久删除邮件消息,设置清楚标志,RFC 822和MIME格式解析,搜索以及有选择接收邮件的功能等.
(一)传统电子邮件 IMAP4与POP3相比: • POP3提供了快捷的邮件下载服务,用户可以利用POP3把邮箱里的信下载到PC上进行离线阅读。一旦邮件进入PC的本地硬盘,就可以选择把邮件从服务器上删除,然后脱离与Internet的链接并可在任何时候阅读已经下载的邮件。 • IMAP同样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP能完成的却远远不止这些。首先,IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才做出是否下载的决定。如果根据摘要信息就可以决定某些邮件对你毫无用处,你可以直接在服务器上把这些邮件删除掉。如果你的IMAP客户端软件完整支持IMAP4rev1(如Netscape 4.5),那么你还可以享受选择性下载附件的服务。假如一封邮件里含有5个附件,而其中只有两个附件是你需要的,你就可以只下载那两个附件,节省了下载其余3个的时间。 其实IMAP与POP3不同的地方关键是在支持离线阅读的同时也鼓励用户把邮件存储和组织在服务器上
(一)传统电子邮件 IMAP4与WEBMAIL相比: • 也有很多用户喜欢通过Web来联机收发邮件,其中一个很重要的原因是这些用户希望把他的邮件都留在服务器上,并且通过WebMail服务建立多个文件夹,然后分类归档地管理自己的邮件。这样,WebMail的用户就可以不分时间地点,只要有一个浏览器就可以马上从服务器上获得自己的邮件。 IMAP同样满足了WebMail用户的需要。 • 和WebMail一样,通过IMAP,允许用户在服务器上建立任意层次结构的文件夹,并且可以灵活地在文件夹之间移动邮件。只要你的邮件存储在服务器上,任何时候通过一个IMAP的客户端软件都可以立即联机获得你的邮件。 • 但是,IMAP的以下优点足以把WebMail用户吸引过来:凡是WebMail的用户都必须无奈地阅读页面上的广告,都必须花费宝贵的时间和带宽来下载页面上的图片,修饰字符等;IMAP则忠实地只为你的E-mail服务。
支持IMAP的客户端软件: OE和Netscape Messenger • 这两个软件各有特点,Netscape功能多,但OE显得更简单和快捷,而且有中文版本。很遗憾,国内用户喜爱的FoxMail目前还不支持IMAP。其他的E-mail客户端软件,目前版本对IMAP4的支持都不完整,不推荐使用
(一)传统电子邮件 RFC 822 • RFC 822定义了用于电子邮件报文的格式。即RFC 822定义了SMTP、POP3、IMAP以及其它电子邮件传输协议所提交、传输的内容。RFC 822定义的邮件由两部分组成:信封和邮件内容,即报头和正文字段. 正文由多行ASCII文本组成,包括标题和正文; 报头包括传输、投递邮件有关的信息,必须出现在正文之前,通常由一些关键字组成,如RECEIVED,DATE等.
RFC报头: • 信头字段 目的 • From 邮件作者 • Sender 发信人 • Reply-To 回邮地址 • To 收信人地址 • CC 另一个收信人地址 • BCC 收信人地址,但这个收信人看不到其它收信人的地址。 Subject 主题 • Comments 备注 • Keywords 关键字,用来进一步搜索邮件 • In-Reply-To 被当前邮件回复的邮件的ID • References 几乎同In-Reply-To一样 • Encrypted 加密邮件的加密类型 • Date 发信日期 • Message-ID: 消息ID
RFC 822的缺点: • 只对文本消息的格式作了规范,而对非文本的多媒体消息,如声音图象等消息并没有涉及;而且即使对于文本,也只能支持US-ASCII字符集,不能支持多种语言字符集,着使得用户发送非文本的消息时需要对消息采取某种转换.对于使用RFC 822的网关来说,非文本消息难以处理.
(一)传统电子邮件 • MIME: • 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049。
MIME 消息报头字段: MIME-Version :说明消息符合MIME规范的版本 Content-Type: 定义消息正文中的各种每体类型及自类型,并详细描述了正文所包含的数据. Content-Transfer-Encoding:定义报头和正文中使用的编码转换方式. Content-ID:用来在多个上下文环境中唯一表示MIME实体,与RFC中的MESSAGE-ID相同. Content-Description:用来对给出的正文对象进行描述,当正文是非文本消息时,能指明该消息的作用.
符合RFC 822所定义的报头字段的语法规则,它们都可以正常出现在RFC 822中,并且除了Content-Description,它们都可以包括RFC 822的注释.在实现的时候,前3个字段是必须的,后两个字段则是可选的.
Content-Transfer-Encoding共有Base64, Quoted-printable, 7bit, 8bit, Binary等几种。其中7bit是缺省的编码方式。电子邮件源码最初设计为全部是可打印的ASCII码的形式。非ASCII码的文本或数据要编码成要求的格式,如上面的三个例子。Base64, Quoted-Printable是在非英语国家使用最广使的编码方式。Binary方式只具有象征意义,而没有任何实用价值。 Base64将输入的字符串或一段数据编码成只含有{‘A’-‘Z’, ‘a’-‘z’, ‘0’-‘9’, ‘+’, ‘/’}这64个字符 ,’=‘用于填充
MIME 示例: MIME-Version:1.0 From: wh qianweiwh@126.com To: d-xy d-xy@163.com Date:Fri,07 Oct 2005 16:15:05 -700 (GMT) Subject: 关于论文 Content-Type :multipart/mixed; boundary=foo text1:dfdfdfdfdfdf -- foo
text2 :dfdfdfkdl;fsdffdf --foo Content-Type:text/plain;charset=US-ASCII jkfjdofjdoasijfdoasf --foo Content-Type:multipart/parallel;boundary=foo1 --foo1 Content-Type:audio/basic Content-Transfer-Encoding;base64 …audio data…. --foo1
Content-Type:image/jpeg Content-Transfer-Encoding;base64 …image data…. --foo1 --foo Content-Type:message/rfc822 From: To: …. --foo
(二)安全电子邮件 • 这份邮件是谁发给我的?这份邮件没有被别人偷看篡改吧? • 电子邮件系统是一个开放的系统,假地址、垃圾邮件、以及内容的不保密令人烦恼不堪,服务器也不堪重负 • 电子邮件采用MIME格式编码,安全电子邮件采用SMIME • 只要有PKI系统所提供的数字证书就可以解决以上烦恼 • 核心技术就是用公私密钥对完成邮件内容的签名和加密 • 数字签名技术确定发信人的身份 • 杜绝邮件内容被篡改 • 数据加密技术保证邮件内容不会被泄漏 • 安全电子邮件是典型的PKI应用
(二)安全电子邮件 相关协议 PEM PGP MIME S/MIME MOSS
PGP在电子邮件中的应用: 加密邮件 签名邮件 加密和签名 提供 base64 bia编码转换
PGP在电子邮件中的应用 PGP加密数据: 先对要加密的数据以MIME标准来规范化,PGP加密数据以multipart/encrypted类型来表示,该类型有一个protocol参数,其值为”application/pgp-encrypted”. multipart/encrypted必须严格包括两个部分: application/pgp-encrypted:其中必须包含”version:1”等必要的控制信息,由于PGP本身已经包含了用于解密的控制信息,就不再需要其他的信息了. application/octet-stream:必须包含实际加密的数据.
PGP在电子邮件中的应用 PGP加密数据举例: From: wh qianweiwh@126.com To: d-xy d-xy@163.com MIME-Version:1.0 Content-Type : multipart/encrypted; boundary=foo; protocol=“application/pgp-encrypted” --foo Content-Type : application/pgp-encrypted Version:1 -- foo
PGP在电子邮件中的应用 Content-Type : application/octet-stream ---BEGIN PGP MESSAGE --- 已经过BASE64编码 Version:2.6.2 fdfjosdafjdfdjkfpdkffdfjdlfjdlfjdlfjdlfjdlfjasldjfas Ffdsfdsfasdfsdakjfhhaofjdiofjsouojdifjeojfiosjj djfosdjfiojsioejiofjdosifjiwoeuiojfeijwfoedfasdf --END PGP MESSAGE – --foo
PGP在电子邮件中的应用 PGP签名: 数据签名以multipart/signed类型来表示,该类型有protocol和micalg两个参数,其中 protocol的值为application/pgp-signature; micalg的值为pgp-<hash-symbo>的形式,表示PGP采用的摘要算法. multipart/signed必须严格包括两个部分: 第一部分:包含符合MIME规范格式的被签名的数据,包括一些描述数据特性的适当的类型字段. application/pgp-signature:必须包含实际加密的数据.
PGP在电子邮件中的应用 PGP签名:举例: From: wh qianweiwh@126.com To: d-xy d-xy@163.com MIME-Version:1.0 Content-Type : multipart/signed; boundary=foo; protocol=“application/pgp-signature; micalg=pgp-md5” &djifsdojfoasdjfioafdfdkf;dkf ---用于签名的数据,一般为采用计算 & fjdofjdofjdofjdf dfdf ----得到的HASH码
PGP在电子邮件中的应用 -- foo Content-Type :application/signature ---BEGIN PGP MESSAGE --- 已经过BASE64编码 Version:2.6.2 fdfjosdafjdfdjkfpdkffdfjdlfjdlfjdlfjdlfjdlfjasldjfas Ffdsfdsfasdfsdakjfhhaofjdiofjsouojdifjeojfiosjj djfosdjfiojsioejiofjdosifjiwoeuiojfeijwfoedfasdf --END PGP MESSAGE – --foo
PGP在电子邮件中的应用 PGP加密和签名: 举例: From: wh qianweiwh@126.com To: d-xy d-xy@163.com MIME-Version:1.0 Content-Type : multipart/encrypted; boundary=foo; protocol=“application/pgp-encrypted” --foo Content-Type : application/pgp-encrypted Version:1
-- foo Content-Type : application/octet-stream ---BEGIN PGP MESSAGE --- 已经过BASE64编码 & Content-Type : multipart/signed; boundary=foo; & protocol=“application/pgp-signature; & micalg=pgp-md5” &djifsdojfoasdjfioafdfdkf;dkf ---用于签名的数据,一般为采用计算 & fjdofjdofjdofjdf dfdf ----得到的HASH码 & fdfjosdafjdfdjkfpdkffdfjdlfjdlfjdlfjdlfjdlfjasldjfas & Ffdsfdsfasdfsdakjfhhaofjdiofjsouojdifjeojfiosjj & djfosdjfiojsioejiofjdosifjiwoeuiojfeijwfoedfasdf &--END PGP MESSAGE – --END PGP MESSAGE – --foo
S/MIME在电子邮件中的应用 S/MIME加密数据步骤: 1.根据MIME规范准备要加密的MIME实体 2.用MIME实体和其他必须信息产生类型envelopedData的CMS对象,另外,为每个接收方产生加密的会话密钥副本,并一起放入该.CMS对象中. 3. 将此CMS对象封装在类型为application/pkcs7-mime的MIME实体中,该类型中的smime-type参数的值为enveloped-data,消息文件的扩展名为”.7p7m”.
S/MIME在电子邮件中的应用 S/MIME加密数据举例: From: wh qianweiwh@126.com To: d-xy d-xy@163.com MIME-Version:1.0 Content-Type : application/pkcs7-mime;smime- type=enveloped-data;name=smime.p7m Content-Transfer-Encoding : base64 Deisposition:attachment;filename=smime.p7m fdfdfdsfsffffffffdszadasgafgasdfgafgfdg ---CMS对象 Sdfasdfasdfadsfasddfasdfasfadsfasdfasdf fsdgfsdgsdfgsdfgsdfgsdfgsdfggdf
S/MIME在电子邮件中的应用 S/MIME签名 S/MIME签名有两种格式: application/pkcs7-mime的signedData 如果接收方不支持S/MIME,那么就不能查看原始消息. multipart/signed 不论接收方是否支持S/MIME,都可以查看原始消息
S/MIME 采用signedData签名 1.根据MIME规范准备要加密的MIME实体 2.用MIME实体和其他必须信息产生类型signedData的CMS对象,. 3. 将此CMS对象封装在类型为application/pkcs7-mime的MIME实体中,该类型中的smime-type参数的值为signed-Data,消息文件的扩展名为”.p7m”.