2003-09-22T08:49:59 "Ilya Teterin" : > Consider we decoding data which contains padding character ('=') > at the unexpected place. What we should do with such data? The > specification of base64 decoding does not tell us what we MUST or > even MAY do with such data... So, we can do anything we like to do: > > 1. threat padding character as end of the encoded data > 2. ignore padding character > 3. decode padding character as well as some other character from base64 > alphabet > 4. do something else ;-) > > I have tested some popular implementations (such as email clients, > GNU utilities, RTL and other development's libraries). All items > (1)-(4) are actually present. Good research! Another class of variation, producing different handling by different programs, is weirdly wrapped base64 encoding. There are many, many ambiguities in email processing. MIME is positively filthy with them. What happens with various technically invalid headers varies from processor to processor, charsets are weird, some email clients do truly bizarre things with filenames in MIME headers, etc. A robust email malware scanning system positively has to canonicalize all this before scanning, to a common and straightforwad set of usage patterns that are handled the same by all clients, and by the scanner itself. Some shops do this already; I don't know of a robust open source component for this yet. But that may just reflect my ignorance. Probably does:-). -Bennett
Attachment:
pgpHEtkNz8HC7.pgp
Description: PGP signature