home *** CD-ROM | disk | FTP | other *** search
- SecureDrive V1.3c Documentation |
- Edgar Swank <edgar@spectrx.sbay.org> |
-
- This is a maintenance release of SecureDrive 1.3a. It mainly fixes
- reported problems and has minimal new function. See files BUGS13.DOC
- and BUGS13A.doc.
-
- A prototype SecureDrive Version 1.3b was sent to a few people for
- testing. To avoid confusion, I'm skipping 1.3b for "official"
- releases.
-
- The only visible functional change from 1.3 to 1.3A is the appearance
- of msg
-
- Check bytes in Disk x: Boot Sector need updating from 1.3 to
- 1.1/1.3A. Proceed?
-
- which will be issued by both LOGIN and CRYPTDSK when they attempt to
- verify a passphrase on a hard disk or diskette encrypted by version
- 1.3 CRYPTDSK operating in version 1.1 compatability mode. This
- corrects the error in computing the check bytes used to verify the
- passphrase and updates the check bytes to the correct 1.1 value and
- WRITES back the boot sector. Note that once this update has taken
- place, this disk cannot be decrypted by release 1.3 anymore.
-
- The major change to 1.3c from 1.3a is the change of location for the
- SecureDrive CryptFlag in the boot record and addition of parameters
- /UCFO and /RCF.
-
- Releases 1.3 and 1.3c of Secure Drive are based on releases 1.0 and
- 1.1, mostly written by
-
- Mike Ingle <mikeingle@delphi.com>
-
- and version 1.2, with significant new code by myself.
-
- The code which we wrote is not copyrighted, but the program contains GNU
- Copylefted code, and therefore may be freely distributed under the terms of
- the GNU General Public Licence. See file COPYING for legalese.
-
- SecureDrive V1.1 Changes from V1.0
-
- * Two-drives bug fixed. V1.0 would get the drives out of order if you had
- two physical hard drives. V1.1 fixes this problem.
-
- * One-step passphrase change. Instead of decrypting and re-encrypting, you
- can change the passphrase in one step with CRYPTDSK.
-
- * Improved hashing algorithm. V1.0 used a simple MD5 of the passphrase to
- produce the encryption key. This allowed an attacker to test possible
- passphrases quickly. V1.1 iterates the hash 2048 times to slow down a
- passphrase search.
-
- Because of the new passphrase hashing algorithm, V1.1 users will
- need to decrypt your disk with V1.0 and re-encrypt with V1.1 to
- upgrade. The new algorithm produces a different IDEA key for the
- same passphrase.
-
- This may have been unclear in the previous version: V1.0 and V1.1
- encrypt one hard drive partition at a time. LOGIN /S will not
- protect more than one partition. If you log in to a second
- partition, the first one will not be accessible, and will not be
- protected from writes.
-
- All references to MD5 refer to:
- RSA Data Security, Inc. MD5 Message-Digest Algorithm
- (C) 1990, RSA Data Security
-
- The IDEA(tm) block cipher is covered by a patent held by ETH and a Swiss
- company called Ascom-Tech AG. The Swiss patent number is PCT/CH91/00117.
- International patents are pending. IDEA(tm) is a trademark of Ascom-Tech AG.
- There is no license fee required for noncommercial use. Commercial users
- may obtain licensing details from:
-
- Dieter Profos, Ascom Tech AG, Solothurn Lab, Postfach 151, 4502
- Solothurn, Switzerland, Tel +41 65 242885, Fax +41 65 235761.
-
- Ascom IDEA patents:
-
- US patent 5,214,703 granted May 25, 1993.
- EP Patent EP 0 482 154 B1 granted June 30, 1993.
- JP Patent pending
-
- Use this software at your own risk!
-
- Send all comments and bug reports to <edgar@spectrx.saigon.com>. |
-
- Changes for version 1.2 are highlighted by "|" at the right margin. |
- Changes for version 1.3 are highlighted by "+" at the right margin. +
-
- Many people have sensitive or confidential data on their personal computers.
- Controlling access to this data can be a problem. PC's, and laptops in
- particular, are highly vulnerable to theft or unauthorized use. Encryption
- is the most secure means of protection, but is often cumbersome to use. The
- user must decrypt a file, work with it, encrypt it, and then wipe the
- plaintext. If encryption were easy, many more people would use it.
- SecureDrive is a step in this direction. SecureDrive automatically stores
- sensitive data on your DOS/Windows system in encrypted form.
-
- SecureDrive V1.3 allows you to create up to four encrypted partitions +
- on your hard drive(s). It also allows you to encrypt floppy disks.
- Encrypted partitions and disks become fully accessible when the TSR is
- loaded and the proper passphrase entered. The TSR takes only 2.4K of +
- RAM, and can be loaded high. Encryption is performed at the sector
- level and is completely transparent to the application program.
- Everything on the disk or partitions except the boot sector is
- encrypted. Encrypted floppy disks can be freely interchanged with
- unencrypted ones. Disks and partitions can be decrypted and returned
- to normal at any time.
-
- SecureDrive uses the IDEA cipher in CFB mode for maximum data
- security. The MD5 hash function is used to convert the user's
- passphrase into a 128-bit IDEA key. The disk serial number, and track
- and sector numbers are used as part of the initialization to make each
- sector unique.
-
- SecureDrive is made up of four program files. SECTSR is the +
- memory-resident driver. CRYPTDSK is used to encrypt and decrypt
- floppy disks and hard drive partitions. LOGIN is used to unlock
- encrypted disks and partitions by loading the passphrase and disk
- parameters into the resident module. FPART is a utility for finding +
- starting cylinder & head numbers for partitions.
-
- Getting started instructions:
-
- If you only have one hard drive partition (C:), you will have to
- repartition your hard drive if you want an encrypted partition. You
- can use encrypted floppies without changing your hard drive. You
- should create a partition(s) large enough to hold all of your
- sensitive data. For this example, assume the partition is (D:). Put
- SECTSR, CRYPTDSK, LOGIN, and FPART in a directory which is in your +
- PATH. (Not on the soon-to-be encrypted drive, of course!)
-
- Normally re-partitioning a hard drive with FDISK destroys all the data
- on it, so you would have to back up all your data beforehand. But if
- you only have one partition now, there is a utility
-
- FIPS08.ZIP 84831 07-23-93 Nondestructive hard disk
- partition split util.
-
- available from the SIMTEL archive and possibly elsewhere that claims
- to be able to split your first partition without data loss.
-
- Put in your AUTOEXEC.BAT, before the loading of any disk cache:
-
- SECTSR
- LOGIN D: /S (assuming drive D:)
- LOGIN E: /S (and so on for each to-be-encrypted partition, up to four) +
-
- This will load the TSR and put encrypted disk partitions in "safe mode", +
- preventing accidental access and damage to the partitions after they are
- encrypted. Reboot the system to make the changes take effect.
-
- You can also use a form of LOGIN +
-
- LOGIN drive cylinder head /S +
-
- in cases where LOGIN can't find the partition from the DOS disk +
- letter. This can happen in configurations with more than two physical +
- disks or where special disk drivers are used. You can use the FPART +
- utility to scan physical drive "drive", which are numbers starting +
- from zero, and locate the proper numbers for "cylinder" and "head". +
-
- Actually, before the partitions are encrypted with CRYPTDSK, LOGIN /S +
- will return a warning message that the partitions are not encrypted, +
- but, as of version 1.3, CRYPTDSK uses SECTSR to protect the drive +
- while it is being encrypted and until the next boot. This is a change +
- from previous versions. V1.0 to V1.2 would not operate on hard disk +
- partitions while SECTSR was in memory. +
-
- One purpose of having multiple encrypted hard disk partitions is so +
- that up to four users (perhaps members of a family) can each have +
- their own encrypted partition with its own unique passphrase. This +
- allows up to four users to have privacy from each other, even if they all +
- use the same PC and physical hard disk(s). +
-
- The partition can have data on it, or it can be empty. Run CRYPTDSK
- and select the drive letter. Enter a passphrase. CRYPTDSK will now
- encrypt the partition. It will skip bad sectors.
-
- Repeat this for each hard disk partition. If different users are +
- assigned to different partitions, let each of them run CRYPTDSK and +
- enter his own unique passphrase. +
-
- Now type
-
- LOGIN D: (again, assuming drive D:)
-
- and enter your passphrase. Your encrypted drive is now accessible.
-
- To use an encrypted floppy, use CRYPTDSK to encrypt the floppy. Then run
-
- LOGIN /F
-
- and enter the passphrase. The encrypted floppy is now accessible. If you
- entered the wrong passphrase, access will fail with a drive not ready error.
-
- As of V1.3, LOGIN will ask you to verify your floppy disk passphrase +
- by inserting an encrypted floppy disk into either the A: or B: +
- drive. You are given the option to bypass the verification. +
-
- All versions of LOGIN always verify passphrases for hard disk
- partitions.
-
- As of Version 1.2, you may use an operand /PGP with LOGIN, either |
- by itself, or with either operand above. By itself, |
-
- LOGIN /PGP |
-
- will prompt for a passphrase and set the PGPPASS environment variable |
- with whatever is entered. As of version 1.3, you can use this form to +
- erase PGPPASS by just pressing Enter (entering a null passphrase) at +
- the prompt. This accomplishes the same thing as +
-
- LOGIN /C /PGP +
-
- described below, but -without- clearing the SecureDrive keys in +
- SECTSR. Also, LOGIN /PGP can be run without SECTSR in memory, +
- so it's a good way to set PGPPASS (no echo) even when you're not +
- useing encrypted disks. +
-
- If PGPPASS is already set then
-
- LOGIN D: /PGP |
-
- or |
-
- LOGIN /F /PGP |
-
- will use whatever PGPPASS is set to as the passphrase. For the hard |
- disk partition (and optionally for floppies), LOGIN will test the +
- PGPPASS passphrase. If it is incorrect, then it will prompt you for |
- another passphrase. |
-
-
- If PGPPASS is NOT set when these forms of LOGIN are used, than a passphrase |
- is prompted for AND PGPPASS is set to this passphrase. |
-
- The purpose of these changes is to allow you to enter a single passphrase |
- only once per boot IF you choose to use the same passphrase for your PGP |
- secret key, your SecureDrive encrypted hard disk partition, and SecureDrive |
- encrypted floppies. |
-
- Compatability with Previous Versions: +
-
- As you read above, due to use of a more complex hashing algorithm, +
- passphrases entered in Version 1.1 are not compatible with those +
- entered in version 1.0 (and 1.2) and vice versa, because the same +
- passphrases will produce different 128-bit IDEA keys. Mike Ingle made +
- this change to slow down brute force "dictionary" attacks. +
-
- As you read above, to switch to Version 1.1 from 1.0, you have to +
- decrypt your hard disk partition and all your encrypted floppies +
- (maybe hundreds of them!) with CRYPTDSK 1.0 and then re-encrypt with +
- CRYPTDSK 1.1. Also, with Version 1.1, there is a very noticeable +
- delay (1 or 2 seconds on my normally quick 386/SX 16) to enter and/or +
- verify a passphrase. +
-
- I (Edgar Swank) respectfully disagree with Mike on the value of this +
- "feature." In my opinion (you may disagree) if you have a good +
- passphrase, this change is not necessary; and it is insufficient to +
- protect a poor passphrase. The security "exposure" of version 1.0 +
- (and 1.2) relative to 1.1 can be more than made up for by adding one +
- word (randomly selected from a list of 5000) or two (random upper or +
- lower case) alpha characters to your passphrase. I think there is a +
- greater security exposure from all the plaintext data laying around +
- during conversion. +
-
- In version 1.3, I have given you a choice, to convert to 1.1 +
- passphrases, or to stay with 1.0-compatible ones. You make your +
- selection through an environment variable: +
-
- SET SD10CMP=Y | X +
-
- where "|" denotes a selection of either Y or X. +
-
- "Y" (Yes) means that CRYPTDSK will always encrypt with Version 1.0, +
- but that CRYPTDSK and LOGIN will decrypt disks encrypted with any +
- version. Note that for this double-compatibility feature to work with +
- diskettes, you have to let LOGIN /F verify the passphrase with the +
- encrypted diskette you want to access.
-
- "X" (exclusive) means that CRYPTDSK and LOGIN will ALWAYS encrypt and +
- decrypt with version 1.0-compatible passphrases. You will generally +
- not be able to access any disks encrypted with Version 1.1 (or Version +
- 1.3 with compatibility mode off). +
-
- The reason I provided eXclusive mode is so that if you know you will +
- be dealing only with version 1.0-compatible disks, you can avoid the +
- delay of checking for 1.1-compatible disks when you inadvertantly +
- enter an incorrect passphrase. +
-
- If SD10CMP is set to anything else, or not set at all, then CRYPTDSK +
- will always encrypt in 1.1-compatible mode. LOGIN and CRYPTDSK will +
- decrypt disks encrypted in either mode. (It takes an insignificant +
- amount of additional time to check for a 1.0 passphrase). +
-
- Keys taken from SECTSR which are verified by decryption could have +
- been generated in either 1.0 or 1.1-compatible mode. The keys +
- internal to SECTSR have already been digested from the passphrase. +
- These can be used by LOGIN and CRYPTDSK to encrypt and decrypt, but +
- the original passphrase itself cannot be recovered and an internal key +
- cannot be converted from one compatibility to another. A flag is kept +
- in SECTSR indicating which mode was used to convert the passphrase to +
- the key, though, and CRYPTDSK will not allow internal keys to be used +
- to encrypt in the wrong mode. +
-
- In version 1.3, the "(C)hange passphrase" feature can be used to +
- convert disks encrypted in one compatibility to disks encrypted in the +
- other (as specified by SD10CMP). You can even convert from one +
- compatibility to the other and retain the same passphrase (but +
- different keys). Note that you can't convert compatibiities if +
-
- SD10CMP=X +
-
- because this will prevent CRYPTDSK from decrypting (first half of +
- converting) 1.1-compatible disks. +
-
- Also, CRYPTDSK 1.3 will check for and not allow a wasted pass of +
- decrypting and re-encrypting to the same -key- (both passphrase and +
- compatibility mode the same). +
-
- Version 1.3 has added a lot of user messages to keep you informed of +
- which compatibility is being used, where passphrases are coming from, +
- etc. +
-
- Detailed instructions:
-
- Creating an encrypted floppy disk:
-
- Insert any DOS-formatted floppy disk. The disk may contain data, or it may
- be empty. Run CRYPTDSK. Select the floppy drive, and enter a passphrase. You
- will be required to enter the passphrase twice to confirm. CRYPTDSK will now
- encrypt the disk.
-
- As of version 1.2, if PGPPASS is set before you run CRYPTDSK, CRYPTDSK will |
- ask to use the value of PGPPASS for the passphrase before prompting you. |
- Obviously, if you encrypt a lot of diskettes at once, this feature can save |
- you a lot of typing. |
-
- As of version 1.3, if CRYPTDSK is run with SECTSR resident, you may +
- be asked if you want to use the hard disk or floppy passwords +
- previously entered and currently in use to encrypt another floppy. +
-
- Accessing an encrypted floppy disk:
-
- Load SECTSR, if it's not already loaded. Run LOGIN /F and enter the
- passphrase used to encrypt the disk. The disk is now accessible. You can
- swap disks at any time, as long as all of the disks are encrypted with the
- same passphrase. You can also access unencrypted disks; SECTSR switches on
- and off automatically. If you want to access a disk encrypted with a
- different passphrase, type LOGIN /F again and enter the new passphrase. The
- same passphrase applies to both floppy drives.
-
- As of version 1.3, LOGIN /F will try (if you let it read an encrypted +
- diskette) the currently active hard disk passphrase (if one exists). +
- If you bypass the verification step, then you are asked if you want to +
- use the hard disk passphrase without verification. +
-
- Decrypting a floppy disk:
-
- Run CRYPTDSK. Select the floppy drive. CRYPTDSK will detect that the disk is
- encrypted, and will prompt you to decrypt it. Enter your passphrase.
- CRYPTDSK will now decrypt the disk.
-
- As of version 1.2, if PGPPASS is set before you run CRYPTDSK, CRYPTDSK will |
- try the value of PGPPASS for the passphrase before prompting you. |
-
- As of version 1.3, CRYPTDSK will also try the active hard disk and +
- floppy passphrases in SECTSR before prompting you. +
-
- Creating an encrypted hard drive partition:
-
- You must have more than one partition, or more than one hard drive. If you
- encrypt your C: drive, you will not be able to boot from it! If this
- happens, decrypt it again to restore it. You should create a small D:
- partition, large enough to store as much sensitive information as you plan
- to keep on your hard drive. You can also run applications from the secure
- partition, but there will be some speed loss. Back up your hard drive before
- installing. Use FDISK to repartition your drive, and set up a small D:
- drive, which will become your secure partition. You can copy data to it
- before or after encryption. Run CRYPTDSK and select the letter of the
- partition you want to encrypt. CRYPTDSK will display the physical drive,
- head, and cylinder of the boot sector of this partition. You should verify
- these numbers. Then enter a passphrase to encrypt the partition. This will
- take a few minutes, depending on the size of the partition and your CPU.
-
- You can also describe a partition to CRYPTDSK by its +
-
- drive,cylinder,head +
-
- in cases where CRYPTDSK can't find the partition from the DOS disk +
- letter. This can happen in configurations with more than two physical +
- disks or where special disk drivers are used. CRYPTDSK will prompt +
- for these parameters if you enter "X" when it prompts you for DOS disk +
- letter. You can use the FPART utility to scan physical drive "drive", +
- which are numbers starting from zero, and locate the proper numbers +
- for "cylinder" and "head". +
-
- Note that commas (",") must be used to separate these parameters for
- CRYPTDSK, while blanks are used for LOGIN.
-
- As of version 1.2, if PGPPASS is set before you run CRYPTDSK, CRYPTDSK will |
- ask to use the value of PGPPASS for the passphrase before prompting you. |
-
- Preventing damage to the secure partition, which could be caused by writing
- to it withot first logging in:
-
- Load SECTSR. Run LOGIN D: /S to put the drive in safe mode. This should be
- done in AUTOEXEC.BAT. Writes will be locked out. A drive not ready error
- will occur if you attempt to access the encrypted drive. This will prevent
- DOS programs from reading the drive. Windows behaves rather pathologically:
- it retries the attempt about a dozen times, and then displays garbage. If
- this happens, just close the window, log in, and try again. The drive is
- still protected against writes in Windows.
-
- As of version 1.3, you should add LOGIN D: /S statement(s) to +
- AUTOEXEC.BAT and load SECTSR before encrypting your hard disk +
- partition(s). CRYPTDSK will set the partition to Safe mode before +
- beginning to encrypt. (CRYPTDSK itself bypasses SECTSR). +
-
- Accessing an encrypted hard drive partition:
-
- Load SECTSR, if it's not already loaded. Run LOGIN D: where D is
- replaced by the letter of the encrypted partition. Type the
- passphrase. Your secure partition is now accessible. Note that only
- one secure partition can be accessible at a time. You can have
- encrypted floppies and a secure partition active simultaneously, but
- you can't have two secure partitions active at the same time. The TSR +
- only stores two cryptographic keys: one for a secure partition, and
- one for encrypted floppies.
-
- Although V1.3 still only allows you to have one secure partition +
- active, up to four may be placed in Safe mode. Each partition may be +
- encrypted with a different passphrase, allowing up to four different +
- users (or groups) to keep data private from each other. +
-
- Decrypting a hard drive partition:
-
- As of version 1.3, it is no longer necessary or desireable to reboot +
- to clear SECTSR out of memory. Run CRYPTDSK, select the drive letter,
- and enter the passphrase. CRYPTDSK will decrypt your partition.
-
- As of version 1.2, if PGPPASS is set before you run CRYPTDSK, CRYPTDSK will |
- try the value of PGPPASS for the passphrase before prompting you. |
-
- Changing a passphrase:
-
- Versions 1.1 and 1.3 allow you to do this in one step. Select the +
- drive with CRYPTDSK and it will prompt you to change the passphrase.
- Enter the old and new passphrases as prompted. Decrypt the disk with
- the old passphrase, and re-encrypt it with the new passphrase.
-
- This is more secure than doing decryption and encryption separately.
- Decryption and re-encryption is done a track at a time. The
- intermediate plaintext exists only in memory, never on the disk.
-
- Version 1.3 includes the additional testing for PGPPASS and SECTSR +
- internal passphrases for decryption and the additional prompting for +
- new passphrases discussed above. +
-
- Clearing keys:
-
- Typing LOGIN /C will erase the cryptographic keys from memory and disable
- encryption. You may then run LOGIN again to restore access. Note that this
- does not erase plaintext from memory; turn the computer off to do this.
-
- As of Version 1.2, typing LOGIN /C /PGP will clear the SecureDrive crypto |
- keys from memory AND clear the PGPPASS environment variable. This is done |
- in a manner less likely to leave your passphrase in memory than just using |
- the DOS SET command. In addition, Version 1.2 clears all the free memory |
- it can find, which is likely to include some plaintext. However, if you |
- want to be absolutely sure all traces of sensitive data are erased from |
- memory then turning off the computer is still recommended. |
-
- Using a disk cache:
-
- You can use a disk cache such as SMARTDRV.EXE or NCACHE to speed up access.
- The cache must be loaded after SECTSR is loaded. A .SYS cache will not work,
- because it is loaded before the TSR. If the cache is loaded first, it will
- cache ciphertext and provide little speedup. If the cache is loaded after
- SECTSR, it will cache plaintext and speed up access.
-
- Hazards to avoid:
-
- Writing to the encrypted partition or encrypted floppies without logging in.
- When you load the TSR and put it in safe mode, writes will be locked out.
- However, if you access an encrypted disk without loading the TSR, the disk
- can be destroyed. This happened to one of the beta testers. Use safe mode
- and load the TSR in AUTOEXEC to prevent it.
-
- Forgetting your passphrase. With any lock, there is the hazard of losing the
- key. But cryptography is a special case because there are no locksmiths to
- save you. If you forget a passphrase, you're out of luck. That data is gone.
-
- Using this program without backups. It accesses disks at the low level of
- the BIOS, and a program bug or an unfriendly interaction between the TSR
- and an application could scramble your hard drive permanently.
-
- Exporting this program. Cryptography is export controlled, and |
- sending this program outside the country may be illegal. Don't do it.
-
- The "author" of versions 1.2 and 1.3, Edgar Swank, says that the +
- export ban should not prevent you from placing this program on public |
- BBS's and anonymous FTP sites in the US and Canada. If individuals |
- outside the US/Canada use the internet or international long distance |
- to obtain copies of the program, THEY may be breaking US law. |
-
- Any such foreign individuals should be aware that US law enforcement may |
- legally (under US law) apprehend individuals who break US laws even if such |
- individuals are not on or even have never been on US soil. Such |
- apprehension may remove such individuals directly to US jurisdiction |
- without benefit of extradition proceedings in such individuals' home |
- country(ies). This has actually happened in at least two cases, Mexico -- |
- suspect in murder of US drug agent, Panama -- Noriega -- indicted in |
- absencia for drug smuggling. As is well known, after a small war with |
- Panama, Noriega was brought to the USA, tried and convicted. He is now a |
- guest of the US Government in a Florida prison. |
-
- Potential security problems:
-
- Data leaks: swapfiles and temporary files. Many application programs create
- swapfiles and temporary files all the time. If these files are written to a
- non-encrypted disk, they will expose your data. This can be avoided by
- putting the swapfiles and temporary files on the encrypted disk, but this is
- slow. The best solution is to use a RAM disk or cache the encrypted disk.
- There are also programs such as Norton WIPEINFO which will wipe empty space.
-
- Trojans and viruses: someone could replace LOGIN with a hacked version, or
- install a specially written Trojan on your system, and capture your
- passphrase or key. Since the key remains in memory in the TSR, any program
- could potentially swipe it. The only sure way to prevent this is to make
- sure that nobody has the opportunity to install such a Trojan.
-
- If you have PGP, you can verify that version 1.3c executable modules +
-
- CRYPTDSK.EXE |
- LOGIN.EXE |
- SECTSR.COM |
- FPART.EXE +
-
- have not been modified since I compiled them by checking them against |
- the detached signatures included. First add my (Edgar Swank's) public key |
- to your public keyring
-
- PGP -ka KEY.ASC |
-
- Then issue commands |
-
- PGP CRYPTDSK.SIG CRYPTDSK.EXE |
- PGP LOGIN.SIG LOGIN.EXE |
- PGP SECTSR.SIG SECTSR.COM |
- PGP FPART.SIG FPART.COM +
-
- The integrity of this check depends upon that my public key is genuine. You |
- should satisfy yourself from the signatures on the key. Also my public key |
- is available independently on various public keyservers. |
-
- Passphrase guessing: if your passphrase is weak (a single word, monocase,
- with no punctuation is very weak) an attacker could try to guess it. This
- has proven highly effective against Unix login passwords. The best
- passphrase is a phrase of four or more words which does not appear in
- text or literature.
-
- How many passphrases?: The additions to version 1.2 make it easier to use a |
- single passphrase both for your PGP secret key and for SecureDrive hard and |
- floppy disks. If you do this, it's obviously putting all your eggs in one |
- basket. One school of thought says its better to use several baskets, so if |
- one breaks you only loose some of your eggs. The other school says it may |
- be better to use one basket IF you make it the best damn basket you can and |
- put your best efforts into protecting it. |
-
- So if you use a single passphrase for everything, make it the best |
- passphrase you can think of and REMEMBER without writing it down ANYWHERE. |
- A good passphrase should be at least four or five words. The easiest to |
- remember and hardest to guess will be "outrageous" and use words that |
- normally don't go together, e.g. "red grass over yellow sky" (don't use |
- this example). Some use of profanity, foreign words, and creative spelling |
- and punctuation, as long as you can remember it all, will also make the |
- passphrase harder to guess. |
-
- Backups: must be encrypted. Use encrypted disks, or use an encrypting
- compression program such as HPACK and write the encrypted file onto the
- backup tape. Do not leave unencrypted disks or printouts lying around.
-
- An alternative to HPACK is a combination of any compression program (e.g.
- PKZIP) and PGP. But DON'T rely on the "built-in" encryption of any
- compression program other than HPACK.
-
-
- CheckWord Offset:
-
- Versions of SecureDrive from versions 1.0 to 1.3a have used the 8-byte
- SYSTEM ID at offset 3 of boot records of encrypted disks to store a
- "CryptFlag". The first four bytes contain "CRYP" to denote an
- encrypted disk; the last four characters (offset 7) store a 4-byte
- checkword used to verify that the correct passphrase had been entered.
- This checkword is an MD5 digest of the IDEA key and (in Version 1.1)
- the passphrase. The 128-bit IDEA key is an MD5 digest (iterated in
- Version 1.1) of the passphrase. The checkword is calculated and
- stored in the boot sector when the disk partition or diskette is first
- encrypted. Whevever you enter a passphrase to decrypt or activate the
- disk, both the key and the checkword are generated. The checkword is
- compared against the one stored in the boot record as a check that the
- same passphrase was entered for decryption as for encryption. Note
- that the boot sector is never itself encrypted. Also note that since
- MD5 is a "cryptographicly strong" one-way digest function, it is not
- computationally feasible to find the IDEA key, much less the original
- passphrase, from the checkword.
-
- In hindsight, this was not the best choice of a place for this flag.
- Apparently, some versions of MSDOS, especially those included with
- some laptop PC clones, insist that the SYSTEM ID field of the boot
- sector be ASCII characters, which the checkword is not. Also, the
- new diskette formatting utility from Spain, 2M/2MF, uses all the
- SYSTEM ID field for its own purposes. For this reason, the location
- of the CryptFlag has been move from SYSTEM ID (offset 3) to offset
- 802 of boot records, as of SecureDrive Release 1.3c. Release 1.3c
- is upward compatible with previous releases; that is, Release 1.3c can
- activate (LOGIN), decrypt, or change passphrases (CRYPTDSK) of disks
- encrypted with SecureDrive Releases 1.3a or before; but you cannot use
- previous releases of SecureDrive on disks encrypted by 1.3c.
-
- You can convert disks encrypted by previous versions of SecureDrive to
- the new standard CryptFlag offset by using the /UCFO [Update CryptFlag
- Offset] function with LOGIN (either for hard disk partitions or
- diskettes). Note that /UCFO will overlay SYSTEM ID (the old
- CryptFlag) with "MSDOS ", which means that that disk can no longer
- be activated or decrypted with previous versions of SecureDrive.
-
- /UCFO doesn't work if combined with the /S (safe mode) parameter.
-
- Changing a disk's password with CRYPTDSK will also update the
- CryptFlag offset.
-
- ATTENTION: Version 1.3b users.
-
- See file BUGS13A.DOC for instructions.
-
-
- Reconstructing a CheckWord:
-
- After using some disk repair utility LOGIN and CRYPTDSK may always
- say you have entered an incorrect passphrase for your encrypted disk,
- even when you're SURE you used the right passphrase. Or LOGIN and
- CRYPTDSK may say a disk is unencrypted when it obviously is encrypted.
-
- Mike had a report from a user who used some disk utility that re-wrote
- his boot record, overlaying the checkword (but apparently not the
- "CRYPT" flag). This is probably a different manifestation of the
- problem described above. This disk-fixing utility wants to see an
- all-ASCII SYSTEM ID and will set ASCII where it doesn't find it.
-
- You can fix this by using the /RCF [Recover CryptFlag] parameter to
- LOGIN. This will allow you to activate a disk even if the "CRYP" flag
- has been overwritten or the checkword doesn't match. You will be
- asked to enter the passphrase twice. The new checkword will be
- written at new standard offset 506 which will hopefully avoid a
- repetition of the problem the next time you use that same utility.
-
- You are not allowed to recover the CheckWord if SD10CMP=X, since
- this setting does now allow LOGIN to compute or check version 1.1
- compatible checkwords.
-
- Also, if after you enter the checkword, you get garbage when trying
- to read the disk, change SD10CMP from Y to N (or vice versa) and try
- LOGIN xxx /RCF again.
-
- /RCF also doesn't work if combined with the /S (safe mode) parameter.
-
- Note that extreme caution is required when using this parameter. If
- you force activation of a disk with the wrong passphrase, it's
- effectively the same as accessing the disk without SECTSR loaded. Any
- write to the disk would likely make -all- data on the disk partition
- or diskette unreadable.
-
- Placement of SECTSR: +
-
- If you encounter a problem that CRYPTDSK (and FPART) don't work while +
- SECTSR is installed, try re-ordering device drivers & TSR's which +
- might effect diskette access. Note that CRYPTDSK/FPART will reach +
- below SECTSR to do sector disk I/O, so any TSR's loaded after SECTSR +
- will also be bypassed by CRYPTDSK/FPART. +
-
- In general, TSR's which assist in reading non-standard formatted
- diskettes, such as FDREAD.EXE and 2M.COM, should be loaded BEFORE
- SECTSR.
-
- CRYPTDSK and FPART may be used without SECTSR loaded if necessary. +
-
- Running under Windows:
-
- I have been able to get LOGIN to activate disks in a Windows DOS
- window. However LOGIN /PGP and its variants do not set PGPPASS. SET
- doesn't work either.
-
- It's probably better to call LOGIN in your AUTOEXEC for Windows, if
- possible, and get your disk logged in before loading Windows.
-
- I have been able to start CRYPTDSK in the DOS window and it ran fine.
- But if I switched to another window, it crashed in the middle. I don't
- see how this can be anything but a Windows problem. Since crashing
- CRYPTDSK in the middle essentially destroys all the data on the disk,
- I don't recommend trying to run CRYPTDSK under Windows.
-
- Of course, SECTSR must be loaded before Windows. DON'T load SECTSR in
- a DOS Window.
-
- Using SecureDrive with non-standard Diskette Formatting Programs +
-
- Of course SecureDrive works with diskettes formatted with DOS FORMAT, +
- but many PC users use non-standard formatting programs (and supporting +
- TSR's) to store more data on a diskette than allowed by the standard +
- FORMAT program. +
-
- One such program, FDFORMAT, with TSR FDREAD.EXE, originated in
- Germany. The last version (FDFORM18.ZIP) was released in 1991.
- FDFORMAT allows, for example, storage of up to 820 Kilobytes of data
- on cheap DSDD diskettes (360 Kilobytes with DOS FORMAT). All Releases
- of SecureDrive are compatible with FDFORMAT, provided only that
- SECTSR.COM is loaded -after- FDREAD.EXE.
-
- Another program, 2MF, with TSR 2M.COM, has recently been released from
- Spain as 2M13.ZIP. This program claims to either provide higher
- storage capacities (902 Kilobytes) or improved access times relative
- to FDFORMAT. However, 2M recognizes diskettes formatted by 2MF via
- the SYSTEM ID field in the diskette's boot record; Before Release
- 1.3c, SecureDrive also used the SYSTEM ID field to test for an
- encrypted diskette and check for a valid passphrase. So 2MF cannot be
- used with SecureDrive Releases before 1.3c with encrypted diskettes.
-
- If you want to switch between FDFORMAT and 2M diskettes, you must load
- both FDREAD.EXE and 2M.COM -before- SECTSR.COM. Fortunately, FDREAD
- and 2M will both load themselves high, and SECTSR can be loaded high
- with LOADHI.
-
- Source code and modifications:
-
- SECTSR.ASM is the self-contained source for SECTSR. Use TASM and TLINK /T to
- assemble it.
-
- CRYPTDSK uses SDCOMMON and CRYPT2.OBJ generated from CRYPT2.ASM. It also
- uses MD5.C, which is from the PGP23A source code.
-
- LOGIN uses SDCOMMON and MD5.C.
-
- In version 1.2, LOGIN also uses SETENV.OBJ generated from SETENV.ASM. This |
- code is used to set/clear the PGPPASS environment variable. This code sets |
- the enviornment variable in all copies of the environment it can find, so |
- it may work in some situations where the DOS SET command does not. On the |
- other hand, in some early versions of DOS, it may not find the master |
- environment area. Experiment for yourself. |
-
- Version 1.3 adds the RLDBIOS.ASM module which replaces the C++ library +
- subroutine BIOSDISK and allows LOGIN, CRYPTDSK, and FPART to access +
- the "real" BIOS without going through SECTSR. +
-
- The programs were compiled with Turbo C++. Compile them large model.
-
- In versions 1.2 and 1.3b a MAKEFILE is provided. +
-
- If you make any interesting modifications or improvements, send us
- (Edgar and Mike) mail and a copy of the new code. We hope this
- program will become popular and will be modified and improved by the
- net.
-
- Miscellaneous:
-
- Version 1.3 CRYPTDSK now exits gracefully if an attempt is made to +
- write to a write-protected diskette. +
-
- Version 1.3 SECTSR has been modified to align the internal stack and +
- some data fields. This may marginally improve performance on 16/32-bit +
- PC's. +
-
- Note that Version 1.3c CRYPTDSK, LOGIN and FPART -require- use of +
- Version 1.3c SECTSR. Do not mix modules of different versions! +
- (But CRYPTDSK and FPART -may- be run without SECTSR loaded at all). +
-