Archiv Oktober 2012

Montag, 29. Oktober 2012

Web-Videos von arte, ARD, ZDF & Co. herunterladen

Das kriegt man offenbar mit folgendem Mac-Tool hin:

Mediathek for Mac

Leider ist ausgerechnet die arte-Doku, an welcher ich interessiert bin, offenbar nicht verfügbar:

Quelle: GOLDMAN SACHS – LA BANQUE QUI DIRIGE LE MONDE

Tags: , , , ,
Labels: Medien

Keine Kommentare | neuen Kommentar verfassen

Montag, 29. Oktober 2012

MySQL, das Windows unter den Datenbanken

Obwohl ich seit 12 Jahren mit dieser Datenbank arbeite, habe ich mir noch nie Gedanken darüber gemacht, wie unkonform MySQL mit Daten umgeht:

Via: PostgreSQL Rising

Trotz all seinen Fehlern: MySQL reicht für die Bedürfnisse von mindestens 80 Prozent seiner Benutzer. Normalerweise verfrachte ich die Prüfhandlungen und die Logik in PHP-Scripte und verwende MySQL als „dummen“ Datenspeicher. Doch in einigen Fällen habe ich mir doch einige MySQL-Funktionen und Feld-Attribute zu nutzen gemacht, um Fehleingaben auch auf Datenbankebene zu verhindern. Denn die Datenbank ist nun mal das letzte Bollwerk vor dem Datensalat.

PS: Wenn man schon den unangefochtenen Platzhirschen im Linux Shared Hosting-Bereich madig machen will, sollte man auf Comic Sans als Schrift verzichten. Helvetica oder Helvetica Neue gäbe dem Video mehr Seriosität.

Tags: , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 18. Oktober 2012

Mit curl eine fortlaufend nummerierte Reihe von Photos in Gallery 2 herunterladen

Nichts leichter als das. Man öffne die Detailansicht des ersten Photos in Gallery 2, notiere sich den Wert der Variable und kopiere die URL. Dasselbe tut man für das letzte Photo des Albums.

Die URL und die zwei Zahlen fügt man in folgenden Kommandozeilenbefehl ein:

curl -f "http://domain.tld/main.php?g2_view=core.DownloadItem&g2_itemId=[39169-39632]&g2_serialNumber=2" -o "#1.jpg"

Erläuterung der Optionen:

  • -f verhindert, dass HTTP-Fehlermeldungen auch als Dateien gespeichert werden — denn es könnte ja sein, dass die Sequenz nicht durchlaufend ist.
  • [39169-39632] definiert den Anfangs und den Endwert der Sequenznummern von Gallery 2
  • -o Speichert die Rückmeldung des Web-Servers in eine Datei und gibt sie nicht auf im Shell aus
  • #1 ist die fortlaufende Nummer. So werden mit -o Dateien mit eindeutigen Dateinamen geschrieben

Quelle: trying to use curl to download a series of files

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 16. Oktober 2012

Aus einer S/MIME verschlüsselten E-Mail-Nachricht das DER-Zertifikat des Senders extrahieren

Damit man Lotus Notes zur verschlüsselten S/MIME-Kommunikation mit anderen Internetbenutzern bewegen kann, sind einige Kapriolen nötig (ich habe bereits darüber gebloggt).

Heute hatte ich einen neuen Fall: Ein Kunde schickte auf ein von mir signiertes S/MIME-Mail eine S/MIME-verschlüsselte Antwort zurück. Lotus Notes entschlüsselte den Text brav im Hintergrund (ich habe mein VeriSign-Zertifikat im Mail-Client hinterlegt), doch wie immer landete trotz der abgenickten „Cross Certify“–Abfrage kein Zertifikat in meinem lokalen Adressbuchkontakt des Ansprechpartners. Ein mir bekanntes Problem, welches verhindert, dass ich der Person ebenfalls verschlüsselt antworten kann.

Wie nicht anders zu erwarten war, habe ich es irgendwann einmal dann doch noch geschafft, aus dieser Nachricht das X.509-Zertifikat des Ansprechpartners zu extrahieren. Rückblickend sieht es — unter uns gesagt — gar nicht so kompliziert aus:

Verschlüsselten Textblock ins Dateisystem abspeichern

Hierzu öffnet man die Nachricht zuerst einmal mit Doppelklick. Dann klickt man in den Body der Nachricht. Danach:

  1. View
  2. Show
  3. Page Source

Man selektiert den ganzen Text ab hier …

Content-Transfer-Encoding: base64
Content-class: urn:content-classes:message
Content-Type: application/x-pkcs7-mime;
		 name="smime.p7m"
Content-Disposition: attachment;
		 filename="smime.p7m"
Content-Description: smime.p7m

MIImFQYJ ...

… gefolgt vom Base64-enkodierten verschlüsselten Text.

Den Zeichensalat kopiert man in eine Textdatei, die man bspw. encrypted.p7m nennt.

openssl für Windows

Als nächstes besorgt man sich die Win32-Binaries von OpenSSL:

Win32 OpenSSL

