Archiv der Kategorie: Microsoft World

Auf Windows aufbauende Programme und natürlich über Windows selbst

Smart Cards durch die in Java eingebaute Java Smartcard I/O javax.smartcardio.* ansprechen

Zuerst mache ich eine kleine Einführung in das Thema Java und Smartcads und beschreibe danach wichtige Punkte für Linux und Windows.

Java hat seit Version 1.5 (5.0) eine Unterstützung für Smartcards bereits eingebaut. Es nutzt dafür die eigene Provider Technik und greift über PC/SC auf die Smartcard zu. Das bedeutet es sind keine weiteren Module für Java notwendig (früher JPCSC für Linux) und die Nutzung erfolgt unabhängig vom Betriebssystem. Zumindest kann ich das für Windows XP/Vista und Linux bestätigen. FreeBSD und Sun Solaris sollten genau so gut funktionieren. Weitere Informationen zu Betriebssystemen in den nächsten Absätzen.

Unter Windows ist die Verwendung denkbar einfach. Für die Nutzung ist ein installierter Treiber für das Lesegerät (Terminal) und natürlich Java notwendig. Windows bringt eine eigene PC/SC Implementierung mit, die Java über den eingebauten Provider nutzt. Dadurch ist die Installation und Einrichtung sehr einfach.

Für Linux ist die Installation fast genau so einfach. Durch die verschiedenen pcsclite-Versionen (PC/SC Implementierung unter Linux) sind aber die Header-Datei (.h) für die Bibliothek notwendig, damit Java die PC/SC Bibliothek richtig ansprechen kann. Dafür reicht meistens die Installation der folgenden Pakete:

  • libpcsclite1
  • pcscd
  • libccid
  • libpcsclite-dev  (WICHTIG: Hier sind die notwendigen Header-Dateien)

Fehlt das Paket libpcsclite-dev bzw. die Header Dateien, so kann Java die PC/SC Bibliothek nicht nutzen und findet deswegen kein Lesegerät (Terminal).

Für Debian/Ubuntu und weitere Debian-Derivate ist die Installation denkbar einfach:

[code]
sudo aptitude install libpcsclite1 pcscd libccid libpcsclite-dev
[/code]

Die Nutzung der JPCSC Middleware, welcher veraltet ist, habe ich bereits früher hier beschreiben.

Um die Verwendung der Java Smartcard I/O zu testen, habe ich ein paar kleine Testprogramme geschrieben, die ich hier veröffentliche. Sie sind auf Englisch kommentiert, so dass keine weitere Erklärungen erfolgen. Ich denke die paar Worte Englisch wird wohl jeder verstehen können. Sie sind extra kurz und einfach gehalten.

[code]
import java.util.List;
import javax.smartcardio.*;

/*
* Look in rt.jar for „javax.smartcardio“ to get further information
* Defined in: JSR 268
*/
public class ListSmartcardReaders {

public static int listCounted() {

/* we use the default TerminalFactory */
TerminalFactory factory = TerminalFactory.getDefault();

try {
/* We can have multiple terminals on one System, so we get a list */
List terminals = factory.terminals().list();

for (CardTerminal terminal : terminals) {
System.out.println(„Card_Terminal_Name: „+ terminal.getName());
System.out.println(„Card_in_Terminal_present: „+terminal.isCardPresent());
System.out.println(„——————————————–„);
}
return terminals.size();

} catch (CardException e) {
e.printStackTrace();
}
return 0;
}

public static void main(String[] args) {
listCounted();
}
}
[/code]

[code]
import java.util.List;
import javax.smartcardio.*;

