2019年(12)
分类: 网络与安全
2019-03-10 18:22:07
关键词:邮件 编码字段 透明加密
做邮件加密时,学习邮件客户端解析,遇到关于'encoded-word ’的解析。在此推荐一款邮件透明加密产品,天御云安推出的隐秘邮在确保邮件内容加密的同时,部署对于用户也是透明的,既满足加密需求也不影响用户使用习惯。
邮件阅读器必须根据消息和正文部分标题解析遵循RFC 822中的规则来正确识别'encoded-word '。
1、'encoded-word ’应被识别如下:
(1)任何被定义为'* text'的邮件头或正文部分标题字段,或任何用户定义的标题头字段,应该按如下方式解析:从正文部分的第一个字节开始并沿着每一个出现的’linear-white-space(折行符)’ ,每个序列最多应检查75个可打印的字符(不包含任何’linear-white-space(折行符)’),看看它是否是一个'encoded-word'根据第2节中的语法规则。可打印的任何其他序列字符应视为普通的ASCII文本。
(2)任何未定义为'* text'的标题字段都应该根据该标题字段的语法规则被解析。然而,出现在“phrase (短语)”中的任何“单词”都应该被视为一个'encoded-word',如果它符合第2节中的语法规则的话。否则,它应该被视为一个普通的“单词”。
(3)在'评论'中,任何最多可打印75个字符的序列(不包含'linear-white-space'),符合语法第2节中的规则应被视为'encoded-word'。否则,它应该被视为正常的注释文本。
(4)不需要MIME-Version头字段'encoded-word'是根据这个来解释的规范。其中一个原因是邮件阅读器是不希望在显示多行信息之前解析整个可能包含多个'encoded-word'的邮件头。
2、显示'encoded-word':
任何被公认的'encoded-word'都能被解码,如果可能的话,在原始字符集中将显示未编码文本的值。
注:'encoded-word'的解码和显示在结构化字段正文被解析为tokens(令牌)之后。因此可能在'encoded-word'中隐藏'特殊'字符,当被显示时,将无法区分周围文字中的‘特殊'字符。由于这个和其他原因,如果一个包含多个'encoded-word'的邮件头可以由RFC 822邮件阅读器解析,它通常不可能将其解析成为未编码的形式,
当显示一个包含多个'encoded-word’的特定标题字段时,所有分隔相邻的'encoded-word’的'linear-white-space (折行符)'都会被忽略。(这是为了允许使用多个“encoded-word”来表示长串未编码文本,当未编码的文本中存在空格时不必分隔所有的'encoded-word’。)
如果将来还定义了其他编码,以及邮件阅读器不支持已经被使用的编码,它可以(a)把'encoded-word’作为普通文本显示,或(b)用适当的表示文本替换无法解码的文本。
如果邮件阅读器不支持已被使用的字符集,则可能(a)将“encoded-word”显示为普通文本(即,就像它出现的那样在标题中),(b)尽可能的显示可用的字符,或(c)替换适当的消息表明解码文本无法显示。
如果正在使用的字符集采用代码切换技术,编码文本的显示隐式地以“ASCII模式”开始。在此外,邮件阅读器必须确保输出设备是一次在显示'encoded-word'后再次以“ASCII模式”显示。
3、邮件阅读器处理不正确的“encoded-word”:
根据在第2节中定义的语法一个'encoded-word'可能是符合规则的,根据正在使用的编码规则。例如:
(1)包含不合法字符的'encoded-word'对于特定的编码是不正确的形式(例如,“B”编码中的“ - ”或“B”或“Q”编码中的SPACE或HTAB)
(2)任何的'encoded-word'如果不按照整数或者8位字节来编码字符都是不 符合规范的。邮件阅读器不会尝试显示格式不正确的'encoded-word'相关联的文本。但是,邮件阅读器不得因为'encoded-word'格式错误而阻止显示或处理一封邮件。