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.

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
= ´

Verwendung von JSON-Daten innerhalb einer JavaScript-Anwendung

JSON (JavaScript Object Notation) in ein kompaktes Datenformat, mit dem komplexe Datenstrukturen abgebildet und zwischen Anwendungen ausgetauscht werden können. JSON erfreut sich zunehmender Beliebtheit, da im Vergleich zu XML weniger Verwaltungsdaten (Overhead) benötigt werden. In diesem Artikel stelle ich kurz vor, wie JSON innerhalb einer JavaScript-Anwendung verwendet werden kann.

Zunächst zeige ich die manuelle Erstellung eines JSON-Objektes. Im Anschluss gebe ich ein Beispiel dafür, wie ein JSON-Objekt durch die Instanziierung einer JavaScript-Klasse erzeugt werden kann. Im letzten Beispiel wird das JSON-Objekt durch Parsen eines JSON-Strings erzeugt.

Eine allgemeine Beschreibung des JSON-Formates ist auf JSON.org zu finden. Zudem wird in zahlreichen Artikeln auf StackOverflow das Thema JSON behandelt (JSON valid chars, Illegal characters in object or JSON key, Are there limitations for key names in JSON-files?).

Manuelle Erstellung

Im folgenden wird zunächst ein JSON-Objekt (manuell) erzeugt.
Mit Hilfe der Ausgabe-Funktion (ausgabe()) soll der Zugriff auf die einzelnen Teile des Objektes demonstriert werden.

Hinweis: ich verwende generell den UTF-8 Zeichensatz. Beim Nachprogrammieren muss dieser eventuell angepasst werden (siehe W3.org).

<html>
<head>
	<title>JavaScript und JSON</title>
	<meta charset="utf-8"/>
</head>
<body>
 
JSON-Demonstration.
<script>
/** Objekt mit dem Namen 'manuell'. */
manuell = {
  name: "Peter",
  tiernamen: ["Bello", "Miezie"],
  /* Felder können weitere Objekte enthalten. */
  auto: {
    /* Benennung der Felder ist Case-sensitiv. */
    SITZE: 4,
    kennzeichen: "A-BC-123"
  }
};
 
/** Ausgabefunktion */
function ausgabe(objekt) {
  alert(
    'Hallo!\n'
    + objekt.name + ' hat ' + objekt.tiernamen.length + ' Haustiere.\n'
    + 'Eines davon heißt: ' + objekt.tiernamen[0] + '.\n'
    + '\n'
    + 'Das Auto hat ' + objekt.auto.SITZE + ' Sitze.\n'
  );
}
 
ausgabe(manuell);
</script>
 
</body>
</html>

Objektoreintierte Programmierung in JavaScript

Zunächst werden die JavaScript-Klassen Person und Auto erstellt. Details zur Objektorientierten Programmierung mit JavaScript gibt es auf WebmasterPro.de.

/** Definition der Klassen. */
function Person(name, tiere, auto) {
	this.name      = name;
	this.tiernamen = tiere;
	this.auto      = auto;
}
function Auto(Sitze, Kennzeichen) {
	this.SITZE       = Sitze;
	this.kennzeichen = Kennzeichen;
}

Im Anschluss wird das Objekt instanziiert.

/* Objekt erzeugen. */
klasse = new Person(
             "Gerda",
             ["Fips", "Felix"],
             new Auto(7, "D-EF-456")
         );

Die Ausgabe erfolgt dann über:

ausgabe(klasse);

Parsen eines JSON-Strings

Strings, die ein JSON-Objekt repräsentieren, können mit Hilfe der jQuery-Funktion parseJSON() in ein JSON-Objekt umgeformt werden. Dabei ist zu beachten, dass die Schlüssel (keys) in Anführngszeichen stehen (also: {"name": "Gustav"} anstatt {name: "Gustav"}).

Zunächst muss jQuery in den Quelltext eingebunden werden. Dazu wird folgende Programmzeile innerhalb von <head>...</head> hinzugefügt.

<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>

Im Anschluss wird der String (hier aus der Variable json) geparst:

json =	'{'
     + '"name": "John",'
     + '"tiernamen": ["Flipper", "Blubb", "Goldie"],'
     + '"auto": {'
       + '"SITZE": 2,'
       + '"kennzeichen": "G-HI-789"'
       + '}'
     + '}';
jquery = jQuery.parseJSON(json);

Die Ausgabe der Daten erfolgt dann über:

ausgabe(jquery);

