SecureTrayUtil

By Sarah Dean
Last updated: 17th October 2005

Contents


Description

A handy utility that sits in the tasktray, allowing hotkey shredding files, file hashes to be generated, and complementing several OTFE (On-The-Fly Encryption) systems by providing rapid access to their most used day-to-day functions, making them considerably easier to use.

Also incorporates self-destruct facilities for sensitive material, triggerable by hotkey, easily-built serial connector or secure Internet connection.

Runs under MS Windows 95/98/Me/NT/2000/XP and has optional shell integration.

Screenshots of SecureTrayUtil are available.

Please email any bug reports, feature requests, comments, etc to me at sdean12@softhome.net

The latest version (as of 17th October 2005) is v3.95.0.

The latest version is always available at: http://www.SDean12.org/SecureTrayUtil.htm


Features


Download

Download latest stable SecureTrayUtil (v3.95.0) executables

Download source code for the above stable version (see also SDeanComponents to download the OTFE, etc components required to compile this software)

Hashes and PGP signatures of the SecureTrayUtil software, as downloaded, are available here

A beta version of the development version of SecureTrayUtil (v3.96.0) can also be downloaded. Note: This link may not work. If it doesn't, and you can download the stable version, a beta version of the next version has not yet been released. The beta version is unsupported, but please feel free to email me if you have any comments on it.


Installation

(If you have an older version of SecureTrayUtil already installed, please see the section on Upgrading from a Previous Version instead)

To install SecureTrayUtil, simply unzip the release into a directory of your choosing and create shortcuts (if required) to "SecureTrayUtil.exe".

Then, launch "SecureTrayUtil.exe" to run.


Upgrading from a Previous Version

  1. Please launch your old version of SecureTrayUtil and disable all shell extensions
  2. Exit SecureTrayUtil
  3. Overwrite your existing SecureTrayUtil installation with the files contained in this release
  4. Launch the new version of SecureTrayUtil and reenable any shell extensions that you disabled in step 1
It is recommended that you doublecheck your SecureTrayUtil configuration as some options may revert to their default (safe) values due to various improvements in SecureTrayUtil.

Notes


Hardware Self-Destruct Trigger Details

SecureTrayUtil has an additional feature relating to the self-destruct capabilities of SecureTrayUtil; you can now interface your computer's serial port to a switch. When the switch is pressed, SecureTrayUtil self-destructs.

9 pin serial port connector:
Pins 1, 4 and 6 - connect together
Pins 7 and 8 - connect together
Pins 2 and 3 - leadout to switch. When these two pins are connected together, nothing happens. When they are disconnected, SecureTrayUtil's self-destruct system is triggered.

