Zwei-Faktor-Verifikation für Google-Accounts

Ob das RRZK-Blog ein guter Platz ist, um über ein Feature von Google-Accounts zu schreiben? Ich bin nicht sicher, aber viele an der Uni nutzen ja die Google-Angebote und daher ist es vielleicht für ein paar Leute von Interesse.

Ich selbst nutze einen Google-Account seit 2006 für mein „persönliches digitales Leben“. Die Datenschutz-Problematik ist mir durchaus bewusst, aber die Funktionen sind einfach zu verführerisch, um widerstehen zu können. Schon lange hat mich gestört, dass meine Daten nur durch ein kleines Passwort von der Welt getrennt sind. In einer globalen Cloud können merk- und tippbare Passwörter praktisch nie ein geeigneter Schutzmechanismus sein.

Seit einigen Monaten bietet Google nun eine Authentifizierungsmethode an, die „Two Step Verification“ genannt wird. Das klingt verdächtig nach der klassischen Zwei- bzw. Mehr-Faktor-Authentifizierung. Dies legt auch die Intro-Page nahe, die sagt „Sign in will require something you know and something you have“. Klingt sehr gut.

Der Start ist auch recht simpel; eine kleine Änderung in den Account-Einstellungen und man erhält Einmal-Zugriff-PINs über SMS, Voice Call oder eine recht nette Authenticator-App (für Android, iOS usw.), die zusammen mit dem traditionellen Passwort den Zugriff auf das Konto ermöglichen. Außerdem kann man Geräte nach eigenem Ermessen als „vertrauenswürdig“ einstufen; dann entfällt dort die Eingabe der zusätzlichen PIN. Auch der Desaster-Fall ist bedacht: dafür gibt es Backup-PINs zum Ausdrucken (Natürlich nicht ausdrucken, falls der Drucker ein Gerät mit Festplatte oder Netzwerk-Anschluss ist 😉 ).

Wie immer gibt es in der schönen neuen Welt auch ein paar Relikte aus der hässlichen alten Welt; in diesem Fall sind das die „anwendungsspezifischen Passwörter„. Diese sind zwar nicht „anwendungsspezifisch“, aber Passwörter mit fast allen schlechten Eigenschaften, die Passwörter haben können. Sie sind nicht anwendungsspezifisch, weil sie den Zugriff auf das komplette Google-Konto ermöglichen. Die Terminologie bedeutet, dass sie nur für eine bestimmte Anwendung eingesetzt werden sollen.

Ein zusätzlicher Schutz (im Vergleich zum klassischen Passwort) besteht neben der Länge darin, dass es weniger Risiken gibt, das Passwort zu verlieren oder unabsichtlich offenzulegen (revealing). Faktisch wird es einmal angezeigt und dann nie wieder; schreibt man es nicht auf, sondern kopiert es sofort in die Anwendung der Wahl und vergisst es, so kann man es selbst nicht mehr verlieren. Trotzdem kann in der rauen Wirklichkeit das eigene Google-Konto über diesen Mechanismus „geknackt“ werden. Also: Der Provider kann es noch „für einen verlieren“ – quasi „RaaS, Revealing as a Service“.

Klar, die „anwendungssprezifischen Passwörter“ sind eben Passwörter und daher ist der Authentifizierungsmechanismus auch keine echte Zwei-Faktor-Authentifizierung. Ich vermute, dass Google daher auch von einer „Two Factor Verification“ spricht. Zu dem Mechanismus und seinen potenziellen Schwachstellen gibt es diverse mehr oder weniger technische Erläuterungen.

Alles sinnlos also? Falls das eigene digitale Leben spartanisch ist und sich auf die Browser-Schnittstelle bzw. moderne Android-Systeme (wohl >2.3) beschränkt, sind anwendungsspezifische Passwörter verzichtbar. Dann ist das Niveau des Zugriffschutzes mit Zwei-Faktor-Verifikation deutlich besser als ohne.