Diese werden wie vorgeschlagen unter C:\OpenSSL-Win32 installiert. Dabei kann es nicht schaden, den Pfad auch gleich noch in die PATH-Variable des Environments aufzunehmen:

  1. System Properties
  2. Advanced
  3. Environment Variables
  4. User variables for %USER%
  5. PATH
  6. Edit

Eigenes Zertifikat verfügbar machen

Um eine Textdatei mit OpenSSL zu entschlüsseln, benötigt man selbstverständlich noch seinen eigenen privaten Schlüssel. Diesen habe ich als .pfx aus dem Microsoft Certificate Manager extrahiert und im Dateisystem abgelegt. Wichtig ist, dass man den Private Key explizit auch exportiert, sonst bringt die ganze Übung nichts.

Damit OpenSSL das Zertifikat versteht, muss es von PFX nach PEM umgewandelt werden:

openssl pkcs12 -in mario-aeby.pfx -out mario-aeby.pem -nodes

Quelle: How to Convert PFX Certificate to PEM Format for Use with Citrix Access Gateway

Wer sein Import Password vergessen hat … muss hier leider aufhören. Wer sich aber an das Passwort erinnern kann und es openssl übergibt, liest umgehend:

MAC verified OK

Schaut man sich die .pem-Datei an, liest man in meinem spezifischen Fall folgendes:

Bag Attributes
   localKeyID: 01 00 00 00
   friendlyName: le-f2f17a0f-253d-4395-a852-137b4c1ad697
   Microsoft CSP Name: Microsoft Strong Cryptographic Provider
Key Attributes
   X509v3 Key Usage: 10
-----BEGIN PRIVATE KEY-----
MII...

Ordnerinhalt

Der Ordner sollte nun enthalten:

  • smime.p7m
  • mario-aeby.pfx
  • mario-aeby.pem

Entschlüsseln

Nun geht es ans Eingemachte:

openssl smime -decrypt -in encrypted.p7m -inform SMIME -inkey mario-aeby.pem -out decrypted.p7m -outform SMIME

Wird von OpenSSL keine Fehlermeldung ausgegeben, konnte die Nachricht entschlüsselt werden. Die Nachricht liegt ebenfalls als Base64-kodierter Zeichenhaufen in der Datei decrypted.p7m

Zertifikat des Senders extrahieren

Nun kann man das Zertifikat des Senders aus der unverschlüsselten, aber signierten Nachricht extrahieren:

openssl smime -verify -noverify -in decrypted.p7m -signer sender.pem

Informationen über das Zertifikat

Wenn wir uns die sender.pem anschauen, finden wir heraus, wo der Absender sein Zertifikat gelöst hat (in dem vorliegenden Fall war es SwissSign):

openssl x509 -in sender.pem -text

Umwandlung in ein DER-Zertifikat

Fast haben wir es geschafft. Mit folgendem Befehl produzieren wir ein DER-Zertifikat, welches Lotus Notes versteht und in das Adressbuch importieren kann:

openssl x509 -in sender.pem -outform der -out sender.der

Import in Lotus Notes

Hierzu öffnet man das Adressbuch und öffnet die Adresskarte des Senders mittels Doppelklick. Anschliessend importiert man das Zertifikat:

  1. Actions
  2. Certificates
  3. Import Internet Certificates
  4. Files of type: Binary and Base64 Files (*.cer, *.der)
  5. <Auswahl der Datei sender.der im Dateisystem>
  6. Open

Fertig!

Links

Nebenbemerkung

Zertifikatanbieter wie bspw. QuoVadis Trustlink Schweiz AG bieten auf Ihren Homepages die Möglichkeit an, nach Angabe der E-Mail-Adresse des Zertifikatbesitzers dessen Public Key herunterzuladen.

Bei SwissSign fand ich — nur per Zufall und langem Suchen — folgendes Abfrageformular:

Search / Manage

Die E-Mail-Adresse des Ansprechpartners fand sich aber nicht in der Datenbank. Ansonsten hätte ich von hier den Public Key respektive das DER-Zertifikat herunterladen können.

Tags: , , , , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Samstag, 13. Oktober 2012

Wenn man sich bei Arcotel unter Mac OS X 10.7 nicht in das WLAN einloggen kann

… liegt das daran, dass das Login-Fenster des Apple WiFi-Services keine JavaScript-Alerts ausführt resp. anzeigt.