25 pin serial port connector (I haven't tested this myself (I only bothered testing the 9 pin version), but there's no reason why it shouldn't work. Drop me an email at sdean12@softhome.net and let me know how you get on!)
Pins 6, 8 and 20 - connect together
Pins 4 and 5 - connect together
Pins 2 and 3 - leadout to switch. When these two pins are connected together, nothing happens. When they are disconnected, SecureTrayUtil's self-destruct system is triggered.

To test your trigger, use "PortTest.exe".

Note: (This is obvious, but...) SecureTrayUtil must be running for this feature to work.


Triggering Self Destruct via the Internet

Here's a brief rundown on how to configure SecureTrayUtil to self destruct after being contacted via the Internet.

Goto the self destruct options screen, Triggers tab. Click "Configure Triggers" and select the "Internet" tab from the dialog displayed.

Specify a port number into which you can connect via the Internet (23 is the default port used for telnet, although you can specify any port; just tell your telnet client to use whatever port you set this to). You may wish to check IP Port Numbers - Full Listing for a list of standard port numbers.

Work out your authentication dialog, and enter the number of challenge/response pairs.

Enter your challenge/response pairs as follows:

  1. Set the "Edit pair number" to the pair number you wish to edit (hint: start with 1)
  2. Enter the "challenge" (i.e. the text that SecureTrayUtil should send out over the connection)
  3. Enter the correct "response" (i.e. the text that you are expected to reply with)
  4. Click "Set pair"
  5. Repeat steps 1-4 for as many challenge/reponse pairs as you like
You can use escape codes to embed special characters in your challenges: e.g.
^[E
will send a newline,
^[[8m
turns on invisible text and
^[[m
turns it off

See VT100 escape codes for more of these codes.

After this trigger is enabled, just telnet into your computer on the port number you specified. Your telnet client will receive the first challenge, you should respond with the relevant response. If you get this wrong, you will be disconnected. Get it right, and you will go onto the next challenge/response pair. After successfully completing your all challenge/response pairs with SecureTrayUtil, you will be disconnected, the SecureTrayUtil telnet server will go down, and the self destruct sequence will be activated.

Note: Challenge/response pairs are held in plaintext in SecureTrayUtil.ini

Note: (This is obvious, but...) SecureTrayUtil must be running for this feature to work.


Command line options

Prompt for a password, and mount the specified volume file:
    SecureTrayUtil [/stayloaded] [/readonly] /mount <volume filename>
(Note: /mount replaces /SDmount, although /SDmount is retained for backward compatability)

Mount OTFE partitions:

    SecureTrayUtil [/stayloaded] /mountpartitions
Dismount the specified drive/all drives:
    SecureTrayUtil [/stayloaded] [/brutal] /dismount <driveletter>

    SecureTrayUtil [/stayloaded] [/brutal] /dismount all
(Note: /dismount replaces /SDdismount, although /SDdismount is retained for backward compatability)

Touch the given file:

    SecureTrayUtil [/stayloaded] [/date <date>] [/time <time>] [/promptdatetime] /touch <file or dir> <file or dir> ...
(Note: If /date is not specified, the current date will be used; if /time is not specified, the current time will be used)

Calculate and display the hash of the specified file:

    SecureTrayUtil [/stayloaded] /hash <filename>
Shred the given file, using the default shredder:
    SecureTrayUtil [/stayloaded] [/silent] /shred <file or dir> <file or dir> ...
Shred free HDD space:
    SecureTrayUtil [/stayloaded] [/silent] /shredfree <driveletter>
Self destruct:
    SecureTrayUtil [/stayloaded] /selfdestruct
By default, when SecureTrayUtil is run with one or more command line options, it will execute the given command and then exit. Specifying /stayloaded on the command line will prevent SecureTrayUtil from exiting in this way, keeping that instance of SecureTrayUtil in memory and adding a new tasktray icon.

TODO List

  1. Add a "Volume properties" page to the Explorer properties dialog for OTFE drives; giving information like SecureTrayUtil's volume information dialog displays (nice idea, but a very low priority)
  2. Remote control self-destruct via modem; by dialling your phone number, connecting to your computer's modem, and entering a coded "self-destruct" command (again, low priority)
  3. Timeouts
  4. The option to turn on/off ScramDisk's "autorun" feature
  5. Ability to "self-destruct" if a wrong password is entered more than "n" times (more of a novelty than a serious attempt to stop attackers)
  6. The source code could do with a little tidying up...
  7. "Purge" capability as well as "self-destruct", i.e.
  8. Support for PhysTechSoft's StrongDisk (currently under development)
  9. Extending the self-destruct functionality to include "booby trap" capability - if the computer is shutdown without a certain sequence of keys being pressed, for example. Probably not a good idea to use this idea when running under Windows 9x/Me - they're far too unstable, and crash so often that such self-destruct capabilities may get triggered accidently!

Known Bugs

Known bugs with latest version:

Credits

Thanks go to:

Appendix A: Version History


Appendix B: Securely Deleting Registry Entries

When you delete entries in the registry (either through using SecureTrayUtil or regedit, or anything else), it is possible that the entries have not actually been removed from the registry database files, even though it may appear so from looking at the registry using regedit. In order to delete registry entries such that they cannot be recovered, you will need to rebuild (compress) your registry database. This process is quite simple; under Windows 95/98 you just perform the following steps:
  1. Take a backup of your SYSTEM.DAT and USER.DAT files in case anything goes wrong (these files make up your registry)
  2. Run
  3. REGEDIT.EXE
    and export your whole registry to a file (export everything)
  4. Boot to DOS
  5. Run:
  6. REGEDIT /c <filename of exported registry>
    (this can take awhile; about 20mins on my test system)
(The above steps may or may not work with Windows NT, personally, I haven't tested it.)

This is just a simple summary of the process; if you would like further information, or more detailed instructions (though it is pretty easy!) on how to rebuild your registry, please check on the WWW.


Appendix C: Details of the Keyboard Entry Dialog for Passwords

When entering passwords to mount ScramDisk volumes, SecureTrayUtil gives you the option of using a special "keyboard entry dialog" to use instead of typing your passwords in at the keyboard.

Features include:

Note: This component is not perfect; the RNG used is the standard Delphi pseudorandom one, and the "speckling" of the keytops provides minimum protection ("Speckling" was introduced to prevent an attacker from writing a piece of software to monitor the computer for this dialog and then just reading the images straight off the screen before performing some form of image recognition on the images; it just forces him/her to stick an extra "despeckle" operation in there! ;)

Attacking the protection that this dialog provides would be trivial; just write a program that detects a window being displayed with a "Scramble Keys" button on it. After that, hook the mouse messages, and every time the left mousebutton is pressed, take a screenshot of the dialog, and with it record the X and Y co-ords of the mouse within the dialog. Later, recover the images and info, and just watch what "keys" are being pressed on the dialog.

This dialog is a standard Delphi component so that you can easily incorporated into your own projects (if you really want to!)


Appendix D: OTFE System Compatibility

SecureTrayUtil has been tested with the OTFE systems detailed below.

Note that this table is not exhaustive, and only lists those versions which I have tested - other versions of the packages listed may very well work, provided there have been no driver API changes within the particular OTFE system.

OTFE System
Version
Comments
FreeOTFE
v00.58.00
Fully supported.
v00.59.00
Fully supported.
BestCrypt
v6.06 Fully supported.
v6.07.2 Fully supported.
v7.05 Fully supported.
v7.10.4
Fully supported.
v7.12.01
Fully supported.
CrossCrypt
v0.4.3
Fully supported, with minor cosmetic issue (CrossCrypt is slightly weird in that it will not report it's version number correctly unless it has one or more CrossCrypt volumes mounted.)
E4M
v2.00
Fully supported.
v2.02a
Fully supported.
PGPDisk
v6.0.2i
Fully supported (Note: This is the version of PGPDisk supplied with freeware version of PGP v6.0.2i)
ScramDisk
v2.02g
Fully supported.
v3.xx
Fully supported.
TrueCrypt
v1.0
Fully supported.
v2.0
Fully supported.
v2.1
Fully supported.
v2.1a Fully supported.
v3.0a Fully supported.
v3.1 Fully supported.
v3.1a Fully supported.

Support for SecureStar's DriveCrypt is suspended due to the lack of API information published by SecureStar.

Support for PhysTechSoft's StrongDisk is currently under development, providing PhysTechSoft publish further API details.


Appendix E: PGP Public Key

To send PGP encrypted email to me, please feel free to use the following PGP public key block:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 6.0.2i

mQGiBDekay4RBADuX/QEq7W9POZ3V5xIGj4lpO4+LB+LhY2+ZMi0/jMtsMQg6niJ
ctPBjyKCmm0LwleojZyLo7ArJ1Bkw4dswYbaULEDC+nB4KEwOsJzfdceJ8jI063g
KFZylqpuhAdEKr0am1UScp91O9HndO/TvW+Tz26MGdpHZMSR6ppAISyhSQCg/+eD
Me3ocRdWgJRK3QFPqJ8sZ4sD/jOzuQoWEjcCS+9RCW3ciCbBdsdpeZ+JTSwwiurj
tQ+vOZVmDxx+rBuN2f20BqeXGA1ySaZBkO3FTEcctxN37v7lh7LVa2Has+RZyNL1
P35sTUgJW0/v6ZcevG4pTMhWjQWPQsUGKHVIvHekEDTy+aeYb3kUvZBWJVnQXgJC
3oc/A/9OzHJMDyyezEDdElqAggilPatwIM61WdtX6r0fWF+JG0KrrNCD3PS6FR3O
EVryJdhgqUnmgjUYap50w2IeAgcRronaI8rxaQJHpp2v213Tt8b2Bs/FkZ77AAzI
xLgvQUQkhL8GNf3gtEO8ATJXVB6yswTWgmOFzCHSMH4zYJziprQhU2FyYWggRGVh
biA8c2RlYW4xMkBtYWlsY2l0eS5jb20+iQBLBBARAgALBQI3pGsuBAsDAgEACgkQ
LdjfvvrOepcd6gCg4thdcr3LFCzS8ISjhIr9zlNnUq4AoLh9GDeBL7CppIouCXh5
KS/OCHytuQINBDekay4QCAD2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoB
p1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnh
V5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr
5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4
XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zaf
q9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpMgs7AAICB/9nhUFusOvGDXqL
4hLybdYuNaKy7ASL20fDN6pepcu+c3SEnEQkRLTkUm9iTUV5H4qnOxXGuoJ5qlAT
VMKKODSQI8hM+wA8lMXAPrgFOe2p8qmXl1IUFGebP8BFO+52ARcdHzYfkpbDReMi
/M+byUL8FBiS7y2bNQKdUUhsWDFiZNJHQbto+cEtHpeha6aqF86yWaT1KYnoFDzq
mIYOeENHXZ/ZLBjuCyVApYSI1/8ueD7vXFq3DvpiidpEmTjOswl6hKyHpNyeMWMv
1gsSR7V4yxIOctlzGpuOaigugpinBcCSYlbn1klkgqqlWBt9H/YNcOOAGJp/1QiF
8besoHK+iQBGBBgRAgAGBQI3pGsuAAoJEC3Y3776znqXT5wAoNRxr6bHZREJG/FW
XK1m5qGcjC6GAKDwY1TCImJHVg9rdHCmkf3XvEY3LQ==
=MAg0
-----END PGP PUBLIC KEY BLOCK-----

Email me at: sdean12@softhome.net

Return to the main page page