Warum ist Schaum weiß?

Ob Badeschaum in der Badewanne, der Schaum auf der Spitze sich brechender Wellen oder die Schaumkrone auf einem frisch gezapften Bier – alle sind strahlend weiß. Das Erstaunliche dabei ist, dass die Flüssigkeiten, die den Schaum bilden, alles andere als weiß sind.

Wasser ist völlig klar; Bier – je nach Sorte – gelblich oder bräunlich. Ob wir etwas transparent, spiegelnd oder undurchsichtig sehen, hängt davon ab, wie das Material das auftreffende (weiße) Licht beeinflusst. Flüssigkeiten und andere Materialien wirken auf uns glasklar, wenn sie das Licht ungehindert passieren lassen. Eine Flüssigkeit kann das Licht an der Grenzschicht zur Luft aber auch teilweise oder ganz reflektieren. Dies hängt von dem Winkel ab, unter dem das Licht auf die Grenzschicht trifft.

Dieses Phänomen kann man beispielsweise an einem windstillen Tag an einem See beobachten: Schaut man in einem flachen Winkel auf die glatte Wasseroberfläche, wirkt sie wie ein Spiegel. Schaut man aber senkrecht auf die Oberfläche, kann man unter die Wasseroberfläche sehen. Schaum besteht aus vielen kugelförmigen Luftblasen unterschiedlicher Größe, die von einer dünnen Flüssigkeitsschicht umgeben sind. Fällt Licht auf diese gewölbten Grenzschichten, wird ein Teil direkt reflektiert. Durch die Wölbung wird das Licht, welches an unterschiedlichen Stellen auftritt, in unterschiedliche Richtungen zurück geworfen. Dadurch sehen wir in jeder einzelnen Seifenblase ein schwaches und verzerrtes Spiegelbild. Der andere Teil des Lichtes wird abgelenkt und kann im Anschluss viele Male an anderen Seifenblasen reflektiert oder erneut abgelenkt werden. Insgesamt wird dadurch ein Großteil des einfallenden Lichtes reflektiert. Durch die Ablenkung der vielen unregelmäßig angeordneten Seifenblasen geschieht die Reflexion jedoch in zufällige Richtungen. Man spricht dabei von Lichtstreuung. Dadurch wirkt der Schaum weiß und undurchsichtig.

Aber warum hat der Schaum nicht die Farbe der Flüssigkeit? In welcher Farbe ein Gegenstand auf uns wirkt, hängt davon ab, welche Anteile des Lichtes hindurch gelassen und welche von den Molekülen der Flüssigkeit aufgenommen (absorbiert) werden. Absorbiert ein Material das Licht vollständig, wirkt es auf uns schwarz. Einige Flüssigkeiten (wie beispielsweise Bier) lassen nur bestimmte Farben ungehindert hindurch. Die übrigen Farben werden von den im Bier enthaltenen Farbstoffen absorbiert. Als Folge sieht man nur diejenigen Anteile des Lichtes, die ungehindert passieren können. Im Schaum sind die Flüssigkeitsschichten jedoch sehr dünn und enthalten daher nur wenige Farbstoffe. Das Licht trifft so auf seinem Weg durch den Schaum nur auf wenige Farbstoffe. Dadurch spielt die Streuung des Lichtes eine größere Rolle als die Absorption durch die Farbstoffe. Der Bierschaum erscheint daher vor allem weiß.

Diesen Artikel habe ich für den ExtraTip Göttingen verfasst. Am Donnerstag den 10.11.2011 ist er dort in der Kategorie „Frag den Wissenschaftler“ erschienen. Der Artikel ist auch auf der Homepage des Max-Planck-Instituts für Dynamik und Selbstorganisation veröffentlicht worden.

Gerade mit Referenz-Steigung in einen doppelt logarithmischen Plot in R eintragen

