Personal Backup Version 5.2

© 2012, J. Rathlev, IEAP, Kiel University

Special notes on Version 5

As there will be no further development of version 4.5, it is recommended that Personal Backup 5 be used with all current operating systems (Windows XP, Windows Vistsa and Windows 7).

From Version 5.0, Personal Backup has been created using the IDE of Delphi 2009 which has full Unicode support and overcomes the ANSI (ISO-8859) filenames limitations on copying files. Also pathlengths may be longer than 260 characters.

The most important enhancements:

Compressing as gzip

Filenames

The existing standard for the gzip format (RFC1952 of 1996) calls for the filename to be stored in the file header using the ISO-8859-1 character set. I could not find any recommendations as to how to handle Unicode filenames.

The current Linux version of the program gzip used for creating and reading gz archives differs from the above standard and stores filenames in UTF-8 format. The OS byte in the header is set to 3 (Unix).

Until now, Personal Backup has set this byte to 0 (FAT) and saved the filename per ISO-8859-1. To be compatible with previous versions and also to support Unicode, two variants are used in Version 5:

Hence the problem arises that other programs (such as WinZip or WinRar) will correctly detect the stored filename only with the first variant. This has, however, no effect on the unpacking of the files.

It would of course be better to use the unused bit 5 of the FLG byte as a criteria for the coding of the filename. The current zip format does it in this way (see below).

Files > 4 GB

The existing standard for the gzip format (RFC1952 of 1996) reserves a 32 bit value for the length of the uncompressed file. For files > 4 GB this value is written module 232. So using a common file archiver for restore the real size will be displayed as wrong value. Anyway this will not affect the unpacking of the file.

Creating zip archives

The current zip format specification version 6.3.2 from September 2007 defines how Unicode filenames are to be processed: if bit 11 of the "general purpose bit flag" is set, filename and comment are in UTF-8 coding. Personal Backup uses this convention. Most of the current file-compression programs now support this new format, too. Among those that do are WinZip Version 12, WinRar Version 3.80 and 7-Zip Version 9.20, whereas Windows Explorer does not yet support the new format even under Windows 7.

Encryption

Files are encrypted using the AES method, with the same routines as in WinZip (Info at WinZip and at Brian Gladman). The file format created depends on the backup mode:

No compression (proprietary file format):
Data is written to file in the same way as is done with zip but without prior compression (more info). As this is a non standard format, a restore can only be made with the internal function of the program.
   Enc-Header : 10, 14 or 18 bytes (depending on the length of the password)
                Salt value (8, 12 or 16 bytes) + password verification value (2 bytes)
   Enc-Data   : Same number of bytes as original file
   Enc-Trailer: 10 bytes Authentication code
   
With compression (modified gzip format):
Data is first compressed using the gzip algorithm and encrypted in the same way as described above. The encrypted data has its own verification, so the gzip checksum is always set to 0. The gzip file format is specified in RFC1952. Bear in mind that this standard does not contain recommendations for encryption. The format described below just follows its specifications. For a restore, the internal function of the program is required.
Note: starting with Version 5.2 encrypted gz files will have the file extension gze.
   Gzip-Header : 10 bytes
                 new: Flag byte: bit 5 = encrypted
   Enc-Header  : 10, 14 or 18 bytes (depending on the length of the password, see 1.)
   Enc-Data    : Same number of bytes as compressed original file
   Enc-Trailer : 10 bytes  (see 1.)
   Gzip-Trailer: 8 bytes
                 Crc always = 0
   
Zip file (compatible with zip standard):
A description of the zip format can be found at PkWare and notes on encryption at WinZip. Personal Backup creates WinZip-compatible encrypted archives. For restore, any compression program supporting these specifications can be used.

Passwords

All passwords for FTP, for SMTP and AES encryption must be coded per ISO-8859-1.

Length of file paths

For filenames (inc. path), the 260-character limitation still applies to certain Windows versions (more info). This limitation appears no longer to apply first of all under Windows 7. Under older operating systems, e.g. XP, all applications using Windows shell components, such as Explorer, cannot process longer file paths.
Everywhere where Personal Backup refers to shell components (e.g. in a directory- or file-selection dialog), the path length limitation applies even for Version 5 except with Windows 7.
Internally, the program uses UNC paths (e.g. when copying files) which may have a maximum length of about 32000 characters. With Version 5 it is therefore possible to backup, restore and delete files with paths exceeding the above limit, even when most file managers (including Windows Explorer) will fail on scanning such a directory tree. One file manager that supports long filenames is Total Commander Version 7.5 .


J. Rathlev, 24098 Kiel, Germany, January 2012