⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1113.txt

📁 很多RFC的中文文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
4. 消息处理
4.1 消息处理总览
这个节提供了包括在电子邮件保密增强处理中一个组件和处理步骤的高级的总括和
处理步骤。下面的小节将更详细定义这些过程。
4.1.1 密钥类型
一个两级的密钥层次被用于支持保密增强消息的传送:
1.	数据加密密钥(DEKs)被用于消息文本加密和(在一组算法中可以进行
一定的选择)用于消息完整性检查的计算。DEK为每个被传送的消息个别
的产生;数据加密密钥的预分发不需要支持保密增强的消息的传送。
2.	交换密钥(Iks)被用于加密在消息中传送的数据加密密钥。一般地,同样
的IK将被用于所有的从一个给定的发送者到一个给定接收者的所有的消
息。每个被发送的消息包括一个被用于消息加密和/或MIC计算的数据加
密密钥的表示,这个密钥被每个命名接收者的个别交互密钥加密。与
“X-Sender-ID:”和“X-Recipient-ID:”域相关的表示,允许每个个别接
收者标识被用于加密接受者使用DEKs和/或MIC的IK。给一个适合的
IK,一个接收者能解密相应的被传送的DEK表述,产生用于消息文本解
密和/或MIC验证的DEK。一个IK定义的不同取决于用于DEK加密的
是对称或非对称密码系统。
2a.    当使用对称密码,一个IK是一个发送者和接收者共享单独的对称密钥。
在这种情况下,相同的IK被用于加密传送的DEK和MICs。版本/生命
期信息和与发送者和接收者有关的IA验证信息必须被串联为了充分的验
证一个对称IK。
2b.    当使用非对称密码,用于加密DEK的是接收者IK的公共组件。被用于加
密MIC的是发送者IK的私有组件。因此每个消息只需要包括一个被加密
的MIC,而不是每个接收者一个。这些IK中的每一个能被充分标识在
“X-Recipient-ID:”或“X-Sender-ID:”域。
4.1.2 处理过程
当保密增强处理操作在一个发出的消息上,一个DEK被产生由于消息加密和(如
果被选择的MIC算法需要一个密钥)各种DEK被产生用于MIC计算。当一个消息的所
有内容不需要加密时无需产生DEK,如果一个被选的MIC计算不需要一个密钥。
一个“X-Sender-ID:”域被包括在提供用于消息处理的IK的一个验证组件的头中。
IK组件被每个个别命名的接收者选择;一个相应的“X-Recipient-ID:” 域,在前面解释
的“X-Sender-ID:”域用于标识每个IK。每个“X-Recipient-ID:”域接着一个“X-Key-Info:”
域,传送一个被对应特定接收者IK加密的DEK。当一个特定的接收者使用对称密钥管理,
“X-Key-Info:”域也传送被接收者的IK加密消息的MIC。当使用非对称密钥管理,一个
优先的“X-MIC-Info:”域存储由发送者的私有组件加密的消息的MIC。
采用了四个阶段的处理过程用于以一种通用的传送形式表示被加密的消息文本和使
被加密在一个主机计算机类型的消息被解密在不同的计算机类型。以本地形式接收的明文
消息,使用主机本地的字符集和行表示。本地形式被转换为一个规范的消息文本表示,与
内部的SMTP的消息文本的表示形式相同。这个规范的表示形成了MIC计算和加密处理
的输入。
为了加密,规范的表示按照加密算法的要求填充。被填充的规范的表示被加密(除
了那些明确表示无需加密的域)。被加密的文本(以及无需加密的域的规范的表示)被编
码成一个可打印的形式。可打印的形式由一个严格的字符集组成,这个字符集是每个站点
通用的,不会被在MTS实体内和之间的处理破坏。
编码过程的输出结合了带有密码控制信息的头域集。被传送给电子邮件系统的结果
被封装为被传送文本部分。
当一个保密增强消息被处理,文本中的密码控制域提供给被鉴别的接收方需要的信
息。首先,可打印的编码被转换为一个位串。被传送的消息的加密的部分被解密。MIC
被鉴别。规范的形式被转换为接收者本地的形式,不需要和发送者的本地形式相同。
4.2  加密算法和模式
针对本文档的目的以ANSI X3.92-1981形式定义的块密码算法DEA-1将被用于消
息文本的加密。DEA-1与数据加密标准相同(DES),被定义在FIPS PUB 46[3]。当被用
于文本加密,DEA-1将被用于密码块链接模式(CBC),定义在ISO IS 8372[4]。标识字
符串为“DES-CBC”,被定义在RFC-1115,表示这个算法/模式组合。CBC模式被定义在
IS 8372与在FIPS PUB 81[5]和ANSI X3.106-1993[16]中的定义相同。其他算法的使用和/
或消息文本处理的模式将要求逐个的研究决定应用性和限制。此外在本文档中赞同使用的
算法和模式将在后续文档到RFC-1115中定义。
      为每个保密增强电子邮件消息产生新的伪随机初始向量是发送者的责任除非整个消
