home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Disk&HD / DCN-DP12.LHA / DiskProtection / Docs / English / DiskProtection.doc < prev    next >
Encoding:
Text File  |  1996-05-27  |  71.9 KB  |  1,789 lines

  1. This is the documentation for DiskProtection 1.2.
  2.  
  3.    DiskProtection is a disk oriented data encryption package for the
  4. Amiga, that encrypts data while writing and decrypts while reading.
  5.  
  6.    DiskProtection is shareware and copyright 1994,95 by Patrick Ohly.
  7.  
  8. DiskProtection
  9. **************
  10.  
  11.    DiskProtection is a data encryption package for the Amiga, that
  12. transparently de- and encrypts data while accessing the disk.
  13.  
  14.    This manual describes DiskProtection V1.2.
  15.  
  16. Legal
  17. *****
  18.  
  19. Copyrights
  20. ==========
  21.  
  22. DiskProtection and its documentation
  23.      (C) 1994,95 by Patrick Ohly
  24.  
  25. xpkFEAL
  26.      (C) 1992,93 by Christian von Roques
  27.  
  28. FEAL-N
  29.      patented by
  30.      Intellectual Property Department, NTT
  31.      1-6 Uchisaiwai-cho, 1-chome, Chiyada-ku
  32.      100 Japan
  33.  
  34. xpkIDEA
  35.      (C) 1992 by André Beck
  36.  
  37. IDEA, International Data Encryption Algorithm
  38.      patented by
  39.      Ascom-Tech AG, Solothurn Lab
  40.      Postfach 151
  41.      4502 Solothurn, Schweiz
  42.  
  43. MD5 Message-Digest Algorithm
  44.      (C) 1990, RSA Data Security, Inc.
  45.  
  46. D3DES
  47.      (C) 1988-92 by Richard Outerbridge
  48.  
  49. Triton, GUI library
  50.      (C) 1993-1995 by Stefan Zeiger
  51.  
  52. Icons
  53.      (C) Michael-Wolfgang Hohmann (mickh@iM.Net). They may not be used
  54.      in other projects without his written permission.
  55.  
  56.    Registered Trademarks are not marked in this documentation!
  57.  
  58. Disclaimer
  59. ==========
  60.  
  61.        There is no warranty for the user of DiskProtection, to the
  62. extent permitted by applicable law.  Except when otherwise stated in
  63. writing the copyright holder or any other party which may distribute the
  64. packages provides the program "as is" without warranty of any kind,
  65. either expressed or implied, including, but not limited to, the implied
  66. warranties of merchantability and fitness for a particular purpose.
  67. The entire risk as to the quality and performance of the program is
  68. with you.  Should the program prove defective, you assume the cost of
  69. all necessary servicing, repair or correction.
  70.  
  71.        In no event unless required by applicable law or agreed to in
  72. writing will the copyright holder or any other party be liable to you
  73. for damages, including any general, special, incidental or
  74. consequential damages arising out of the use or inability to use the
  75. program (including but not limited to loss of data or data being
  76. rendered inaccurate or losses sustained by you or third parties or a
  77. failure of the program to operate with any other programs), even if the
  78. copyright holder or other party has been advised of the possibility of
  79. such damages.
  80.  
  81. Licence
  82. =======
  83.  
  84.    DiskProtection is distributed as shareware. The package may be
  85. distributed freely, as long as the following conditions are met:
  86.  
  87.   1. Any distribution has to contain all files of this archive without
  88.      any changes.
  89.  
  90.   2. This package may be freely distributed in mailboxes,
  91.      InterNet/UseNet, software libraries like the one from Fred Fish,
  92.      Aminet CD-ROMs and similiar electronic chanels.
  93.  
  94.   3. Disk magazines and other service providers that take additional
  95.      fees for transmitting the data are not allowed to distribute it
  96.      without permission of the author!
  97.  
  98.    Is you want to use the program regularly you should send me at least
  99. $15, 20,-DM or an equivalent amount in a different currency. Please keep
  100. in mind that cheques drawn on foreign banks are difficult to cash. Euro
  101. cheques and cash are prefered.
  102.  
  103.    In case the payment of the shareware fee is to difficult or the
  104. program is used to rarely to pay, I'm satisfied with an interessting
  105. postcard or any other small gift. To register please fill out the file
  106. Registration and send it to me by email or mail.
  107.  
  108.    This version of DiskProtection is not crippled in any way.
  109. Therefore the shareware fee is a payment for the goods you already have
  110. received, but also gives permission to use any future version.
  111. Registered users can be send the most recent version by email. However,
  112. this is only possible by mail if the nescessary postage is refunded,
  113. too.
  114.  
  115.    New, improved versions will be produced if I'm motivated enough and
  116. this concept works. Otherwise it might be possible that future releases
  117. will only be fully functional for registered users.
  118.  
  119. Survey
  120. ******
  121.  
  122.    DiskProtection encrypts data totally invisible for the user while
  123. writing to disk. All blocks are encrypted, so the directories are
  124. protected, too. DiskProtection supports all exec devices, i.e.
  125. harddrive partitions, floppy disks, but not the RAM-disk. Any
  126. filesystem can be used.
  127.  
  128.    Encryption uses IDEA, FEAL or DES. If the XPK-interface to
  129. sublibraries was improved, it would be possible to encrypt with these
  130. or other algorithms via XPK. Any number of passwords  can be used.
  131.  
  132.    Passwords are requested from the user on demand. They may be made
  133. resident in order to avoid requests after a reset. Therefore
  134. DiskProtection can be used for mailboxes without permanent
  135. control. Alternatively passwords can be hidden in arbitrary files. The
  136. computer may be protected from unauthorized use.
  137.  
  138.    There is a preferences program with GUI. The encryption of a
  139. partition can be changed anytime: It is automatically encrypted
  140. renewedly, so unencrypted data can be converted.
  141.  
  142.    DiskProtection needs an Amiga with at least OS 2.0. It has a
  143. graphic user interface designed with Triton V1.3. Locale is supported,
  144. catalogs and translations of the complete documentation exist in
  145. English and German. The documentation is included in AmigaGuide-,
  146. ASCII- and DVI-format and can be displayed as contextsensitive online
  147. help.
  148.  
  149. Installation of DiskProtection
  150. ******************************
  151.  
  152.    DiskProtection is installed with the Commodore installer. You have
  153. the choice between two different ways of installation: Everything in an
  154. own directory plus some assigns in user-startup or every part in that
  155. directory it is normally expected to be in.
  156.  
  157.    For testing DiskProtection without installing it is enough to set
  158. the nescessary assigns with MakeAssignsNote: When starting
  159. DiskProtection, it will always create the files
  160. ENV[ARC]:diskprot.prefs.
  161.  
  162.    DiskProtection is protected with PGP and MD5 checksums against
  163. manipulation. The installer script compares the checksums stored in the
  164. file DiskProtection.readme with the files belonging to them
  165. automatically.  The checksums themselves are protected with a PGP
  166. signature that has to be checked manually, though. To do this you start
  167. PGP with this file as its argument. My PGP public key is attached to
  168. this file. With the signatures on my public key you can consider if you
  169. want to trust it.
  170.  
  171.        Note for users of WB 2.04: The asl.library of these WB version
  172. doesn't offer a screenmode requester. DiskProtection uses the
  173. reqtools.library instead for this purpose, if installed. Without it you
  174. are still able to use all other features of DiskProtection, only
  175. selecting a screenmode is disabled.
  176.  
  177.    As reqtools.library is widely spread and not really required in
  178. DiskProtection it is not included in this archive. Look at AmiNet for
  179. /util/libs/ReqTools#?.lha, if you haven't got it.
  180.  
  181. Concept of DiskProtection
  182. *************************
  183.  
  184.    In this chapter the concept of DiskProtection is described.
  185.  
  186. Approach of DiskProtection
  187. ==========================
  188.  
  189.    There are a lot of programs encrypting files in many different ways.
  190. Most the time the disadvantage is that one can only use the file again
  191. in other programs after manually decrypting it or has to use programs
  192. capable of reading the file.
  193.  
  194.    One far more comfortable and flexible way to protect one's data is a
  195. filesystem or handler, encrypting data or controlling access to files.
  196. Solutions of this kind are e.g. MultiUserFilesystem and XFH, that
  197. supports the XPK libraries "IDEA" and "FEAL" for encryption. However,
  198. the directory and all filenames are still readable without knowing the
  199. correct password. So a stranger can still see what is on one's
  200. harddrive and gets some hints on the contents of a file. This knowledge
  201. could even be used for an attack.
  202.  
  203.    DiskProtection chooses a different approach. Its core is an exec
  204. device that encypts every single disk before it is written to floppy
  205. disk or harddrive. That way any filesystem can be used. Without this
  206. device and the password used to encrypt the disks one only gets an
  207. `Unreadable Disk", without any filename, directory or file contents
  208. readable in clear.
  209.  
  210.    This concept has a different disadvantage, though: Preferences can
  211. only be set for one unit and therefore only for one partition or disk
  212. as a whole.  Different encryption in different directories or of
  213. different files is not possible.
  214.  
  215. Units of the diskprot.devices
  216. =============================
  217.  
  218.    The diskprot.device is based on so called units like any other exec
  219. device.  In this case every DPUnit is an integral whole which can be
  220. configured independently from the others.
  221.  
  222.    As the diskprot.device does not access hardware itself, but uses
  223. other exec devices, too, the most important preference is which device
  224. and which of this device's units the DPUnit is to access. This might be
  225. "trackdisk.device", unit 0 for DF0:. Furthermore DiskProtection has
  226. to know which disks belong to one DPUnit in order to support harddrive
  227. partitions. Removeable media are specially supported. With them any
  228. number of media can be converted when changing encryption.
  229.  
  230.    The encryption style includes the algorithm, its mode and the
  231. password.
  232.  
  233. DOS-Drivers
  234. ===========
  235.  
  236.    To write data to a unit, one has to mount a DOS-device accessing
  237. this unit.  The MOUNT command requires entries in a Mountlist
  238. or--since Workbench 2.1--single files in the directories
  239. DEVS:DOSDrivers or SYS:Storage/DOSDrivers. The DOS-devices in
  240. DEVS:DOSDrivers are mounted automatically from 2.1 on from within the
  241. startup-sequence, while you have to enter the MOUNT command for every
  242. other DOS-device by hand.
  243.  
  244.    If the directory DEVS:DOSDrivers exists, then DiskProtection will
  245. create DOS-drivers there. Otherwise mount entries are managed in the
  246. file DEVS:DP-Mountlist. You have to add the argument FROM
  247. DEVS:DP-Mountlist to the MOUNT command then! DiskProtection can move
  248. DOS-drivers between DEVS:DOSDrivers and SYS:Storage/DOSDrivers.
  249. When using the mountlist you have to mount the DOS-devices manually.
  250.  
  251.    DiskProtection itself needs some of the information about a unit
  252. from the DOS-driver or mountlist, too: The device uses the entries
  253. SectorSize = BlockSizeSectorsPerTrack = BlocksPerTrack,
  254. BufMemType and Flags, if present.
  255.  
  256.    In order to convert a unit the DOS-drivers of the unit are scanned
  257. for LowCylHighCylSurfaces and SectorsPerTrack =
  258. BlocksPerTrack. Without this information cannot be converted.
  259.  
  260.        Warning: When manually creating a DOS-driver you should set
  261. STACKSIZE to at least 4000!
  262.  
  263. Encryption
  264. ==========
  265.  
  266.    DiskProtection can only use encryption algorithms that do not
  267. change the length of a data chunk. The data security lies in keeping
  268. the password secret, as the algorithms itselves are well known.
  269.  
  270.    There is a interface to the sublibraries of the XPK-packet.
  271. Unfortunately the present XPK-concept does not enable sublibraries
  272. encrypting a chunk without adding additional information. Therefore
  273. xpkIDEA and xpkFEAL were integrated into diskprot.device with
  274. permission of the authors. Should XPK be reworked, it could be possible
  275. to use sublibraries instead of these internal versions and write your
  276. own cryptographic algorithm for DiskProtection.
  277.  
  278.    You find more information on the background of cryptography in Basis.
  279.  
  280. Passwords
  281. =========
  282.  
  283.    DiskProtection knows different kinds of passwords, that are used
  284. differently. All have in common, though,  that no password text is
  285. saved anywhere on disk. Only the so called hash value of a password is
  286. saved (more on this topic in Hash Value). This value is only used to
  287. check an entered password. The hash value is not used for
  288. en/decryption, for this purpose the correct password is still needed.
  289.  
  290.                                    
  291.          There is no "trap door" to find a lost password from the
  292. program preferences!
  293.  
  294.    With passwords all characters are allowed and case is significant. A
  295. password may be nearly arbitrary long and does not have to be a single
  296. word.  A string of random characters or a long sentence would be most
  297. secure. You should never choose a single word with any relation to your
  298. name or person or found in a dictionary. A program looking for correct
  299. passwords would check this and variations of it at first. A good
  300. compromise is to remember a long sentence, but only using the first
  301. letters and punctuation marks. The result is often very random, but
  302. easy to remember.
  303.  
  304. Password Settings
  305. -----------------
  306.  
  307.    The problem with to many units and one password per unit would be
  308. that you were busy with typing passwords after a reset. On the other
  309. hand it could be desirable to protect an important unit with an own
  310. password. Both is possible with DiskProtection. You can create as
  311. many passwords as you like and set the password used for a unit.
  312.  
  313.    A password is requested the first time one of its units is accessed.
  314. Then you have an adjustable period to enter the password. The entered
  315. password is compared with the saved hash value. Incorrect passwords are
  316. rejected immediately. There are unlimited attempts. The request may be
  317. cancelled anytime.
  318.  
  319.    Has the period passed without a password being entered, e.g. because
  320. you are not at the computer, or the requester was cancelled, then the
  321. filesystem accessing the unit will no longer be suspended, but is
  322. denied to open the unit.
  323.  
  324.    Without this behaviour an application accessing the filesystem would
  325. be suspended, too, wich might not be desirable in certain
  326. circumstances. You may set the period to zero, which will leave the
  327. password requester open until it is removed manually.
  328.  
  329. System Password
  330. ---------------
  331.  
  332.    There is a special password that may not be deleted, but is
  333. adjustable, too: the system password. Of course you can configure it as
  334. any other password. It is used among others for encryption of the
  335. program's preferences file and to protect from unauthorized use of the
  336. prefs program.  Default text is an empty string, so in the requester a
  337. Return is enough.
  338.  
  339. Passwords after a Reset
  340. =======================
  341.  
  342.    Entering the passwords is a problem when the computer is running
  343. without control and is to continue its work after a reset, as needed
  344. for a mailbox.  A sysop might turn on the computer and enter all
  345. passwords, but after a reset, for example because of a crash, the
  346. computer would only boot as long as no password is needed. There are
  347. sollutions for this in DiskProtection:
  348.  
  349. Resident Password
  350. -----------------
  351.  
  352.    When a password is entered for the first time, e.g. after a cold
  353. start, DiskProtection can make it resident in memory and read it from
  354. memory after a reset.
  355.  
  356.    A weakness is the possible attack on DiskProtection. Although the
  357. passwords are encrypted in memory, the used password must always be the
  358. same and with analysing the program code one might find the passwords.
  359. In addition the passwords might not survive in memory, for example when
  360. a serious crash trashes memory.
  361.  
  362.    Nevertheless this option is still secure, because in order to grab
  363. the passwords one must have access to the computer after the passwords
  364. were entered and before the computer is turned off.
  365.  
  366. Hide in File
  367. ------------
  368.  
  369.    The disadvantage of the previous option is the unreliability wether
  370. the passwords survive a reset or not. If the reliable operation of the
  371. computer is more important than the security of the data, then you can
  372. choose another method:
  373.  
  374.    A password is read from an arbitrary position in an adjustable file.
  375. This file might be hidden in any directory or located on a disk, that
  376. might be removed if required. If the file is not present, the normal
  377. requester appears. This method might be used in addition to making a
  378. password resident. The file is only accessed when the password is not
  379. in RAM.  The password may extend over several lines, line ends are
  380. silently ignored.  If the file contents has changed on the next read it
  381. will be requested as usual without warning.
  382.  
  383. This method is insecure, though:
  384. The most important drawback is the system itself, as the computer allows
  385. access to encrypted data to any user without authentication, as long as
  386. the files the passwords are hidden in are present. Without any
  387. programming skills anybody can find these files as they are accessed
  388. from DiskProtection, e.g. with SnoopDos. Although the whole file is
  389. loaded at once, it is possible to find the password itself with
  390. analysis of the program code.
  391.  
  392. Access Verification
  393. ===================
  394.  
  395.    There is one weakness left in the system: After the computer is
  396. turned on and the passwords are entered, anyone can use it and read
  397. files from secret partitions. After entering the passwords it should be
  398. possible to lock the computer and all user input should be ignored.
  399.  
  400.    This realizes DiskProtection with opening a screen on pressing a
  401. hotkey and then filtering all user input for actions that might bring
  402. this screen to the background. In addition this screen is brought to
  403. front automatically in short periods. It is only removed after the
  404. system password is entered in the string gadget on this screen. To
  405. achieve this, DiskProtection establishs both an input handler and a
  406. commodity called DPSecurity. With Exchange you can en/disable and
  407. activate the access protection screen, too.
  408.  
  409.    You can make DiskProtection activate the access verification
  410. screen immediatly when opening diskprot.device the first time. Because
  411. it often happens that one leaves the computer for a short while and
  412. returns much later than expected due to some delays, the screen can be
  413. opened automatically like a screenblanker, in other words after an
  414. adjustable space of time passed without user activity.
  415.  
  416.    In contrast to the request of the system password nescessary to gain
  417. access to program's prefs file and that way indirectly to encrypted
  418. units, the security screen does not prevent the computer from booting!
  419. Therefore this option is strongly recommended if you really want to
  420. hide the system password in a file (Hide in File), because in this
  421. combination the computer starts, but grants access only after the
  422. system password was entered manually, too.
  423.  
  424.    If the screen cannot be opened, e.g. due to memory lack, one could
  425. lock the device itself until the screen can be opened again. So the
  426. "screenblanker" and "open on start" options would reliably prevent
  427. access to encrypted data. But that way a serious dead lock might occur:
  428. Memory is low and the screen cannot be opened. Therefore the device
  429. would be locked and an application could not save its data to an
  430. encrypted medium. So one could not quit programs in order to free
  431. memory => the computer is locked.
  432.  
  433.    Therefore the access verification will simply not be activated if
  434. the screen cannot be opened! When you activated it manually, you can
  435. react accordingly.  When using the screenblanker method there is an
  436. additional risk, but the screenblanker method is nothing you should
  437. depend on anyway as it activates itself after a certain delay. Finally
  438. you can very well infer from your experiences if there is enough memory
  439. to open the screen on startup.
  440.  
  441.    Such an access verification is realized by several programs. The
  442. drawback is always that--as in DiskProtection, too--these programs
  443. can easily be passed by on the Amiga, e.g. by not executing the
  444. startup-sequence or booting from floppy. However, with
  445. DiskProtection it is certain that no one can avoid this access
  446. verification while still using encrypted units, because both access
  447. verification and encryption are integrated into diskprot.device and one
  448. cannot use one, but avoid the other.
  449.  
  450. DiskProtection, Preferences
  451. ***************************
  452.  
  453.    With the prefs program DiskProtection you configure all settings of
  454. the DiskProtection package. It is named like the whole program
  455. package, but may be distinguished from that by its different text style.
  456.  
  457. Preferences Concept
  458. ===================
  459.  
  460.    DiskProtection is used almost like any other preferences program.
  461. Nevertheless there are some differences mentioned here:
  462.  
  463. Program Start: Arguments, Program Protection
  464. --------------------------------------------
  465.  
  466.    You have to enter the system password every time you start the
  467. program. So it is protected from unauthorized use. For this reason
  468. DiskProtection may only be used interactively with the graphic user
  469. interface. The arguments known from other preferences programs are not
  470. supported. There is only one single argument:
  471.  
  472.      PubScreen/K
  473.  
  474.    It may be given both in the shell and as a tooltype and makes
  475. DiskProtection open its windows on the named public screen.
  476.  
  477. Saving Prefs
  478. ------------
  479.  
  480.    If the DiskProtection prefs are not found or were manipulated, you
  481. are offered the choice to use the default prefs or cancel loading. When
  482. initializing DiskProtection by starting DiskProtection this happens
  483. twice, one time the diskprot.device and the other time the prefs
  484. program itself loading the prefs. The default password is an empty
  485. string.
  486.  
  487. Very important is also that you keep in mind that all prefs are stored
  488. at three different locations:
  489.  
  490.    * ENV[ARC]:DiskProtection.pref
  491.  
  492.      There are all preferences saved specific to DiskProtection:
  493.      units, passwords and global prefs. These files are protected from
  494.      manipulation with checksums and encryption with the system
  495.      password. The password texts themselves are not saved!
  496.  
  497.    * Units
  498.  
  499.      Every unit of DiskProtection is encrypted according to the
  500.      options set for it. If you change this options in
  501.      ENV[ARC]:DiskProtection.pref, e.g. the password, the whole
  502.      unit has to be converted in order to still be able to access the
  503.      files. Formating the unit after activating the new settings has
  504.      the same effect, but you loose all data.
  505.  
  506.    * DEVS:DosDrivers and SYS:Storage/DosDrivers or
  507.      DEVS:DP-Mountlist
  508.  
  509.      There are--as known from AmigaDOS--the DOS-drivers respectively
  510.      the mount entries the MOUNT command needs to mount a DOS-device
  511.      accessing the DPUnits.
  512.  
  513.    You can still change all settings in this single prefs programs.
  514. DiskProtection takes care that all three locations are consistent, even
  515. if the computer should crash while changing settings or settings are
  516. not saved although they were changed.
  517.  
  518.    All changes concerning DOS-drivers are saved immediately. Changes
  519. affecting the encryption of a unit are saved automatically after
  520. converting the corresponding unit.
  521.  
  522. Main Window of DiskProtection
  523. =============================
  524.  
  525.    The main window is split into five parts: unitspasswords,
  526. system encryption (below/in the password part), access
  527. verification and the standard gadgets for preferences.
  528.  
  529. Units and Passwords
  530. -------------------
  531.  
  532.    These both parts are used similar. Both units and passwords are
  533. displayed with their names in the corresponding listviews and may be
  534. selected there.  Units requiring conversion are marked with a prepended
  535. asterix (*).  You change the lists with the buttons below them.
  536.  
  537. New
  538. ...
  539.  
  540.    With the button New a new unit, resp. password is created. With
  541. units you are offered to select an already existing DOS-device, whose
  542. values are taken for the new unit (s.a. DOS-Device Selection). On
  543. demand a unit with default values is created, which requires additional
  544. manual configuration. For a new password default values are used, too,
  545. e.g.  "" as password text.
  546.  
  547. Edit
  548. ....
  549.  
  550.    With Edit the windows Edit DPUnit and Edit Password are opened for
  551. units, resp. passwords, where the selected entry of the listview in the
  552. main window is edited.
  553.  
  554. Remove
  555. ......
  556.  
  557.    Deleting units and passwords is not revertable, but before data is
  558. lost, you are always offered the chance to cancel. If a unit is
  559. encrypted, you will be asked to decrypt it. Now you can cancel,
  560. otherwise the unit is immediately deleted after succesfully converting
  561. it.
  562.  
  563.    If you remove a password, then its units are moved to the system
  564. password and, if nescessary, converted after confirmation. If a
  565. password contains no unit or they can be moved without conversion, the
  566. password will be deleted without warning!
  567.  
  568. System Password and Algorithm
  569. -----------------------------
  570.  
  571.    The check button gadget System Password refers to the password
  572. selected in the listview above it and defines which password is used as
  573. system password. Deselecting it makes the first password the system
  574. password.
  575.  
  576.    Below you choose the algorithm used for encryption of system data
  577. with the requester Algorithm and Mode Selection.
  578.  
  579. Access Verification Settings
  580. ----------------------------
  581.  
  582.    They are divided into one part for settings belonging to the screen
  583. and one part describing the way the access verification is activated:
  584.  
  585. Access Verification Hotkey
  586. ..........................
  587.  
  588.    With Hotkey you can set a key combination activating the access
  589. protection, as common in commodities.
  590.  
  591. Activate after # secs.
  592. ......................
  593.  
  594.    If the access verification is to be activated automatically after a
  595. certain period without user activity, then enter the desired period in
  596. seconds in Activate after # secs.. Zero disables this feature.
  597.  
  598. Activate at Startup
  599. ...................
  600.  
  601.    Finally you can activate the screen immediatly at the first
  602. invocation of diskprot.device by selecting the option At Startup.
  603.  
  604. Screen Settings
  605. ...............
  606.  
  607.    You can set the screenmode and -font used for the accesss protection
  608. screen with ASL-requesters.
  609.  
  610.        WB 2.04: Instead of the asl.library the reqtools.library has to
  611. be used for the screenmode requester. If it is not installed, this
  612. button will be disabled.
  613.  
  614. DiskProtection Screenblanker
  615. ............................
  616.  
  617.    Because the access verification screen always stays in front of any
  618. other screen, no screenblanker can fulfil its task, as it cannot bring
  619. its screen to front. So DiskProtection has an own builtin
  620. screenblanker, which reduces the brightness of the frontmost screen to
  621. an adjustable percentage (Dimmer) after a certain period of time
  622. (Blankertime). Zero disables this feature.
  623.  
  624.    This blanker does not work for custom screens! Even changing the
  625. colors of the workbench or a public screen is illegal and can result in
  626. incorrect colors.
  627.  
  628. Standard Gadgets
  629. ----------------
  630.  
  631.    The function of these gadgets should be familiar from other
  632. preferences programs:
  633.  
  634.    * Save--Save changes permanently in
  635.      ENVARC:DiskProtection.prefs
  636.  
  637.    * Use--Activate changes, but do not keep them permanently
  638.  
  639.    * Cancel--Quit and discard changes
  640.  
  641.    Keep in mind what was said in Preferences Concept:
  642. Even if you cancel or activate changes only temporary, it is still
  643. possible that some of the changes are saved permanently, because they
  644. affect DOS-drivers or the encryption of units.
  645.  
  646. Menus
  647. -----
  648.  
  649. DiskProtection has all standard menus of a preferences program:
  650.  
  651. Project
  652. .......
  653.  
  654.    In the menu Project there are two menu items. With About ... you
  655. get information about your version of DiskProtection. This includes the
  656. version and compilation date of the prefs program and the device.
  657. Quit exits the program without saving.
  658.  
  659. Edit
  660. ....
  661.  
  662.    With all three menu items of the menu Edit you set the current
  663. preferences back to certain presets. The limitations mentioned in
  664. Preferences Concept apply here, too. Converted units and changed
  665. DOS-drivers are not reset.
  666.  
  667.    * Reset to Defaults:
  668.      Resets only the options for access verification and system
  669.      algorithm to presets built-in the program.
  670.  
  671.    * Last Saved:
  672.      Restores the permanently saved preferences.
  673.  
  674.    * Restore:
  675.      Restores preferences active at program start.
  676.  
  677. Settings: Create Icons?
  678. .......................
  679.  
  680.    The menu Settings contains only one item. With Create Icons? you
  681. select if icons are created for DOS-drivers. DiskProtection will use the
  682. icon def_project.info found in ENV:Sys for that purpose, if present.
  683.  
  684. Edit DPUnit
  685. ===========
  686.  
  687.    In this window you change all settings for the unit selected in the
  688. main window. It is devided into the following parts:
  689.  
  690. Display of the DPUnit
  691. ---------------------
  692.  
  693.    In this part in the upper left window you are given the internal unit
  694. number. This is the number the filesystem has to use to open this unit
  695. of the diskprot.device. This number can not be changed and is set by the
  696. program in a way that avoids any overlap with existing or previous
  697. units.  Additionally it is shown if the unit has to be converted,
  698. because the settings where changed, but the unit is still not adapted.
  699.  
  700.    The name of the unit you can set here is of more practical use. It
  701. is used to identify the unit, e.g. in the listview of the main window.
  702. Therefore you should choose a meaningful name. Finally you set if the
  703. devices uses removeable media.
  704.  
  705. Data Protection Settings
  706. ------------------------
  707.  
  708.    In this group the settings concerning data encryption are combined.
  709. These settings can always be changed savely without data loss. If you
  710. change Algorithm or Password, you will have to convert the unit
  711. after accepting the changes with OK, however (s.a. Automatic Unit
  712. Change).
  713.  
  714. Data Encryption Algorithm
  715. .........................
  716.  
  717.    With Algorithm you invoke the requester Algorithm and Mode
  718. Selection to select the algorithm used for this unit.
  719.  
  720. Membership in a Password
  721. ........................
  722.  
  723.        Password sets the password of the unit. Default is the system
  724. password. When the new passwword was not already entered, then it is
  725. requested now before the unit can be added to it, because otherwise it
  726. would not be clear which way the unit is to be encrypted.
  727.  
  728. Advanced Options
  729. ----------------
  730.  
  731.    One should edit this options only if one knows what he is doing.
  732. Normally this options are set to the right values by selecting an
  733. existing device on creation of the unit. Only if no device was
  734. selected, this options are selectable immediatly. Otherwise Changing
  735. enabled has to be selected first, before the following can be changed:
  736.  
  737. Device
  738. ......
  739.  
  740.    In Device the exec device is given the DPUnit is based on. The
  741. device has to be trackdisk.device compatible.
  742.  
  743. Unit Number
  744. ...........
  745.  
  746.        Unit is the unit of the selected exec device that is accessed.
  747.  
  748. FFS Patch for Diskchanges
  749. .........................
  750.  
  751.        FFS Patch Enabled may be used with filesystem
  752. OFS/FFS/INTL/CACHE versions 2.04 upto 3.1. It must not be used with
  753. custom filesystems and exec devices that do not support the command
  754. TD_GETGEOMETRY.
  755.  
  756.    This patch enables the filesystem to recognize different media sizes
  757. after a diskchange. It is nescessary to use both HD and DD disks in one
  758. DPUnit.
  759.  
  760. Mountlist Files
  761. ---------------
  762.  
  763. There are the following methods to work on DOS-drivers:
  764.  
  765. DOS-Device: Listview and string gadget
  766. ......................................
  767.  
  768.    Every entry in the listview corresponds to a file in
  769. DEVS:DOSDrivers or SYS:Storage/DOSDrivers or an entry in
  770. DEVS:DP-Mountlist, in other words to a DOS-device. In the
  771. diskprot preferences is saved which DOS-devices where created.
  772. With the string gadget DOS-Device the name is changed.
  773.  
  774. New with DOS-drivers
  775. ....................
  776.  
  777.        New creates a new entry with default values here, too. You
  778. definitly have to enter some values manually!
  779.  
  780. Copy Mountlist Entry
  781. ....................
  782.  
  783.    With Copy the active entry is copied.
  784.  
  785. Edit Mountlist Entry
  786. ....................
  787.  
  788.    DOS-drivers are normal ASCII files. So Edit invokes the Editor set
  789. in the enviroment variable EDITOR.
  790.  
  791. Remove Mountlist Entry
  792. ......................
  793.  
  794.    The button Remove deletes the corresponding file(s)/mountlist entry
  795. and the entry in the listview.
  796.  
  797. Mount DOS-Device
  798. ................
  799.  
  800.        Mount mounts the DOS-device immediately. For this purpose the
  801. settings are used that were already active or the DPunit was created
  802. with, in other words not the settings only changed within the prefs
  803. program.
  804.  
  805. Mount DOS-Device at Startup?
  806. ............................
  807.  
  808.    With Mount at Startup you select within DiskProtection, if the
  809. DOS-device is mounted at startup of the computer. To achieve this the
  810. DOS-driver is moved between DEVS:DOSDrivers and
  811. SYS:Storage/DOSDrivers. This gadget is disabled when using the
  812. DP-Mountlist instead of DOS-drivers.
  813.  
  814. Edit Password
  815. =============
  816.  
  817.    In this window you make all selections for the password selected in
  818. the main window. The settings here affect units, too, for example
  819. changing the passwort text or adding a unit to this password.
  820.  
  821.    Therefore it is possible that you are asked if you want to convert
  822. units after accepting the changes (Automatic Unit Change). For this
  823. purpose DiskProtection creates an internal copy of the password and
  824. moves the units there. If you abort while converting, then not
  825. converted units are still useable with this second password without any
  826. further trouble.
  827.  
  828.    If you want to edit a password and the password text is not yet
  829. entered, you will be asked for it, on the one hand to add some further
  830. protection and on the other hand to be able to recognize units needing
  831. conversion. In addition the password must be entered to be able to hide
  832. it in a file.
  833.  
  834. Every password supports the following settings:
  835.  
  836. Identifies the Password
  837. -----------------------
  838.  
  839.    The string given in Password name is used to represent the password
  840. in listviews or in the password request.
  841.  
  842. Waiting Period for Password Input
  843. ---------------------------------
  844.  
  845.    The program aborts the passwort request after Waiting period
  846. seconds without user input automatically. Switched off with zero.
  847.  
  848. Setting a Password
  849. ------------------
  850.  
  851.    With Password you invoke a requester to set the text for the
  852. current password. For verification you have to enter the password
  853. twice, before you can accept it with OK. That way typos are avoided.
  854. This text is not saved, but its Hash Value!
  855.  
  856. Resident Password
  857. -----------------
  858.  
  859.        Resident defines if the password is made resident after
  860. entering it (Resident Password).
  861.  
  862. Hide Password in File
  863. ---------------------
  864.  
  865.        Hide toggles Hide in File of the password. If the password is
  866. not entered, the program will ask for it. If no Filename is set, then
  867. the corresponding string gadget is activated. Alternatively you can
  868. invoke a file requester with the gadget beside it.
  869.  
  870. Filename
  871. --------
  872.  
  873.    The file Filename will be searched for the password if Hide in File
  874. is enabled. If the password is not found there, you are warned and this
  875. feature is disabled automatically.
  876.  
  877. Units of a Password
  878. -------------------
  879.  
  880.    At the bottom you select the members of the password, at least if the
  881. current password is not the system password. For this purpose there are
  882. two listviews, DPUnits with System Password and Members of this
  883. password, which show the units that are members of the system password
  884. or the current password. <- and -> move the selected units between
  885. the both passwords. This change can cause units to need conversion.
  886.  
  887. Requesters of the Prefs program
  888. ===============================
  889.  
  890. Changing DPUnit Encryption automatically
  891. ----------------------------------------
  892.  
  893.    After changing settings affecting directly or indirectly the
  894. encryption of a unit you are asked, if and when you want to convert the
  895. affected unit.  Conversion is nescessary to still be able to access the
  896. files. Formating the unit after activating the new settings makes the
  897. medium useable, too, but you loose all data.
  898.  
  899.    In a requester you are offered the following options, which some of
  900. may be disabled depending on the context:
  901.  
  902.    * Now
  903.  
  904.      The unit is converted to its new state immediatly. If the
  905.      conversion is succesful then the changes concerning its encryption
  906.      will be saved permanently in the file
  907.      ENVARC:DiskProtection.pref.
  908.  
  909.    * Q-Format
  910.  
  911.      The new settings are always activated and saved permanently in the
  912.      file ENVARC:DiskProtection.pref. In addition, DiskProtection
  913.      tries to format the first valid valid DOS-device of this unit with
  914.      the option QUICK. It is mounted first if nescessary.
  915.  
  916.    * Later
  917.  
  918.      You may convert the unit later, too. That way you can move a unit
  919.      to another password and then change this password's text before
  920.      converting the unit only once. The first time you do not have to
  921.      convert it, it is enough to convert the data the second time.
  922.  
  923.    * Never
  924.  
  925.      The changes are remembered, but not saved yet, and can be
  926.      cancelled. In contrast to Later you are not asked to encrypt it
  927.      again.
  928.  
  929.    * Back
  930.  
  931.      Returns to the window you have just left without doing anything.
  932.  
  933.    * Cancel
  934.  
  935.      Neither is the unit converted nor are the encryption settings of
  936.      the unit changed.
  937.  
  938.    Saving or using preferences with units not yet converted causes this
  939. requester to pop up for any of these units. However, now you may not
  940. preserve changed settings for later conversion. In addition,
  941. Cancel saves the preferences, but without the cancelled changes
  942. of unit encryption.
  943.  
  944. DOS-Device Selection
  945. --------------------
  946.  
  947.    This requester appears on creation of a new unit. In a listview it
  948. offers all mounted DOS-devices suitable for DiskProtection. With
  949. OK a unit with the values of the selected DOS-device is created.
  950. Default Values ignores the selection and creates a new unit with
  951. default values as far as reasonable. You definitly have to enter some
  952. values manually in this case! Cancel finally quits the requester
  953. without creating a new unit.
  954.  
  955. Algorithm Method-Requester
  956. --------------------------
  957.  
  958.    With a listview gadget you select one of the currently available
  959. data encryption algorithms. Below you are given some information about
  960. the selected algorithm. You may set a mode of operation with the slider
  961. gadget below, provided that the current algorithm supports different
  962. modes.  Otherwise the gadget is disabled.
  963.  
  964. Windows/Requesters of the Device
  965. ********************************
  966.  
  967. Password Input
  968. ==============
  969.  
  970.    On entering a password there are two input modes: With one you are
  971. to enter a certain password. The program knows the hash value (s.a.
  972. Hash Value) of this password and complains about incorrect input
  973. immediatly. With the other you may enter new password text. In order to
  974. avoid typing errors you have to enter the pasword twice before it is
  975. accepted.
  976.  
  977. Depending on the context the window offers the following gadgets:
  978.  
  979.    * Text Display
  980.  
  981.      Here you finde messages of the program, e.g. the time left to
  982.      enter the password.
  983.  
  984.    * Password
  985.  
  986.      You enter the password here. When entering a new password the
  987.      string gadget is cleared after the first input and you have to
  988.      repeat the input.
  989.  
  990.    * OK
  991.  
  992.      Accepts the entered password.
  993.  
  994.    * Cancel
  995.  
  996.      Quits without returning a valid password.
  997.  
  998. Changing Encryption of a DPUnit
  999. ===============================
  1000.  
  1001.    This window is opened when a unit is to be converted to a different
  1002. encryption. The calling program part is told if the conversion took
  1003. place successfully.
  1004.  
  1005.    In the upper part you find information about the changes that are to
  1006. be made. Below is a status display with a fuel gauge, that represents
  1007. the cylinders already converted, and a text display.
  1008.  
  1009.    With the options you can set certain aspects of the conversion before
  1010. starting. Only verifing the written data is currently supported. After
  1011. selecting this option and inserting a medium, if nescessary, you begin
  1012. the conversion with Start. You do not have to convert anything:
  1013. Back quits the window as if the conversion was succesful.
  1014. Warning: This makes unconverted media unreadable in this unit,
  1015. because the encryption does not match the settings! Cancel leaves the
  1016. window without making changes.
  1017.  
  1018.    After starting the conversion the size of the inserted medium is
  1019. read. That way it is possible to convert both HD and DD disks in random
  1020. order. After that every single track is read, encrypted differently
  1021. again and written back. If an error occurs or you select Cancel a
  1022. requester dealing with the problem is opened (Conversion Errors).
  1023.  
  1024.    When the conversion of the current medium is finished it is possible
  1025. to convert further media with units supporting removeable media. Should
  1026. conversion be successful with some media but not with all, then
  1027. carefully consider if you want to quit the window with Back or
  1028. Cancel: With the first the converted media, with the second the
  1029. not converted ones are readable in this unit.
  1030.  
  1031. Conversion Errors
  1032. =================
  1033.  
  1034.    Should an error occur while converting a unit or conversion was
  1035. aborted then this requester gives an explanation of the problem and
  1036. offers this options to react:
  1037.  
  1038.    * Undo conversion
  1039.  
  1040.      All converted tracks are brought back to their previous state and
  1041.      preferences are not changed. The "conversion direction" may be
  1042.      toggled several times.
  1043.  
  1044.    * Repeat
  1045.  
  1046.      Try again to perform the last action.
  1047.  
  1048.    * Ignore
  1049.  
  1050.      Continue with the next track. All data of this track are lost! Not
  1051.      selectable with abortion by the user...
  1052.  
  1053.    * Back
  1054.  
  1055.      Quit conversion as if it was successful. Warning: All not
  1056.      converted tracks are lost. Therefore there is an additional
  1057.      warning requester. With removeable media this would have the same
  1058.      effect as Cancel and is not selectable for this reason.
  1059.  
  1060.    * Cancel
  1061.  
  1062.      Quits conversion as if you cancelled conversion before starting.
  1063.      Warning: All converted tracks are lost. Therefore there is an
  1064.      additional warning requester. With removeable media only the
  1065.      conversion of the current medium is cancelled.
  1066.  
  1067. DPInit
  1068. ******
  1069.  
  1070.    The DiskProtection system, e.g. the access verification, is
  1071. activated by invoking the prefs program or mounting a DPUnit. With
  1072. mounting the corresponding filesystem still has to be started, either
  1073. by adding MOUNT = 1 to the dosdriver or by accessing the device (e.g.
  1074. by CD DP_xx.
  1075.  
  1076.    Both is sometimes a certain overhead if you only need the access
  1077. verification. So there is the program DPInit, that does nothing else but
  1078. opening the diskprot.device. Only at the first start the system
  1079. password is requested. Afterwards the access verification is available.
  1080. However, DPUnits still have to be mounted normally. DPInit can be
  1081. called in the shell or from Workbench and returns error codes on
  1082. failures.
  1083.  
  1084. Basis of Cryptography
  1085. *********************
  1086.  
  1087. Hash Value
  1088. ==========
  1089.  
  1090.    A hash value is a number of fixed length that is generated with a
  1091. hash function of a string with variable length. A hash function
  1092. fulfilling the following conditions is called a one way hash function:
  1093.  
  1094.   1. It is easy to calculate the hash value of a string.
  1095.  
  1096.   2. It is hard to find a string generating a known hash value.
  1097.  
  1098.   3. It is hard to find a different string generating the same hash
  1099.      value as a known string.
  1100.  
  1101.  
  1102.    One way hash functions are used to create digital signatures for
  1103. messages.  In DiskProtection the one way hash function MD5
  1104. implemented by RSA Data Security Inc. is only used to check entered
  1105. passwords for correctness. The hash values of all passwords are saved
  1106. in the prefs file, all encrypted with the system encryption except of
  1107. the system password's hash value itself.
  1108.  
  1109.    Even if this hash value should be found by analysing the prefs file
  1110. format then it is unlikely that the corresponding password is found,
  1111. too, due to characteristic 2. Even if a password with the same hash
  1112. value is found, which would be accepted as the correct one after
  1113. entering it, this does not have to be the password used for encryption
  1114. and reading encrypted units will still fail.
  1115.  
  1116.    MD5 itself is used in PGP, too. It creates a 128-bit hash value,
  1117. long enough to make attacks with brute force hard. It seems to be safe
  1118. enough for the purpose of DiskProtection.
  1119.  
  1120. Block Encryption
  1121. ================
  1122.  
  1123.    Most encryption algorithms and especially all currently available in
  1124. DiskProtection encrypt a single chunk of data at once, usually 64
  1125. bits.  However, there are different ways to use this algorithms.
  1126.  
  1127.    The easiest way is to encrypt the chunks one by one independently of
  1128. the others (ECB--Electronic Code Book). Every chunk of plaintext always
  1129. maps to one chunk of ciphertext. This is a great weakness, as one pair
  1130. of known plaintext/cipertext would be enough to know the encryption of
  1131. certain byte series for one key. Additionally single chunks of
  1132. ciphertext could easily be replaced with ciphertext of another message,
  1133. which would not be noticed without checksums.
  1134.  
  1135.    By chaining the chunks with their predecessor these problems are
  1136. solved. In the CBC1 mode (Cipher Block Chaining) every chunk of
  1137. plaintext is XORed with the ciphertext of the preceding chunk before
  1138. encryption. That way encryption of a chunk depends on encryption of any
  1139. preceding chunk, although it is only trivially slower than ECB.
  1140.  
  1141.    There is still the problem that diskblocks are encrypted to the same
  1142. ciphertext up to the position they differ first. This reveals more
  1143. information than nescessary about the contents of a disk, which might be
  1144. useful for an attack. DiskProtection has a simple mechanism preventing
  1145. this: The first longword of any diskblock is xor-ed with value used to
  1146. access it and then it is encrypted. That way the begining of every
  1147. encrypted data is different and diskblocks with the same contents
  1148. result in totally different ciphertexts, too.
  1149.  
  1150.    Apart from this two modes and a multitude of several variants there
  1151. are two further modes, encrypting a certain number of bits per
  1152. encryption of one block (usually less than block size, e.g. one byte)
  1153. and using chaining, too: OFB and CFB. Both have advantages for
  1154. encrypting a stream of data, for example the connection between two
  1155. computers. For encrypting a diskblock there are no advantages.
  1156.  
  1157.    Even if you have the choice you should always use CBC for
  1158. DiskProtection, as far as possible. Please mind the special
  1159. features of a password for IDEA described in xpkIDEA.doc: With a
  1160. `normal' password IDEA.76 is safer than IDEA.100!
  1161.  
  1162. The DES Algorithm
  1163. =================
  1164.  
  1165.    DiskProtection includes the "Data Encryption Standard" DES in CBC1
  1166. mode.  With permission of the author the source code "D3DES" from
  1167. Richard Outerbridge was used. DES is based on the algorithm "Luzifer"
  1168. developed by IBM and adopted as a national standard for encryption of
  1169. unclassified government communication by the NBS (National Bureau of
  1170. Standards) in the U.S.A. in 1977.
  1171.  
  1172.    DES encrypts 64-bit blocks and uses a 56-bit key. Encryption and
  1173. decryption use the same algorithm but a different key schedule. Simply
  1174. said this algorithm performs 16 rounds of the same operations:
  1175. replacing and exchanging groups of bits depending on the key. DES is
  1176. easily implemented in hardware.  In contrast software implementations
  1177. are slower than other algorithms.
  1178.  
  1179. History
  1180. -------
  1181.  
  1182.    * 15.05.1973: public request by the NBS to submit proposals for a
  1183.      standard cryptographic algorithm--no suitable submissions
  1184.  
  1185.    * 27.08.1974: second request
  1186.      IBM offers the algorithm "Luzifer" developed in the early 70's for
  1187.      free use. The NSA (National Security Agency) reviewed the proposal
  1188.      and reduced the key length from 128 to 56 bits.
  1189.  
  1190.    * 1975: publication of the proposal and request for comments
  1191.  
  1192.    * 1976: two public workshops with lifely discussion about the inner
  1193.      working of the algorithm and the existence of a "trap door"
  1194.  
  1195.    * 15.01.1977: publication as the "Data Encryption Standard" (DES) and
  1196.      adoption by several standardisation organisations; since then
  1197.      intensive use by industry and banks
  1198.  
  1199.    * 1987: despite of objections of the NSA DES is reaffirmed as a
  1200.      standard
  1201.  
  1202.    * 1992: again reaffirmation of the standard, as there are no
  1203.      alternatives available
  1204.  
  1205. Security
  1206. --------
  1207.  
  1208.    Much was discussed if the NSA reviewing the algorithm installed a
  1209. "trap door" in DES apart from only shortening the key length, in order
  1210. to be able to decrypt DES encrypted data. This suspicion was neglected
  1211. by a statement of two IBM cryptographers and an investigation by the
  1212. U.S. senate, although many people remained unconvinced, because the
  1213. result of the investigation was classified and not published.
  1214.  
  1215.    Another topic was the key length of 56 bits. There are different
  1216. calculations of the costs nescessary to build a machine capable to
  1217. decrypt a message with brute force in a certain period. This
  1218. considerations all supposed that only big, national organisations like
  1219. the NSA were able to do so, but due to the technical development such a
  1220. machine would become cheaper and therefore more likely continuously.
  1221.  
  1222.    DES has proved to be resistent against several attacks, although
  1223. there are methods that are more efficient than brute force. Officially
  1224. DES was only cracked with reasonable effort with a lower number of
  1225. round than 16.  According to Bruce Schneier in 1993 the most efficient
  1226. attack on DES with 16 rounds, linear cryptoanalysis, still needs 2^43
  1227. known plain texts.
  1228.  
  1229. Use of IDEA and FEAL
  1230. ====================
  1231.  
  1232.    With permission of the authors slightly changed versions of xpkFEAL
  1233. and xpkIDEA are included in the current version of the diskprot.device,
  1234. because it is not possible to use the XPK-concept to access the existing
  1235. XPK-sublibraries. As the algorithms are the same as in the sublibraries,
  1236. please refer to the corresponding documentation: IDEA.doc and FEAL.doc.
  1237.  
  1238. The scramble algorithm
  1239. ======================
  1240.  
  1241.    Scramble is a very fast encryption algorithm, because it is extremly
  1242. simple - and therefore totally unsecure. It cannot really protect the
  1243. contents of your harddrives, but only obscure it. Scramble definitely
  1244. can and will be broken, if someone really tries to. However it is good
  1245. enough to make it impossible to read the data at the first glance.
  1246.  
  1247.    Scramble is based on xoring the data with a value calculated from
  1248. the password of the DPUnit and some other magic. This value is not the
  1249. same as the hash value saved in the prefs file, so you still have to
  1250. know the correct password. I will not tell any details, because the
  1251. (dubious) security of this algorithm depends partly on the fact that
  1252. the algorithm itself is unknown.
  1253.  
  1254. Known Bugs, Tips & Tricks
  1255. *************************
  1256.  
  1257. Requesting the System Password twice
  1258. ====================================
  1259.  
  1260.    When you do not enter the system password when starting
  1261. DiskProtection or accessing a unit, you may be asked twice to enter it,
  1262. even if you cancelled the first request. This may not be fixed in
  1263. DiskProtection. The password is requested when the diskprot.device is
  1264. opened. If no system password is entered, opening the device will fail.
  1265. The operation system itself tries to open the device again now, before
  1266. it finally gives up and returns control to the application.
  1267.  
  1268. DOS Errors with unencrypted DPUnits
  1269. ===================================
  1270.  
  1271.    When you select no encryption for a DPUnit you can access
  1272. unencrypted disks in this DOS-device. If the DOS-device normally used
  1273. to access them is mounted, too, then Amiga-DOS is reported the same
  1274. volume twice in different devices.
  1275.  
  1276.    DOS handles this situation badly. For example you are sometimes
  1277. requested to insert a volume already present. Some CLI commands can
  1278. still access this volume, others cannot. The same thing happens when
  1279. you make an exact copy of a disk without changing the date or name and
  1280. insert original and copy in different drives.
  1281.  
  1282.    The problem can be avoided if you access a volume always in the same
  1283. DOS-device, in other words only with the DPUnit or completely without
  1284. it.
  1285.  
  1286. Formating a DPUnit
  1287. ==================
  1288.  
  1289.    A medium doesn't have to be converted in order to use it in a
  1290. DPUnit. It's enough to format it in the DPUnit. The option QUICK can
  1291. be used.
  1292.  
  1293.    If a for example floppy disk is formated that way, DFx: is not
  1294. notified of the disk content's changes. Therefore a previously normaly
  1295. formated disk is still present, but at least at the next diskchange or
  1296. after the command DiskChange DFx: was issued the changes are
  1297. recognized.
  1298.  
  1299. Getting rid of the original Partition
  1300. =====================================
  1301.  
  1302.    When you have encrypted a partition, it is still mounted, although
  1303. it only recognizes a bad disk. With HDToolBox you can get rid of it:
  1304. Start HDToolBox, partition your drive, select the useless partition,
  1305. select Advanced Options and Change.... Deselect Automount this
  1306. partition, Ok (twice), Save Changes to Drive and exit.
  1307.  
  1308. Triton-Prefs for DiskProtection
  1309. ===============================
  1310.  
  1311.    A little hint: DiskProtection will look a bit nicer if you select
  1312. something different from the default grey as background pattern for all
  1313. windows with Images in the Triton prefs program, e.g.
  1314. Shine/Background.
  1315.  
  1316. History
  1317. *******
  1318.  
  1319.      N: New features
  1320.      C: Changed
  1321.      B: Bugfix
  1322.  
  1323.    * Release 1.0, 25.06.95
  1324.      (DiskProtection V1.0, diskprot.device V1.0)
  1325.      first public release
  1326.  
  1327.    * Release 1.0b, 22.07.95
  1328.      (DiskProtection V1.1, diskprot.device V1.1)
  1329.  
  1330.      B: now works with OS < 2.1 as promised: The program failed when
  1331.      locale.library was not available, although it does not depend upon
  1332.      it.  Stupid me ;-)
  1333.      B: In a mountlist "Flags" is now set to the correct value.
  1334.      C: cosmetic changes
  1335.      N: From now on there's a check for the preferences program's
  1336.      version, because a minimum version is required for use with a
  1337.      certain version of the diskprot.device. DiskProtection 1.0 does
  1338.      not perform this check, nevertheless you may not use this version
  1339.      anymore!
  1340.  
  1341.    * Release 1.0c, 02.08.95
  1342.      (DiskProtection V1.1, diskprot.device V1.2)
  1343.      B: conversion works with more devices, e.g. A2091 (reading drive
  1344.      geometry was buggy)
  1345.  
  1346.    * Release 1.0d, 03.08.95
  1347.      (DiskProtection V1.2, diskprot.device V1.3)
  1348.      B: TD_GETGEOMETRY is only used with trackdisk.device and
  1349.      carddisk.device => conversion works with all controllers that
  1350.      crash on unknown commands, too.
  1351.      B: Programs opening unit 0 could crash (e.g. SysInfo with the SCSI
  1352.      option), because unit 0 is only an internal unit. Fixed.
  1353.      N: patch to enable FFS to recognize different disk sizes
  1354.      N: Automatically created DPUnit names are unique now.
  1355.  
  1356.    * Release 1.0e, 08.08.95
  1357.      (DiskProtection V1.3, diskprot.device V1.3)
  1358.      B: TD_ADDCHANGEINT locked diskprot.device's IO with
  1359.      trackdisk.device => AFS didn't work. Fixed.
  1360.      N: DiskProtection offers a quick format instead of conversion, too.
  1361.  
  1362.    * Release 1.0f, 09.08.95
  1363.      (DiskProtection V1.4, diskprot.device V1.4)
  1364.      N: Only one DiskProtection prefs program may run at the same time.
  1365.      B: A msg port was not deleted.
  1366.      C: rewrote dosdriver inhibiting: some potential bugs removed
  1367.      C: minor code cleanup
  1368.  
  1369.    * Release 1.0g, 21.08.95
  1370.      (DiskProtection V1.5, diskprot.device V1.5)
  1371.      C: Diskblock encryption: From now on the first longword of every
  1372.      block is xor-ed with the block offset before encryption to make
  1373.      the ciphertext of blocks with the same contents different. This is
  1374.      slightly faster (up to 4%) than the old method of prepending the
  1375.      offset. That is still suported, so disks and partitions with older
  1376.      versions of DiskProtection can be used without changes. However,
  1377.      to use the faster method you have to decrypt the old DPUnit,
  1378.      delete it and create a new DPUnit.
  1379.      B: Resident passwords didn't work with OS2.04. Fixed.
  1380.      B: Changing a password's text was buggy and could sometimes lead
  1381.      to unpredictable results. Fixed.
  1382.      B: Some texts inadvertedly contained characters that caused Triton
  1383.      to crash. Fixed.
  1384.      N: With WB < 3.0 the reqtools screenmode requester is supported.
  1385.      C: Conversion window shows new password names instead of the old
  1386.      ones.
  1387.      C: DiskProtection requesters are no longer opened on the access
  1388.      verification screen.
  1389.      C: Added light/dark squares on both sides of the dimmer slider to
  1390.      make clear that "100%" means full brightness.
  1391.      C: Renamed the "DiskProtection Access Protection" to
  1392.      "DiskProtection Access Verification" on popular demand. (Better
  1393.      that way, Jussi?) :-)
  1394.  
  1395.    * Release 1.0h, 21.09.95
  1396.      (DiskProtection V1.6, diskprot.device V1.6)
  1397.      B: At startup sometimes the access verification was
  1398.      unintentionally activated. Fixed.
  1399.      B: The screenblanker didn't blank the mousepointer on screens with
  1400.      <256 colors. Fixed.
  1401.      C: If the screen blanker is already activated when the access
  1402.      verification automatically pops up it this screen will be dark,
  1403.      too.
  1404.  
  1405.    * Release 1.0i, 23.10.95
  1406.      (DiskProtection V1.6, diskprot.device V1.7)
  1407.      C: DPUnit conversion uses TD_PROTSTATUS only with trackdisk.device.
  1408.  
  1409.    * Release 1.0j, 02.11.95
  1410.      (DiskProtection V1.7, diskprot.device V1.7)
  1411.      N: More messages in the debugging version.
  1412.      B: Sometimes partitions were locked unnescessarily.
  1413.      C: Changed default button in one error requester you should never
  1414.      see anyway ;-)
  1415.  
  1416.    * Release 1.1, 16.11.95
  1417.      (DiskProtection V1.8, diskprot.device V1.8)
  1418.      C: Finally works with oktagon.device, too! The problem was that
  1419.      the task, that communicates with oktagon.device, has to be the one
  1420.      that opened the device.  DiskProtection however implemented
  1421.      opening and communication in different tasks...
  1422.      N: The user can make conversion take place even if locking a
  1423.      filesystem fails.
  1424.      C: Reduced width of some requester texts.
  1425.      C: Memory for kicktags is allocated at the end of a memory region
  1426.      first.  Increases stability of resident passwords.
  1427.      C: Device allows only trackdisk commands.
  1428.      B: System password was not requested when starting DiskProtection
  1429.      directly after reboot and this password was resident. Alas, now it
  1430.      is requested twice in some cases, but I prefer this solution.
  1431.  
  1432.    * Release 1.1a, 14.01.96
  1433.      (DiskProtection V1.8, diskprot.device V1.9)
  1434.      N: a fast and unsafe encryption algorithm: SCRM (Scramble)
  1435.      B: diskprot.device has to be in DEVS: in order to be able to mount
  1436.      DosDrivers in the startup-sequence. Fixed in the installer script.
  1437.  
  1438.    * Release 1.1b, 16.1.96
  1439.      (DiskProtection V1.9, diskprot.device V1.9, DPInit V0.1)
  1440.      N: DPInit
  1441.      N: ExampleXPK: example XPK sublibrary compatible with
  1442.      DiskProtection
  1443.      B: Sorting order in XPK sublibrary requester is no longer
  1444.      reversed. Why did nobody complain earlier? :-)
  1445.  
  1446.    * Release 1.1c, 19.1.96
  1447.      (DiskProtection V1.9, diskprot.device V1.10, DPInit V0.1)
  1448.      B: SCRM was buggy and unuseable. I learned one thing: Never ever
  1449.      hurry up with programming at the end of an amiga meeting! ;-)
  1450.      B: Forgot to include DPInit in the archive.
  1451.  
  1452.    * Release 1.1d, 25.05.96
  1453.      (DiskProtection V1.10, diskprot.device V1.11, DPInit V0.1)
  1454.      B: DiskProtection crashed when the locale.library became available
  1455.      only after diskprot.device was opened.
  1456.      B: DiskProtection takes care of [Max|Min]PkInChunk now.
  1457.      B: "Hide in File" did not find the password in short files and
  1458.      didn't close the file.
  1459.      C: rewrote xpkSCRM in optimized assembler
  1460.      N: Registration Requester
  1461.  
  1462.    * Release 1.2, 27.05.96
  1463.      (DiskProtection V1.10, diskprot.device V1.11, DPInit V1.0)
  1464.      C: bumped revisions
  1465.      C: changed DPInit icon
  1466.  
  1467. Future
  1468. ******
  1469.  
  1470.    There are some ideas that might find their way into future version of
  1471. DiskProtection. However, right now (16.11.95) only 3 persons have
  1472. registered and I have other interesting and profitable projects, so
  1473. I'll carefully think about implementing new features...
  1474.  
  1475.    * Make it possible to restore a DPUnit after a crash during
  1476.      conversion.
  1477.  
  1478.    * Implement a fast, but because of that also unsafer algorithm.
  1479.  
  1480.    * Hotkey(s) to remove resident passwords and/or the whole
  1481.      diskprotection system.
  1482.  
  1483.    * Speed optimization
  1484.  
  1485.    * Support more languages. I depend on your help here: My knowledge is
  1486.      limited to English and my native language German. You are very
  1487.      welcome to contact me. I will send you further information on how
  1488.      to create a catalog for DiskProtection then.
  1489.  
  1490.    * If a password is not entered, opening the device should not fail,
  1491.      but the device should report "no disk inserted" until the password
  1492.      is entered. Is there a need for that?
  1493.  
  1494.    If you have any suggestions, found some bugs or simply like the
  1495. program, do not hesitate to write me. Of course I would prefer the last
  1496. reason, especially if together with the message the shareware fee
  1497. arrives...  My address is given in Address.
  1498.  
  1499. Address of the Author
  1500. *********************
  1501.  
  1502.      Patrick Ohly
  1503.      Weechstr. 1, WG E0/1
  1504.      76131 Karlsruhe
  1505.      Germany
  1506.      
  1507.      Tel.: +49 721 615662
  1508.      eMail: patrick.ohly@stud.uni-karlsruhe.de
  1509.      IRC: Irish
  1510.      
  1511.      Bank Account:
  1512.      Sparkasse Karlsruhe, BLZ 660 501 01
  1513.      Konto--Nr. 100 621 31
  1514.  
  1515.    Please use eMail if possible--that way you will get response more
  1516. likely ;-)
  1517.  
  1518. Credits
  1519. *******
  1520.  
  1521.    A lot of thanks to (order without Deep Thoughts ;-):
  1522.  
  1523. Stefan Zeiger
  1524.      for the triton.library in general and especially for considering
  1525.      my wishes and suggestions
  1526.  
  1527. Richard Outerbridge
  1528.      for his DES source code
  1529.  
  1530. Angela Schmidt
  1531.      for her nice GadTools register number requester
  1532.  
  1533. Christian von Roques
  1534.      for xpkFEAL, informations about xpkmaster.library
  1535.  
  1536. André Beck
  1537.      for xpkIDEA and useful suggestions about encryption of disks
  1538.  
  1539. Bernhard Möllemann, Mark Rose, Samir Gajjar
  1540.      for beta testing, suggestions and criticism
  1541.  
  1542. Daniel Schrod
  1543.      for his efforts to convince me of the great profit of
  1544.      DiskProtection for mankind ;-), persistence and finally beta
  1545.      testing
  1546.  
  1547. Thomas Schröder
  1548.      for willingly lending me his Terry Pratchett books 8-)
  1549.  
  1550. Michael 'Mick' Hohmann
  1551.      for his NetWB-Icons (what a luck that only a few people saw my own
  1552.      try...)
  1553.  
  1554. Klaus Deppisch
  1555.      for his FFS patch
  1556.  
  1557. all I have forgot to mention
  1558.      for this and that
  1559.  
  1560. Default Values
  1561. **************
  1562.  
  1563.    * Access Verification
  1564.  
  1565.         - Hotkey: "CTRL ALT b"
  1566.  
  1567.         - Period: 300s
  1568.  
  1569.         - At Program Start: No
  1570.  
  1571.         - Screen: PAL/NTSC:LowRes, 320x200, 4 colors
  1572.  
  1573.         - Font: topaz 8
  1574.  
  1575.         - Dimmer: 100%
  1576.  
  1577.    * System Encryption: IDEA, Mode 100
  1578.  
  1579.    * Password Text: "" (empty string)
  1580.  
  1581. Glossar
  1582. *******
  1583.  
  1584. DES
  1585.      Data Encryption Standard: cryptographic algorithm
  1586.      standard algorithm of the U.S. government for unclassified data
  1587.  
  1588. DOS-device
  1589.      Offers access to IO hardware on the DOS side. Organizes data in
  1590.      files and directories and perhaps writes them as blocks to a data
  1591.      medium through an exec device. Examples: DF0:HD0:RAM:
  1592.      (the last does not use an exec device). Are created while booting
  1593.      or later with Mount.
  1594.  
  1595. (DP)Units
  1596.      Stands for a unit of the diskprot.device, but is also used for the
  1597.      medium encrypted with DiskProtection and the DOS-device created
  1598.      for this purpose.  If the meaning is obvious because of the
  1599.      context the DP is obmitted to increase readability.
  1600.  
  1601. Exec Device
  1602.      Offers access to IO hardware on the exec layer. Usually manages
  1603.      data as blocks. Examples: trackdisk.deviceramdrive.device
  1604.  
  1605. FEAL
  1606.      Fast Encryption Algorithm: a cryptographic algorithm
  1607.  
  1608. HASH Value
  1609.      Big number created from a string, but not giving any hint on this
  1610.      text and highly probably different for different strings.
  1611.  
  1612. Medium
  1613.      The actual data medium in a device. Example: floppy disk
  1614.  
  1615. IDEA
  1616.      International Data Encryption Algorithm: a cryptographic algorithm
  1617.  
  1618. Volume
  1619.      A single data medium as used from DOS. Is accessed by its name, no
  1620.      matter if it is inserted in any device right now. Examples: A
  1621.      certain formated floppy disk, Workbench: in contrast to
  1622.      HD0:.
  1623.  
  1624. Index
  1625. *****
  1626.  
  1627.  
  1628.  
  1629.  Access Verification                    Access Verification
  1630.  Access Verification (Prefs)            Access Verification Settings
  1631.  Activation of the Access Verification  Access Verification
  1632.  Address of the Author                  Address
  1633.  Advanced Options of a DPUnit           Advanced Options
  1634.  Algorithm Method-Requester             Algorithm and Mode Selection
  1635.  Algorithms, Requirements for           Encryption
  1636.  Approach of DiskProtection             Approach
  1637.  Arguments of DiskProtection (Prefs)    Program Start
  1638.  Author of DiskProtection               Address
  1639.  Bank Account                           Address
  1640.  Basis of Cryptography                  Basis
  1641.  Block Encryption                       Block Encryption
  1642.  Block Modes                            Block Encryption
  1643.  Block oriented encryption              Approach
  1644.  Bugs, known Shortages and              Question & Answer
  1645.  CBC                                    Block Encryption
  1646.  CFB                                    Block Encryption
  1647.  Change DPUnit Encryption?-Requester    Automatic Unit Change
  1648.  Changing Encryption of a DPUnit-RequesterUnit Conversion
  1649.  Characters in Passwords                Passwords
  1650.  Concept of DiskProtection              Concept
  1651.  Conversion Errors-Requester            Conversion Errors
  1652.  Copying of DiskProtection              Licence
  1653.  Copyrights                             Copyrights
  1654.  Create Icons?                          Settings
  1655.  Creating a Hash Value                  Hash Value
  1656.  Credits                                Credits
  1657.  Cryptography, Basis of                 Basis
  1658.  Data Encryption Standard               DES
  1659.  Data Protection Settings               Data Protection
  1660.  Default Values                         Default Values
  1661.  DES                                    DES
  1662.  Device versus Handler                  Approach
  1663.  Disclaimer                             Disclaimer
  1664.  DiskProtection (Prefs)                 DiskProtection
  1665.  DiskProtection (Prefs), Main Window of Main Window
  1666.  DiskProtection (Prefs), Menus of       Menus
  1667.  DiskProtection (Prefs), Starting       Program Start
  1668.  DiskProtection, Approach of            Approach
  1669.  DiskProtection, Author of              Address
  1670.  DiskProtection, Concept of             Concept
  1671.  DiskProtection, Copying of             Licence
  1672.  DiskProtection, Previous Versions of   History
  1673.  DiskProtection, Testing                Installation
  1674.  DiskProtection, Triton-Prefs for       Question & Answer
  1675.  DiskProtection, Units of               Units
  1676.  Display of the DPUnit                  DPUnit
  1677.  Distribution                           Licence
  1678.  DOS Errors with unencrypted DPUnits    Question & Answer
  1679.  DOS-Device Selection-Requester         DOS-Device Selection
  1680.  DOS-Drivers                            DOS-Drivers
  1681.  DP-Mountlist                           DOS-Drivers
  1682.  DPInit                                 DPInit
  1683.  DPUnit                                 Units
  1684.  DPUnit, Formating a                    Question & Answer
  1685.  DPUnits of a Password (Prefs)          Units of a Password
  1686.  ECB                                    Block Encryption
  1687.  Edit DOS-Drivers                       Mountlist Files
  1688.  Edit DPUnit Window                     Edit DPUnit
  1689.  Edit DPUnit: Advanced Options          Advanced Options
  1690.  Edit DPUnit: Data Protection           Data Protection
  1691.  Edit DPUnit: Display of the DPUnit     DPUnit
  1692.  Edit DPUnit: DOS-Drivers               Mountlist Files
  1693.  Edit Menu                              Edit Menu
  1694.  Edit Password Window                   Edit Password
  1695.  eMail-Address                          Address
  1696.  Encryption Algorithms                  Encryption
  1697.  Encryption of Disks                    Approach
  1698.  Encryption Styles                      Units
  1699.  Encryption, Block Modes                Block Encryption
  1700.  FEAL                                   IDEA and FEAL
  1701.  File for Hide Password                 Filename
  1702.  Formating a DPUnit                     Question & Answer
  1703.  Future                                 Future
  1704.  Glossar                                Glossar
  1705.  Hash Function                          Hash Value
  1706.  Hash Value, Creating a                 Hash Value
  1707.  Hash values of Passwords               Passwords
  1708.  Hide Password (Prefs)                  Hide
  1709.  Hide Password in File                  Hide in File
  1710.  History                                History
  1711.  IDEA                                   IDEA and FEAL
  1712.  Installation                           Installation
  1713.  Introduction                           Survey
  1714.  Known Bugs and Shortages               Question & Answer
  1715.  Licence                                Licence
  1716.  Listviews in the Main Window           Units and Passwords
  1717.  Luzifer                                DES
  1718.  Main Window of DiskProtection          Main Window
  1719.  Main Window, Access Verification       Access Verification Settings
  1720.  Main Window, Listviews in the          Units and Passwords
  1721.  Main Window, System Encryption         System Encryption
  1722.  MakeAssigns                            Installation
  1723.  Menu: Create Icons?                    Settings
  1724.  Menu: Edit                             Edit Menu
  1725.  Menu: Project                          Project
  1726.  Menus of DiskProtection (Prefs)        Menus
  1727.  Mounting a DPUnit                      DOS-Drivers
  1728.  OFB                                    Block Encryption
  1729.  One Way Hash Function                  Hash Value
  1730.  Online Encryption                      Approach
  1731.  Overview                               Survey
  1732.  Password Input                         Password
  1733.  Password Input-Requester               Password Input
  1734.  Password, DPUnits of a                 Password
  1735.  Password, Hidden in File               Hide in File
  1736.  Password, Hide in File (Prefs)         Hide
  1737.  Password, Request of a                 Password
  1738.  Password, Resident                     Resident Password
  1739.  Password, Setting DPUnits of a         Units of a Password
  1740.  Password, Settings of a                Password
  1741.  Passwords                              Passwords
  1742.  Passwords after a Reset                Reset
  1743.  Passwords, Allowed Characters in       Passwords
  1744.  Passwords, Hash Values of              Passwords
  1745.  Preferences Concept                    Preferences Concept
  1746.  Preferences of a DPUnit                Units
  1747.  Prefs Program of DiskProtection        DiskProtection
  1748.  Program Protection                     Program Start
  1749.  Program Versions                       History
  1750.  Project Menu                           Project
  1751.  Question & Answer                      Question & Answer
  1752.  Requester: Algorithm Method            Algorithm and Mode Selection
  1753.  Requester: Change DPUnit Encryption Immediatly?Automatic Unit Change
  1754.  Requester: Changing Encryption of a DPUnitUnit Conversion
  1755.  Requester: Conversion Errors           Conversion Errors
  1756.  Requester: DOS-Device Selection        DOS-Device Selection
  1757.  Requester: Password Input              Password Input
  1758.  Requesting the System Password twice   Question & Answer
  1759.  Reset, Passwords after a               Reset
  1760.  Resident Password                      Resident Password
  1761.  Saving Prefs                           Saving Prefs
  1762.  Scramble                               SCRM
  1763.  SCRM                                   SCRM
  1764.  Set Presets                            Edit Menu
  1765.  Settings of a Password                 Password
  1766.  Shareware                              Licence
  1767.  Shortages, known Bugs and              Question & Answer
  1768.  StackSize for DOS-Drivers              DOS-Drivers
  1769.  Starting DiskProtection (Prefs)        Program Start
  1770.  Survey                                 Survey
  1771.  System Encryption (Prefs)              System Encryption
  1772.  System Password                        System Password
  1773.  System Password, Default Value         Default Values
  1774.  System Password, Requesting twice      Question & Answer
  1775.  Testing DiskProtection                 Installation
  1776.  Time Limit for Password Input          Password
  1777.  Tips & Tricks                          Question & Answer
  1778.  Trademarks                             Copyrights
  1779.  Triton-Prefs for DiskProtection        Question & Answer
  1780.  Unencrypted DPUnits, DOS Errors with   Question & Answer
  1781.  Units of DiskProtection                Units
  1782.  Versions of the Program                History
  1783.  Window: `Edit DPUnit'                  Edit DPUnit
  1784.  Window: `Edit Password'                Edit Password
  1785.  XPK-sublibraries                       Encryption
  1786.  xpkFEAL                                IDEA and FEAL
  1787.  xpkIDEA                                IDEA and FEAL
  1788.  
  1789.