Andernfalls muss man halt mit dem kleinen Schönheitsfehler leben. Ein Sicherheitszuwachs bleibt: Falls man doch einmal das gute alte Passwort verlieren sollte oder falls es ein Service-Provider „für einen selbst“ verliert, kann nicht ohne weiteres von jedem Rechner im Internet auf das Konto zugegriffen werden.

Was man auch noch im Auge behalten sollte:

  1. Gut auf die Backup-Codes aufpassen.
  2. Einen kritischen Blick auf die Liste der Sites, Apps und Dienste, denen Zugriff auf die eine oder andere Information des Google-Kontos eingeräumt wird. Sicherheitsvorfälle in diesen Bereichen können auf das Google-Konto übergreifen.

Anmeldephase für die Computerkurse hat begonnen!

Ab sofort können sich alle Studierende und Beschäftigte der Uni Köln (und anderer Hochschulen in NRW) für die Computerkurse des RRZK in den kommenden Semesterferien anmelden.

Unter anderem gibt es Kurse in den Bereichen Betriebssysteme, Rechnersicherheit, Programmierung, Office-Anwendungen, Grafik und Multimedia, Statistik, Mathematik-Software, e-Learning und Literaturverwaltung.

Kursverzeichnis und Anmeldung unter: http://rrzk.uni-koeln.de/kursangebot.html

SoFS-Nutzung von Android Tablets

Bislang gab es nur Hinweise, wie SoFS von Windows und MacOS aus nutzbar ist. Aber auch von Android aus kann man dank Webdav gut auf SoFS zugreifen. Man installiert sich dazu aus dem Google Playstore zunächst den „Total Commander“ und darin dann das Webdav plugin. Dieses dann mit https(!) checken, sofsdav.uni-koeln.de/private/<username> als pfad, username und password konfigurieren und fertig! Dem Hin- und Her-Kopieren von Dateien zwischen Android-Device und SoFS steht nur noch die verfügbare Bandbreite im Wege…

Neues im Bereich Software: Adobe Student&Teacher ESD Versionen und IBM SPSS Modeler Standortlizenz

Adobe Student&Teacher ESD Versionen im Softwareshop der Uni Köln

Durch eine Erweiterung des Adobe Vertrages sind im Online-Softwareshop der Universität zu Köln jetzt auch ESD (Electronic Software Download) Versionen der Adobe Student&Teacher Lizenzen verfügbar (zum Beispiel Photoshop, Indesign, Creative Suite).

Bestellen können alle Studierenden und Beschäftigten der Universität zu Köln (für die nicht-kommerzielle Privatnutzung).

Die Preise sind günstiger als die im Handel erhältlichen Student&Teacher Boxprodukte von Adobe.

Die Lizenzen sind für Windows oder Mac erhältlich, allerdings nur in der deutschsprachigen Version.

Die Adobe Student&Teacher ESD Versionen können im Softwareshop der Uni Köln bestellt und heruntergeladen werden.

Weitere Informationen zu Adobe Student&Teacher ESD an der Uni Köln

IBM SPSS Modeler Standortlizenz

Die Universität zu Köln nimmt am „IBM Mining in Academia“-Programm teil. Dieses beinhaltet eine kostenlose Standortlizenz für das Programm SPSS Modeler inkl. Text Analytics für 1 Jahr (bis 31.05.2013).

Die Software darf nur für Schulungszwecke und nicht-kommerziell orientierte wissenschaftliche Forschungszwecke auf Computern genutzt werden, die Eigentum der Universität zu Köln sind (Standortlizenz).

Die Software kann über den Softwareshop der Uni Köln heruntergeladen werden.

Weitere Informationen zum IBM SPSS Modeler an der Uni Köln

Rabatt auf Adobe Produkte bis 16. März 2012!

Studierende, Lehrer, Professoren und Schüler können jetzt dreifach sparen! Denn neben dem regulären Rabatt von bis zu 80% auf die Student and Teacher Editions gewährt Adobe ab sofort einen weiteren Preisnachlass von 50€ auf folgende Produkte:

  • Adobe Creative Suite 5.5 Design Premium
  • Adobe Creative Suite 5.5 Web Premium
  • Adobe Creative Suite 5.5 Production Premium
  • Adobe Creative Suite 5.5 Master Collection