In wenigen Schritten ein „eigenes“ WordPress Theme erstellen

WordPress erlaubt es einem, das Aussehen des eigenen Blogs durch sogenannte „Themes“ zu verändern. In der Standard-Installation werden bereits einige dieser Designs („TwentyTwelve“, „TwentyThirteen“) mitgeliefert und können im Administrationsbereich under Design / Themes aktiviert werden.

Die im Theme enthaltenen Dateien können über den Editor (Design / Editor) verändert werden. Am häufigsten werden vermutlich die Stylesheets (style.css), die Kopf- und Fußzeilen (header.php und footer.php), die Vorlage für Beiträge (single.php) sowie Theme-Funktionen (functions.php) an die eigenen Bedürfnisse angepasst bzw. erweitert.

Problemtaisch wird es, wenn es ein Update des Themes gibt. Dabei gehen in der Regel alle Änderungen (z.B. geänderte Farben im StyleSheet) verloren.

Um ein Theme zu verändern, ohne die ursprünglichen Dateien zu verändern, kann man in sogenanntes „Child-Theme“ erstellen. Ein Child-Theme ist ein eigenes Theme, enthält allerdings nur diejenigen Dateien, die Du tatsächlich verändern möchtest. Die übrigen Dateien werden aus einer von Dir benannten Vorlage („Template“, „Eltern-Theme“) verwendet.

  1. Erstelle zunächst einen neuen Ordner (z.B. mit dem Namen „Mein_Design“) im Verzeichnis /wp-content/themes.
  2. Jedes Child-Theme benötigt eine Datei mit dem Namen style.css. Diese Datei wird von WordPress nach den Informationen über das Theme (Name, Autor, Eltern-Theme,…) durchsucht.
    Erstelle also eine Datei mit dem Namen style.css und folgendem Inhalt:

    /*
    Theme Name:     Twenty Thirteen (Fenon)
    Theme URI:      http://fenon.de/
    Description:    Mein eigenes Theme basierend auf Twenty Thirteen
    Author:         Vorname Nachname
    Author URI:     http://fenon.de/infos/
    Template:       twentythirteen
    Version:        0.1
    */

    In diesem Beispiel wird das Theme „twentythirteen“ aus dem Ordner /wp-content/themes als Vorlage (Template) verwendet.

  3. Das neue Theme ist jetzt bereits mit den von Dir gemachten Angaben in den Design-Einstellungen sichtbar und kann aktiviert werden. Allerdings überschreibt diese neue style.css-Datei alle CSS-Angaben, die in der verwendeten Vorlage („twentythirteen“) gemacht wurden. In Deiner eigenen style.css-Datei stehen allerdings noch keine CSS-Angaben drin.
    Ein einfacher Weg ist, zunächst alle Angaben der Theme-Vorlage hinzu zu laden und im Anschluss eigene Angaben zu schreiben. Der Inhalt Deiner style.css-Datei könnte also folgendermaßen aussehen:

    /*
    Theme Name:     Twenty Thirteen (Fenon)
    Theme URI:      http://fenon.de/
    Description:    Mein eigenes Theme basierend auf Twenty Thirteen
    Author:         Vorname Nachname
    Author URI:     http://fenon.de/infos/
    Template:       twentythirteen
    Version:        0.1
    */
    /* Alle Angaben aus Template hinzuladen */
    @import url("../twentythirteen/style.css");
     
    /* Eigene Angaben machen */
    header#masthead {
    	background: #D0E5B7;
    }
     
    code {
    	background: #ccc;
    }
     
    h1.entry-title {
    	margin: .5em 0;
    	padding: .5em .25em;
    	border-radius: 10px;
    	background: #D0E5B7;
    }
  4. Bei einem Update des Themes „twentythirteen“ bleiben von nun an Deine Änderungen erhalten. Allerdings kann es durchaus passieren, dass sie unwirksam werden. Zum Beispiel dann, wenn sich durch das Update die HTML-Struktur oder die Namen von Elementen ändern.
  5. Wie bereits bei der Datei style.css, überschreiben auch alle hinzugefügten *.php-Dateien die Inhalte der PHP-Dateien der verwendeten Vorlage – mit Ausnahme der Datei functions.php. Falls Du eine eigene functions.php-Datei erstellen solltest, werden beide Dateien geladen. Dabei wird Deine eigene functions.php-Datei vor der functions.php-Datei aus der Vorlage geladen.
    Daher eignet sich die functions.php besonders gut um neue Funktionen zum Template hinzuzufügen, da man keine Angaben aus der Vorlage kopieren muss. Das gilt insbesondere dann, wenn man sie im Zusammenhang mit Action-Hooks verwendet (siehe auch: add_action()):

    <!--?php 
    function nach_fusszeile( $name ) {
    	?-->
    	Eigener Text nach der Wordpress-Fusszeile
    	<!--?php 
    } // ENDE: nach_fusszeile()
    add_action( 'wp_footer', 'nach_fusszeile' );
    ?-->