Ich stelle viele meiner Daten in Plots mit zwei logarithmischen Achsen dar. Oftmals kommt es in solchen Plots auf die Steigung der Kurve an, also den Exponenten eines Power laws. In solchen Fällen zeichne ich, zusätzlich zu den Daten, eine oder mehrere Geraden mit einer Referenz-Steigung ein. Dadurch kann der Betrachter abschätzen, in welchen Bereichen die Daten eher zu der einen oder der anderen Steigung tendieren. Ich fand es allerdings immer sehr mühsam diese Steigungen einzuzeichnen. Grund: Ein Teil der Anfangs- oder Endkoordinaten musste im logarithmischen Raum berechnet werden. Daher habe ich mir eine Funktion geschrieben, die mir anhand einer Anfangs-Koordinate, der Steigung, sowie einem Teil der Endkoordinate, den fehlenden Wert berechnet und die Referenz-Gerade in den Plot einzeichnet.

  1. Zunächst generiere ich Daten, die im doppelt-logarithmischen Plot eine Gerade ergeben:
    x = 1:1000
    y = x^-1.5
  2. Diese werden dann mit schön formatierten Achsen geplottet, wie im Artikel „Logarithmische Achsen in R-Plots formatieren“ beschrieben.
    library(package = "sfsmisc")
    #png("log-gerade.png", width=480, height=360)
    #par(cex =1.5, mar=c(4,4,0,0)+.01)
     
    plot(x, y, log="xy", xaxt="n", yaxt="n")
    sfsmisc::eaxis(side=1, at=10^c(0:3))
    sfsmisc::eaxis(side=2, at=10^c(-4,-2,0))
     
    #dev.off()
    Darstellung einer Potenz-Funktion in einem Plot mit zwei logarithmischen Achsen.
    Darstellung einer Potenz-Funktion in einem Plot mit zwei logarithmischen Achsen.
  3. Der Exponent der von mir verwendeten Potenzfunktion ist -1.5. Daher ist auch die Steigung der Geraden m = -1.5. Nun möchte ich zusätzlich eine Gerade mit der Steigung m = -1 in den Plot eintragen. Diese soll bei am Punkt (x1 = 101, y1 = 10-1) beginnen. Enden soll die Gerade bei x2 = 2*102. Gesucht ist also die Y-Koordinate des Endpunktes (y2).

    Nun kann man:

    1. Alle vorhandenen x- und y-Werte logarithmieren (da beide Achsen logarithmisch sind).
    2. Diese Werte können in die Gleichung für die Berechnung der Steigung eingesetzt werden.
    3. Nun muss die Gleichung nach x2 aufgelöst werden (oder: die Gleichung auflösen lassen).
    4. Im Anschluss muss der x2-Wert in den Exponenten genommen werden.
    5. Über den Plot-Befehl kann nun eine Gerade zwischen den beiden Punkten (x1, y1) und (x2, y2) eingezeichnet werden.

    Diese Vorgehensweise habe ich in der Funktion refline() zusammengefasst:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    refline <- function(x1=NA, y1=NA, x2=NA, y2=NA, m=1, add=T, ...) {
      # Welchen Achsen (des letzten plots) sind logarithmisch?
      logX = par("xlog")
      logY = par("ylog")
     
      # Werte der logarithmischen Achsen umrechnen
      if(!is.na(x1) && logX) {x1 = log(x1)}
      if(!is.na(x2) && logX) {x2 = log(x2)}
      if(!is.na(y1) && logY) {y1 = log(y1)}
      if(!is.na(y2) && logY) {y2 = log(y2)}
     
      # Bestimmung der fehlenden Variablen
      if(is.na(x1)) {
        x1 = (y1 - y2 + m * x2) / m
        print("X1 wird berechnet")
      } else if(is.na(x2)) {
        x2 = (y2 - y1 + m * x1) / m
        print("X2 wird berechnet")
      } else if(is.na(y1)) {
        y1 = y2 + m * (x1 - x2)
        print("Y1 wird berechnet")
      } else if(is.na(y2)) {
        y2 = y1 + m * (x2 - x1)
        print(paste("Y2 wird berechnet", y2))
      }
     
      # Werte der logarithmischen Achsen umrechnen
      if(!is.na(x1) && logX) {x1 = exp(x1)}
      if(!is.na(x2) && logX) {x2 = exp(x2)}
      if(!is.na(y1) && logY) {y1 = exp(y1)}
      if(!is.na(y2) && logY) {y2 = exp(y2)}
     
      # Einzeichnen
      if(add) {
        lines(x=c(x1, x2), y=c(y1, y2), ...)
      }
     
      # Ausgabe
      data.frame(
        x1, y1, x2, y2, m
        , xmin=min(x1, x2), xmax=max(x1, x2)
        , ymin=min(y1, y2), ymax=max(y1, y2)
      )
    }

    Die Besonderheiten der Funktion refline() sind:

    • Es wird automatisch die fehlende Koordinate bestimmt.
    • Es wird erkannt, welche der Achsen logarithmisch sind.
    • Wichtige Werte der Geraden werden bei Aufruf zurückgegeben. Im Anschluss können sie verwendet werden, z.B. um Texte an die Enden der Geraden zu schreiben.
    • Die Gerade wird (auf Wunsch: add=T) in den vorigen Plot eingetragen.
    • Grafik-Parameter werden an den Plot-Befehl weitergeleitet (...).

    Nun kann refline() genutzt werden, um die oben genannte Gerade (sowie eine weitere Gerade) in den Plot einzuzeichnen. Die Variablen rl1 und rl2 dienen dazu, die Anfangs- und End-Punkte zu speichern. Mit den gespeicherten Werten werden Anschluss die Texte positioniert.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    #png("log-gerade_2.png", width=480, height=360)
    #par(cex =1.5, mar=c(4,4,0,0)+.01)
     
    plot(x, y, log="xy", xaxt="n", yaxt="n")
    sfsmisc::eaxis(side=1, at=10^c(0:3))
    sfsmisc::eaxis(side=2, at=10^c(-4,-2,0))
     
    rl1 = refline(x1=1e1, y1=1e-1, x2=2e2, m=-1, col="red")
    text(x=rl1$x2, y=rl1$y2, labels=paste0(" Slope: ", rl1$m), adj=0, col="red")
     
    rl2 = refline(x1=8e0, y1=1e-2, x2=1e2, m=-2, col="blue")
    text(x=rl2$x2, y=rl2$y2, labels=paste0(" Slope: ", rl2$m), adj=0, col="blue")
     
    #dev.off()
    Darstellung einer Potenzfunktion mit einer Steigung von -1.5. Zusätzlich wurden Referenz-Steigungen von -1 und -2 eingezeichnet.
    Darstellung einer Potenzfunktion mit einer Steigung von -1.5. Zusätzlich wurden Referenz-Steigungen von -1 und -2 eingezeichnet.
  4. Hinweis: Als Parameter für die Funktion refline() muss ein vollständiges und ein unvollständiges Koordinaten-Tupel, sowie die gewünschte Steigung angegeben werden. Der Punkt (x2, y2) muss dabei nicht immer rechts vom Punkt (x1, y1) liegen. Vielmehr hängt es von den gewählten Werten ab, wie die Punkte zueinander liegen. Die Werte x1 und y1 bestimmen gemeinsam immer den einen Punkt und die Werte x2 und y2 gemeinsam den anderen Punkt.
  5. Wie ich oben bereits erwähnt habe, funktioniert die Berechnung des fehlenden Punktes der Gerade auch in Plots mit zwei linearen, oder nur einer logarithmischen Achse:
    Im Falle z.B. einer logarirhmischen Y-Achse werden dann nur die Y-Koordinaten logarithmiert. Hier einige Beispiele:

    # Linear
    plot(x, y)
    r1 = refline(x1=0, x2=500, y1=1, m=-0.0005, col="blue")
    text(x=r1$xmax, y=r1$ymin, labels=paste0(" Steigung: ", r1$m), adj=0)
     
    # Y-logarithmisch
    plot(x, y, log="y", yaxt="n")
    sfsmisc::eaxis(side=2, at=10^c(-4,-2,0))
    r2 = refline(x1=10, x2=500, y1=1, m=-0.002, col="red")
    text(x=r2$xmax, y=r2$ymin, labels=paste0(" Steigung: ", r2$m), adj=0)