息不需要加密。参考资料[17]的4.3.1节提到这一要求,甚至在个别DEKs被产生用于个
别消息的情况下,IV也将随着消息被传送。
      一定的操作要求一个被传送的密钥被一个交互的密钥加密。头部内容指出了IK被用
于加密的模式。RFC1115规定了加密算法/模式的标识,包括DES-ECB,DES-EDE,和
RSA。所有使用对称密钥管理的实现应该支持DES-ECB IK的使用,所有使用非对称密钥
管理的实现应该支持RSA IK的使用。
   RFC-1114,当前和这个文档一起发放,规定了非对称的基于证书的密钥管理过程支
持定义在这个文档中的消息处理过程。消息处理过程也能和对称密钥管理一起使用,合适
的对称IKs通过带外通道预先发放。强烈推荐支持在RFC1114中定义的非对称方法。
4. 3 保密增强消息转换
4.3.1 约束
一个电子邮件加密机制必须与底层电子邮件功能的透明约束相兼容。这些约束一般被
建立在预期的用户要求和预期的端点和传输设备的特色,加密机制必须也与所交互的计算
机系统的本地规范相兼容。在我们的建议中,一个规范的步骤是抽象我们的本地规范和操
作一个后续的编码步骤以与底层邮件传输媒体(SMTP)特色相一致。编码与SMTP的约
束相一致,用于支持人与人之间的通讯。SMTP的规则也以规范的处理过程独立使用。
RFC-821's的4.5节详细说明了SMTP's的透明约束。
准备一个进行SMTP传送的消息必须满足以下的要求:
1.	所有的字符必须是7位ASCII码中的一员。
2.	文本行,通过字符对<CR><LF>划界,不能超过1000个字符长。
3.	因此字符串<CR><LF>,<CR><LF>指出了消息的结束,它必须在文本中先于
消息的结束出现。
      尽管SMTP规定了一个标准的行分界符的表述,大量的系统使用一个不同的本地的
行分界的表述。例如,在邮件中使用的行分界符<CR><LF>进入UNIX操作系统被转换为
单一的<LF>s作为邮件的分界符被写到本地的邮件箱文件中。邮件中的行引入到面向记录
的系统(例如VAX VMS)可以被目的SMTP服务器转换成合适的记录。因此如果加密处
理产生<CR>s 或 <LF>s,这些字符可能被一个使用不同行分界规则的接收用户代理进程
获取。也可能Tabs和空格的转换可以在SMTP内部和本地格式映射的过程中被处理;这
是一个本地选择的问题。如果这样的转换改变了被传送的密文的形式,解密将不能产生被
传送的明文,被传送的MIC将不能和在目的计算机上计算出来的MIC相比较。
      在采用EBCDIC作为本地字符集的系统中被SMTP服务器操作的转换甚至有更严重
的影响,因此从EBCDIC到ACSII的转换是一个信息损失的转换。在原则上,在SMTP
内部规范ASCII消息表示和本地格式之间的映射转换功能可以从SMTP服务器上移到用
户代理上,给定的管理SMTP服务器的手段不应该再进行那种转换。这个方法有很大的
缺陷:内部的文件(例如,邮件箱)格式和它所驻留的本地文件形式不兼容。此外,它将
要求修改SMTP服务器,邮件将以一种与现在被传递的不同的表述被传递给SMTP服务
器。
4.3.2 建议
      我们建议支持保密增强邮件通过一个中间转换可以发生的环境,编码邮件以一种统一
的表述风格通过保密增强用户代理不论他们的系统采用何种本地字符集。这种编码的形式
被用于表示从发送者到接受者的邮件文本,但是编码未被用于封装邮件传输头或去封装插
入到载有保密增强用户代理之间的控制信息的头中。编码的特色使在预期的发送者和接收
者用户代理之间的转换不会阻止一个被编码的消息在它的目的地被正常解密。
      一个发送者从加密处理可以排除一个消息一个或更多的部分,但是鉴别处理总是被应
用到这个消息文本。将一定比例的消息排除在加密处理之外是被明确要求的;默认的加密
被应用到整个消息文本。规定这一排除操作的用户级的分界符是本地的操作,因此可以在
发送者和接受者之间变动,但是所有的系统应该提供一个手段明确的标识被排除在加密处
理之外的域。
      外部的保密增强消息进行四步转换,在下面的四个小节描述。
4.3.2.1 步骤一:本地形式
      消息文本被以本地的系统的字符集创建,行的分界与本地规则相一致。
4.3.2.2 步骤二:规范形式
      整个文本消息,包括需要加密处理的部分和不需要加密处理的部分,被转换为一个通
