KnowHow

2
Dez
2005

Tipps zum vfat-Dateisystem unter Linux


Das vfat-Dateisystem bietet trotz der langjährigen Unterstützung unter Linux
immer noch viele Fallstricke. Anhand einiger praktischen Anwendungsfälle werden
diese aufgezeigt und Lösungen vorgestellt.


Inhalt
    1. Einleitung
    2. Abgleich von ext3- und vfat-Dateisystemen mit rsync
        2.1. Erforderliche Mountoptionen
        2.2. Anpassung der Systemzeit
        2.3. Beschränkung der Dateigröße
        2.4. Anwendung von rsync
    3. Probleme mit großen vfat-Dateisystemen
        3.1. Verlorene Cluster
        3.2. Hoher Hauptspeicherbedarf bei dosfsck
        3.3. Ausführen von dosfsck
        3.4. Formatieren eines großen vfat-Dateisystems
    4. Abschluss

1. Einleitung

Viele Linux-Anwender winken ab, wenn von vfat die Rede ist. Unter Linux gibt es
ausreichend viele Dateisystem-Alternativen, die technologisch überlegen sind. Ganz zu
schweigen von der rechtlichen Seite: der Versuch von Microsoft, Lizenzen mit
einem Patent auf ein vfat-Bestandteil einzufordern, hinterlässt ein ungutes
Gefühl.

Leider ist vfat jedoch immer noch die einfachste Möglichkeit, ein unter Linux
erstelltes Dateisystem der eingeschränkten Microsoftwelt zur Verfügung zu
stellen. Mit der steigenden Popularität von mobilen Datenträgern wie
CompactFlash-Karten, USB-Sticks und externen Firewire-Festplatten wuchs die
Bedeutung des "kleinsten gemeinsamen Nenners" vfat sogar.

Die im Folgenden festgehaltenen Erfahrungen habe ich bei der Arbeit mit zwei
externen 250GB-Firewire-Festplatten (Maxtor 5000XT) gesammelt. Während die eine
Festplatte mit ext3 formatiert wurde und meine speicherhungrigen Dateien sicher
aufnahm, benutzte ich die andere unter vfat als Sicherungskopie und als Brücke
zur Windowswelt.

Ein Sonderangebot für eine USB-250GB-Festplatte bei einem Lebensmitteldiscounter
erinnerte mich kürzlich daran, dass ich eigentlich meine Erfahrungen in einem
Artikel zusammenfassen wollte. Da mit wachsender Verbreitung auch der eine oder
andere Linux-Anwender auf die selben Probleme wie ich stoßen wird, hoffe ich,
mit diesem Artikel all jenen viele Stunden Problemanalyse zu ersparen. Mein
besonderer Dank gilt Uwe Menges, der mir als Mitstreiter dieser vfat-Odyssee
beistand.

2. Abgleich von ext3- und vfat-Dateisystemen mit rsync

Die Besonderheiten des vfat-Dateisystems, die in dieser Sektion Erwähnung
finden, sind natürlich nicht nur auf die Arbeit mit rsync beschränkt. Der Bezug
zu rsync eignet sich hier jedoch sehr gut als Beispiel, bei dem sich viele der
möglichen Schwierigkeiten mit vfat zeigen.