Außerdem werden die Versandkosten erlassen.

Adobe Education Store

VPN-Unterstützung für Android-Endgeräte – Konfiguration der Klienten

Die letzten Tage habe ich mit der Integration von VPN für Android-Geräte verbracht. An dieser Stelle entschuldige ich mich vorab für mehrere Verbindungsabbrüche bei den Nutzern, die den IPSec-Klienten verwenden, denn durch die Umstellung der Verschlüsselungskonfiguration musste ich mehrmals morgens die IPSec-Verbindungen trennen.

Einige der Android-Smartphones von Samsung haben schon vor einigen Monaten VPN-Unterstützung in Form des AnyConnect-Klienten erhalten. Dieser verwendet als Protokoll SSL-VPN und sollte somit die wenigsten Probleme mit Firewalls etc. haben, da die Kommunikation nur über den Port 443 (TCP und UDP) und alle Sessions nur vom Klienten aufgebaut werden. Ich empfehle daher, diesen weiterhin zu verwenden, wo dieser verfügbar ist.

Um die restlichen Android-Endgeräte ua. auch  Tablets mit VPN zu versorgen, musste ein völlig anderer Typ von VPN aktiviert werden, L2TP-IPSec.  Dabei wird zuerst eine IPSec-Verbindung aufgebaut, in der wiederum ein L2TP-Tunnel erstellt wird.

Wie dies auf den Endgeräten konfiguriert wird habe ich exemplarisch unter http://rrzk.uni-koeln.de/vpnandroid.html dokumentiert. Da die Hersteller teilweise die Bezeichnungen und Menüstruktur verändern, können diese unter Umständen abweichen.

Bei der Verschlüsselung habe ich mich für mehr Sicherheit und damit für AES gegenüber 3DES entschieden. In der Literatur wird AES oft als ressourcenlastiger bezeichnet, was gerade bei den leistungsschwächeren Mobilgeräten in einem höheren Energiebedarf und somit einer kürzeren Batterielaufzeit resultieren könnte. Dazu habe ich aber keine Informationen gefunden und kann die Problematik daher nicht bewerten.

Ich bin gespannt, wie hoch die Nutzung von VPN über Android sein wird. Leider dauert es ja oft, bis sich die Nachricht über die neue Unterstützung von Endgeräten herumspricht.

 

Anleitung zur Einrichtung von L2TP-IPSec unter Android: http://rrzk.uni-koeln.de/vpnandroid.html

Enabling VPN for Android devices – configuration of Cisco ASA

With the new ASA versions 8.3.2.12 or 8.4.1 Cisco announced the support for native VPN on Android devices. Implementing the configuration changes in an existing and running environment can be quite tricky.

For the Android devices the ASA has to offer a L2TP/IPSec tunnel. The IPSec tunnel has to be in transport mode. Since normally the IPSec tunnels are configured in tunnel mode you will encounter the problems of having a mixture of tunnel and transport mode.

The document https://supportforums.cisco.com/docs/DOC-17798 gives a good example on how to configure the tunnel in a new environment.

If you already have an existing crypto-map or dynamic-map for the other IPSec clients and try to add a second one with a higher or lower priority you will end up with an IPSec phase 2 that fails with the error message “All IPSec SA proposals found unacceptable!” for clients using the map with the lower priority.

You can solve this problem only through implementing the two modes via two transform-sets using one single dynamic map.

Example:

crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac

crypto ipsec ikev1 transform-set l2tptransform-set esp-aes esp-md5-hmac

crypto ipsec ikev1 transform-set l2tptransform-set mode transport

crypto dynamic-map public_dyn_map 30 set ikev1 transform-set ESP-AES-256-SHA l2tptransform-set

The order of the transform-sets in the dynamic-map defines their priority with the highest from the left.

Have in mind that changing the dynamic-map results in disconnection of all IPSec sessions.

Tipps zur Forensik nach Durcheinander auf Plattenbereichen