Schreibhilfen für Abschlussarbeiten

Ich schreibe gerade eine Abschlussarbeit in englischer Sprache. Da ich kein Muttersprachler bin, fällt es mir das ein oder andere Mal schwer, eine alternative Formulierung oder die englische Übersetzung für ein Wort zu finden. Daher nutze ich Online-Wörterbücher und Thesaurus-Seiten zur Unterstützung:

Thesaurus-Seiten

  • thesaurus.com: Listet nicht nur Synonyme, sondern auch Antonyme für Wörter der englischen Sprache auf. Die einzelnen Begriffe werden entsprechend ihrer Relevanz engefärbt. Es gibt weitere Auswahlkriterien wie „Wort-Komplexität“, „Wortlänge“, „Verwendung im Alltag“.
  • openthesaurus.de: OpenThesaurus.de ist Mitmach-Wörterbuch für Synonyme und Assoziationen der deutschen Sprache. Es gibt weitere Projekte in Griechisch, Polnisch, Portugiesisch, Slowenisch und Spanisch.

Wörterbücher

  • dict.cc: Dict.cc ist ein Mitmach-Wörterbuch, das Übersetzungen für mehr als 20 Sprachen bereitstellt (Wikipedia). Die Wörterbücher können für eigene Software heruntergeladen werden.
  • leo.org: LEO.org ist ein Wörterbuch, dass aus einem studentischen Projekt heraus entstanden ist. Derzeit umfasst es acht Sprachen (Wikipedia).

Abkürzungen

Tabelle mit ASCII-Codes

Hin und wieder benötigt man beim Programmieren ASCII-Codes (z.B. für die Angabe von Symbolen in R-Plots). Daher zeige ich hier eine Liste der 128 ASCII-Zeichen, sowie deren Kodierung im Dezimalsystem, Hexadezimalsystem, Oktalsystem und Dualsystem. Die 128 ASCII-Zeichen umfassen 95 druckbare Zeichen und 33 Kontrollzeichen.

Weitere verwandte/ähnliche Zeichenkodierungen sind:

Zeichen/Abkürzung Dezimal Hexadezimal Oktal Binär Beschreibung
NUL 0 00 000 000 0000 Null character
SOH 1 01 001 000 0001 Start of Header
STX 2 02 002 000 0010 Start of Text
ETX 3 03 003 000 0011 End of Text
EOT 4 04 004 000 0100 End of Transmission
ENQ 5 05 005 000 0101 Enquiry
ACK 6 06 006 000 0110 Acknowledgment
BEL 7 07 007 000 0111 Bell
BS 8 08 010 000 1000 Backspace
HT 9 09 011 000 1001 Horizontal Tab
LF 10 0A 012 000 1010 Line feed
VT 11 0B 013 000 1011 Vertical Tab
FF 12 0C 014 000 1100 Form feed
CR 13 0D 015 000 1101 Carriage return
SO 14 0E 016 000 1110 Shift Out
SI 15 0F 017 000 1111 Shift In
DLE 16 10 020 001 0000 Data Link Escape
DC1 17 11 021 001 0001 Device Control 1 (often XON)
DC2 18 12 022 001 0010 Device Control 2
DC3 19 13 023 001 0011 Device Control 3 (often XOFF)
DC4 20 14 024 001 0100 Device Control 4
NAK 21 15 025 001 0101 Negative Acknowledgement
SYN 22 16 026 001 0110 Synchronous Idle
ETB 23 17 027 001 0111 End of Trans. Block
CAN 24 18 030 001 1000 Cancel
EM 25 19 031 001 1001 End of Medium
SUB 26 1A 032 001 1010 Substitute
ESC 27 1B 033 001 1011 Escape
FS 28 1C 034 001 1100 File Separator
GS 29 1D 035 001 1101 Group Separator
RS 30 1E 036 001 1110 Record Separator
US 31 1F 037 001 1111 Unit Separator
SP 32 20 040 010 0000
! 33 21 041 010 0001
34 22 042 010 0010
# 35 23 043 010 0011
$ 36 24 044 010 0100
% 37 25 045 010 0101
& 38 26 046 010 0110
39 27 047 010 0111
( 40 28 050 010 1000
) 41 29 051 010 1001
* 42 2A 052 010 1010
+ 43 2B 053 010 1011
, 44 2C 054 010 1100
45 2D 055 010 1101
. 46 2E 056 010 1110
/ 47 2F 057 010 1111
0 48 30 060 011 0000
1 49 31 061 011 0001
2 50 32 062 011 0010
3 51 33 063 011 0011
4 52 34 064 011 0100
5 53 35 065 011 0101
6 54 36 066 011 0110
7 55 37 067 011 0111
8 56 38 070 011 1000
9 57 39 071 011 1001
: 58 3A 072 011 1010
; 59 3B 073 011 1011
< 60 3C 074 011 1100
= 61 3D 075 011 1101
> 62 3E 076 011 1110
? 63 3F 077 011 1111
@ 64 40 100 100 0000
A 65 41 101 100 0001
B 66 42 102 100 0010
C 67 43 103 100 0011
D 68 44 104 100 0100
E 69 45 105 100 0101
F 70 46 106 100 0110
G 71 47 107 100 0111
H 72 48 110 100 1000
I 73 49 111 100 1001
J 74 4A 112 100 1010
K 75 4B 113 100 1011
L 76 4C 114 100 1100
M 77 4D 115 100 1101
N 78 4E 116 100 1110
O 79 4F 117 100 1111
P 80 50 120 101 0000
Q 81 51 121 101 0001
R 82 52 122 101 0010
S 83 53 123 101 0011
T 84 54 124 101 0100
U 85 55 125 101 0101
V 86 56 126 101 0110
W 87 57 127 101 0111
X 88 58 130 101 1000
Y 89 59 131 101 1001
Z 90 5A 132 101 1010
[ 91 5B 133 101 1011
\ 92 5C 134 101 1100
] 93 5D 135 101 1101
^ 94 5E 136 101 1110
_ 95 5F 137 101 1111
` 96 60 140 110 0000
a 97 61 141 110 0001
b 98 62 142 110 0010
c 99 63 143 110 0011
d 100 64 144 110 0100
e 101 65 145 110 0101
f 102 66 146 110 0110
g 103 67 147 110 0111
h 104 68 150 110 1000
i 105 69 151 110 1001
j 106 6A 152 110 1010
k 107 6B 153 110 1011
l 108 6C 154 110 1100
m 109 6D 155 110 1101
n 110 6E 156 110 1110
o 111 6F 157 110 1111
p 112 70 160 111 0000
q 113 71 161 111 0001
r 114 72 162 111 0010
s 115 73 163 111 0011
t 116 74 164 111 0100
u 117 75 165 111 0101
v 118 76 166 111 0110
w 119 77 167 111 0111
x 120 78 170 111 1000
y 121 79 171 111 1001
z 122 7A 172 111 1010
{ 123 7B 173 111 1011
| 124 7C 174 111 1100
} 125 7D 175 111 1101
~ 126 7E 176 111 1110
DEL 127 7F 177 111 1111 Delete

Quellen:

Leidenschaftliche Karotten

Es ist ganz schön schwer einen Titel für die folgenden Bilder zu finden. „Porno mit Gemüse“, „Möhren Minne„, „Karotten Kopulation“, „Amors Wurzeln“ oder „Schmutzige Sachen, die Möhren so machen“. Im Prinzip sind es einfach zwei Karotten, die sich gern hatten – bis zum 25.09.2013. An jenem Mittwoch Abend habe ich beide an ihrem Kopfschmuck aus der Erde unseres Gartens in Göttingen gezogen und damit das Schäferstündchen jäh beendet. Bis dahin wusste ich allerdings auch nicht, was Möhren in der Dunkelheit so alles treiben.

Querformat_4854

Querformat_4856

Hochformat_4838

Hochformat_4858

Querformat_4849

Querformat_4857

Querformat_4859

Lustiges Obst und Gemüse gibt es auch hier:

Notizen zu einem Vortrag über sichere Kommunikation im Internet

Ich habe mir am 07.11.2013 auf der Kryptoparty der Piratenpartei in Hannover einen Vortrag von Dirk Hillbrecht zum Thema Kryptographie angehört. Dabei ging es vor allem um die Verschlüsselung von E-Mails und Dateien mit Hilfe von OpenPGP. Während der Veranstaltung wurden Fragen beantwortet, die ich mir schon lange gestellt hatte. In diesem Artikel liste ich einige dieser Erkenntnisse auf. Wie man Schritt für Schritt seine E-Mails verschlüsseln kann, schreibe ich in einem separaten Artikel.

Einen Punkt den ich vorran stellen möchte: sicher verschlüsseln und signieren kann man nur mit Software, die auf dem eigenen Rechner läuft. Nur dann kann man einigermaßen sicher sein, dass nur einem selbst gewisse Informationen (Passwörter etc.) bekannt sind. Daher scheiden die Nutzung von Webmail-Oberflächen und die derzeit viel umworbene De-Mail von vornherein aus. Hier muss nämlich die Ver- und Entschlüsselung auf den Servern der Anbieter erfolgen.

Mir war zunächst der Unterschied zwischen „signieren“ und „verschlüsseln“ von E-Mails nicht bewusst. Irgendwie hatte sich in meinem Kopf festgesetzt: „entweder beides, oder nichts“. Tatsächlich kann man aber auch „nur verschlüsseln“ oder „nur signieren“.

E-Mails verschlüsseln

  1. Die Verschlüsselung dient dazu, den Inhalt der E-Mail vor dem Zugriff Dritter zu schützen.
  2. E-Mails werden mit dem öffentlichen Schlüssel des Empfängers verschlüsselt.
  3. Nur der Empfänger kann den Inhalt mit seinem privaten Schlüssel wieder entschlüsseln. (asymmetrische Verschlüsselung)

E-Mails signieren

  1. Eine Signatur verschlüsselt nicht den Inhalt einer Mail. Vielmehr stellt die Signatur sicher, dass der Inhalt der E-Mail vom Absender stammt und nach dem Absenden nicht verändert wurde. Der Empfänger kann den Inhalt der E-Mail auch dann lesen, wenn er die Signatur nicht überprüft hat – eventuell handelt es sich dann aber nicht um die Inhalte, die der Absender tatsächlich abgeschickt hat.
  2. Die Signatur wird mit aus dem privaten Schlüssel des Absenders und dem Inhalt der E-Mail errechnet.
  3. Der Empfänger kann die Richtigkit der Signatur mit Hilfe des öffentlichen Schlüssels des Absenders überprüfen.
  4. Man kann E-Mails zunächst signieren und im Anschluss verschlüsseln.

Einige Begriffe

  • Enigmail ist eine Erweiterung für Thunderbird, mit deren Hilfe E-Mails verschlüsselt und signiert werden können (Enigmail Quickstart Guide). Enigmail führt die Verschlüsselung nicht selbst durch, sondern nutzt dazu GnuPGP. (Erweiterungen für andere Programme, z.B. Mircrosoft Outlook, findest Du in der Liste grafischer Benutzeroberflächen für GnuPG).
  • GnuPG (auch: GPG) ist eine Implementierung vom Verschlüsselungsstandard OpenPGP. GnuPG erstellt die Schlüssel anhand des OpenPGP-Standards, verwaltet die Schlüssel, verschlüsselt, entschlüsselt und signiert die E-Mails. (Anleitungen zu GnuPG)
  • Unter Gnome/Unity kann zu Erstellung und Verwaltung der Schlüssel das Programm Seahorse verwendet werden. Mit Seahorse können (wie zuvor mit dem GNOME Schlüsselbund) auch andere Passwörter (z.B. SFTP) auf dem System verwaltet werden.
  • Da Seahorse und Enigmail nur Frontends für GnuPG sind, sind Schlüssel, die mit Hilfe des einen Programmes erstellt wurden, auch im jeweils anderen Programm sichtbar.
  • Neben dem privaten Schlüssel und dem öffentlichen Schlüssel, gibt es ein Passwort (Passphrase) und einen Fingerprint.
    1. Das Passwort (Passphrase) dient dazu, den privaten Schlüssel vor einem Zugriff Dritter zu schützen. Das Passwort muss man immer dann eingeben, wenn man Zugriff auf seinen privaten Schlüssel haben möchte. Das ist der Fall beim Entschlüsseln von E-Mails, sowie für die Errechnung der Signierung einer E-Mail.
    2. Der Fingerprint dient dazu, einen öffentlichen Schlüssel auf seine Korrektheit zu überprüfen. Erhält man z.B. über einen Key-Server einen öffentlichen Schlüssel, so kann man mit dieser Checksumme testen, ob es sich um den richtigen Schlüssel handelt. Den Fingerprint kann man z.B. auf seine Visitenkarten drucken.
  • Der gpg-agent (UbuntuUsers Wiki) ist integraler Bestandteil von GnuPG. Er dient dazu, dass das Passwort für die privaten Schlüssel nicht jedes mal neu eingegeben werden muss.
  • Ein Widerrufszertifikat dient dazu, einen öffentlichen Schlüssel bereits vor Ablauf seiner Gültigkeit als ungültig zu erklären bzw. von den Schlüsselservern (Keyserver) zu entfernen. Das ist insbesondere dann wichtig, wenn:
    1. Andere Leute Zugriff auf den privaten Schlüssel bekommen haben.
    2. Man selbst keinen Zugriff mehr auf seinen privaten Schlüssel hat.

Einige Fragen

Kann man PGP verschlüsselte Nachrichten an mehrere Nutzer gleichzeitig schicken?
Ja. Dazu möchte ich aus dem Wikipedia-Artikel zu PGP zitieren:

Bei PGP wird aber nicht die ganze Nachricht asymmetrisch verschlüsselt, denn dies wäre viel zu rechenintensiv. Stattdessen wird die eigentliche Nachricht symmetrisch und nur der verwendete Schlüssel asymmetrisch verschlüsselt (Hybride Verschlüsselung). Dazu wird jedes Mal ein symmetrischer Schlüssel zufällig erzeugt.

Dieser symmetrische Schlüssel wird dann per RSA- oder Elgamal-Kryptosystem mit dem öffentlichen Schlüssel des Empfängers verschlüsselt und der Nachricht hinzugefügt. Dadurch ist es möglich, eine Nachricht für mehrere Empfänger gleichzeitig zu verschlüsseln. Eine für mehrere Empfänger verschlüsselte Nachricht ….

… enthält also zusätzlich eine Liste, in der für jeden Empfänger der Schlüssel enthalten ist. Dieser Schlüssel wird für jeden Empfänger mit seinem öffentlichen Schlüssel asymmetrisch verschlüsselt.

Kann ich meine gesendeten verschlüsselten Nachrichten im Postausgang noch lesen?
Wenn eine Nachricht mit dem öffentlichen Schlüssel der Empfängers verschlüsselt worden ist, kannst man sie im Prinzip nach dem senden nicht mehr anschauen. Allerdings kann man sich selbst auch als Empfänger der Nachricht eintragen lassen (siehe oben). Bei Enigmail gibt es dazu die Einstellung: „Zusätzlich mit eigenem Schlüssel verschlüsseln“:

Man kann E-Mails nicht nur mit dem öffentlichen Schlüssel des Empfängers, sondern auch mit dem eigenen Schlüssel verschlüsseln. Dadurch kann man die gesendeten und verschlüsselten Nachrichten im Postausgang wie gewohnt lesen.
Man kann E-Mails nicht nur mit dem öffentlichen Schlüssel des Empfängers, sondern auch mit dem eigenen Schlüssel verschlüsseln. Dadurch kann man die gesendeten und verschlüsselten Nachrichten im Postausgang wie gewohnt lesen.
Wie kann ich herausfinden, ob mein Schlüssel bereits auf einen Schlüsselserver hochgeladen wurde?
Dazu kannst Du einfach den Schlüsselserver nach deiner E-Mail-Adresse durchsuchen.

  1. Bei Enigmail geht das über: OpenPGP / Schlüssel verwalten und dann Schlüsselserver / Schlüssel suchen.
  2. Bei Seahorse kannst Du den/die Schlüsselserver durchsuchen, indem du auf Entfernt / Entfernte Schlüssel suchen klickst.
  3. Direkt im Internet kannst Du z.B. den MIT Schlüsselserver durchsuchen.
  4. Eine Liste grafischer Benutzeroberflächen für GnuPG findest Du auf der GnuPG Homepage.

Sichere Internet-Verbindung mit HTTPS und SSH

  • Bei HTTPS wird zunächst sichergestellt, dass die Gegenseite auch tatsächlich diejenige ist, für die sie sich ausgibt (also z.B. die Bank, und kein „Man in the middle„). Das wird mit Hilfe von Zertifikaten und einer Zertifikatskette sichergestellt, die von Zertifizierungsstellen (CA; certification authority) bereitgestellt werden. So lange die privaten Schlüssel der Zertifizierungsstellen nicht in falsche Hände gelangt sind, ist das eine sichere Angelegenheit
  • Im Anschluss werden die Schlüssel für die Verschlüsselung mit Hilfe des Diffie-Hellman-Schlüsselaustausches ausgetauscht. Die Besonderheit dieses Verfahrens ist, dass die eigentlichen Schlüssel nicht über das Internet versendet werden. Im Anschluss werden alle Daten nur noch verschlüsselt versendet.
  • Auch wenn man ein unsicheres Netzwerk verwendet (z.B. am Flughafen oder in einem Café), sind diese HTTPS-Verbindungen sicher.
  • Bei SSH-Verbindungen (z.B. wenn man sich im Terminal auf einen Server einloggt, oder eine SFTP-Verbindung aufbaut), muss man zunächst die Schlüssel über eine sichere Verbindung ausgetauscht haben. Den Fingerprint für die Authentifizierung kann man sich vom Admin geben lassen. Bei jedem Aufbau einer SSH-Verbindung wird anhand des Fingerprints überpüft, ob die gewünschte Gegenstelle (direkt) erreicht wurde. Im Anschluss können alle Daten verschlüsselt ausgetauscht werden.

Daten verschlüsseln mit TrueCrypt

In den letzten Minuten des Vortrags wurde noch das Programm TrueCrypt als gute Möglichkeit zur Verschlüsselung von Dateien vorgestellt.

  • TrueCrypt ist für viele Plattformen verfügbar. Das Programm heißt unter Linux RealCrypt.
  • Man legt sogenannte Volumes an, deren Größe man vorher festlegen muss.
  • Mit Hilfe von TrueCrypt können verschlüsselte Archiv-Dateien erstellt (und im Anschluss verbreitet) werden. Bei eCryptFS soll das scheinbar nicht so gut möglich sein. Damit habe ich mich allerdings noch nicht beschäftigt.
  • Die Dateien können mit einem einfachen Passwort wieder entschlüsselt werden.
  • Scheinbar hat Julian Paul Assange diese Methode verwendet, um die amerikanischen Botschaftsdepeschen zu verschlüsseln und zu vebreiten. Er hat gedroht, dass im Falle seines vorzeitigen Ablebens das Passwort an die Öffentlichkeit geraten würde. In dem Falle würden die verschlüsselten Dateien (die auf vielen Server in der ganzen Welt abgelegt worden waren) für alle einsehbar werden. In seiner Biographie hat Assange allerdings Hinweise auf das Passwort gegeben. Das wurde dann erraten und dadurch wurden alle Botschaftsdepeschen einsehbar – auch solche die nicht veröffentlicht werden sollten.

Dateien aus verschlüsseltem Home-Verzeichnis kopieren und löschen

Ich habe mir kürzlich eine neue Festplatte gekauft und darauf ein neues Ubuntu eingerichtet. Nun möchte ich die Daten von meiner alten Festplatte herunterladen und auf die neue Festplatte spielen. Das Problem ist allerdings, dass ich mein Home-Verzeichnis auf der alten Festplatte mit Hilfe von eCryptfs verschlüsselt hatte. In diesem Artikel erkläre ich schrittweise, wie man dennoch die Daten aus einem verschlüsselten Verzeichnis verschieben, kopieren und löschen kann.

  1. Zunächst ist es hilfreich, wenn man sein altes Login-Passwort griffbereit hat. Alternative kann man auch das eCryptfs Mount-Passwort verwenden. Das hat man sich im Optimalfall nach der Installation notiert, oder zu einem späteren Zeitpunkt mit Hilfe des folgenden Befehls angeschaut:

    ecryptfs-unwrap-passphrase
  2. Im Anschluss muss man das Laufwerk/Speichermedium mounten, auf dem sich das verschlüsselte Verzeichnis befindet. Tipp: interne Festplatten und deren Partitionen sind nicht automatisch gemountet – auch nicht, wenn das Symbol in der Seitenleiste von Ubuntu angezeigt wird. In dem Falle muss man einfach einmal auf das Symbol klicken.
  3. Daraufhin gibt man im Terminal einen der beiden folgenden Befehle ein (mit Root-Rechten!; siehe auch UbuntuUsers Forum):

    # Verzeichnis nur mit Leserechten einbinden
    sudo ecryptfs-recover-private
     
    # Verzeichnis mit Schreibrechten einbinden
    # in "man ecryptfs-recover-private" ist die Option --rw etwas versteckt genannt
    sudo ecryptfs-recover-private --rw

    eCryptfs durchsucht nun alle gemounteten Medien nach eCryptfs-verschlüsselten Verzeichnissen. Das kann eine Weile dauern.

    INFO: Searching for encrypted private directories (this might take a while)…

  4. Hat eCryptfs die Suche beendet, wird für jedes gefundene Verzeichnis gefragt, ob es eingebunden werden soll. Dabei sollte man beachten, dass auch das Verzeichnis des angemeldeten Nutzers gefunden wird (in meinem Falle also nicht nur das alte, sondern auch das neue Home-Verzeichnis).

    INFO: Found [/media/neuerusername/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/.ecryptfs/alterusername/.Private].

    Nun wird man zunächst nach seinem Login-Passwort gefragt:

    INFO: Found your wrapped-passphrase
    Do you know your LOGIN passphrase? [Y/n]

    Falls man dieses nicht kennt, wird man nach dem (meist 32-stelligen) Mount-Passwort gefragt:

    INFO: To recover this directory, you MUST have your original MOUNT passphrase.
    INFO: When you first setup your encrypted private directory, you were told to record
    INFO: your MOUNT passphrase.
    INFO: It should be 32 characters long, consisting of [0-9] and [a-f].

    Enter your MOUNT passphrase:

  5. Hat man eines der beiden Passwörter korrekt eingegeben, so wird das Verzeichnis innerhalb des Ordners /tmp eingehängt:

    INFO: Success! Private data mounted at [/tmp/ecryptfs.PW48rluR].

  6. Nun kann man das Verzeichnis im Datei-Browser öffnen – entweder durch klicken, oder durch den Start von nautilus (mit dem Verzeichnis als Parameter) aus dem Terminal heraus:

    nautilus /tmp/ecryptfs.PW48rluR
  7. Hinweis: Sollten sich in dem Verzeichnis nur Dateien befinden, die z.B. mit ECRYPTFS_FNEK_ENCRYPTED. beginnen, hat man das Mount-Passwort sehr wahrscheinlich falsch eingegeben.

Werbung aus der Ubuntu-Dash entfernen

Wenn man in das Suchfeld der Dash einen Begriff eingibt, wird nicht nur auf der Festplatte gesucht, sondern auch im Internet. Das finde ich persönlich im Bezug auf der Datenschutz sehr fragwürdig. Im folgenden Artikel zeige ich, wie man diese Werbung ganz leicht deaktivieren kann.

Gibt man in die Dash einen Suchbegriff ein, wird standardmäßig Werbung für den Kauf von Musik angezeigt.
Gibt man in die Dash einen Suchbegriff ein, wird standardmäßig Werbung für den Kauf von Musik angezeigt.

In der aktuellen Version von Ubuntu (13.10: Saucy Salamander) wird zum Beispiel Werbung für Musik angezeigt. In früheren Versionen scheint es Werbung für Amazon gewesen zu sein (siehe UbuntuUsers Wiki). Diese Werbung wird durch Unity-Lenses in die Dash integriert. Es gibt nun zwei Möglichkeiten diese Werbung aus der Dash zu verbannen:

  1. Online-Suche in den Ubuntu-Einstellungen deaktivieren
  2. Verantwortliche Unity-Lenses deinstallieren

Online-Suche deaktivieren

Die Weitergabe des Suchbegriffes an Online-Services kann in den Ubuntu-Einstellungen deaktiviert werden. Dazu gehst du einfach auf „Systemeinstellungen -> Privatsphäre -> Suchergebnisse -> Online-Suchergebnisse“ und deaktivierst diese.

Deaktivierung der Online-Suchergebnisse in der englischsprachigen Version von Ubuntu.
Deaktivierung der Online-Suchergebnisse in der englischsprachigen Version von Ubuntu.

Das ist auch der Weg, der in der Legal Notice von Ubuntu vorgeschlagen wird:

Online Search
You may restrict your dash so that we don’t send searches to third parties and you don’t receive online search results. To do this go to the Privacy panel and toggle the ‘Include online search results’ option to off. The Privacy panel can be found in your System Settings or via a dash search. For a current list of our selected third parties, please see www.ubuntu.com/privacypolicy/thirdparties.

Unity Lenses deinstallieren

In der zweiten Variante deinstallierst Du einfach die verantwortlichen Unity Lenses.

  • unity-lens-shopping – war laut UbuntuUsers für die Amazon-Werbung verantwortlich
  • unity-scope-musicstores – Dieses Paket erweitert unity-lens-music um die Möglichkeit Musik online zu kaufen

Ubuntu ISO-Dateien nach dem Download überprüfen

Nach dem Download von Ubuntu (oder anderer Dateien aus dem Internet) überprüfe ich immer, ob die Datei(en) korrekt heruntergeladen wurde(n). Eine Möglichkeit ist, die MD5-Summe der ISO-Dateien zu berechnen.

Unter Linux steht dazu der Befehl md5sum zur Verfügung

1
2
3
4
# MD5-Summen aller *.iso-Dateien berechnen und in md5sums.txt schreiben:
md5sum *.iso > md5sums.txt
# Inhalt der Datei anzeigen:
cat md5sums.txt

Als Ausgabe bekommt man z.B.:

8d72e2db7e72e13813731eab37a14d26  ubuntu-13.04-desktop-amd64.iso
5d5d1a7da2a0659b163d4f8bd70fbe6f  ubuntu-13.04-desktop-i386.iso
21ec41563ff34da27d4a0b56f2680c4f  ubuntu-13.10-desktop-amd64.iso
d0508f909c2c71d96aeac5efb0329b33  ubuntu-13.10-desktop-i386.iso

Unter MacOSX steht dazu der Befehl md5 zur Verfügung

1
2
3
4
# MD5-Summen aller *.iso-Dateien berechnen und in md5sums.txt schreiben:
md5 *.iso > md5sums.txt
# Inhalt der Datei anzeigen:
cat md5sums.txt

Als Ausgabe bekommt man z.B.:

MD5 (ubuntu-13.04-desktop-amd64.iso) = 8d72e2db7e72e13813731eab37a14d26
MD5 (ubuntu-13.04-desktop-i386.iso) = 5d5d1a7da2a0659b163d4f8bd70fbe6f
MD5 (ubuntu-13.10-desktop-amd64.iso) = 21ec41563ff34da27d4a0b56f2680c4f
MD5 (ubuntu-13.10-desktop-i386.iso) = d0508f909c2c71d96aeac5efb0329b33

Nun muss man nur noch die ermittelten Summen mit den erwarteten Summen vergleichen. Leider werden auf der Downloadseite von Ubuntu nicht mehr standardmäßig die MD5-Testsummen bereitgestellt. Allerdings gibt es eine Seite mit allen bisherigen Testsummen für Ubuntu.

Die richtigen Tasten auf deutscher Tastatur bei englischer Tastaturbelegung finden

Der ein oder andere kennt das Problem: der Rechner funktioniert nicht, und man muss ins Wiederherstellungs-Terminal. Zu dem Zeitpunkt ist allerdings die korrekte Tastaturbelegung noch nicht geladen. Man hat zwar eine deutsche Tastatur angeschlossen, aber die gedrückten Tasten (deren Signale) werden so interpretiert, als handele es sich um eine englische Tastatur. Dann geht das suchen los, denn Passwörter und Terminal-Befehle wollen richtig eingegeben werden.

Die folgende kleine Liste enthält häufig benötigte Zeichen, sowie die Taste oder Tastenkombination, die dazu auf einer deutschen Tastatur gedrückt werden muss.

Gewünschtes Zeichen Taste / Tastenkombintation
* ⇧ Shift + 8
| ⇧ Shift + #
@ ⇧ Shift + 2
?
/
y z
z y
= ´