Wer rsync noch nicht kennt, sollte wissen, dass es anhand des Zeitpunktes der
letzten Veränderung und anhand der Dateigröße entscheidet, ob eine schon im
Zielpfad existierende Datei übertragen werden muss. Unter einem Unix-Dateisystem
würde ein rsync -av quelle/* ziel gewährleisten, dass alle Dateien
des Verzeichnisses quelle identisch im Verzeichnis
ziel vorhanden sind. Bei einem sofortigen zweiten Aufruf des
Befehls würden keine Dateien mehr übertragen werden.

Damit rsync die Dateien auf zwei so unterschiedlichen Dateisystemen wie vfat und
ext3 abgleichen kann, sind einige Voraussetzungen zu schaffen, die zuerst nicht
besonders offensichtlich sind.

2.1. Erforderliche Mountoptionen

Mountet man das vfat-Dateisystem ohne Mountoptionen, so wird ein normaler
Benutzer keinen Schreibzugriff darauf haben. Weiterhin wird einem die
Sonderbehandlung der MS-DOS-Dateinamen (DATEINAM.EXT) in Form von Kurznamen ein
Bein stellen:


> mount /dev/sda1 /myvfat -t vfat
> mount | grep sda1
/dev/sda1 on /myvfat type vfat (rw)
> grep sda1 /proc/mounts
/dev/sda1 /myvfat vfat rw,nodiratime,fmask=0033,dmask=0033 0 0

> cd /myvfat
> touch ABCDEFGH
> touch ABCDEFGHI
> ls -l
-rwxr--r--     1 root root     0 Dec 31 16:05 ABCDEFGHI
-rwxr--r--     1 root root     0 Dec 31 16:05 abcdefgh
# Man beachte die Kleinschreibung  -----------^

Man kann sich vorstellen, dass rsync nicht begeistert sein wird, wenn Dateinamen
plötzlich kleingeschrieben sind, nur weil sie zufällig in das MS-DOS-Dateischema
passen. Die Dateien werden in diesem Fall bei jedem Abgleich erneut übertragen,
obwohl eigentlich keine Änderung vorliegt, da rsync sehr wohl auf
Groß-/Kleinschreibung achtet. Die hierfür verantwortliche Standard-Mountoption heißt
shortname=lower.

Um dies zu verhindern, verwendet man die Option shortname=mixed,
die den Kurznamen genau so anzeigt, wie er beim Anlegen angegeben wurde. Wer auf
korrekte Sonderzeichen beim Umwandeln der Kurznamen Wert legt, darf noch die
Option codepage=850 setzen. In der Praxis sollte das Beibehalten
der Standard-Mountoption codepage=437 jedoch keine Auswirkungen
haben, da die überwiegend verwendeten, langen Dateinamen ohnehin in Unicode
gespeichert werden. Mit der Standard-Mountoption iocharset=iso8859-1
werden diese übrigens für Linux in 8-Bit-Dateinamen gewandelt. Wer also ein
Unicode-fähiges System hat (z.B. Fedora Core) muss iocharset=utf8

explizit angeben. Ich bin leider noch nicht so weit.

Die Datei-Berechtigungen richten sich nach der umask des mount-Benutzers root
und dessen Benutzer- und Gruppen-ID. Damit man auch als berechtigter Benutzer im
Dateisystem schreiben darf, setzt man am besten mit der Option
umask=002 für Gruppenmitglieder Lese-, Schreib- und
Ausführungsrechte. Alle anderen dürfen nicht schreibend zugreifen - es schadet
nie, ein Multi-User-System als ein solches zu behandeln! Mit der
Option gid=100, gehört dann - zumindest auf meinem Debian-System -
jede Datei der Gruppe "users". Und damit von vfat nach ext3 kopierte
Dateien nicht root als Besitzer hinterlegt bekommen, stellt man mit der Option
uid=1000 auch gleich die weiteren Besitzverhältnisse auf dem
vfat-Dateisystem klar. (Auf meinem System ist 1000 die Benutzer-ID meines
Benutzers "t", der Mitglied der Gruppe "users" ist.)



> mount /dev/sda1 /myvfat -t vfat -o shortname=mixed,codepage=850,umask=002,uid=1000,gid=100
> mount | grep sda1
/dev/sda1 on /myvfat type vfat (rw,shortname=mixed,codepage=850,umask=002,uid=1000,gid=100)
> grep sda1 /proc/mounts
/dev/sda1 /myvfat vfat rw,nodiratime,uid=1000,gid=100,fmask=0002,dmask=0002,codepage=cp850,shortname=mixed 0 0

> cd /myvfat
> ls -la
-rwxrwxr-x     1 t    users    0 Dec 31 16:05 ABCDEFGH
-rwxrwxr-x     1 t    users    0 Dec 31 16:05 ABCDEFGHI

Wer diese Optionen nun in der Datei »/etc/fstab« festhalten möchte,
kann gerne noch die Optionen noauto,user hinzufügen, damit das
Dateisystem nicht automatisch beim Systemstart gemountet wird, sondern von einem
normaler Benutzer gemountet werden kann. Die Option user impliziert
aus Sicherheitsgründen die Optionen noexec,nosuid,nodev. Da in
diesem Beispiel von einem externen Datenträger für Daten ausgegangen wird,
sollte das nicht stören. Wer das Ausführen von Programmen auf dem Dateisystem
erlauben möchte, setzt zusätzlich die Option exec. Als
Optimierungsmaßnahme könnte man nun noch die Aktualisierung des letzten
Dateizugriffs mit noatime,nodiratime ausschalten, falls man diese
Information nicht benötigt. Ich persönlich benutze jedoch die Angaben, um bei
Audiodateien zum Beispiel mit find -atime -21 meine Hörgewohnheiten
der letzten drei Wochen zu untersuchen.

Die resultierende fstab-Zeile sieht folgendermaßen aus:


/dev/sda1 /myvfat vfat shortname=mixed,codepage=850,umask=002,uid=1000,gid=100,noauto,user 0 0

> mount /myvfat
> mount | grep sda1
/dev/sda1 on /myvfat type vfat (rw,noexec,nosuid,nodev,shortname=mixed,codepage=850,umask=002,uid=1000,gid=100)
> grep sda1 /proc/mounts
/dev/sda1 /myvfat vfat rw,nodiratime,nosuid,nodev,noexec,uid=1000,gid=100,fmask=0002,dmask=0002,codepage=cp850,shortname=mixed 0 0

Für Details verweise ich an dieser Stelle auf die Manpage des mount-Befehls,
speziell auf die Sektionen "Mount options for fat" und "Mount options for vfat".

2.2. Anpassung der Systemzeit

Ein ganz hinterhältiges Problem lauert bei allen, deren Systemzeit auf
"Europe/Berlin" gestellt ist. Unix-Dateisysteme berücksichtigen nämlich im
Gegensatz zu vfat beim Anzeigen des Dateidatums sowohl Schaltsekunden in der
Vergangenheit als auch die Sommerzeit. Konkret bedeutet dies im Falle vfat, dass
der Zeitpunkt der letzten Änderung einer Datei, die im Januar angelegt wurde, im
Juni um eine Stunde verschoben ist. Bei jeder Zeitumstellung würde rsync
folglich alle Dateien neu übertragen.

Für die Neugierigen ein konkretes Beispiel:


# Auf vfat wird das Datum während der Sommerzeit mit der aktuellen
# Zeitzone (Sommerzeit) ergänzt und damit um eine Stunde verfälscht.
> TZ=Europe/Berlin ls -l --time-style=full-iso /myvfat/testfile
-rwxrwxrwx [...] 2003-11-26 02:53:02.000000000 +0200

# Auf ext3 wird das Datum auch während der Sommerzeit korrekt angezeigt:
> TZ=Europe/Berlin ls -l --time-style=full-iso /myext3/testfile
-rw-rw-rw- [...] 2003-11-26 02:53:02.000000000 +0100

Da ich keine Mountoption für vfat fand, mit der man die Zeitzone bestimmen
könnte, stellte ich die Systemzeit auf eine Zeitzone, die keine Sommerzeit kennt
(z.B. "UTC") und stellte sicher, dass alle Benutzer die lokale Zeitzone
"Europe/Berlin" eingestellt haben. Als Konsequenz werden nun allerdings auch
alle Zeitstempel von syslogd die von der lokalen Zeitzone abweichende
UTC-Zeitzone benutzen.

Unter Debian wäre hierfür ein Aufruf von base-config notwendig.
»Configure timezone«, »None of the above« und
»UTC« bringt einen zum Ziel. Jedenfalls sollte es danach in etwa so
aussehen:


> cat /etc/timezone
Etc/UTC

> ls -l /etc/localtime
[...] /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

# ~/.bash_profile
export TZ=Europe/Berlin

2.3. Beschränkung der Dateigröße

Unter Linux werden von vfat nur Dateien bis zwei Gigabyte Größe unterstützt. Größere Dateien
können zumindest zur Sicherheitskopie in kleinere Dateien aufgeteilt auf das
vfat-Dateisystem kopiert werden. Eine 5GB-cryptoloop-Datei sichere ich
beispielsweise mit folgendem Befehl in 2000MB-Stücken auf die externe
vfat-Festplatte:


> cd /myvfat
> split -d -b 2000m /myext3/cryptfile cryptfile_backup
> ls
cryptfile_backup00 cryptfile_backup01 cryptfile_backup02

Die Dateien mit einer Größe von über zwei Gigabyte müssen natürlich beim
Ausführen von rsync vom Kopiervorgang ausgenommen werden.

Im Falle eines Falles können die Datei-Stücke natürlich auch wieder
zusammengefügt werden:



# Linux
> cat cryptfile_backup00 cryptfile_backup01 cryptfile_backup02 > cryptfile
# DOS
> copy /b cryptfile_backup00 + cryptfile_backup01 + cryptfile_backup02 cryptfile

2.4. Anwendung von rsync

Auch beim Aufruf von rsync müssen die Besonderheiten von vfat berücksichtigt
werden. Da vfat symbolische Links, Berechtigungen, Besitzer, Gruppen und Geräte
nicht unterstützt, würde die Verwendung des Parameters -a, der die
zuvor genannten Punkte berücksichtigt, (abgesehen von Fehlermeldungen) keine
Auswirkungen haben. Deshalb beschränkt man sich am besten auf genau die
Parameter, die man tatsächlich benötigt:



-r, --recursive   Ordner rekursiv behandeln
-v, --verbose     übertragene Dateien anzeigen
-t, --times       Zeiteigenschaften erhalten
-n, --dry-run     Testlauf ohne Kopiervorgang
    --exclude     zu ignorierende Dateien

Da der Zeitpunkt der letzten Dateiänderung für rsync sehr wichtig ist, ist die
Option -t natürlich notwendig. Und um Überraschungen zu
vermeiden, empfehle ich, vor jedem rsync-Lauf den gewünschten Befehl mit der
Option -n zu testen.

Die letzte Hürde vor einem erfolgreichen Abgleich mit rsync ist die
Zeitauflösung des vfat-Zeitstempels. Diese beträgt nämlich etwas mehr als eine
Sekunde. Damit rsync nicht "auf die Sekunde genau ist", muss man eine zu
tolerierende Zeitabweichung von einer Sekunde mit der Option
--modify-window=1 einstellen.

Mit dem folgenden Befehl kann man somit endlich effizient die Dateien eines
ext3-Dateisystems auf ein vfat-Dateisystem übertragen.


> rsync -rvtn --modify-window=1 --exclude "lost+found" /myext3/* /myvfat

3. Probleme mit großen vfat-Dateisystemen

Das rasante Wachstum der Festplattengröße stellt die eher stiefmütterlich
weiterentwickelten dosfstools und vfat-Treiber vor Probleme.

3.1. Verlorene Cluster

Unter dem Linux-Kernel 2.4.x führt eine Begrenzung des Cluster-Datentyps zum
Datenverlust, sobald das vfat-Dateisystem mit etwa 130GB
gefüllt ist. Im Kernel 2.6.x wurde dieses Problem wohl eher zufällig behoben, als
viele Variablen konsequent mit einem neuen Typ versehen wurden. Eine
ausführliche Beschreibung des Bugs, eine Testsuite und einen Patch (von Erik
Andersen) findet man im »Linux-Kernel Archive«:
http://www.ussg.iu.edu/hypermail/linux/kernel/0312.0/1036.html
(Der Patch erlaubt übrigens auch Dateien mit einer Größe von bis zu vier
Gigabyte.)

Wer mit einem 2.4.x-Kernel arbeitet und dessen vfat-Partition entsprechend
gefüllt ist, darf sich demzufolge darauf gefasst machen, dass geschriebene
Daten in neu erstellten Verzeichnissen nach dem Unmounten verloren gehen. Die
betroffenen Dateien haben nach dem erneuten Mounten die Dateigröße 0 und die
Cluster hängen in der Luft. Mit dosfsck kann man die unzugeordneten Cluster
löschen.

3.2. Hoher Hauptspeicherbedarf bei dosfsck

Um die Dateisystemprüfung möglichst effizient durchzuführen, kopiert dosfsck
beide FATs in den Hauptspeicher. Bei dem sehr großen Dateisystem auf einer
250GB-Festplatte führt die hohe Clusteranzahl schnell zu einem enormen
Hauptspeicherbedarf, der meine 350MB (inlusive swap) knapp überstieg, so dass
dosfsck mit einem malloc-Fehler abbrach. Roman Hodek, der dosfsck-Maintainer,
schlägt vor das Programm auf »mmap()« umzustellen, weist jedoch
gleichzeitig darauf hin, dass die Umstellung aufwändig ist. Solange dies nicht
durchgeführt wird, sollte man also für ausreichend Hauptspeicher sorgen.

3.3. Ausführen von dosfsck

Solange das vfat-Dateisystem gemountet ist, kann dosfsck zwar ausgeführt werden,
doch schlagen durchgeführte Reparaturen stillschweigend fehl. Deshalb sollte
zuallererst sichergestellt werden, dass es nicht gemountet ist. Im folgenden
Beispiel wird ein durch den 2.4.x-Bug unzugeordneter Cluster gefunden und
gelöscht. Der Befehl fsck.vfat ist übrigens ein symbolischer Link
auf dosfsck.


> fsck.vfat -vr /dev/sda1
dosfsck 2.10 (22 Sep 2003)
dosfsck 2.10, 22 Sep 2003, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
     16384 bytes per cluster
        32 reserved sectors
First FAT starts at byte 16384 (sector 32)
         2 FATs, 32 bit entries
  39267840 bytes per FAT (= 76695 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 78552064 (sector 153422)
   9816944 data clusters (160840810496 bytes)
63 sectors/track, 255 heads
         0 hidden sectors
 314295660 sectors total
Checking for unused clusters.
Reclaimed 1 unused cluster (16384 bytes).
Checking free cluster summary.
Free cluster summary wrong (641900 vs. really 641901)
1) Correct
2) Don't correct
? 1
Perform changes ? (y/n) y
/dev/sda1: 143 files, 9175043/9816944 clusters

3.4. Formatieren eines großen vfat-Dateisystems

Beim Formatieren mit »mkfs.vfat« muss die Option -F 32
angegeben werden, damit ein 32-Bit-Dateisystem erzeugt wird. Ohne diese Option
wird standardmäßig je nach Größe ein 12- oder 16-Bit-Dateisystem erzeugt bzw.
der Formatierungsvorgang bricht bei einer zu großen Partition ab. Fat16
unterstützt nämlich nur Dateisysteme bis zu zwei Gigabyte, während Fat32 bis zu
zwei Terabyte ermöglicht.



> mkfs.vfat -F 32 /dev/sda1

4. Abschluss

Die zuvor beschriebenen Probleme haben mich viel Zeit gekostet. Doch der Luxus,
dass ich meine Arbeit ausschließlich mit Freier Software verrichten kann, ist
mir mehr wert. Deshalb möchte ich all den Entwicklern der hier besprochenen
Programme herzlich danken. Wenn der Leidensdruck durch die zuvor beschriebenen
Probleme groß genug wird, finden sich vielleicht auch Freiwillige, die die
noch offene Arbeit angehen.



Org. Link
Copyright (C) Torsten Scheck, Erschienen auf Pro-Linux

7
Nov
2005

Ändern der Konsolenauflösung

Dieses Thema beschäftigt sich mit dem ändern der Konsolenauflösung. Dies kann nützlich sein, benutzt man z.b. einen TFT Bildschirm. Ausserdem siehts einfach nur schön aus.
Was braucht man den?

Zuerst sollte man wissen, wie man eine der Konsolen aufruft: [#STRG#]+[#ALT#]+[#F1#] bis [#F6] Dann sollte man noch mit einem Texteditor umgehen können, und wissen wie man dateien öffnet, speichert, usw!
Welche Möglichkeiten gibt es?

Die Auflösung der Konsole kann man in 2 Dateien ändern: entweder in der menu.lst unter boot/grub/menu.lst oder in der grub.conf, im selben Verzeichnis wie die menu.lst datei. Allerdings habe ich keine grub.conf in meinem Grub-Ordner gefunden, weshalb ich hier nur die erste Möglichkeit, das ändern der Konsolenauflösung mit hilfe der menu.lst erläutern werde. Wenn jemand andere Möglichkeiten kennt, die Auflösung zu ändern - immer her damit!
Ändern der Konsolenauflösung in der Datei //menu.lst//

menu.lst als root öffnen, z.b. mit VIM oder einem anderem Texteditor:

sudo vim /boot/grub/menu.lst

Zum ändern der Konsolenauflösung einfach vga=[#Zahl#] hinter den aufruf des (Linux)Kernels setzten:

kernel /boot/kernels/vmlinuz-2.4.18-bf2.4 root=/dev/hda5 vga=791

Danach abspeichern, neu booten, freuen
Mögliche Auflösungen und deren Code (GRUB)

# vga=xxx sets the framebuffer console to a specific resolution.
# Here is a table you can use so it can help you decide
# what resolution you want to use:
# colour depth | 640x480 800x600 1024x768 1280x1024
# 256 (8bit) | 769 771 773 775
# 32000 (15bit) | 784 787 790 793
# 65000 (16bit) | 785 788 791 794
# 16.7 Mill. (24bit) | 786 789 792 795

Habe hier die komplette Liste inklusive “#” reingestellt, kann man sich einfach rauskopieren und in seine menu.lst kopieren, so weiß man immer was das vga=xxx bedeutet und kann einfach besser arbeiten
Mögliche Auflösungen und deren Code (Lilo)

Was bei grub funktioniert, geht auch bei Lilo. hier verweise ich aber, aus mangel an Erfahrung, auf http://www.pro-linux.de/t_system/framebuffer.html seite, PUNKT 3.
Was ist bei Fehlern?

Bei mir hat es zuerst nicht funktioniert mit hohen werten (vga=795). Sobald GDM startete (hab den NVIDIA treiber installiert der sich immer mit lädt dann), konnte ich die Konsolen nicht mehr betreten - man sah nur rosa-türkise Monsterpixel. Einfach mal in der Farbtiefe heruntergehen, bei vga=775 funktioniert es problemlos - und mehr als 256 Farben braucth man nicht, oder doch? Für Ergänzungen wäre ich sehr dankbar!

http://www.pro-linux.de/t_system/framebuffer.html http://ruslug.rutgers.edu/~mcgrof/grub-images/#0.3 , hier gibt es 2 Beispieldateien zum Download wie man einen Splashscreen einbindet, daraus habe ich die Modi übernommen


Org. Link

2
Nov
2005

UDL File Tutorial

Does your company change user names and passwords to your database often? Can your application access multiple databases, each one using different settings? Are you sick to death recompiling your application because you are hard coding data access settings?


Well, a UDL file just might be your savior.


If you are developing a COM+ application, the spiffy new constructor string may help you in a few instances, but, if you are accessing multiple databases, using different settings, even different drivers, then that option is out. A UDL (Universal Data Link), on the other hand allows you to create Data Link files on the fly, with out having to re-compile your application every time you add new databases, settings or passwords. I particularly like the way each UDL file can use different drivers, for example, Shape and standard SQL.


Now, lets look at connecting to a database more closely.


Before you can access data from OLE DB, you must provide specific connection Information, such as the following:

¤ The type of data that you want to access.
¤ The server on which the data resides.
¤ The database in which the data is stored.

So, to access a SQL database, you would have to provide the following:

¤ The OLE DB provider for SQL Server.
¤ A server name.
¤ A database name.
¤ User Name
¤ Password

OK, raise your hand if your code looks like one of these:


¤ No DSN

Dim MyConnection

 

Set MyConnection = New ADODB.Connection

 

With MyConnection

.ConnectionString = "driver={SQL Server}; server=srv;uid=sa;pwd=pwd;database=Pubs"

.ConnectionTimeout = 30

.Open

End With


¤ With DSN Connection

Dim MyConnection

 

Set MyConnection = New ADODB.Connection

 

With MyConnection

.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd;"

 .Open

End With

 

 As I have mentioned earlier, if you change anything to do with the connection parameters, you must manually change the setting, re-compile, then re-deploy, not very efficient. If you assess multiple databases, your problems are multiplied. Would you not like your code to look like this instead?

 

Dim MyConnection

 

Set MyConnection = New ADODB.Connection

 

With MyConnection

.ConnectionString = "File Name=" & <Path> & "\" & UDLName & ".UDL;"

 .CursorLocation = adUseClient

 .ConnectionTimeout = 0

 .CommandTimeout = 0

 .Open

  End With


I just pass the UDL name to the function and I am all set. I know you could just create a text file with all of your settings, but that would require extra steps to load in the text file, plus, the UDL interface guarantees your setting will be correct. Your UDL file can reside on the client, meaning you must add the UDL file to the set up package, or, as I like to do, place it on a server on the network/VPN, so you only have to change it once. This will also add a granularity level of security to the file.


Lets us now look at how you can create a UDL file:


¤ Windows 98/ME or Win NT.

1.     Right-clicking on the Desktop.

2.     Select New

3.     Select Microsoft Data Link to create a .udl file.

¤ Windows 2000

1.      Open Windows Explorer or My Computer. <o:p></o:p>

2.     Select the folder in which you want to save the .UDL file.

3.     On the File menu, click NEW and then click Text Document.

4.     Right-click on the text file you created in step 3, then click Rename. Type the new file name using a .udl file extension. Press Enter. For example. Myudl.UDL

5.     You may get a warning, message box, explaining that changing file extensions may cause files to become unusable. This is fine, click OK.


Once you have created the UDL file, you must now configure it:


  1. Double click on the UDL file to bring up the Data Link Properties Dialog Box.
  2. Click on the Providers tab and select the driver you wish to use.
  3. Click on the Connection tab and enter the connection properties, each driver will require different settings, so I will not go into much details. All drivers will require a user name and password.
  4. Click on the “Test Connection” button to verify your connection is working correctly. Change accordingly if you get an error.
  5. Select the advanced tab only if you require advanced settings.

You are all set, just paste in the following code to a sample application, change the <Path To UDL File> to the path you plan to store the UDL in, and take it for a spin.


Private Function CreateConnection(ByVal UDLFileName As String) As ADODB.Connection

Dim Con As ADODB.Connection


 Set Con = CreateObject("ADODB.Connection")


 With Con 'BTW, this code is for creating a disconnected recordset.

 .ConnectionString = "File Name=" & <Path To UDL File> & "\" & UDLFileName & ".UDL;"

 .CursorLocation = adUseClient

 .ConnectionTimeout = 120

 .CommandTimeout = 120

 .Open

 End With


 Set CreateConnection = Con

 Set Con = Nothing

Exit Function






Source: here

Create UDL files the easy way

The standard way to create a UDL file is to right-click in the directory where you want to create it and select the New-Microsoft Data Link menu command. Unfortunately, on many computers, this manual procedure won't work, because the file type "Microsoft Data Link" does not appear on the "New" menu.

The fix is easy, though: choose the "Text Document" file type, and then replace the .TXT extension with a .UDL extension. This is a known issue in Windows 2000, but I have also observed it on both my Windows NT 4.0 (SP4 with Visual Studio 6.0 Enterprise SP3) and Windows 98 Second Edition (with VB 6.0 Pro SP4) computers.

Expertise: beginner
Language: VB6
February 3, 2001
Source: here

13
Sep
2005

LG RH 7000 HDD Recorder ((Codefree schalten))

Falls das jemand nützt, der Hack ist nicht neu, aber er funktioniert auch bei diesem Gerät.

1) RC1 DVD einlegen (Player meldet falschen Regionalcode)
2) Lade öffnen und geöffnet lassen.
3) Auf der Fernbedienung langsam sieben mal die 0 (Null) drücken. (Playermeldung mit Enter bestätigen).

Codefree :)

6
Jul
2005

Microsoft WIndows Software Update Services

Remote Server Migration: Migrate Content and Approvals
Remote server migration requires that you share the Content folder on each SUS server you want to migrate to the WSUS server (or use the default share to access the content folder).

You do have to make sure that SUS is not synchronizing before you migrate content or approvals. You do not have to migrate both content and approvals from the remote SUS server. You can opt to initially migrate content and then migrate approvals at another time, or any number of combinations that suit your purpose.

Use WSUSutil.exe to migrate content and approvals from SUS to WSUS. For more information about WSUSutil.exe, see Migration Command-line Tool earlier in this guide.

If you intend to map SUS approvals to a WSUS computer group, first create the group on WSUS. For step-by-step instruction, see Create Computer Groups for Computers earlier in this guide.
To share remote content on SUS for migration to WSUS

1.


On the SUS computer, locate the SUS content store in the file system. By default, SUS content is stored in C:\SUS\Content\.

2.


Right-click the Content folder, and then click Sharing and Security (or Sharing, on computers running Windows 2000).

3.


In the Properties dialog box for the Content folder, click Share this folder.

4.


Click the Security tab, and ensure that the Everyone group has Read NTFS permissions for the Content folder.

5.


Click OK.

6.


Repeat this step on each SUS server you intend to migrate.
To migrate remote content and approvals from SUS and map approvals to a custom computer group on WSUS

1.


At the command prompt, navigate to the folder that contains WSUSutil.exe.

2.


Type the following:

wsusutil.exe migratesus /content LocationOfRemoteSUSContent /approvals SUSServerName "WSUSTargetGroupName" /logfilename

For example:

wsusutil.exe migratesus /content \\sus1\content\cabs /approvals sus1 "all desktops" /log remote_migration.log
To migrate local content and approvals from SUS and map approvals to the All Computers target group in WSUS

1.


At the command prompt, navigate to the folder that contains WSUSutil.exe.

2.


Type the following:

wsusutil.exe migratesus /content LocationOfRemoteSUSContent /approvals SUSServerName /logfilename

For example:

wsusutil.exe migratesus /content \\sus1\content\cabs \approvals sus1 \\log remote_migration.log
To migrate only remote content

1.


At the command prompt, navigate to the folder that contains WSUSutil.exe.

2.


Type the following:

wsusutil.exe migratesus /content LocationOfRemoteSUSContent /log filename

For example:

wsusutil.exe migratesus /content \\sus1\content\cabs /approvals sus1 /log remote_migration.log
To migrate only remote approvals

1.


At the command prompt, navigate to the folder that contains WSUSutil.exe

2.


Type the following:

wsusutil.exe migratesus /approvals SUSServerName /log filename

For example:

wsusutil.exe migratesus /approvals sus1 /log remote_migration.log
Top of pageTop of page
Step 3 Remote Server Migration: Test WSUS (Optional)

Any computer that is going to connect to WSUS must have the WSUS client. When you installed WSUS, the client self-update feature was set up automatically by the WSUS installer.
To deploy the WSUS client software for testing


Deploy the WSUS client in your environment to test WSUS (optional). See Update Automatic Updates earlier in this guide for instruction.
Top of pageTop of page
Step 4 Remote Server Migration: Point SUS Clients to WSUS

Point the SUS clients to WSUS. As the SUS clients check in with the WSUS server, they will find the WSUS Web site and self-update to the WSUS client.
To point SUS clients to WSUS


Use Group Policy or registry settings to point SUS clients to WSUS. See Determine a Method to Configure Automatic Updates Clients earlier in this guide for instruction.


Org. Link

5
Jul
2005

Gnome Display Manager Reference Manual

Graphical Greeter Themes

This section describes the creation of themes for the Graphical
Greeter. For examples including screenshots, see the standard installed
themes and the themes from
the theme website.

Theme Overview

GDM Themes can be created by creating an XML file that follows the
specification in gui/greeter/greeter.dtd. Theme files are stored
in the directory <share>/gdm/themes/<theme_name>.
Usually this would be under /usr/share. The theme directory should contain a
file called GdmGreeterTheme.desktop which has similar format to other
.desktop files and looks like:


     [GdmGreeterTheme]
     Encoding=UTF-8
     Greeter=circles.xml
     Name=Circles
     Description=Theme with blue circles
     Author=Bond, James Bond
     Copyright=(c) 2002 Bond, James Bond
     Screenshot=screenshot.png

The Name, Description, Author and Copyright fields can be translated just
like the other .desktopfiles. All the files that are mentioned should
be in the theme directory itself. The Screenshot field points to a file
which should be a 200x150 screenshot of the theme in action (it is OK
not to have one, but it makes it nicer for user). The Greeter field points
to an XML file that contains the description of the theme. The description
will be given later.

Once you have theme ready and installed you can test it with the installed
gdmthemetester script. This script assumes that you also have installed
the Xnest X server. It takes two arguments, first the environment that
should be used. This is one of console, console-timed, flexi, remote-flexi,
xdmcp. Where console is a standard console login, console-timed is a
console login with a timed login going on, flexi is for any local
flexible server, remote-flexi is for flexi server that is not local (such
as an Xnest flexiserver run from a remote display) and xdmcp is for remote
xdmcp connections. The second argument is the theme name. So for example
to test how things look in the xdmcp mode with the circles theme you would
run:

gdmthemetester xdmcp circles
Be sure to test all the environments with your theme, and make sure to test
how the caps lock warning looks by pressing caps lock. This is also a good
way to take screenshots, just take a screenshot of the Xnest window. This
can be done in GNOME by focusing the Xnest window and pressing
Alt-PrintScreen.

Once you have all this done, then make a tarball that contains the directory
name (so that you could just untar it in the /usr/share/gdm/themes directory).
And this is the tarball you distribute and people can install from the
graphical setup program. You can do this with the commands:


     cd /usr/share/gdm/themes
     tar czvf <theme_name>.tar.gz <theme_name>/

Detailed Description of Theme XML format

Box Nodes

Box nodes are container nodes for item nodes. Box nodes are
specified as follows:


     <box orientation="alignment" min-width="num" xpadding="num"
      ypadding="num" spacing="num" homogeneous="bool">
Where "num" means number and bool means either "true"
or "false". The alignment value can be either "horizontal" or "vertical".
If you leave any property off it will default to
zero or "false" in case of "homogeneous", and "vertical" for
the orientation.

If the box is homogeneous then the children are allocated equal
amount of space.

The "min-width" must be specified in pixels. Obviously there is
also a corresponding "min-height" property as well.

Fixed Nodes

Fixed is a container that just has it's children scattered about
layed out with precise coordinates. The size of this container
is the biggest rectangle that contains all the children. Fixed
has no extra properties and so you just use:


     <fixed>

Then you put other items with proper position nodes inside this.

The "toplevel" node is really just like a fixed node.

Item Nodes

A GDM Theme is created by specifying a hierarchy of item and box
nodes. Item nodes can have the following value for "type":

entry

Text entry field.

list

A list widget.

label

A text label. Must have a "text" node to specify the text.

pixmap

An pixmap image in a format that gdk-pixbuf supports like
PNG, JPEG, Tiff, etc...)

rect

Rectangle.

svg

Scaled Vector Graphic image.

For example:


       <item type="label">

Items can specify ID values which gives them a specific look
and feel or formatting. Furthermore you can customize the login
process by adding custom widgets with custom id's for some items
(currently only the list item)

Entry items can have id values as follows:

user-pw-entry

Entry field for userid and password entry. This is
the field used for responses for the PAM/GDM questions
(Username, Password, etc..).

List items can have id values as follows:

userlist

A user browser list, so that users can pick
their username by clicking on this instead
of typing.

Furthermore, you can have an arbitrary id (I'd recommend starting
the id with 'custom' not to conflict with future additions to this
spec) and ask extra information of the user. See the section
'Custom Widgetry'

Label items can have id values as follows:

clock

Label the displays the date and time.

pam-prompt

Label the displays PAM prompt. This is the prompt that
PAM uses to ask for username, password, etc...

pam-error

Label the displays PAM/GDM error messages. Such as when
user can't log in.

pam-message

Label the displays PAM message. These are messages that
PAM/GDM gives about state of the account, help about the
prompts and other information.

timed-label

Label that displays timed login information.

Rectangles can have id values as follows:

caps-lock-warning

Displays an icon that shows if the
CAPS LOCK key is depressed. This rectangle
will be hidden/shown appropriately

If an item is of type rect, the item can be a button. Buttons
must also include a "button" value as follows:


       <item type="rect" id="disconnect_button" button="true">.

Possible values for button ids are as follows:

chooser_button

Runs the XDMCP chooser.

config_button

Runs the GDM Setup program.

disconnect_button

Disconnect from remote session.

language_button

Displays the language selection dialog.

halt_button

Halt (shuts down) the system.

reboot_button

Reboot the system.

session_button

List and select from available sessions.

suspend_button

Suspend the system.

system_button

Perform halt/reboot/suspend/etc. options
(if allowed by gdm configuration). Also
allows user to run configurator if user
enters root password (again if allowed
by gdm configuration). This is usually
now labeled Actions, and referred to as
the Actions menu.

Position Node

Each item can specify its position and size via the "pos" node.
For example:


       <pos x="0" y="4" width="100%" height="100%"/>

Both position and size can be given in percent and it will be taken
as the percentage of the size of the current container. For toplevel
items it's the percentage of the whole screen.

For x and y, you can also specify a negative position which means position
from the right or bottom edge. But this only applies with absolute
coordinates. With percentage you can specify negative position and
it will be still from the same edge.

The position also specifies the anchor of the item, this can be
"n", "ne", "e", "se", "s", "sw", "w" and "nw" or "center" which stand
for the different edges/corners or "center" for center. For example:


       <pos x="10%" y="50%" anchor="w" width="80%" height="95"/>

If the item contains a box, you can specify width and height to be
"box" to mean that they are supposed to be the width and height
of the box, that is the items in the box plus the padding.

You can also specify an "expand" property to either be "true"
or false. If true then the child will be expanded in the box
as much as possible (that is it will be given more space if available).

There are two extra properties you can specify (as of 2.4.4.3) for
labels (and labels only). The first
is "max-width" which will specify the maximum width of the label in
pixels. And the second is "max-screen-percent-width" which specifies
the maximum percentage of the screen width that the label can occupy.
By default no label will occupy more then 90% of the screen by width.
An example may be:


	<item type="label">

          <pos x="10%" max-screen-percent-width="50%"/>

Show Node

Some items may only display in certain modes, like when doing a
remote display. Multiple values can be specified and must be
separated with commas. The following values are possible:

console - In console mode.

console-fixed - In console non-flexi mode.

console-flexi - In console & flexi mode.

flexi - In flexi mode.

remote - In remote mode.

remote-flexi - In remote & flexi mode.

For example:


       <show modes="flexi,remote"/>

You can also specify the "type" value to indicate that certain
items should only be displayed if the type is true. Valid values
include the following:

chooser, if ChooserButton is set to "true" in gdm.conf file.

config, if ConfigAvailable is set to "true" in gdm.conf file.

halt, if HaltDaemon is specified in gdm.conf file.

reboot, if RebootCommand is specified in gdm.conf file.

suspend, if SuspendCommand is specified in gdm.conf file.

system, if SystemMenu is specified in gdm.conf file

timed, if TimedLoginEnabled is set to "true" in gdm.conf file.

For example:


       <show modes="console" type="system"/>

Note that if SystemMenu is off then all of halt, reboot, suspend, chooser
and config will not show, so this is a global toggle for them all.
See some of the standard themes for how the show modes are used.

Normal/Active/Prelight Nodes

Depending on the item type, it can specify its color, font, or
image via the following tags:

normal - normal state.

active - when the item has active focus.

prelight - when the mouse is hovering over the item.

When item is "rect" (alpha can be omitted and defaults to 0.0):


       <normal color="#ffffff" alpha="0.0">

When item is "label":


       <normal color="#ffffff" font="Sans 14"/>

When the item type is "pixmap" or "SVG", then the normal, active,
and prelight tags specify the images to use as follows:


       <normal file="picture.png" tint="#dddddd"/>

Note that relative pathnames are assumed to be in the same
directory as the theme .xml file in
<share>/gdm/themes/<theme_name>.

Text Node

Text tags are used by labels. They can be used to display
localized text as follows (if the "xml:lang" attribute is
omitted, the C locale is assumed):


       <text xml:lang="fr">Option</text>

You can include pango markup in the text nodes for labels, however
you must encode it. So for example to have the label of
"foo<sup>bar</sup>", you must type:


       <text">foo&lt;sup&gt;bar&lt;/sup&gt;</text>

Stock

Certain common localized labels can be specified via the stock
tags. The "text" tag is ignored if the "stock" tag is used. You
should really use the stock labels rather then just putting all
the translations into the themes. This gives faster load times
and likely better translations. The following values are valid:

caps-lock-warning, _("You've got capslock on!")

chooser, _("_XDMCP Chooser")

disconnect, _("D_isconnect")

halt, _("Shut_down")

language, _("_Language")

quit, _("_Quit")

reboot, _("_Reboot")

session, _("_Session")

suspend, _("Sus_pend")

system, _("_Actions") (Formerly "S_ystem")

timed-label, _("User %s will login in %d seconds")

username-label, _("Username:")

welcome-label, _("Welcome to %h")

For example:


       <stock type="welcome-label"/>

Custom Widgetry

Currently there is one item which can be customizable and this is
the list item. If you need to ask the user extra things, such as
to pick from a list of places to log into, or set of custom login
sessions you can setup the list item and add listitem children that
describe the choices. Each listitem must have an id and a text child.
The choice will be recorded in the file
<ServAuthDir>/<display>.GreeterInfo
as <list id>=<listitem id>.

For example suppose we are on display :0, ServAuthDir

is /var/gdm
and we have the following in the theme:


    <item type="list" id="custom-config">
      <pos anchor="nw" x="1" y="1" height="200" width="100"/>
      <listitem id="foo">
        <text>Foo</text>

      </listitem>
      <listitem id="bar">
        <text>Bar</text>
      </listitem>
    </item>

Then if the user chooses 'Foo' then /var/gdm/:0.GreeterInfo will
contain:


       custom-config=foo




Org. Link

How can I encrypt an entire disk?

Sometimes instead of encrypting a file or a set of files, you want to encrypt an entire filesystem, partition, or disk.

One of the chief advantages of this approach is that, once you have entered your encryption key, the encryption becomes transparent to both you and your applications. When you power off your computer, your data is securely encrypted. It is the best of both worlds.

Disk Encryption Software and Documentation

Numerous solutions exist to enable you to do this, under Windows, Unix, or MacOS.

Under Unix of of the best options is loop-AES, which utilizes the AES algorithm to encrypt a loop file system.

Another option for Unix is Cryptoloop.

TCFS (Transparent Cryptographic File System) utilizes NFS (Network File System) to provide Triple-DES or RC5 encyption. TCFS currently only supports Linux. For more information on TCFS, read the TCFS FAQ.

Allan Latham's PPDD (Practical Privacy Disc Driver) is a Linux device driver which creates a device which looks like a disk partition. PPDD utilizes Bruce Schneier's Blowfish algorithm.

Julian Assange's Rubberhose is a unique Linux tool which combines encryption and steganography. Rubberose supports DES, 3DES, IDEA, RC5, RC6, Blowfish, Twofish and CAST.

Linux users should read David Braun's Linux Disk Encryption HOWTO.

Gentoo Linux users will benefit from reading A Structured Approach to Hard Disk Encryption.

CompuSec is a free solution for Windows which implements a Fast AES algorithm.

Cypherix Cryptainer LE is a free solution for Windows which implements the Blowfish algorithm, but is limited to creating 10MB partitions.

BestCrypt is a commercial option which supports both Linux and Windows and is capable of utilizing the AES, GOST, Blowfish, or Twofish algorithms.

Another commercial option is PGPdisk, which supports both Windows and MacOS.

DriveCrypt is a commercial options with utilizes the AES algorithm and supports both Windows and Pocket PC's.

Additional commercial packages for Windows include Paragon Encrypted Disk, CryptoExpert, and Ultimaco SafeGuard.




Org. Link

INTEL Prozessornummern / Processornumbers




Desktop-PCs
 
Intel® Pentium® Prozessor Extreme Edition
Intel® Pentium® Prozessor Extreme Edition ¹

ProzessorbezeichnungIntel® Pentium® Prozessor Extreme Edition 840
Architektur
90 Nanometer 
, LGA775
Cache2 x 1 MB L2
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz

Informieren Sie sich genauer
 über Prozessornummern.


 
Intel® Pentium® D Prozessor
Intel® Pentium® D Prozessor
ProzessornameIntel® Pentium® D Prozessor 840
Architektur
90 nm 
, LGA775
Cache2 x 1 MB L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz
ProzessornameIntel® Pentium® D Prozessor 830
Architektur
90 nm 
, LGA775
Cache2 x 1 MB L2-Cache
Taktfrequenz3,0 GHz
Front-Side-Bus800 MHz
ProzessornameIntel® Pentium® D Prozessor 820
Architektur
90 nm 
, LGA775
Cache2 x 1 MB L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus800 MHz

Informieren Sie sich genauer
über Prozessornummern.
 
Für die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor
Für die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 660
Architektur
90 Nanometer 
, LGA775
Cache2MB L2
Taktfrequenz3,60 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 650
Architektur
90 Nanometer 
, LGA775
Cache2MB L2
Taktfrequenz3,40 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 640
Architektur
90 Nanometer 
, LGA775
Cache2MB L2
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 630
Architektur
90 Nanometer 
, LGA775
Cache2MB L2
Taktfrequenz3,0 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 571
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,80 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 570J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,80 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 561
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,60 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 560J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,60 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 560
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,60 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 551
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,40 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 550J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,40 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 550
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,40 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 541
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 540J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 540
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 531
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 530J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 530
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz3 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie geeigneter Intel® Pentium® 4 Prozessor 521
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 520J**
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus800 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Prozessor 520
Architektur
90 Nanometer 
, LGA775
Cache1-MB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus800 MHz
 
Intel® Celeron® D Prozessor
Intel® Celeron® D Prozessor
ProzessornameIntel® Celeron® D Prozessor 351
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 350
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 346
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz3,06 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 345J**
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz3,06 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 345
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz3,06 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 341
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,93 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 340J**
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,93 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 340
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,93 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 336
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 335J**
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 335
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 331
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,66 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 330J**
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,66 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 330
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,66 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 326
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,53 GHz
Front-Side-Bus533 MHz
ProzessornameIntel® Celeron® D Prozessor 325J**
Architektur
90 Nanometer 
, LGA775
Cache256-KB-L2-Cache
Taktfrequenz2,53 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 325
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,53 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 320
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,40 GHz
Front-Side-Bus533 MHz

ProzessornameIntel® Celeron® D Prozessor 315
Architektur
90 Nanometer 
Cache256-KB-L2-Cache
Taktfrequenz2,26 GHz
Front-Side-Bus533 MHz

Notebook-PCs
 
Intel® Centrino™ Mobiltechnologie
Mit dem Intel® Pentium® M Prozessor ²


ProzessornameIntel® Pentium® M Prozessor 770
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz2,13 GHz
Front-Side-Bus533 MHz


ProzessornameIntel® Pentium® M Prozessor 765
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz2,10 GHz
Front-Side-Bus400 MHz


ProzessornameIntel® Pentium® M Prozessor 760
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz2,0 GHz
Front-Side-Bus533 MHz


ProzessornameIntel® Pentium® M Prozessor 755
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz2 GHz
Front-Side-Bus400 MHz


ProzessornameIntel® Pentium® M Prozessor 750
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz1,86 GHz
Front-Side-Bus533 MHz


ProzessornameIntel® Pentium® M Prozessor 745
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,80 GHz
Front-Side-Bus400 MHz


ProzessornameIntel® Pentium® M Prozessor 740
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz1,73 GHz
Front-Side-Bus533 MHz


ProzessornameIntel® Pentium® M Prozessor 735
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,70 GHz
Front-Side-Bus400 MHz


ProzessornameIntel® Pentium® M Prozessor 730
Architektur
90 Nanometer 
Cache2 MB L2-Cache
Taktfrequenz1,60 GHz
Front-Side-Bus533 MHz


ProzessornameIntel® Pentium® M Prozessor 725
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,60 GHz
Front-Side-Bus400 MHz


ProzessornameIntel® Pentium® M Prozessor 715
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,50 GHz
Front-Side-Bus400 MHz


Intel® Pentium® M Prozessor Low Voltage
²

ProzessornameIntel® Pentium® M Prozessor Low Voltage 758
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,50 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Pentium® M Prozessor Low Voltage 738
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,40 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Pentium® M Prozessor Low Voltage 718
Architektur130 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz1,30 GHz
Front-Side-Bus400 MHz


Intel® Pentium® M Prozessor Ultra Low Voltage
²

ProzessornameIntel® Pentium® M Prozessor Ultra Low Voltage 753
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,20 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Pentium® M Prozessor Ultra Low Voltage 733
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,10 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Pentium® M Prozessor Ultra Low Voltage 723
Architektur
90 Nanometer 
Cache2-MB-L2-Cache
Taktfrequenz1,0 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Pentium® M Prozessor Ultra Low Voltage 713
Architektur130 Nanometer
Cache1-MB-L2-Cache
Taktfrequenz1,10 GHz
Front-Side-Bus400 MHz
 
Intel® Celeron® M Prozessor
Intel® Celeron® M Prozessor

ProzessornameIntel® Celeron® M Prozessor 370
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz1,50 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 360
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz1,40 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 350
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz1,30 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 340
Architektur130 Nanometer
Cache512-KB-L2-Cache
Taktfrequenz1,50 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 330
Architektur130 Nanometer
Cache512-KB-L2-Cache
Taktfrequenz1,40 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 320
Architektur130 Nanometer
Cache512-KB-L2-Cache
Taktfrequenz1,30 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor 310
Architektur130 Nanometer
Cache512-KB-L2-Cache
Taktfrequenz1,20 GHz
Front-Side-Bus400 MHz



Intel® Celeron® M Prozessor Ultra Low Voltage

ProzessornameIntel® Celeron® M Ultra-Low-Voltage-Prozessor 383
Architektur
90 Nanometer 
Cache1 MB L2
Taktfrequenz1,0 GHz
Front-Side-Bus400 MHz
ProzessornameIntel® Celeron® M Prozessor Ultra Low Voltage 373
Architektur
90 Nanometer 
Cache512-KB-L2-Cache
Taktfrequenz1,0 GHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor Ultra Low Voltage 353
Architektur
90 Nanometer 
Cache512-KB-L2-Cache
Taktfrequenz900 MHz
Front-Side-Bus400 MHz

ProzessornameIntel® Celeron® M Prozessor Ultra Low Voltage 333
Architektur130 Nanometer
Cache512-KB-L2-Cache
Taktfrequenz900 MHz
Front-Side-Bus400 MHz
 
Für die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor
Für die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor 552
Architektur
90 Nanometer 
Cache1 MB L2-Cache
Taktfrequenz3,46 GHz
Front-Side-Bus533 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor 548
Architektur
90 Nanometer 
Cache1 MB L2-Cache
Taktfrequenz3,33 GHz
Front-Side-Bus533 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor 538
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz3,20 GHz
Front-Side-Bus533 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor 532
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz3,06 GHz
Front-Side-Bus533 MHz

ProzessornameFür die Hyper-Threading-Technologie ¹ geeigneter Intel® Pentium® 4 Notebookprozessor 518
Architektur
90 Nanometer 
Cache1-MB-L2-Cache
Taktfrequenz2,80 GHz
Front-Side-Bus533 MHz
Möchten Sie mehr über den Prozessor in Ihrem aktuellen PC erfahren? Laden Sie die
Intel® Processor Frequency ID Utility 
herunter, um Informationen zur Prozessorfamilie und zu den spezifischen Merkmalen und technischen Eigenschaften zu erhalten.
€  Fragen Sie nach Systemen auf Basis des Intel® Pentium® 4 Prozessors mit dem HT-Technologie-Logo und dem Intel® 955, 945, 925, 915 oder 910 Express Chipset (schauen Sie im Produktdatenblatt nach oder fragen Sie Ihren Händler). Die Leistung und Funktionalität hängt (i) von der verwendeten Hardware und Software ab und (ii) von der Feature-Aktivierung bzw. Systemkonfiguration durch Ihren Systemanbieter. Unter
http://www.intel.de/hyperthreading/info.htm erhalten Sie weitere Informationen über die HT-Technologie; oder wenden Sie sich für weitere Informationen an Ihren System-Händler.
² Kombination der besten mobilen Technologien von Intel, darunter der Intel® Pentium® M Prozessor, die Intel® 855 Chipsetfamilie und Intel® PRO/Wireless Netzwerkverbindungen.
³ Intel Prozessornummern dienen nicht zur Angabe der Prozessorleistung. Die Prozessornummern bezeichnen Unterschiede innerhalb einer bestimmten Prozessorfamilie. Detaillierte Informationen finden Sie auf dieser
Seite
.
** Um die Execute-Disable-Bit-Funktion aktivieren zu können, ist ein PC mit einem für die Execute-Disable-Bit-Technik geeigneten Betriebssystem und Prozessor erforderlich. Informieren Sie sich beim PC-Hersteller darüber, ob das betreffende System die Execute-Disable-Bit-Funktionalität bietet.

28
Jun
2005

How Secure is PGP?

Assuming you trust IDEA, PGP is the closest you're likely to
get to military-grade encryption
- Bruce Schneier

This was written in response to a posting by
dunadan007@aol.com
to alt.hackers.malicious
29 May 1996 07:09:13 -0400, also to put
my own thoughts in order. Primarily my own thoughts plus a small
amount of refinement after reading the references listed below.
I have tried to keep it relatively simple in order that it is
applicable to a wide audience as I see little point in
duplicating what others have already produced. Those who want to
dig deeper should pull up the references listed at the end.

The security of an encryption system depends upon a lot more than
the encryption algorithms used. It depends upon the context in
which it is used and the societal need for that use. Therefore
whilst I have concentrated upon the security of the algorithms I
have tried to touch upon the other aspects.

Assuming no bugs, and a good implementation, more on this later,
then the security rests on the security of the RSA algorithm.

Assuming a one-to-one equivalence, then the security rests on the
difficulty of factoring large numbers into their primes. This is
dependent on the power of computers and current mathematical
theory. The power of computers makes only marginal difference as
the power to crack at one end can be more than compensated for at
the other end by the use of larger key sizes.

The security therefore rests on the difficulty of factoring large
numbers. There could be a major breakthrough in factoring which
would render all RSA encryption visible. This is thought to be
unlikely, but what is needed is a formal mathematical proof,
otherwise it is simply that no one has found a better method.
Similarly a formal mathematical proof is required to show the
equivalence between RSA and factoring, otherwise there could be a
breakthrough in cracking RSA through an entirely different route.
Again thought highly unlikely, but this is not the same as a
clearly demonstrated impossibility.

To return to the initial assumption, the implementation. Phil
Zimmermann has published the source code which has been subjected
to intense scrutiny. No one has yet found a flaw.

A flaw that was found in an earlier version was that the random
number generator that produces the IDEA session key was not as
unpredictable as previously thought. This has been fixed.

The security of the system rather than PGP itself is threatened
by a design flaw or possibly a bug. I always tell people to
write protect their floppies. With PGP this is not possible as
it tries to write to the floppy when checking signatures. Let's
assume you've just received a shareware package and you are
pleased to see that it has a detached PGP signature enabling you
to check it for tampering. If you do this with the shipped
floppy, PGP will attempt to write to the floppy. If you
unprotect the floppy you then run the risk of not only catching a
virus but also corrupting the files. A work around is to copy
the file and associated signature to a temporary directory and
perform the test there.

It is possible to check the integrity of the shipped PGP package
but not once the files have been unzipped. The executable files
should have their own detached signatures (proposed PGP
distribution enhancement). These files can then be checked at a
later date for possible corruption. PGP should have built in
self-checking (proposed PGP enhancement). This is not foolproof
(there are ways for a virus to get around it) but it's better
than nothing and it will detect most viruses and whether PGP has
been corrupted. This would take time to perform therefore I
suggest a self-check switch.

The wipe switch (-w) is none too good. It does not go to the end
of an allocation unit, nor does it remove pointers to the file
location. If an undelete utility is used it is possible to
recover the deleted sectors. These will be scrambled but at
least an attacker knows where to start. I recommend the use of
my own Wipe utility (part of SECURE) as it does not have these
problems.

I'm not convinced that any electronic shredding can be 100%
effective. Probably the only really secure data destruction is
to electronically shred, destroy the disk, then scatter the
remains to the four corners of the earth. Environmentally this
is a disaster. A sounder environmental solution would be to
electronically shred, the file could be encrypted first, but only
with an encryption package that overwrites the original file (PGP
does not); then low level reformat; followed by anonymous
disposal of the disk through a charity or second-hand shop. The
new user would (hopefully) lack the ability to recover the disk
contents and would (hopefully) thoroughly recycle the contents.

One possible Machiavellian scenario. NSA discovers a gaping
flaw. They seek to have PGP banned and harass Phil and
associates to make their point in the full knowledge that
activists will ensure that PGP is widely used and widely spread
around. I did imply it was far fetched, but remember who we are
dealing with.


I read a book a few years ago that detailed the CIA's activities
in Central America with the Contra's. I think it was by an
investigative journalist working for TV. If a few titles can be
thrown at me I may remember the title then I can add it to the
list of references. Even better if anyone has a spare copy they
don't want!

As discussed, algorithmic methods are currently infeasible or
unknown. Similarly a brute force attack. If we take the IDEA
key then with a key of 128 bits we are talking of 2128 possible
keys, a lot of keys to search. 2128 --> 3.4 x 1038

     340,282,366,920,938,463,463,374,607,431,768,211,456

On average we would have to search half the key space - 2127

     170,141,183,460,469,231,731,687,303715,884,105,728

A brute force attack on a small RSA key is feasible. What is
classed as small gets larger each year. RSA-129, a 129 digit
key, was cracked using 5,000 mips-years. In 1977 this was
thought impossible to crack. To put this in context my PGP key,
as is most users, is 1024-bits. Using the same amount of
computing resources it would take many millions of years to crack
my key (assuming no advances in factoring algorithms).

A single mips-year is a computer continuously number crunching at
the rate of a million instructions per second for one year.

A 129 digit key translates to a 429-bit key. This is too close
to comfort to the 512-bit key that many users are still using.
Every additional 10 bits is very roughly a doubling of the
computational power required to crack a key. It is within the
bounds of possibility for a company with several hundred
workstations to crack a 512 bit key of a competitor. This could
be done as a background task stealing spare CPU cycles. As many
companies have discovered to their cost it is all too easy to
steal a march on a competitor by stealing their secrets than it
is to do some hard work.

A crippled version of PGP could be circulated. The session key
generator could be sabotaged to only generate a small subset of
possible keys, but sufficiently large to go undetected.
Examination of an encrypted file would reveal nothing wrong as
the IDEA key would be legitimate. Similarly the sequence would
be one of many possible sequences. An attacker only has to
search through this reduced key space. The beauty of this fix is
that once a key is found the attacker only has to search from
that point onwards using a known algorithm to decrypt any
subsequent message.

A $1,000,000 deposit to a bright student in a Swiss bank account
should suffice. Far cheaper than the purchase cost of the
computers required to search the entire IDEA key space.

The CIA director of counter-intelligence was got for less than
two million dollars, his wife came free!

Then upload as a later version to fix a bug and a NSA back door
and it would be rapidly taken on board by a gullible user
population.

Another way to frig PGP would be to encrypt the session key with
a master key and bundle that with the encrypted file. Think of
it as an invisible recipient on the command line. This should
not involve more than a minor modification. It would probably be
detectable by examination of the headers, but how many people
scrutinise their headers? A more subtle variation would be to
embed the extra key somewhere within the file. One possibility
would be to have some invisible end of file marker, followed by
the third party key. The trick is to get an unmodified version
of PGP to accept these files with no complaint.

The same encrypted message 'I wanna tell you a secret' could be
surreptitiously inserted into every encrypted file. It may aid
crypto analysis. It would though encounter the same problem of
fooling genuine versions of PGP as the above modification.

May be someone, somewhere has cracked PGP and is keeping real
quiet about. Yeah, and may be pigs will really fly. Hackers and
crackers like to brag, have to brag, have a compelling,
deep-seated, pathological need to brag. Crypto cracking is hot
news. Were someone, somewhere to crack PGP the news would spread
faster than a bush fire in the dry season.

We are happy if it takes millions of years to crack our code,
less than happy if it's a few centuries, distinctly unhappy if a
few seconds. A few seconds makes it possible, but not
practicable to monitor everyone's e-mail, assuming we all use
encryption. What unfortunately does become practicable is the
monitoring of dissident groups within a state.

The power of the encryption used is sufficiently strong that the
weak link becomes the pass phrse. Why search for all possible
keys when it is considerably cheaper to search the pass phrase
space? If we take into account the redundancy of the Enlish
linguige (equally applicable to any forign lanquage) and ibnoring
any attpmts at randomness then our search space is many orders of
magnotude less than the key space.

Redundancy is why you can still read the above inspite of my many
spelling mistakes. Were English to lack redundancy then a single
error in the previous paragraph would render it unintelligible.
It may be unintelligible for other reasons but that will be down
to my lack of clarity or the inability of the reader to
comprehend.

An example of minimal redundancy is an executable file. If
corrupted it is likely to fail - every bit counts.

If we consider a password of arbitrary size and choose any
letter at random then the search space would be 26 raised to the
number of characters. Let's assume an average word size of eight
characters. 268 is 2.09 x 1011, compare this with the less
than 140,000 word entries in my Concise Oxford English
Dictionary.

Deliberate spelling mistakes are a way of improving our pass
phrases by reducing the redundancy. The only problem is that
this has to be done in some regular manner to enable us to
remember our pass phrase.

The problem is made worse if we access many systems. Our
attempts at misspelling may have a regularity that it detectable.

The use of several systems highlights the problem. We can
probably remember one long pass phrase but can we remember
several? We can not use the same pass phrase on several systems
as the breach of our pass phrase on one weak system will cause a
breach on all the systems we use. Back to the weakest link
again.

I felt pleased when I had a pass phrase in excess of 60
characters. The only problem was I had great difficulty in
remembering it and even more in correctly typing it in. I once
spent the best part of an afternoon trying to type it in
correctly.

There is therefore a very unhappy compromise between the
randomness of the pass phrase, its length and the ability to
remember it.

The temptation is to write down the pass phrase which then
introduces a different security compromise.

The accepted wisdom has always been 'never write down your pass
phrase'. Maybe it's time we gave this some second thought. The
increase in security by the use of a longer or more random pass
phrase may outweigh the risks of discovery. Our pass phrase
should not be so complex that we have to consult a written form
each time it is used, but it can come in handy to jolt our memory
for a pass phrase that is difficult to remember, or hasn't been
used in a while. I was once away for a few weeks and on my return
I had great difficulty in remembering my pass phrase!

A possible compromise may be to pick something out of a book at
random. Then all you have to do is remember the page. Ideally
this would be across more than one sentence but only a fragment
of each thus having no real sense.


	of access to your secret key Although this 

It is important not to to get too hung up on the weakness of the
pass phrase. Eight random words will make the pass phrase more
secure than the IDEA key. For practical purposes it can be less
as it will still involve hell of a lot of attempts. The weakness
of the pass phrase in only of relevance if we are worried about
our system being attacked. If it is simply a question of access
to our traffic then it is irrelevant as to be of use it will also
require our secret key.

Using a dictionary of 140,000 words, choosing eight random words
will give 140,0008 --> 1.48 x 1041
(cf key space 3.4 x 1038).

Deliberate misspelling of the original plain text message reduces
the redundancy and this may hinder crypto analysis. With PGP
this is hardly likely to have any effect as the plain text
message is compressed prior to encryption, thus removing any
redundancy. As discussed, where this can best be used to
advantage is in the construction of a pass phrase.


One of the worst cases of password misuse that I have ever seen
was at a local Technical College. Students were given a User ID
that consisted of their course code plus a sequential serial
number for each student on the course. Their password was, yes
you've guessed it, their User ID. The students were supposed to
change their password but when do students ever do what they are
supposed to? To make matters worse, if that's possible, I know
of at least one case where the method of giving the students
their password was to hand out a sheet in class listing all the
students and their User ID. Whether this procedure was typical I
don't know. I found it difficult to comprehend why they bothered
with the passwords at all.

The weakness of any public key system rests on the public key
itself. If you do not have the recipient's key then you are
encrypting the message for someone else and at the very least
denying access to the recipient. A possible scenario is
substitution of the key. Message goes to attacker, attacker
reads message, re-encodes and forwards on to recipient.

Always sign your key, this prevents tampering; always have others
sign your key, this enables verification of the key; regularly
check the key on servers, this prevents substitution.

Ironically the person who posted the question had not signed his
key!!! A dangerous oversight when posting to a malicious hackers
news group.

Another possible weakness to consider is that you of course have
taken every precaution but the weak link is the recipient. You
have encoded a message that hopefully only the recipient can
read. If security at the recipient's end is lax then maybe all
and sundry can read the message. This is a point to always bear
in mind when sending encrypted e-mail to a third party.

Ultimately the security of PGP depends upon denial of access to
your secret key. Although this is normally viewed as someone
having direct access to the system this should be seen in a wider
sense. A virus has access to your system.

Viruses and Trojans are a topic in their own right and I refer to

  • Virus: A computer malaise - Keith Parkins


Whilst on the subject of Trojans Phil Zimmerman warns of the
existence of Trojan versions. If the genuine item lacks a back
door or any obvious implementation flaws then circulate a version
that does. I have put together a disk that has a large amount of
PGP information and of course PGP. I can not be absolutely
certain but so far all my checks have not shown it to be fake.
Copies of this disk can be <href="catolog.txt">obtained direct from myself
at the price of £5-00 (five pounds sterling).


The
UK government is testing the water for a ban on encryption,
as no doubt are many other governments around the world. I'm
doing my best to get PGP spread around and to heighten awareness
of the need for encryption. Help is needed. Monitor the press.
Any editorial hinting at key escrow or a ban on hard crypto get a
letter off to the editor. To wait until legislation is
introduced will be too late as it will take too long to build up
momentum.
[see my paper Why Use Pretty Good Privacy?]

The security of the algorithms can be seen as theoretical
security. Everything else can be viewed as practical security.
Pass phrases fall between the two.

For virus detection I recommend that Windows software not be
used. The same could be said for the use of Windows front ends
for PGP. There is too much going on that we can not say what is
going on. In a multi-tasking environment there are other
processes running.

Within a specific implementation there is disk swapping. This is
not cleaned up or laundered in any way (Windows is too slow
already). The disk can be mined for information in much the same
way as a rubbish bin.

A person, or a virus, could make a substitution for your key
pair, that is a substitution of your private and public keys. As
soon as you have generated your keys you should take a copy.
Periodically check your secret key against the backup copy. PGP
can be requested to perform a complete keyring check. I would
also advise making a hard copy printout of your public key
fingerprint. Apart from its usefulness in handing to other
people so that they may check the validity of your public key,
you can use it yourself to periodically check the key's validity.

How much effort do you wish to throw at the problem? The person
can be filmed, their telephone bugged, the computer
electronically scanned, keystrokes sampled, networks sniffed, IPs
spoofed, routers attacked. If you are using PGP remotely, packet
sniffers could be used (this is really no different to monitoring
your plain text e-mail). We are now in a different ball game.
If you are worth this much effort then you have slightly bigger
problems than worrying about the theoretical security of PGP.

Never underestimate the resources an attacker will deploy to
crack an encryption system. If the gain exceeds the investment
it is a profitable deal. Multi-million dollar drug deals are
common place. The banks routinely use DES for the transfer of
electronic funds. The 56-bit key used for DES is weak. A
dedicated DES key cruncher can be built for less than one million
dollars. It can be made faster by increasing the investment. Is
it worth the Mafia making such an investment?

If I wanted your pass phrase I'd break in and install a keyboard
monitor. How many people check what is loaded by the batch file?
A more sophisticated attack would be the use of a boot sector
stealth virus. This is unlikely to be detected as few people do
a thorough virus check. The virus would monitor for PGP. Only
when PGP was used for signing or decrypting would it record the
keystrokes, which would be placed in a small hidden file. The
file size is sufficiently small that I could store it in slack
disk space. Every machine unbeknowest to its user could have the
secret key squirrelled away. This information could be recovered
at a later date by physical access to the machine, or possibly
the virus could send it out down the line. Having served its
function the virus would remove itself.

To avoid this problem boot from a known clean floppy and use PGP
from a write protected floppy.

Pass phrase crunching, key space crunching is very costly. It is
a lot cheaper to kidnap and torture the individual or a member of
his family. This scenario should not be lightly dismissed as I
have direct personal experience of it happening.

What the new ball game has done and that is the most any good
encryption system can do is to shift the balance. Without PGP a
general trawl can reel in masses of information. With PGP we are
back to the pre-electronic era. The same amount of effort has to
be expended as is needed to steam open mail, tap telephones et
cetera. It may be a breach of human rights, contrary to existing
legal protection but to justify this amount of effort there has
to be some overwhelming reason for the effort whatever the legal
niceties. In the real world this is probably the best we can
ever achieve.

A Practical Random Pass Phrase Generator

All you require is a large dictionary and a coin. The coin is
used to perform a binary search of the dictionary. Flip the
coin; heads choose the first half of the dictionary; tails the
second half. Continue in this manner until you are down to a
page. Heads chooses the first column, tails the second; heads
the top column half, tails the bottom. Eventually you will have
a word. Repeat the process to get seven more words.

In a trial run this gave

  bless bat alcohol foredeck algolagnia yearbook fowl rebroadcast
Anything better than a 70,000 word dictionary will give a search
space greater than the IDEA key. With a 50,000 word dictionary
its only marginally less - add another word and the search space
is considerably greater.

Two problems; remembering a random list of words; spelling long
or unfamiliar words. The latter can be an advantage if we always
make the same mistake. An extra level of randomness has been
introduced, but if this is a regular personal trait it could be
duplicated. This though takes us full circle as only through the
monitoring of our correspondence could such a trait be detected!

Pass Phrase in a Foreign Language

There are conflicting noises heard as to the relative merits of a
foreign language pass phrase. My own thoughts are that it
depends upon the context in which it is used and the form of the
attack.

If I type my pass phrase in a language foreign to an observer and
that observer catches a glimpse of what I'm typing it will appear
as a jumble of random characters, on the other hand if I type my
pass phrase in a language native or known to the observer the
observer is likely to be able to reconstruct my pass phrase due
to the redundancy of the language.

If the attack is in the form of a dictionary attack, it will gain
some advantage but not a lot.

Spanish and English are two of the world's richest languages. To
give some ball park figures let's assume I have a bilingual
dictionary Inglés-Español that has double my English vocabulary
of 140,000 words, that is 280,000 words. Choosing eight random
words will give a search space of 280,0008 --> 3.7 x 1043.
This increases the search space beyond that of my English
dictionary but not greatly so (a couple of orders of magnitude).
I could obtain the same effect by either using a larger English
dictionary, or adding one more word to my pass phrase. The
latter has the greater effect. 140,0009 --> 2.1 x 1046.

The main advantage of using a second or foreign language or a mix
of the two would be to flummox the opportunist or casual
attacker.

Information

A message contains information if it tells us something that we
did not know before. The higher the information content the
greater the degree of surprise.

A plot of a DC voltage is a straight horizontal line. It
contains no information apart from the initial voltage level as
whenever we look at the plot the information content is always
the same. If the voltage level was 5 volts then we always expect
to find 5 volts.

A sinusoidal waveform is changing therefore we expect some
information. Unfortunately not. The change is periodic and
predicted by a simple formula. At any point in time provided
that I know the initial conditions I can predict the state of the
waveform.

When I read a book it conveys information - that's why I read it.
An example is Along Came A Spider a novel about a sociopath.
From one page to the next it's impossible to predict what will
happen next. It's also a very good book.

The above example from my random phrase generator has a high
information content as no matter how much of the sequence we
expose we can not predict the next word(s). If you randomly pick
any of my sentences and slowly expose each successive word it
will not come as a complete surprise - the information content is
lower.

Similarly by picking out any word, if you mask out letters it
will not be too difficult to fill out the blanks. With the word
in context it becomes even easier to fill out the blanks. The
higher the redundancy, the lower the information content.

Compare the following pass phrase with my random pass phrase

     And they all lived together in a little crooked house
It contains two more words but about the same number of
characters as my random pass phrase. It is easy to remember
partly because it has some sense, but more because it a line from
a rhyme. For these reasons it contains less information than my
random phrase. As a pass phrase it is fairly useless, partly
because it is part of a well known rhyme but also because it is a
key phrase from the Agatha Christie novel Crooked House.

When devising a pass phrase we try to maximise the information
content, that is lower the predictability. The higher this
information content or unpredictability the higher the entropy.

The higher the entropy the greater the security.

Can the Security be Improved?

The intrinsic security of PGP and the underlying algorithms is
good and is not in need of improvement, where improvements can be
made is in the use of the encrypted data which may possibly add
many orders of magnitude to the security.

PGP encrypted files carry a header stating that PGP was used and
the encryption method. This at least tells an attacker where to
start and what tools to use, even if that attack using current
technology and mathematical knowledge may not be successful. The
headers can be stripped off. All that is then left is a file of
random data - digital white noise. There is nothing to say what
the file is, that it has been encrypted or how it has been
encrypted. It could have been encrypted using triple DES, a
propriety algorithm, IDEA, RSA, knapsacks ...

Removal of headers removes the weak link, the human element, upon
which undue pressure can be applied. In the absence of a header
there is no Key ID to link the file to a key owner.

Henry Hastur has developed a program called
Stealth that strips
out PGP headers. The recipient uses Stealth to re-insert the
headers prior to decryption with PGP.

All files have structure. The file you are reading is an ASCII
file, an executable file has structure (if not it could not run,
and it is the lack of a recognised structure or an identifiable
deviant structure that is used by heuristic scanners to identify
possible virus infections), an image file may lack internal
structure but it will usually have a header to give some
structure. Removal of PGP headers will leave a file of digital
white noise, with nothing to identify it, this very lack of
structure may in itself trigger off an alert. We don't know what
it is therefore that in itself is suspicious.

Using a technique known as
steganography

the encrypted file with
or without headers (ideally without) can be embedded in a high
entropy file such as a sound file or an image file. The file is
then used as a carrier. Transfer of encrypted files between
parties may trigger an alert, not the exchange of image files.

During a chance meeting with a Malaysian acquaintance we
discussed the use of PGP. I offered him a copy of PGP to take
back to Malaysia. Whilst he could see the advantages of
possessing a copy he declined my offer as he said the very act of
using encryption would bring him to the attention of the
authorities and to emphasise his point he held an imaginary gun
to his head and pulled the trigger. Were my acquaintance and his
colleagues to exchange image files it's doubtful that anyone
would give them a second glance.

Asian tigers never change their stripes. Several years ago my
acquaintance was thrown into gaol for attending a student
demonstration. Malaysia actively monitors the e-mail of all
Malaysian students studying abroad.

Tools also exist to convert the ascii armoured file into nonsense
verse. This does not hide the encrypted file, rather it
disguises it. To the casual observer, and probably computer key
word search programs, there is nothing unusual to attract
attention.

Trusted Third Parties

Governments around the world are pushing for key escrow, and by
implication a ban on hard crypto. The UK Government has just
(June 1996) proposed a key escrow compromise - the key(s) will be
held by a Trusted Third Party. Trusted by whom I don't know. Nor
whether such a scheme would be mandatory or voluntary. When I
have more information on this proposal I'll release a
paper.

Hot News! Users to deposit their key with a government approved
TTP, key to be revealed on production of warrant, users may use
cryptosystem of their choice, scheme appears to be voluntary,
legislation pending.

Because of where they are coming from TTPs have a bad smell, but
they can be used to advantage by PGP users. It is all too easy
to lose a key. Lose - loss of pass phrase, keyring destruction,
virus attack, wiping of a disk et cetera. A lost key means
permanent denial of access - the ultimate security nightmare. If
a key is lodged with a trusted friend the situation can be
recovered. Ideally the key would be cut in half (proposed PGP
enhancement). If the location of a key is discovered and undue
pressure is applied to release the key it would be of little use
without its matching half. You may wish to leave instructions
for the release of your key upon your untimely demise. Your
benefactors may not be too pleased that they can't gain access to
your ill-gotten gains hidden in Swiss numbered bank accounts
because the numbers of those accounts are securely locked away.

If you have not already done so I strongly recommend that you
take a backup copy of your secret key and store in a very safe
place whether or not you make use of a trusted friend.

Under this scheme it is you who decide who to trust (not the
government or their agents) in the same way as it is you who
decides whose certifying signature you trust to verify a public
key.

Traffic Analysis

In the 1960s the FBI detected a major Mafia conspiracy not by
what was said to whom, but who was talking to whom, when the
conversations took place and where the participants were located.
This is known as traffic analysis.

If all your e-mail is plain text and along comes an encrypted one
it may trigger an alert. If all the e-mail is encrypted there is
nothing unusual. It also means all the messages have to be
decrypted to find the one secret one.

There is a slight downside. It takes time to encrypt and decrypt
messages. From the security viewpoint, every encrypted message
that an attacker can obtain is one more tiny piece of the jigsaw.
Even though this small advantage is probably more than outweighed
by having to wade through large numbers of encrypted messages the
more an attacker has to work on the easier it is to crack an
encryption scheme.

Who is talking to who may provide as much information as the
message content itself.


Anonymous remailers
provide a cut-out so that it is not possible
to see the originator. If I wished to send something securely
I'd use a transient account. Then even if the message could be
back tracked there would be nothing to link it to myself.
Aficionados of remailers use a chain of remailers - the sender is
only known to the first, the ultimate recipient to the last.

Anonymous remailers provide a delaying tactic but they should not
be seen as providing absolute security. The administrators may
be forced to hand over your true ID, the system could be hacked
or the security in some way breached, they could be infiltrated,
there could be a 'sting operation' et cetera. Incorrect use of
the remailer can accidentally release your true ID or make it
easier for others to discover it. Any mail sent via a remailer
should always be encrypted. Anonymous remailers are a means to
protect the innocent, they are not a shield to hide behind to
harass other users. Many system administrators have said they
will release the true ID of users who abuse their system.

The PGP header contains the KeyID, this may be used to identify
the recipient.

Key Exchange

The problems associated with conventional encryption systems are
well known. The need for a secure means of key exchange, the
need to guard the key, unmanageable large number of keys for a
large number of communicating parties. Public key systems appear
to avoid these problems - the key not only is made public, but it
is a distinct advantage to broadcast far and wide. Unfortunately
there is no such thing as a free lunch and and all we do is
replace our original set of problems with a different set. The
primary problem now is that of key substitution and key
tampering.

To illustrate the problems and put forward a few solutions I'll
use a few of Schneier's characters.
Alice and Bob wish to
communicate, Mallory is a malicious attacker, Trent is a trusted
arbitrator, David and Carol may at some stage join in.

Man-in-the-Middle Attack

Alice and Bob exchange keys. Unbeknown to them, Mallory
intercepts their key exchange and substitutes his own keys.
Alice and Bob encrypt their messages and forward to each other.
Mallory intercepts these messages, extracts any useful
information (using his own substituted keys), he then re-encrypts
using the genuine keys. Bob and Alice are none the wiser.

Bob and Alice need not have exchanged their keys directly. They
may have got them from Trent's trusted key server. Mallory can
intercept the key transfer as before, he also has the opportunity
to substitute a key on Trent's server and although Trent is a
byword for integrity Mallory has yet to meet someone he can't
corrupt.

Interlock Protocol (Rivest & Shamir)

Alice sends part of her encrypted message to Bob. On receipt Bob
sends part of his encrypted message to Alice. Alice on receipt
of his part message sends the remainder of her encrypted message.
Bob on receipt of the remainder of Alice's encrypted message puts
the two parts together, decrypts, then sends his latter half to
Alice. Mallory is still able to intercept but he can not do
anything with a part message, he needs the whole. The best
Mallory can do is sever the connection. If Bob and Alice have
the wrong keys they will be unable to read their correspondence.
Bob and Alice will be denied the opportunity to communicate but
at least they will be aware that something is wrong.

This protocol can be implemented in PGP by sending an encryption
of the encrypted message's signature as the first part, then
sending the encrypted message as the second part. It is
infeasible for Mallory to substitute another message to match the
encrypted signature, nor can he anticipate the coming message and
substitute an alternative message as the signature function is
one-way.

Key Signatures

PGP attempts to avoid these problems by the use of key
signatures. Whilst it appears to remove the problem it merely
moves the problem further down the line.

Now when Alice and Bob exchange keys or download from Trent's
trusted key server they notice that their keys have been signed
by Dave and Carol. This now begs the question 'how do they
obtain a genuine copy of these keys?' ad infinitum. Luckily for
Bob and Alice, Alice went to school with Carol and at a recent
school reunion they took the opportunity to exchange keys, Bob
and Dave are regular drinking cronies and exchanged keys some
time ago. They each can therefore verify each others keys with a
genuine key from a third party. The rest of us may not be so
lucky.

The only key you can explicitly trust is one that you have
acquired in person from someone you know. With all other keys
steps have to be taken to minimise the risk. Obtain the key
direct from the person via a number of different routes. All the
keys should be identical. Use the key fingerprint as a back up,
obtain the fingerprint through a tamper proof medium, fax,
letter, telephone conversation, publication in a journal et
cetera. Be wary of the signatures. Each of these has to be
checked out with the same degree of rigour as the key they are
supporting. The most vulnerable way to transfer a key is through
Internet.

Always do a test transfer of trivial information to establish the
link. Using the interlock protocol will establish whether or not
Mallory is substituting. What it will not do is establish
whether Mallory is impersonating Bob or Alice.

Always self-sign your own key. This will not prevent
substitution, but it will prevent tampering. I can easily create
a fake key for Bill Clinton. I can also create a large number of
keys with which to sign the key though some people may suspect
something odd when they see signatures of JFK, Elvis Presley,
Jimi Hendrix, Billy Holiday, Buddy Holly.

My Public Key Fingerprint

pub  1024/B09CC89D 1996/04/22 Keith Parkins <10 GU14 6QJ England>
Key fingerprint  2A 66 6A 8F 91 42 48 C8  48 98 38 AD 2F D3 45 08

AT&T PathServer

As discussed, key exchange is a problem. AT&T are running an
experimental service that goes some way to alleviating this
problem.

You have downloaded a key, even though it may have signatures
these are not a great deal of help if you do not have trusted
versions of the corresponding keys. I have spent hours, if not
days checking signatures ad infinitum.

PathServer,
developed by Mike Reiter and Stuart Stubblebine,
automates this process. Given an unknown key, and a trusted key
(either your own or one that you have received in person) it will
plot one or more paths between the keys, the paths are not
permitted to cross or overlap.

The system is not foolproof and I can see a number of security
holes. PathServer is hooked into the existing world net of key
servers, thus it is only as good as its source. PathServer could
have bugs, or possibly cheats. The link to PathServer is not
secure.

The user does have some control over PathServer cheating. Once
the path(s) are established, the user can download the connecting
keys from other sources and perform checks on his own system.

PathServer helps to build confidence in a key. It is a step in
the right direction.

Exotic Scenarios

I have unashamedly lifted these straight out of Bruce Schneier's
excellent book Applied Cryptography (which I strongly recommend
to anyone with an interest in cryptography) and mixed in a few
thoughts of my own.

Virus Key Crunchers

As discussed, a cooperative effort can be used to crack keys.
The main problem is obtaining that cooperation. A stealth boot
sector virus could be released. Its activity, to steal spare CPU
cycles for key crunching. Because it is stealing spare cycles it
would not have a noticeable effect on performance and is likely
to go unnoticed. Contrary to the claims made by vendors, virus
scanners are not very effective and until a virus is drawn to
their attention and is built into their scanners it will continue
to go undetected. The vendors could be leant upon not to detect
it. If they fail to cooperate viruses could be released to target
their products. Once a key is cracked, its result could be
transmitted down a modem or the virus could change mode and now
spread with the broken key in the hope that a copy will be picked
up. Alternatively an error message could be displayed together
with a number for a free phone telephone help line. The error
code to be read off screen would be the cracked key.

Chinese Lottery

The vast majority of consumer electronics are manufactured in the
Pacific Rim. As labour costs rise in each country more and more
of that production is being relocated to China. Each radio and
TV could have a built in key cracking chip. Mass production
keeps the production costs down. The Chinese government
broadcasts the keys it wishes to crack. Millions of radios and
TVs crunch away with their purpose built chips. Eventually
'bingo' and the result is displayed on a LCD or TV screen. The
lucky listener 'phones the hot line to claim her prize.

These scenarios could be used to crack any key encryption system,
not just PGP.

Document Fingerprinting

It is possible to produce a number of unique variations of the
same document. This is not a technique unique to PGP.

When I wrote my paper on UK escrow proposals
it went through
several revisions. The sense of the document did not change. All
that was altered were subtle spelling mistakes. Each revision
was distributed. My subtle mistakes could, if I so wished, be
used to track any copy of the document back to source. My subtle
mistakes could have been introduced deliberately. I then have a
tracking mechanism.

A paper with a ragged right margin has white space at the end of
each line. On paper it is just that, white space. In electronic
format each line is terminated with carriage return, line feed
(MSDOS, other systems handle lines differently). I could at the
end of each line add an extra blank character. Given 128 lines
to play with, my document would have as many unique variations as
the IDEA key space. I could automate the process, a random
variation for each and every recipient, their names added to a
database. Should there be any query or the document be secret I
can trace back to source.

References

In case of difficulty go to the two main PGP Web pages as they
maintain very good links, these guys also have interesting home
pages with many good links for cryptography and security. When I
find some spare Web space I shall be launching a
UK PGP Web site.

Stale Schumacher International PGP Home Page

Francis Litterio, Why You Should Sign Your Own Public Key

Arnold G Reinhold, Results of a Survey on Pass Phrase Usage

Grady Ward, How to Choose a Passphrase FAQ

Randall T. Williams, Passphrase FAQ

infiNity, The Feasibility of Breaking PGP: The PGP attack FAQ

Key logging utilities, keyboard snoops

Packet sniffers

Concise Oxford English Dictionary, Ninth Edition, OUP, 1995

Keith Parkins, Virus: A computer malaise, Book on Disk, 1995

Simson Garfinkel, PGP: Pretty Good Privacy, O'Reilly & Assoc,
1995

Bruce Sterling, The Hacker Crackdown, Viking, 1993

R L Rivest, A Shamir & L Adleman, A Method for Obtaining Digital
Signatures and Public Key Cryptosystems
, Communications of the
ACM, Vol 21, No 2, February 1978

Ron Rivest Cyphertext, RSA Nesletter, Vol 1, No 1, Fall 1993

Ron Rivest & Adi Shamir, How to Expose an Eavesdropper,
Communications of the ACM, vol 27, no 4, April 1984, p 393-395

Derek Atkins et al, The Magic Words are Squeamish Ossifrage,
Advances in Cryptology - AsiaCrypt '94 Proceedings,
Springer-Verlag, 1995, p 263-277

Along Came A Spider

Keith Parkins, Why Use Pretty Good Privacy?, 1996

Keith Parkins, Incalculability, to be published

Keith Parkins, UK Proposals for a Key Escrow Encryption System,
1996

Keith Parkins, Privacy in an Electronic Age, 1996

Phil Zimmermann, Why do you need PGP?

Henry Hastur, Stealth

Eric Milbrandt, Steganography Info and Archive

Keith Parkins, SECURE - encryption and secure file deletion

Paul Elliot Cypher Rant: Reasons why private cryptography should
not be regulated

Francis Litterio, Anonymous Remailers

Andre Bacard, Anonymous Remailer FAQ


Bruce Schneier, Applied Cryptography, 2nd Ed, Wiley, 1996

Agatha Christie, Crooked House, 1949

Crispin Aubrey, Who's Watching You?, Penguin Books, 1981

Bob Woodwood, Veil: The Secret Wars of the CIA 1981-1987, Simon
& Schuster, 1987

Anthony Summers, Official and Confidential: The Secret Life of J
Edgar Hoover
, Gollancz, 1993

Athan Theoharis (Ed), From the Secret Files of J Edgar Hoover,
Elephant Paperbacks, 1993

Alan Friedman, Spider's Web: Bush, Saddam, Thatcher and the
Decade of Deceit
, Faber & Faber, 1993

Seumas Milne, The Enemy Within: MI5, Maxwell and the Scargill
Affair
, Verso, 1994

(c) Keith Parkins August 1996 rev 18



Org Link

logo

vireas

Suche

 

Aktuelle Beiträge

C i s c o  V...
can get always the latest version of C i s c o  V...
vireas - 12. Jul, 11:07
WM5: Custom text on today...
You can set a small custom text message on the bottom...
vireas - 15. Mai, 21:44
WM5: Increase Performance...
Boost Windows Mobile 5 performance up to 20 percent [HKLM\System\Stor ageManager\FATFS]...
vireas - 15. Mai, 21:42
WM5: Speed Up your Pocket...
This tweak might help improving visual performance...
vireas - 15. Mai, 21:41
Windows Ordner
-Es ist nicht möglich unter Windows einen Ordner anzulegen...
vireas - 22. Feb, 13:37

Archiv

April 2025
Mo
Di
Mi
Do
Fr
Sa
So
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 
 

Status

Online seit 7699 Tagen
Zuletzt aktualisiert: 12. Jul, 11:07
vireas-plug

KnowHow
KnowHow - Mobiles
Tools
Profil
Abmelden
Weblog abonnieren