Dann und wann geschieht es: der lvm verliert seine Konfiguration oder durch andere traurige Umstände hat man lediglich noch einen Haufen „extents“ bekannter Länge vorliegen, die einmal eine Platte waren.
Dem Autor passierte dies beim versehentlichen Löschen einer falschen virtual Disk im IBM SVC („SAN Volume Controller“).
Bekannt war hier noch, dass ein Solaris UFS mit knapp 1TB Grösse verloren gegangen war.
Schaut man sich dann in Ruhe ein paar Grundlagen zu UFS-Datenstrukturen auf disk an, etwa in
http://www.informit.com/articles/article.aspx?p=605371&seqNum=2, und besorgt sich einige „magic“ Konstanten aus den guten alten .h-files in einem alten Solaris, kann man sich ein kleines C-Programm wie dieses

findb.c:
 #define _LARGEFILE64_SOURCE
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>

/*
#define FS_MAGIC 0x011954
#define CG_MAGIC 0x090255
*/

#define FS_MAGIC 0x54190100
#define FSMOFF 343
#define CG_MAGIC 0x55020900

#define NEXT 2113
#define ESIZE 512*1024*1024
static char edata[ESIZE];
#define HEADL 32768*2048
#define SBDIST 6495
#define SBONE 2

long *edata32;

main()
{
long rb;
int fd;
unsigned int extno,boff,isbi,x,cgno;
off64_t offs, offo;
 extno=0;
 edata32=&edata;
 fd=open("/dev/sdb",O_RDONLY);
 if (fd<0) { printf("open errorn"); exit(99); }

 while(extno < NEXT) {
 printf("reading extent number %dn",extno);
 rb=read(fd,edata,ESIZE);
 if(rb != ESIZE) { printf("short readn"); exit(98); }
/*  rb=read(fd,edata,HEADL);
 if(rb != HEADL) { printf("short readn"); exit(98); }
 offs=ESIZE-HEADL;
 offo=lseek64(fd,offs,SEEK_CUR);
 if(offo == (off64_t) -1 ) {printf("seek errorn"); exit(97);} */
/*  printf(" sb %08x cg %08x n",edata32[2050],edata32[4097]); */
 boff=0;
 while((boff*4) <ESIZE) {
/*  while((boff*4) <HEADL) { */
/*  if(edata32[343+boff]==FS_MAGIC) { printf("fs magic found, ext=%d off=%d sblkno= %08xn ",extno,boff/2048,edata32[2+boff]); */
/*  isb=SBONE;
 while(isb < NEXT*65536) {
 if((isb & 0x0ffff) == boff/2048) break;
 isb=isb+SBDIST;
 }
 printf("isb=%d, ext=%dn",isb,isb/65536);
 } */
 if(edata32[1+boff]==CG_MAGIC) {
 x=edata32[3+boff];
 cgno= (x>>24) |
 ((x<<8) & 0x00FF0000) |
 ((x>>8) & 0x0000FF00) |
 (x<<24);
 printf("CG_MAGIC match, ext=%d off=%d cgx=%d time=%08x cyls=%dn",extno,boff/2048,cgno,edata32[2+boff],edata32[4+boff]>>24); }
 boff=boff+2048;
 }
 extno=extno+1;
 }
}

schreiben, was in der hier wiedergegebenen Form für alle Cylindergroup-Strukturen den Wert deren offset „cgx“ ausgibt, eben den laufenden index der jeweiligen cyclindergroup Struktur. Beachte die Zweckmässigkeit des Programms (nur ganz notwendige Fehlerabfragen) und die Tricks, um Solaris/Sparc Zahlen (BigEndian) in Linux/X86 Zahlen (LittleEndian) umzurechnen (Konstanten wurden per Hand konvertiert).

Durch Sortieren der extents (bekannter Grösse) kann man so mit etwas Glück die originale Reihenfolge der extents rekonstruieren. Dabei hat dieses script gute Dienste geleistet:

fsbchain.sh:
#!/bin/sh -vx
SBONE=0
SB=$SBONE

sbf=xfb64ec.out