/*
* Look in rt.jar for „javax.smartcardio“ to get further information
* Defined in: JSR 268
*/
public class ConnectReader {

/**
*
* @param index is the array index of the terminal list (0..x)
* @throws CardException if there are problems accessing the smartcard
*/
public static void connectCard(int index) throws CardException {

/* Is a Reader connected we can access? */
if (TerminalFactory.getDefault().terminals().list().size() == 0) {
System.err.println(„No reader present“);
return;
}

/* Terminal we are working on */
CardTerminal terminal = TerminalFactory.getDefault().terminals().list().get(index);

/* Is a card present? */
if (!terminal.isCardPresent()) {
System.err.println(„No Card present!“);
return;
}

/* Here you have to choose „T=0″,“T=1“, „T=2“, check documentation of your smart card */
//Mostly it’s „T=1“, for older cards its „T=0“
Card card = terminal.connect(„T=1“);

System.out.println(„Card_Info: „+card.toString());
System.out.println(„Card Protocol: „+ card.getProtocol());

//Reset the card for use
ATR atr = card.getATR();

System.out.println(„ATR: “ + atr.getBytes());
System.out.println(„ATR historical bytes: „+ atr.getHistoricalBytes());

/* Get the basic channel. This one can’t be closed */
CardChannel channel = card.getBasicChannel();

/* Try to send a command. This one won’t work! */
byte[] command = { 0, 0, 0, 0};

CommandAPDU someApdu = new CommandAPDU(command);

ResponseAPDU r = channel.transmit(someApdu);
/* Response encoded in bytes */
byte[] response = r.getBytes();

System.out.println(„response: „+ response);

card.disconnect(false);
}

public static void main(String[] args) {
try {
//First Terminal = 0
connectCard(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
[/code]

Für weitere Information über APDUs und die Nutzung der Smartcards empfehle ich das Lesen des Buches Handbuch der Chipkarten oder direkt die dazugehörigen ISO-Normen ISO-7816 und im Speziellen die ISO-Normen ISO7816-4, ISO7816-8 und ISO7816-9.

Auf die Frage „Kommt man ohne das Buch bzw. die Normen aus?“, muss ich leider mit „definitiv nein!“ beantworten, da die Informationen sehr komplex sind und schwer zu verstehen. Im Internet ist bis Heute fast gar nichts vorhanden.
Ich rate aber nach Diplom-, Master- und Bachelorarbeiten zu dem Thema zu suchen. Da gibt es bestimmt Auszüge aus den Normen, um wenigstens die Zusammehänge und die Anfänge zu verstehen.

SSHFS unter Linux und Windows direkt nutzen

Dateisysteme unter Linux mit SSH über das Netzwerk einbinden ist eine mehr als praktische Sache. Dazu findet die Übertragung gesichert statt, was bei NFS und Samba nicht der Fall ist.

Die ganze Geschichte funktioniert unter Debian und Ubuntu wie folgt:

[code]
# Paket installieren:
aptitude install sshfs

# Seinen Benutzer in die Gruppe fuse aufnehmen:
useradd fuse

# Sich neu am System anmelden, damit die Rechte übernommen werden

# Ein beliebigies Dateisystem einbinden:
sshfs user@remoterechner:remotepfad/ lokalerPfad/
[/code]

Für wackelige und schlechte Verbindungen hilft der folgende eintrag in der ~/.ssh/config:

[code]
ServerAliveInterval 15
[/code]

Das hält die SSH-Verbindung länger am leben, wenn auch gerade keine Verbindung da ist.
Quelle: http://fuse.sourceforge.net/wiki/index.php/SshfsFaq#TOC

SSHFS unter Linux und Windows direkt nutzen weiterlesen

Windows Update: Warum fragen – der PC gehört eh Microsoft!

Windows Update ist ein Dienst, der regelmäßig prüft, ob Aktualisierungen (Updates) für den Rechner verfügbar sind und reagiert abhängig von der Einstellung in den Eigenschaften vom Arbeitsplatz. Doch Microsoft scheint wohl eine andere Philosophie gegenüber den Windowseinstellungen zu haben. In den letzten Tagen wurden Windows Updates ohne Eingriff des Benutzers eingespielt, obwohl es explizit so eingestellt war.  Das Statent von Microsoft möchte ich jetzt nicht kommentieren, sondern mit dem Zitat aus dem Film Idiocracy „Elektrolyte sind gut für uns – Electrolyte sind gut für die Pflanzen“.

Viele Benutzer haben das automatische Einspielen von Updates aktiviert und können sich natürlich nicht erklären, warum so eine Aufregung darüber besteht. Hier ein paar Beispiele:

Natürlich sind die meisten Updates Sicherheitsaktualisierungen, aber bei der heutigen Fülle an Programmen geht so eine Aktulisierungen immer wieder als Programmkiller durch, da nicht jede Kombination von Microsoft getestet wird. Die großen Abhängigkeiten in der Windows Welt machen das Problem auch noch schwerwiegender, da die Software auf Komponenten von Windows basiert, die ihr Verhalten durch Aktualisierungen ändern kann.  Na dann frohes schaffen und Rechner neustarten, weil ein Programm auf dem Rechner aktulisiert wurde und vielleicht unvorhergesehen? Sollte man sich so sicher sein, dass Microsoft immer das Richtige tut oder doch ein paar Tage warten und schauen, ob Beschwerden kamen? Auf zwei Tage kommt es auch nicht drauf an, da die Updates nicht nach Sicherheitsrelevanz, sondern am ersten Dienstag im Monat oder etwas später ausgeliefert werden. Mein Beileid für jeden Windows Admin und schon mal den Neustart für den „Microsoft bringt Abhilfe Dienstag“ einplanen!
Quellen und weitere Hinweise:

Ein cooles Tool um die Leistung des Notebooks unter Windows zu Steuern: Notebook Hardware Control

Ich habe ein Tool gesucht, um die Leistung des Ntotebooks unter Windows bequem zu steuern. Von IBM gibt es ein Tool, dass dieses rundimentär leistet. Doch es gibt mittlerweile viel bessere Tools und eines hat mir besonders gefallen. Es heißt „Notebook Hardware Control“ und kann ziemlich viel und ist vor allem leicht zu bedienen. Zusätzlich kann es noch Informationen über das System anzeigen. Jeder Windows Notebook Nutzer sollte das Tool mal gestet haben, wenn er die Leistung seines Notebooks steuern will und damit die Akkulaufzeit zu verlängern oder die CPU bei Bedarf auf volle Leistung zu stellen.

Die Seite: http://www.pbus-167.com/

Auf Ext2 unter Windows (Vista, Windows Server 2003) zugreifen

Mittlerweile unterstützt IFS-Driver Windows Vista direkt und deshalb ist dieser Beitrag obsolet.

In meinem früheren Beitrag ging es um die Einbindung von Linux Partitionen unter Windows. Damals war es noch nicht möglich bzw. mir war keine Möglichkeit bekannt unter Windows 2003 und Vista auf Linux Partitionen zuzugreifen.

Mittlerweile ist es möglich. Das von mir beschrieben IFS-Drive unterstützt Windows 2003 als System, was früher nicht möglich war. Damit werden folgende Betriebssystem unterstützt: Windows NT/2000/XP/2003 (auch die Server Varianten)

—————–
IFS Drive kann auch mit ein paar Tricks unter Vista verwendet werden, bitte dafür die Kommentare zu diesem Beitrag lesen!
—————–

Leider wird von IFS-Drive kein Windows Vista unterstützt, um auf ext2 und ext3 Partitionen zuzugreifen. Dieses Problem hat mich sehr gestört, also habe ich meine schon knappe Zeit für die Suche benutzt und raus kam das folgende Ergebnis: ext2fsd
Mit diesem Programm ist es möglich auch unter Windows Vista auf Linux Parititon zuzugreifen. Dazu läuft es auch unter 64Bit Version von Windows Vista und XP.

Ich muss aber ganz klar sagen, dass IFS-Drive mir persöhnlich von der Bedienung mehr gefällt als ext2fsd. ext2fsd startet bei jedem Start von Windows mit einem Splashscreen und macht sich als ein Symbol in der Taskleiste neben der Uhr sichtbar. IFS-Drive ist da moderater und ist wie man es inuitiv vermutet, unter der Systemsteuerung zu finden. Da ich meine Linux Partitionen (ausgenommen der Wechseldatenträger) nur einmal einbinde und sie eigebunden lasse, ist IFS Drive die bessere Wahl und so lange ist der Weg in die Systemsteuerung nicht! Dafür wird man mit einer aufgeräumten und sehr intuitiv zu bedienenden Oberfläche belohnt.

Quellen und weitere Informationen

Von Windows auf Linux (ext2, ext3, ext4) Partitionen zugreifen

Neuere Fassung des Beitrags mit Möglichkeit Vista und Windows 2003 zu benutzen: Ext2/Ext3 unter Windows nutzen

Wolltet ihr nicht schon immer schnell mal Daten von der Linux Partition von Windows aus holen. Früher war es noch etwas schwieriger, da die Tools nicht zuverlässig waren. Jetzt könnt Ihr sogar Linux Partition ganz bequem von Windows aus nutzen. Dies macht Ext2 IFS For Windows möglich.

Allerdings empfehlen ich allen Suspend to Disk Nutzern die Partition vorher in Linux und Windows zu unmounten, damit es zu keinen Problemen kommt. Ext2 IFS For Windows ist einfach nur Klasse, wenn man einen kurzen Abstecher in die Microsoft-Welt machen muss und Daten von seiner Linux Partition braucht.

Mein ganz persönlicher Tipp sind externe Festplatten mit ext3 unter Linux formatiert. Damit hat man alle Freiheiten unter Linux – und unter Windows hilft Ext2 IFS For Windows weiter. Damit muss man sich nicht mehr mit korrupten FAT32 oder NTFS Partition unter Linux rumschlagen.

Zukunftsausblick:
Das ext4 Dateisystem wurde komplett neu entwickelt. Es ist nicht mehr kompatibel zu ext2 und ext3. Das bedeutet, dass neue Treiber für Windows geschrieben werden müssen. Sollte jemand seine Partition von ext2 bzw. ext3 nach ext4 konvertiert haben, so kann es gut sein, dass die Programme noch funktionieren, weil der Kompatibilitätsmodus aktiv ist. Bei neu formatierten Parititon mit ext4 wird es derzeit (Stand: April 2009) nicht möglich auf die Partitionen zuzugreifen.

Ergänzung:
Mittlerweile unterstützt ifs-Drive alle gängigen Windows Versionen. Lediglich Windows 7 ist noch nicht gelistet. Ob es unter Windows 7 funktioniert, muss noch herausgefunden werden.
Link und weitere Informationen:

Netzwerkeinstellungen unter Windows ändern einfach gemacht

— @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –>

Jedem Notebook Besitzer ist der Umstand des ständigen wechseln der Netzwerke bekannt. Mal ist man per Kabel am Netzwerk verbunden, mal muss das Wlan genutzt werden. Dabei stellt sich oft heraus, dass abhängig von Aufenthaltsort andere IP-Einstellungen gesetzt sein müssen. Besonders lästig ist es, wenn ständig zwischen einer festen IP und DHCP-Einstellungen umgeschaltet werden muss.

Dazu kommt der Umstand, dass der Rechner mit „Automatischen Beziehen der IP“ ohne einen DHCP-Server länger zum Starten braucht und damit dem Nutzer Frust verursacht.

Als eingefleischter Linux-Nutzer, wusste ich mir sehr schnell durch Skripte zu helfen. Zusätzlich besteht die Möglichkeit sich Tasten mit nötigen Funktionen zu belegen. Auch der Gnome Network Manager ist eine große Hilfe und erlaubt es sehr schnell zwischen Netzwerkeinstellungen umzuschalten. Allerdings nutze ich ihn noch nicht, weil ich meine Skripte noch immer „lieb“ habe.

Da dem Heise Verlag wohl dieser Umstand auch bekannt ist, haben sie ein Skript geschrieben, das den Windows Nutzern fast den gleichen Komfort bietet, wie es alle Unix/Linux Nutzer kennen und nicht missen möchten.

Der Nutzer stellt sich die entsprechenden Einstellungen für das Netzwerk unter Windows ein und führt das Skript aus, welches die Einstellungen in ein Konfigurationsdatei exportiert. Die Einstellungen können danach bequem mit dem Skript durch einen Mausklick geladen werden.

Da es nicht meine Erfindung ist, ich diese aber klasse finde, empfehle ich jedem Leser die Quelle mal anzuzapfen:

http://www.heise.de/mobil/artikel/75262

Windows Installations-CDs komfortabel erstellen

Heute habe ich die Kategorie „Microsoft World angelegt, die Informationen zu Windows und Windows-Basierten Programmen enthält. Wie immer Schande über mich für diese „grauenvolle“ Tat, aber einseitige Konzentration ist auch schlecht und außerdem ist Windows gar nicht so schlecht wie es alle sagen.
Die meisten Fehler sind:

  • Error between the ears
  • Error in front of the screen
  • Software Bugs
  • Hardware Fehler

Windows Installations-CDs komfortabel erstellen weiterlesen