Deshalb muss man sich über den Web-Browser (Safari oder bspw. Chrome) anmelden und den JavaScript-Dialog („Bitte verwenden Sie http://logoff.now, um sich abzumelden“) abnicken. Dann klappt es auch mit dem kostenlosen WLAN für Hotelgäste.

Tags: , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 7. Oktober 2012

Syntax eines PHP-Scripts auf der Kommandozeile überprüfen

Nicht immer produziere ich auf dem lokalen Mac Code in einem Verzeichnis, welches über den lokalen Web-Server angesprochen werden kann. Wenn ich den Code auf den Server des Kunden kopiert habe und mir dort eine gähnende Leere entgegenblickt, ist die Vermutung in der Regel ein Syntax-Problem, welches den PHP-Parser zum Abbruch bewegt. So genau weiss man das natürlich nicht, da man als guter Entwickler display_errors auf einem Produktivsystem auf 0/off/false gesetzt hat und Fehlermeldungen nur in das error_log ablegt.

Entweder öffnet man das error_log via FTP, oder aber man lässt die Syntax auf dem Mac selber von der Kommandozeilenversion von PHP überprüfen:

php -l <Pfad zum syntaktisch defekten PHP-Script>

Dies führt entweder zur Absolution mit

No syntax errors detected in <Pfad zum syntaktisch defekten PHP-Script>

oder aber im unglücklicheren Fall zur folgenden oder ähnlichen Fehlermeldung:

Parse error: parse error in <Pfad zum syntaktisch defekten PHP-Script> on line 146
Errors parsing <Pfad zum syntaktisch defekten PHP-Script>

Tags: , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 4. Oktober 2012

Wie man aus smime.p7s ein .cer-Zertifikat macht

Irgendwie hat es Lotus Notes auf der Arbeit (von mir auch schon liebevoll als „a pile of shit“ bezeichnet) so an sich, dass es so seine Problem mit Private Public-Key-Verschlüsselung hat. Zugegebenermassen habe ich selber auch noch nicht ganz durchblickt, was jetzt was ist — und wann man von Public-Key-Verschlüsselung spricht und wann von Zertifikaten.

Mittlerweile habe ich realisiert, dass die Verschlüsselung dann auf Anhieb klappt, wenn ich das X.509-Zertifikat eines Benutzers in dessen Kontakt importiere (über Actions > Certificates > Import Internet Certificate). Doch manchmal hat man das Zertifikat einfach nicht zur Hand, weil es auf Gottes Erde so viele Arten gibt, den Mailverkehr zwischen zwei Parteien zu verschlüsseln.

So wie heute: Da kam also ein Mail an, welches eine smime.p7s-Signatur im Anhang enthielt (nur sichtbar über den Quelltext des E-Mails). Lotus Notes scheint (zumindest bei uns) nichts damit anfangen zu können.

Ich kopierte die Signatur deshalb manuell in eine Textdatei und speicherte diese als smime.p7s ab. Windows erkennt diese Dateiendung leider nicht. Indem ich .p7s in .p7b änderte, wechselte das Icon der Datei in ein Zertifikat. Ich konnte dieses nun Doppelklicken, Microsoft Certificates wurde gestartet und zeigte mir den Inhalt des Zertifikats an.

Mittels Rechtsklick auf das Zertifikat mit dem Namen der Person wählte ich Actions > Export aus. Ich generierte mir auf diese Weise eine DER-kodierte .cer-Datei. Diese legte ich wiederum als Datei auf dem Desktop ab.

Jetzt erst war es dem „dampfenden Scheisshaufen“ (Lotus Notes) möglich, das Zertifikat dem Kontakt hinzuzufügen. Und somit kann ich seither mit der Gegenpartei verschlüsselt kommunizieren, ohne auf eine webbasierte Secure Mail-Lösung zurückgreifen zu müssen.

Kleingedrucktes: Natürlich benötige auch ich ein entsprechendes Zertifikat. Dieses habe ich über Symantec VeriSign bezogen.

Tags: , , , , , , , , ,
Labels: IT

3 Kommentare | neuen Kommentar verfassen

Donnerstag, 4. Oktober 2012

Christoph Blocher erklärt Twitter

Ohne Worte:

Zwar, so schlecht macht er das nicht. Chrigel hat halt schon immer äusserst komplexe Materien so heruntergebrochen, damit sie auch der hinterletzte SVPler versteht *zwinker*

Tags: , , , ,
Labels: Funny

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 4. Oktober 2012

In Microsoft Word einen neuen Paragraphen nach einer Tabelle einfügen

Jeder Angestellte, welcher von seinem Arbeitgeber gezwungen wird, Microsoft Word einzusetzen kennt das Problem: Da habe ich also eine Tabelle und nach dieser kommt … nichts. Will heissen, die Tabelle reicht bündig bis ans Seitenende. Und nun steht man plötzlich vor dem Problem, dass man nach der Tabelle doch noch einige Paragraphen Text anfügen möchte. Indem man den Cursor in der letzten Tabellenzeile in die Spalte ganz rechts platziert und danach die Return-Taste betätigt, generiert man eine neue Tabellenzeile nach der anderen.

Abhilfe schafft folgender Trick:

Click the Show/Hide button on the toolbar until your paragraph marks appear. Without them, you cannot see what you are doing. To solve your situation, place your cursor in the last cell of the table, then hit Cursor Right twice.

You will see the cursor moves to the empty paragraph mark after the table.That’s the end of the file. Start typing there.

Quelle: cursor will not exit the table

Auf Deutsch: Anstelle dass man die Zeilenschaltungstaste betätigt, drückt man zweimal auf Cursor Rechts. Und schwupps, Word wechselt den Cursor auf die nächste Zeile und eröffnet einen neuen Paragraphen für die Texteingabe.

Tags: , ,
Labels: IT

2 Kommentare | neuen Kommentar verfassen