M-IDentity: USB-Stick der Migros-Bank auf Fedora

Update 21. Januar 2015: M-Idenity unter Fedora 21 / 64bit

DER STICKUFT NICHT UNTER FEDORA 21 / 64bit. Es ist ein Ärgernis, denn er läuft auch nicht unter einem virtuellen Windows-Client. selinux ist nicht der Grund dafür. strace bietet keinen nennenswerten Anhaltspunkt. Die Vermutung geht in Richtung X. Gnome3

Der M-Idenity läuft mit den bekannten Problemen der USB-Rechte erst einmal nicht auf Fedora 21 / 64 bit. Bevor die Rechte am USB-Devices neu angepasst werden, müssen alle 32-bit-Bibliotheken installiert werden. Man macht sich zu root (oder arbeitet mit sudo) und installiert mit dns (oder mit yum):

dnf install gtk2.i686
dnf install pangox-compat.i686
dnf install PackageKit-gtk3-module.i686
dnf install libcanberra-gtk2.i686
dnf install adwaita-gtk2-theme.i686

Das zieht die Installation weiterer Packete nach sich. Für gtk2.i686 ist das: atk.i686 2.14.0-1.fc21  avahi-libs.i686 0.6.31-30.fc21  cups-libs.i686 1:1.7.5-13.fc21  gdk-pixbuf2.i686 2.31.1-1.fc21  jasper-libs.i686 1.900.1-29.fc21. PackageKit benötigt: PackageKit-glib.i686 1.0.4-1.fc21 PackageKit-gtk3-module.i686 1.0.4-1.fc21 at-spi2-atk.i686 2.14.1-1.fc21 at-spi2-core.i686 2.14.1-1.fc21 cairo-gobject.i686 1.13.1-0.4.git337ab1f.fc21 colord-libs.i686 1.2.8-1.fc21 glib-networking.i686 2.42.0-1.fc21 gtk3.i686 3.14.6-1.fc21 json-glib.i686 1.0.2-4.fc21 libXevie.i686 1.0.3-9.fc21 libgusb.i686 0.2.4-1.fc21 libmodman.i686 2.0.1-9.fc21 libproxy.i686 0.4.11-10.fc21 libsoup.i686 2.48.1-1.fc21 libwayland-cursor.i686 1.6.0-1.fc21 libxkbcommon.i686 0.5.0-1.fc21. libcanberra-gtk2 benötigt: gstreamer1.i686 1.4.4-1.fc21 libcanberra-gtk2.i686 0.30-7.fc21 libcanberra-gtk3.i686 0.30-7.fc21 libtdb.i686 1.3.1-1.fc21

Damit lässt sich der Stick dann endlich starten, ansonsten erscheint eine Meldung wie:

(Start_M-IDentity_Linux:32475): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
Gtk-Message: Failed to load module "pk-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"

Der nächste Schritt ist nun das Anpassen der Rechte für das USB-Device. Gibt es schon einen Eintrag in /etc/udev/rules.d? Falls nicht. Hiermit wird er erstellt:

echo SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0d46\", ATTRS{idProduct}==\"4181\", MODE=\"0666\", ENV{GENERATED}=\"1\" > /etc/udev/rules.d/70-persistent-cd.rules

Alternativ kann man das auch mit einem Editor seiner Wahl machen (als root oder mit sudo). Nun wäre alles so weit vorbereitet, dass der Stick auch läuft. Leider kommt abgesehen von der Update-Kontrolle keine Meldung auf den Bildschirm. Der Stick arbeitet einige Scripts ab, so auch ein mögliches Update, bevor der Browser gestartet wird.

Update 1. Februar 2012: Endlich funktioniert der Stick unter Linux (Fedora 16) richtig. Nun braucht der Stick nicht mehr manuell montiert ("gemountet") zu werden. Er meldet sich korrekt am System an und es wird sogar ein Icon in der Device-Liste angezeigt. Das Update wird (auch unter Linux) automatisch gemacht, nachdem man den Stick wie unten beschrieben, manuell ins System eingebunden hat.

Sollte sich der Stick nicht automatisch am System anmelden, ist ein manuelles Mounten nötig. Angenommen, es existiert bereits in CD-Laufwerk mit dem Devicenamen sr0. Dann wäre der Stick bspw. auf /dev/sr1 ansprechbar. Genaueres teilt einem /var/log/messages mit: tail -f /var/log/messages

mkdir /mnt/mid
mount -t iso9660 /dev/sr1 /mnt/mid 

Kein offizieller Support für Fedora und Redhat (Centos)

M-IDentity läuft, nach einem Update des Sticks, ohne Probleme auf Fedora 16, 14, 13, 12 und RedHat 5.x (CentOS).

Die Migrosbank, resp. diejenigen Stellen der Migrosbank, die den Support für das Internetbanking liefern sollten, tun sich, freundlich ausgedrückt, nicht gerade mit grosser Hilfsbereitschaft hervor, wenn es um das Inbetriebnehmen ihrer M-IDentity Sticks unter Linux geht. Die lapidare und wenig kundenfreundliche Antwort lautet "Wir unterstützen nur das, was auf unserer Homepage steht". Weiter wird einem mitgeteilt: "Auf Fedora läuft der USB-Stick M-IDentity nicht". Das Gegenteil ist der Fall, siehe Bild links.

1. Schritt: Fedora 13, 14, 16: Neueintragung oder Änderungen einer Regel des Device Managers "udev"

Editieren von /etc/udev/rules.d/85-pcscd_ccid.rules als user root, unter gnome bspw. mit gedit.
Es muss der Eintrag , RUN+="/usr/sbin/Kobil_mIDentity_switch" entfernt werden (wenn er vorhanden ist) und die Zugriffsechte auf MODE="0664" gesetzt werden. Benützt kann der Stick damit nur von Usern, die Mitglied der Gruppe "users" sind. (Gegebenenfalls die gewünschten User der Gruppe zufügen). 

ALT (Fedora 13)
# Kobil mIDentity
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0d46", ATTRS{idProduct}=="4081", RUN+="/usr/sbin/Kobil_mIDentity_switch"
ALT (RedHat/CentOS 5.5)
BUS=="usb", SYSFS{idVendor}=="0d46", SYSFS{idProduct}=="4081", RUN+="/usr/sbin/Kobil_mIDentity_switch"
NEU (Fedora 13/14/16) 
# Kobil mIDentity
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0d46", ATTRS{idProduct}=="4081", MODE="0664", GROUP="users"
NEU (RedHat/CentOS 5.x)
# Kobil mIDentity
BUS=="usb", SYSFS{idVendor}=="0d46", SYSFS{idProduct}=="4081", MODE="0664", GROUP="users"

Alternativ ginge es auch mit folgendem Eintrag, jedoch hätte alles vollen Schreibzugriff für alles (world) auf den Stick (aber nur auf diesen). Damit müssen die berechtigen Benutzer nicht der Gruppe users zugefügt werden, wie es oben beschrieben ist.

# Kobil mIDentity
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0d46", ATTRS{idProduct}=="4081", MODE="0666"

2. Schritt: Update auf die neueste Version

Auch unter Linux wird nun seit einiger Zeit das Update problemlos durchgeführt. Nach dem Starten des Programms wird eine Updatekontrolle durchgeführt und der Stick gegebenenfalls aufdatiert. Der Stick darf während des Updates nicht aus dem System entfernt werden. Er wird sonst mit Sicherheit unbenutzbar und muss ausgetauscht werden.
Zur Sicherheit kann man vor dem obigen 1. Schritt das Update unter Windows vornehmen.