Weitere Informationen findest Du auf der WordPress Homepage, auf ThemeShaper oder Im Blog von Wlad Leirich

Abkürzungen in gnuplot

Das Programm gnuplot dient dazu, Daten in einem Koordinatensystem graphisch darzustellen. Gnuplot kann über den Befehl

gnuplot

im interaktiven Modus gestartet werden. Um die Eingabe der Befehle zu beschleunigen, gibt es für häufig verwendete Befehle Kurzschreibweisen. Einige davon sind in der folgenden Tabelle aufgelistet:

Befehl Abkürzung Beispiel
using u, usi plot "file.dat" u 1:2
title t plot 1 t "Linie 1"
with w plot 2 w lines
lines l plot 2 with l
linespoints lp, linesp plot 2 with linesp
linetype lt plot 2 w l lt 3
linecolor lc plot 2 w l lc rgb "#cccccc"
linewidth lw plot 2 w l lw 5
points p plot 2 with p
pointtype pt plot 2 w p pt 6
pointsize ps plot 2 w p ps .5
pointinterval pi ?pointinterval
xrange xr set xr [-5:5]
yrange yr set yr [1:2]
terminal term set term pdf
postscript post set terminal post
output out set out "filename.dat"
replot rep

Weitere Details findest Du in der gnuplot-Dokumentation.

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

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.

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:

Apple Befehlstaste (⌘) in Blog-Artikeln verwenden

Gelegentlich muss ich an einem Apple-Gerät (meist einem iMac) arbeiten. Über meine Erfahrungen berichte ich unter anderem in diesem Blog. Daher komme ich nicht drumherum, die Befehlstaste (; Command key) in den ein oder anderen Beitrag einzufügen.

Dafür gibt es zwei Möglichkeiten:

  • Zum einen kann man das ⌘-Zeichen direkt in den Quelltext (oder das Editor-Fenster) kopieren. Das funktioniert bei mir, da ich in der Regel den UTF-8 Zeichensatz für meine Blogs und Internetseiten verwende.
  • Falls man nicht den UTF8-Zeichensaz verwendet, kann man auch den Unicode-Befehl (&#8984;) in seinen Quelltext einbauen:
    1
    
    Das &#8984;-Zeichen über den HTML-Befehl &amp;#8984; einfügen.

    Das ergibt:

    Das ⌘-Zeichen über den HTML-Befehl &#8984; einfügen.

Hinweis: Einige Browser können das Zeichen nicht darstellen (z.B. der Standard-Browser auf meinem Android-Tablet).

Rezept für überbackene Waffeln („Irinas Waffeln“)

Ich bin ein Freund außergewöhnlicher und vor allem schneller Rezepte. Als mir meine Frau (Irina) allerdings von ihrer Idee zu „überbackenen süßen Waffeln“ erzählte, war ich skeptisch. Zu unrecht, denn ihre Idee stelle sich als äußerst schmackhaft heraus.

  1. Waffeln auf Mikrowellen geeigneten Teller legen.
    Fertige, süße Waffeln auf einen für die Mikrowelle geeigneten Teller legen.
  2. Die Waffeln mit Käse belegen (hier: Tilsiter).
    Die Waffeln mit Käse belegen (hier: Tilsiter).
  3. Die belegten Waffeln für 45 Sekunden bei 800 Watt in der Mikrowelle erhitzen.
    Die belegten Waffeln für 45 Sekunden bei 800 Watt in der Mikrowelle erhitzen.
  4. Fertig.
    Fertig.
  5. Die Waffeln sollten möglichst schnell gegessen werden. Auf jeden Fall sollte das Kondenswasser (zwischen Waffeln und Teller) entweichen können. Ansonsten werden die Waffeln unangenehm weich.

Ich finde man sollte die Waffeln nach Irina benennen. Wenn Dir die Waffeln ebenfalls schmecken, dann schreib einen Kommentar und empfiehl „Irinas Waffeln“ weiter.