home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magic 1995 #1 / CDM_5.ISO / shell / mailers / im / imcrypt.arj / IMCRYPT.DNL < prev    next >
Encoding:
Text File  |  1993-12-27  |  15.3 KB  |  358 lines

  1.                         ImCrypt v0.2 alfa
  2.  
  3. Samenvatting
  4. ============
  5.  
  6. ImCrypt is een hulpmiddel voor MS-DOS platforms om het verzenden en ont-
  7. vangen van met PGP versleutelde berichten via FTN electronische betichten-
  8. netwerken te vergemakkelijken.
  9.  
  10. Het zoekt de netmail directory af naar persoonlijke berichten bestemd voor
  11. of afkomstig van personen wiens naam en adres overeenkomen met de aan het
  12. systeem bekende namen en adressen. Het isoleert van deze berichten de kale
  13. tekst van de headers en verborgen informatie en biedt de tekst ter ver- of
  14. ontsleuteling aan aan PGP. De nieuwe tekst wordt samen met de oude headers
  15. en de verborgen informatie weer samengevoegd tot een nieuw bericht.
  16.  
  17. ImCrypt is speciaal gemaakt voor InterMail 2.2. Deze alfa versie werkt
  18. uitsluitend met InterMail. Latere versies kunnen wel of niet voorzien zijn
  19. van uitbreidingen die het mogelijk maken samen te werken met andere mailers.
  20.  
  21. ImCrypt ?  geeft een klein helpscherm.
  22.  
  23.  
  24. Auteursrechtelijke bepalingen
  25. ==============================
  26.  
  27. InCrypt mag vrijelijk verspreid worden op iedere wijze, op voorwaarde dat
  28. alle bijbehorende files tezamen en ongewijzigd worden verspreid. Er mogen
  29. geen kosten worden berekend, anders dan de blote kosten van de verspreiding
  30. zelf. Ompakken naar een ander archiefformaat is toegestaan, evenals het
  31. bijplaatsen van een BBS header. Het verspreiden van anderszijds gewijzigde
  32. pakketten is niet toegestaan zonder voorafgaande toestemming van de auteur.
  33.  
  34. Niet commerciel gebruik binnen FidoNet (tm) of fidonetachtige omgevingen
  35. is gratis. Voor commerciel gebruik dient men van te voren de auteur te
  36. raadplegen.
  37.  
  38.  
  39. De broncode
  40. ===========
  41.  
  42. De broncode wordt samen met het pakket verspreid. Het voornaamste doel
  43. van de verspreiding is belangstellenden de mogelijkheid te geven zich er
  44. zelf van te overtuigen dat er geen gemene truuks in verwerkt zitten die
  45. het doel van versleuteling teniet zouden doen. 
  46. Ieder ander niet commerciel gebruik van de broncode, inclusief wijzigen
  47. voor eigen gebruik is toegestaan. Het is echter niet toegestaan gewijzigde
  48. versies van de broncode te verspreiden zonder voorafgaande toestemming van
  49. de auteur.
  50.  
  51.  
  52. De environment variabelen
  53. =========================
  54.  
  55. ImCrypt haalt een groot deel van de benodigde informatie uit de InterMail
  56. configuratiefile FD.SYS. Om deze file te vinden is het nodig dat de 
  57. DOS environment variabele "IM" gezet is en wijst naar de directory waar
  58. FD.SYS staat. Als ImCrypt vanuit de batch file waarin ook InterMail wordt
  59. aangeroepen draait, zal er geen probleem zijn.  Wordt ImCrypt vanaf de
  60. commandoregel aangeroepen, dan zal van te voren de variabele "IM" middels
  61. het DOS commado "SET" gezet moeten worden.
  62.  
  63. PGP sprint nogal ruim om met environment variabelen. Het kan nodig zijn
  64. de beschikbare ruimte voor de environment uit te breiden met het DOS
  65. SHELL commando.
  66.  
  67.  
  68. ImCrypt vindt de netmail directory, de semaphore directory, de AKA's en
  69. de namen van de users in FD.SYS.
  70.  
  71. Voor het ver- en ontsleutelen van berichten roept ImCrypt PGP aan. Daartoe
  72. zal hij PGP.EXE, de publieke en geheime sleutelring en de wachtwoordzin
  73. moeten kunnen vinden. Voor een uitleg van deze begrippen, zie het handboek
  74. van PGP.
  75.  
  76. Er zijn vijf manieren om ImCrypt te laten weten waar PGP.EXE is.
  77.  
  78. 1) PGP.EXE staat in de huidige directory.
  79.  
  80. 2) Via de environment variable "PGPPATH".
  81.  
  82. 3) Via het DOS path.
  83.  
  84. 4) Met de "p" optie in de configuratie file IMCRYPT.CFG
  85.  
  86. 5) Met de "p" optie op de comandoregel.
  87.  
  88. Als meer dan een van de bovengenoemde methoden actief is, heeft de later in
  89. dit lijstje genoemde de prioriteit. De tweede methode is alleen bruikbaar
  90. als PGP.EXE en de sleutelringen in dezelfde directory staan.
  91.  
  92. Later meer over de configuratiefile IMCRYPT.CFG en de commandoregel.
  93.  
  94. PGP moet de sleutelringen ergens kunnen vinden. Dat gaat middels de 
  95. environment variabele "PGPPATH". ImCrypt doet niets met deze variabele, 
  96. behalve als een laatste redmiddel om PGP.EXE te localiseren.
  97.  
  98. Wat ook nog nodig is, is de wachtwoordregel. (pass phrase) Een manier om het
  99. te doen is de environment variabele "PGPPASS". Lees de documentatie van
  100. PGP zorgvuldig na over het gebruik van deze variabele. Er zijn risico's
  101. aan verbonden en die worden goed uitgelegd in de doc van PGP. Het is
  102. het beste goed op de hoogte te zijn van de eventuele risico's alvorens
  103. deze methode te gebruiken.
  104.  
  105. Een andere manier is het gebruik van de "-b" optie in IMCRYPT.CFG of op de
  106. commandoregel. PGP wordt dan in interactieve mode gestart en vraagt zo nodig
  107. om de wachtwoordregel of andere informatie. Gebruik dit niet onbemand.
  108.  
  109.  
  110. De semaphores
  111. =============
  112.  
  113. InterMail maakt gebruik van een aantal zogenaamde semaphore files om andere
  114. programma's op de hoogte te houden van de stand van zaken. ImCrypt houd
  115. ook rekening met dit mechanisme. IMRESCAN.NOW en IERESCAN.NOW worden van
  116. een nieuw datum/tijdstempel voorzien als er iets aan de berichten in de
  117. netmail directiry is gewijzigd.
  118.  
  119. De semaphore IMRENUM.NOW is iets ingewikkelder. Deze is bedoeld om te voor-
  120. komen dat in een multitasker of netwerkomgeving twee of meer programma's
  121. tegelijkertijd proberen berichten in de netmail directory te hernummeren
  122. of te wijzigen. Hiervoor wordt een file lock gevraagd over een deel van
  123. de semaphore. Slaagt deze lock, dan kan ImCrypt aan de gang en moeten
  124. andere programma's zich onthouden van het hernummeren of wijzigen van de
  125. berichten in de netmail directory. Slaagt de lock niet, dan is er iemand
  126. anders bezig en moet ImCrypt wachten.
  127.  
  128. Een probleem is, dat in een single task omgeving de semaphore ook niet  
  129. gelockt kan worden. ImCrypt zou dan ten eeuwige dage blijven wachten.
  130. Om dit op te lossen is het nodig van te voren te weten of IMRENUM.NOW
  131. zoganaamd sharable is. Het mechanisme om dit te detecteren werkt als volgt:
  132.  
  133. Eerst wordt gekeken of SHARE geladen is. Zo ja, dan is de file sharable, zo
  134. niet, dan wordt gekeken of er mogelijk een netwerk aanwezig is. Er wordt
  135. getest op de aanwezigheid van MICROSOFT network, Lantastic, Starlan
  136. extended netbios en IPX. Is een van dezen geladen en staat de semaphore op
  137. drive F of hoger, dan wordt ook aangenomen dat de semaphore sharable is.
  138. Merk op dat de OS2 DOS box, SHARE simuleert.
  139.  
  140. Als niet aan bovenstaande is voldaan, wordt een single task omgeving aan-
  141. genomen en wordt IMRENUM.NOW genegeerd.
  142.  
  143. Omdat dit mechaniek niet perfect is en dus soms verkeerd kan uitpakken, is
  144. het mogelijk de automatiesche detectie uit te schakelen. Met de "+s" optie
  145. laat men dan weten, ten alle tijden het lock mechanisme voor IMRENUM.NOW te
  146. willen activeren en met de "-s" optie schakelt met het lock mechanisme uit.
  147.  
  148. Het log
  149. =======
  150.  
  151. ImCrypt voorziet in de mogelijkheid van het bijhouden van een logfile. Met
  152. de optie "l" schakelt men het log in. Een kale "l" schrijft naar IMCRYPT.LOG.
  153. Met "l=filespec" kan men een andere naam, eventueel voorzien van een volledig
  154. pad opgeven. Met "l=*" schrijft men naar de logfile van mailer #1. Dat mag
  155. alleen als mailer #1 nooit actief is als ImCrypt wordt aangeroepen, anders
  156. kan er een share violation ontstaan. Met een minteken voor de "l" geeft men
  157. aan de logfile iedere keer te willen overschrijven, inplaats van de nieuwe
  158. informatie aan het eind van een bestaande file te schrijven.
  159.  
  160.  
  161. Hoe werkt het?
  162. ==============
  163.  
  164. ImCrypt loopt de netmail directory af op zoek naar berichten aan of van
  165. de gebruikers van het systeem. Een bericht aan of van een gebruiker van het
  166. systeem wordt als zodanig herkend als de naam voorkomt in de namen die
  167. met "users" in de setup van InterMail zijn opgegeven en het bericht is
  168. geadresseerd aan of met een van de AKA's van het systeem. Bij het vergelijken
  169. van namen, wordt geen onderscheid gemaakt tussen hoofd- en kleine letters.
  170.  
  171. Bij het vinden van een uitgaand bericht, dat nog niet gemerkt is met de
  172. "send" vlag, zal ImCrypt het bericht testen op de eerste regel. Is dat een
  173. van de vier volgenden:
  174.  
  175. PGP ENCRYPT
  176. PGP SIGN ENCRYPT
  177. PGP SIGN
  178. PGP CLEARSIG
  179.  
  180. dan zal ImCrypt de kale tekst van het bericht isoleren en naar een tijdelijke
  181. file schrijven. Het zelfde gebeurd als een van deze regels gevonden wordt
  182. als "kludge", dwz verborgen achter een control A teken. In dat geval hoeft
  183. het niet de eerste regel te zijn. Er is voor zover bekend (nog) geen editor
  184. die zo'n kludge kan genereren, maar ja, je moet ergens beginnen.
  185.  
  186. De inhoud van de tijdelijke file wordt aangeboden aan PGP. Die maakt er
  187. versleutelde tekst van en die wordt samen met de oorspronkelijke headers
  188. en verborgen regels weer samengesteld tot een nieuw bericht. De regel met
  189. "PGP xxx" wordt niet naar het nieuwe bericht gecopieerd, In plaats daarvan
  190. wordt een verborgen regel met alleen "PGP" naar het nieuwe bericht geschre-
  191. ven. Het oude bericht krijgt de "send" vlag op gezet en het nieuwe bericht
  192. de "kill-send" vlag. Het oude bericht wordt dus nooit verstuurd en het nieuwe
  193. versleutelde bericht wordt na het versturen door de mailer verwijderd.
  194.  
  195. Als ImCrypt een nieuw binnengekomen bericht ontwaard, dat voor ons is
  196. bestemd en de in-transit vlag staat niet op, dan zal het zoeken naar de
  197. caracterestieke PGP header van vijf mintekens en de woorden "BEGIN PGP".
  198.  
  199. Worden die gevonden dan wordt de tekst weer naar een tijdelijke file
  200. geschreven, waarvan de inhoud ter ontsleuteling aan PGP wordt aangeboden.
  201. Afhankelijk van het al of niet aanwezig zijn van de "k" (keep) optie,
  202. wordt het oude bericht overschreven of wordt een nieuw bericht gemaakt 
  203. met de ontsleutelde tekst.
  204.  
  205. In geval het oude bericht niet wordt overschreven, wordt de eerste van de
  206. vijf mintekens in het bericht vervangen door een "*", zodat ImCrypt bij
  207. een eventuele volgende keer niet opnieuw het bericht aan PGP zal aanbieden.
  208.  
  209. ImCrypt is geschreven met het oogmerk het vanuit de batch aan te roepen.
  210. De aanroep moet dan geschieden, nadat er nieuwe berichten zijn binnengekomen,
  211. hetzij vanwege de mailer, hetzij vanwege de tosser. Ook moet ImCrypt
  212. worden aangeroepen voordat de tosser de te verzende netmail gaat packen of
  213. voordat de mailer nieuwe berichten gaat versturen.
  214.  
  215. Het is ook mogelijk ImCrypt met de hand aan te roepen vanaf de DOS prompt
  216. of vanuit de editor indien die die mogelijkheid heeft. Gebruik in dat
  217. geval de "-b" optie of zet de "PGPPASS" variabele met de hand met het DOS
  218. SET commando.
  219.  
  220. Opties
  221. ======
  222.  
  223. De werking van ImCrypt kan worden gestuurd door middel van opties.
  224.  
  225. Een optie is een letter al of niet gevolgd door een parameter.
  226. De letter mag voorafgegaan worden door een '/'. Tussen de letter
  227. en een eventuele parameter mag een '=' of ':' staan. Een minteken
  228. voor de letter geeft in het algemeen aan dat de betreffende functie wordt
  229. uitgeschakeld, maar kan in sommige gevallen ook een wijziging van de
  230. betreffende functie betekenen. Hoofd- en kleine letters zijn toegestaan.
  231. Meerdere opties worden gescheiden door spaties.
  232.  
  233. De optie 'l' bijvoorbeeld kan een een van de volgende vormen voorkomen:
  234.  
  235.  lFILENAME.EXT
  236.  l=FILENAAM.EXT
  237.  l:FILENAAM.EXT
  238.  /l:FILENAAM.EXT
  239.  /l=FILENAAM.EXT
  240.  -l
  241.  
  242. Filenamen mogen met een volledig pad ingegeven worden. In geval een
  243. directory moet worden ingegeven, is de backslash aan het eind facultatief.
  244.  
  245. Opties worden meegegeven op de commandoregel, gescheiden door een spatie
  246. of staan in een ASCII file IMCRYPT.CFG in de werkdirectory. In de config
  247. file moet 1 optie per regel staan, zonder spaties aan het begin of aan
  248. het eind. Commentaarregels zijn toegestaan. Die beginnen met een puntcomma.
  249.  
  250. Een config file is niet verplicht. Is een config file aanwezig, dan wordt
  251. die gelezen voordat de commandoregel wordt gescand. Opties op de commando-
  252. regel overschrijven dus de opties in de config file.
  253.  
  254. In alfabetische volgorde zijn de opties:
  255.  
  256.  -B  Schakel batch mode uit. PGP wordt in interactieve mode aangeroepen en
  257.      vraagt zonodig om extra gegevens. Niet gebruiken in onbemande opstelling.
  258.  
  259.  -D  Sla het ontsleutelen van binnengekomen berichten over.
  260.  
  261.  -E  Sla het versleutelen van uitgaande berichten over.
  262.  
  263.   K  Bewaar (keep) binnengekomen versleutelde berichten. de ontsleutelde
  264.      tekst wordt naar een nieuw bericht geschreven. Zonder deze optie 
  265.      wordt het bestaande bericht overschreven. Het gebruik van deze optie
  266.      wordt aangeraden voor de ontluisfase.
  267.  
  268.   L  Schakel het log mechanisme in. Met een enkele "l" wordt IMCRYPT.LOG
  269.      gebruikt. Een andere naam (en pad) kan worden gegeven met "l=<file>"
  270.      Met "l=*" wordt geschreven naar het log van mailer #1. Doe dat alleen
  271.      als mailer #1 nooit actief is als ImCrypt wordt aangeroepen. 
  272.      Een minteken voor de "l" zorgt er voor dat de logfile iedere keer
  273.      wordt overschreven in plaats van dat de informatie aan het eind van
  274.      de bestaande file wordt toegevoegd.
  275.  
  276.   P Geef een pad naar PGP.EXE. Als PGP niet in het DOS pad staat, geeft
  277.     men met "p=<directory>" aan waar PGP.EXE dan wel staat. Wordt deze optie
  278.     niet gebruikt en staat PGP ook niet in het DOS pad, dan zal ImCrypt
  279.     zoeken in de directory waar ook de sleutels staan. Faalt dat ook, dan
  280.     zal als laatste de huidige directory doorzocht worden.
  281.  
  282.  -S Schakelt het mechanisme voor het behandelen van de IMRENUM.NOW sema-
  283.     phore uit.
  284.  
  285.  +S Schakelt het mechanisme voor het behandelen van IMRENUM.NOW in, ook al
  286.     meent ImCrypt dat de semaphore niet shareble is.
  287.  
  288.   T Geef een directory voor tijdelijke files. Zowel ImCrypt als PGP maken
  289.     gebruik van tijdelijke files. Een andere manier om de tijdelijke files
  290.     op een bepaalde plaats te krijgen is door middel van de "TMP" environ-
  291.     ment variabele. Bij verstek plaatst ImCrypt tijdelijke files in
  292.     dezelfde directory als de semaphores. Het gebruik van een ramdisk
  293.     voor de tijdelijke files wordt aanbevolen.
  294.  
  295.   V (verbosity) Hiermee kan men de breedsprakigheid van ImCrypt beinvloeden.
  296.     Zonder deze optie staat die op 0. Met V=0, V=1 of V=2, kan men extra
  297.     informatie naar het scherm laten schrijven voor foutzoekdoeleinden.
  298.  
  299.  
  300. ImCrypt is geschreven in Turbo C en gecompileerd met het tiny model.
  301. Het is getest op 286 en 386 MS-DOS platforms draaiend met MS-DOS 5.0.
  302. Het is ook getest onder Novell 3.11. Er worden geen gekke dingen gedaan,
  303. dus er is geen reden om te veronderstellen dat het onder andsere DOS versie
  304. hoger dan 3.2 of met andere netwerken niet zou draaien, maar dit is niet
  305. getest.
  306.  
  307.  
  308. ImCrypt is getest met InterMail 2.25. Tenzij de structuur van FD.SYS
  309. drastiesch gewijzigd wordt, zal het met volgende versies ook nog wel
  310. werken. Het zal niet werken met vroegere versies van InterMail die nog
  311. geen 20 AKA's ondersteunden.
  312.  
  313.  
  314. VRIJWARING
  315. ==========
  316.  
  317. Alhoewel alle mogelijke moeite is gedaan om ongewenste neveneffecten te
  318. vermijden, aanvaardt de auteur geen enkele verantwoordelijkheid voor
  319. eventuele schade die voortvloeit uit het gebruik van ImCrypt. Als het
  320. wordt geinstaleerd, neemt het schijfruimte in beslag. Alles wat het nog
  321. meer doet is mooi meegenomen.
  322.  
  323.  
  324. ========
  325.  
  326. Fidonet is een handelmerk van Tom Jennings.
  327.  
  328. InterMail is een handelsmerk van Scandinavian PC sytems en Interzone 
  329. software inc.
  330.  
  331. MS-DOS, OS2 en Windows zijn handelsmerken van Microsoft corporation.
  332.  
  333. Lantastic is een handelsmerk van Artisoft corporation.
  334.  
  335. IPX is een product van Novell inc.
  336.  
  337. PGP (Pretty Good Privacy) is geschreven door Phillip Zimmermann.
  338.  
  339. =======
  340.  
  341. De volgende personen worden bedankt voor het aanleveren van suggesties,
  342. het opsporen van fouten en hulp bij het testen van ImCrypt.
  343.  
  344. Evert Bruinsma.
  345.  
  346. =========
  347.  
  348. Michiel van der Vlist (2:500/9.5)
  349. Dec 1993
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.