用的规范形式,与在RFC-821和RFC-822[10]中定义的SMTP之间的表述类似(ASCII码
字符集,<CR><LF>行分界符)。这个处理要求在本地字符集是ASCII码时进行的转换最
小。(注意:规范编码处理的输出将永远不会被直接传给SMTP,而是传给保密增强编码
处理的后续步骤,圆点填充的转换在RFC-821中讨论,因此一个消息在加密前被转换成
一个标准的字符集和表述,它能被解密并且它的MIC能在任何类型的目的主机计算机上
被验证。解密和MIC验证在转换(将消息转换到一个规定的本地形式)前进行。
4.3.2.3 步骤三:鉴别和加密
规范形式被输入到被选择的MIC计算算法中为了计算消息的一组完整性检查值。在
提交给MIC计算算法之前没有值被填充到规范形式,尽管一定的MIC算法将在计算MIC
的过程中将进行他们自己的填充。
应用到规范形式的填充在DEA-1 CBC模式的加密中是需要的,如下:加密字节数由
从总长中减去无须加密的字节的长度来决定。在加密的文本需要时16进制的字符FF与
被填充的字符一起被附加到规范形式中,用8字节加密量的整数值来添满。如果所加密的
字符数已经是8的整数倍则无须填充。16进制FF(一个值超出7位ASCII字符集)填充
值允许在没有包括一个明确的填充个数的指示时与有效的数据相区别。
没有被排除在加密之外的消息域被加密。为了支持可选的加密处理,一个实现必须保
留加密区域和非加密域的内部的标识,以便这些域在步骤四定义的编码过程中能被适当的
分界。如果无须加密的域插入到加密域之间,密码状态(例如,IVs和进行加密的字符)
被保留在这个被排除的域之后继续。
4.3.2.4 步骤四:可打印的编码
      继续从左到右,步骤三的位串被编码成在所有的站点都通用的字符表示,尽管不必是
同样的位模式(例如,尽管字符“E”在基于ASCII码字符的系统中被表示为16进制的
45在基于EBCDIC的系统中被表示为16进制的C5,两种表述的本地意义是相同的)。这
个编码步骤在所有的保密增强消息中进行,即使整个消息不需要加密。
      一个国际的字符IA5的一个被使用64字符集,每个可打印的字符由6位表示。(建
议的字符集在IA5和ASCII中的表示是相同的。)两个额外的字符,“=”和“*”被用于
表示特殊的处理功能。字符“=”被用于在可打印的编码过程中填充。字符“*”被用于
分界无须加密域的开始和结束。编码功能的输出被划分为文本行(使用本地规范),除了
最后一行每一行确切地包含64个可打印的字符,最后一行包含64或少于64的可打印字
符。(这一行长度是易被打印的并保证满足SMTP的每行最多1000个字符的限制。)
      编码过程将输入的每组24位表示为输出的4个字符。从左到右的一个24位输入组从
步骤三的输出中获得,每6位组被用作一个64位可打印的字符的索引。被索引指定的字
符被放置在输出串中。这些字符,被标识在表0中,被选择作为通用的表示,对SMTP
有特殊意义的字符被排除(例如,“.”,“<CR>”,“<LF>”)。
      如果输入的一组少于24位进行特殊的处理,要么在一个消息尾(当可选的加密功能
被调用)要么在一个被加密的域或未加密的域的末端。全部的编码总是在消息末和分界符
“*”被输出初始或终止一个无需加密的块之前被完成。当输入的一个组消息少于24位,
位0被填充使消息是6的整数倍。不需要表示实际输入数据的输出字符位被置为字符“=”。
因此所有的通用编码的输出是一个8位字节的整数,只有下面的情况能出现:(1)编码输
入的最后的量是24位的整数倍;这,编码输出的最后的单元是不含“=”填充的4的整
数倍,(2)编码输入的最后量确定为8位;这,编码输出的最后的单元将两个字符并跟有
两个“=”的填充字符,或(3)编码输入的最后的量确定为16位;这,编码输出的最后
的单元将是三个字符并跟有一个“=”填充字符。
4.3.2.5 转换概述
总的说,发送的消息服从下面的转换式:
       Transmit_Form = Encode(Encipher(Canonicalize(Local_Form)))
相反的操作以相反的顺序转换处理接收的保密增强邮件:
       Local_Form = Decanonicalize(Decipher(Decode(Transmit_Form)))
Value Encoding  Value Encoding  Value Encoding  Value Encoding
       0 A            17 R            34 i            51 z
       1 B            18 S            35 j            52 0
       2 C            19 T            36 k            53 1
       3 D            20 U            37 l            54 2
       4 E            21 V            38 m            55 3
       5 F            22 W            39 n            56 4
       6 G            23 X            40 o            57 5
       7 H            24 Y            41 p            58 6
       8 I            25 Z            42 q            59 7
       9 J            26 a            43 r            60 8
      10 K            27 b            44 s            61 9
      11 L            28 c            45 t            62 +
      12 M            29 d            46 u            63 /

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -