Pure Python Data Mangling or Encrypting

Randall Smith randall at tnr.cc
Mon Jun 29 16:46:36 EDT 2015


On 06/28/2015 09:21 AM, Jon Ribbens wrote:
> On 2015-06-27, Randall Smith <randall at tnr.cc> wrote:
>> Thankyou.  Nice points. I do think given the risks (there are always
>> risks) discussed, a successful attack of this nature is not very likely.
>>    Worse case, something that looks like this would land on the disk.
>>
>> crc32 checksum + translation table + malware
>>
>> with a generated base64 name and no extension.
>
> I'm not sure why you're bothering with the checksum, it doesn't seem
> to me that it buys you anything. Personally I'd do something like
> this (pseudocode):


Same reason newer filesystems like BTRFS use checkusms (BTRFS uses 
CRC32).  The storage machine runs periodic file integrity checks.  It 
has no control over the underlying filesystem.


>
>    def obfuscate(data):
>        encode_key = list(range(256))
>        random.shuffle(encode_key)
>        encode_key = bytes(encode_key)
>        decode_key = bytes(encode_key.index(i) for i in range(256))
>        return decode_key + data.translate(encode_key) + decode_key
>
>    def deobfuscate(data):
>        return data[256:-256].translate(data[:256])
>
> The reason for appending the key as well as prepending it is that some
> anti-virus or malware scanners may well look at the last part of the
> file first, so putting something entirely locally-generated there may
> add a bit of safety. You could also simply pad with nulls or something
> of course, but again I can imagine some tools skipping backwards past
> nulls.
>





More information about the Python-list mailing list