while true ; do
l1=`grep "cgx=$SB$" $sbf`
if [ $? -ne 0 ]; then
echo end of chain
exit
fi
echo $l1
set - $l1
SBEXT=$1
echo `echo $SBEXT | cut -d = -f 2`>>extlist
ln=`grep "$SBEXT " $sbf | tail -1`
echo $ln
SBL=`echo $ln | cut -d = -f 3`
SB=`expr $SBL + 1`
echo $SB
#read
done

Mit ein paar weiteren shell scripten, die sicherstellen, dass nur valide CG-Blocks gezählt werden (deswegen werden Grösse und Datum mit ausgegeben) und einem anderen kleinen Hilfsprogramm

copyb.c:
#define _LARGEFILE64_SOURCE
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <limits.h>

#define ESIZE 512*1024*1024
static char edata[ESIZE];

main(argc,argv)
int argc;
char *argv[];
{
long rb;
int infd, outfd;
unsigned int extno,boff,isbi,x,cgno;
off64_t ioffs, ooffs, offo;
int ein,eout;

 ein=atoi(argv[1]);
 eout=atoi(argv[2]);
 printf("copying extent %d to extent %dn",ein,eout);

 infd=open("/dev/sdb",O_RDONLY);
 if (infd<0) { printf("input open errorn"); exit(99); }
 outfd=open("/dev/sdc",O_RDWR);
 if (outfd<0) { printf("output open errorn"); exit(99); }

 ioffs=(off64_t) ein * ESIZE;
 ooffs=(off64_t) eout * ESIZE;
 printf("input seek to %llu output seek to %llun",ioffs,ooffs);
 offo=lseek64(infd,ioffs,SEEK_SET);
 if(offo < 0 ) {printf("input seek errorn"); exit(97);}
 offo=lseek64(outfd,ooffs,SEEK_SET);
 if(offo < 0 ) {printf("output seek errorn"); exit(97);}
 rb=read(infd,edata,ESIZE);
 if(rb != ESIZE) { printf("short readn"); exit(98); }
 rb=write(outfd,edata,ESIZE);
 if(rb != ESIZE) { printf("short writen"); exit(98); }

}

zum effektiven Zusammensetzen des disk /dev/sdc aus den Daten der /dev/sdb nach einer eingelesenen Steuerdatei der Form

[root@nisad-pc03 ~]# head -10 extlist
12
307
21
407
268
304
305
19
314
357
[root@nisad-pc03 ~]#

Ob ähnliches Vorgehen bei ext2/ext3 Filesystemen gelingen würde dort gibt es sogenannte block groups, die wohl den cylinder groups im ufs entsprechen, mit  s_block_group_nr (block group # of this superblock) wird sich bei Gelegenheit zeigen (müssen).

Webseiten und Webanwendungen als Icon auf dem Startbildschirm des iPhone / iPod touch

Wie man Webseiten mit dem iPhone / iPod touch auf dem Home-Bildschirm ablegt.

eingebundene Webanwendungen

Eine nützliche App ist sicherlich Wikipedia. Doch deutsche Benutzer beklagen natürlich sofort: „Ist ja alles auf Englisch!“ Eine deutsche Anwendung, bzw. eine lokalisierte Version gibt es nicht. Braucht man ja auch nicht. Wozu eine App installieren, wenn man die Webanwendung direkt in den Startbildschirm einbinden kann.

Man kann beliebige Webseiten und Webanwendungen als Icon auf den Startbildschirm legen. Dazu besucht man im Safari einfach die jeweilige Webseite. Nach Drücken auf das +-Symbol erscheinen drei Auswahlbuttons.  Mit „Zum Home-Bildschirm“ wird diese Webseite als Icon abgelegt.

Mit dieser Funktion kann man häufig genutzte Webseiten noch schneller öffnen und erhält Funktionen, die durch Apps nicht abgedeckt sind. Im Beispielbild sieht man die Webseiten des Kölner Studentenwerks, Wikipedia und Wiktionary als Symbol abgelegt auf dem Home-Bildschirm.

Das Problem mit der digitalen Ausleihe – E-Books in wenigen Arbeitsschritten herunterladen

Um digitale Bücher schnell auszuleihen benötigt man Hilfsmittel, die automatisch die einzelnen Kapitel herunterladen um dann die einzelnen Dokumente zu einem einzigen PDF zusammenzufügen.

E-Books sind der Traum eines Bibliotheksnutzers. Einmal heruntergeladen kann das Buch sofort, überall und so lange man will gelesen werden. Weil das Ausleihen damit viel zu einfach wird, hat man dem willigen Benutzer jedoch noch ein paar Steine in den Weg gelegt.

Viele PDF-Dateien müssen einzeln heruntergeladen werden
Viele PDF-Dateien müssen einzeln heruntergeladen werden

Wer schon einmal ein digitales Buch ausgeliehen hat kennt das Problem wahrscheinlich. Man landet beispielsweise auf der Seite des Anbieters www.springerlink.com bei dem der Download lizenziert ist und hat dann lediglich die Möglichkeit alle Kapitel des Buches einzeln als PDF herunter zu laden. Noch dazu heißt dann jede Datei „fulltext.pdf“ und muss nach dem herunterladen umbenannt werden, damit man die Kapitel noch auseinanderhalten kann. Bei Büchern mit mehr als 20 Kapiteln hört die Freude am digitalen Download aber auf.

Wenn man sich die vielen Arbeitsschritte ersparen will muss man automatisieren. Eine Möglichkeit dazu ist die Nutzung des Firefox Add-ons „DownThemAll!“ und des PDF-Konverters „FreePDF“.

Mit DownThemAll! kann man alle Kapitel auf einmal herunterladen. Dazu muss das Add-on zuerst im Firefox installiert werden. Neustart des Browsers nicht vergessen! Anschließend bekommt man auf der Seite mit den PDF-Dokumenten nach einem Rechtsklick und Klick auf „DownThemAll!“ alle Links auf dieser Seite angezeigt. Nun müssen wir zuerst die Einstellungen bearbeiten (ganz unten rechts). Den Schieberegler „Max. Anzahl gleichzeitiger Downloads“ ganz nach links schieben, damit nur noch eine Datei  gleichzeitig heruntergeladen wird. Dadurch erreichen wir, dass die PDFs in der richtigen Reihenfolge auf unserem Rechner landen. Nun noch „Falls ein Dateiname…“ auf „Umbenennen“ stellen, damit nicht bei jedem PDF erneut  nachgefragt wird. Nach Klick auf „OK“ müssen wir nun auf das Pluszeichen vor „Schnelles Filtern“ klicken und dort folgenden Eintrag einfügen:“*.pdf“. Noch die Checkbox „Andere Filter deaktivieren“ auswählen und gegebenenfalls den Pfad ändern, an dem die Dateien gespeichert werden sollen. Es empfiehlt sich einen eigenen Ordner anzulegen indem man einfach an die bestehende Adresse einen Zusatz wie „buchxy“ hinzufügt. Alle Dateien landen dann nach Klick auf „Starten!“ in dem Ordner buchxy unter den Eigenen Dateien.

Nun wäre es ja praktisch, wenn wir anstatt der vielen einzelnen Dateien ein einziges Dokument hätten. Das Zusammenfügen erledigt FreePDF für uns. Damit FreePDF funktioniert muss erst Ghostscript installiert werden. Danach kann FreePDF durch Klick auf die aktuellste Versionsnummer heruntergeladen und installiert werden. Jetzt befindet sich im Startmenü unter FreePDF das Programm FreePDF Join. Oben Rechts wählt man durch Klick auf das Ordnersymbol den Ordner mit den heruntergeladenen Dateien aus, markiert alle Dateien und klickt auf „Öffnen“. Jetzt sollte man darauf achten, dass die Dokumente auch ja in der richtigen Reihenfolge sind und anschließend auf das Disketten Symbol klicken. Nun muss man nur noch einen Namen für die zusammengefügt Datei eingeben, am besten den Titel des Buches und fertig ist man.

Nun hat man das  Buch in einem Dokument und kann es komplett nach Stichwörtern durchsuchen.