CSJCurrent de:Passwortfunktionen

Aus Cryptshare Documentation
Wechseln zu:Navigation, Suche



Für die Durchführung eines Cryptshare-Transfers wird ein Passwort benötigt, welches die Passwortsicherheit des Servers erfüllen muss. Um sicherzustellen, dass die Anforderungen erfüllt werden, können Sie den Cryptshare Server ein eingegebenes Passwort überprüfen lassen, oder den Server ein gültiges Passwort generieren lassen.

Anfordern eines generierten Passwortes vom Server

Durch den Aufruf der Methode Client#requestGeneratedPassword(int) können Sie vom Server ein neues Passwort anfordern. Um diese Methode verwenden zu können, muss der Client verifiziert sein (siehe Abschnitt 'Verifizierung'). Die Methode fordert die Angabe der gewünschten Länge für das Passwort und liefert ein, mit den Passworteinstellungen des Servers kompatibles, Passwort zurück. Anschließend kann dieses Passwort für einen Cryptshare Transfer verwendet werden. Liegt die angegebene Passwortlänge unter der geforderten Mindestlänge, so wird die Mindestlänge verwendet.

Beispiel: Anfordern eines Passwortes

// Schritt 1: Erzeugen einer Client-Instanz   
// Anlegen der URL zu Ihrem Cryptshare Server
WebServiceUri serviceUri = new WebServiceUri("https://cryptshare.server.com");
     
// Erzeugen der Verbindung zum Cryptshare Server
CryptshareConnection connection = new CryptshareConnection(serviceUri);
     
// Erzeugen der Client-Instanz unter Verwendung der Absenderadresse,
// der Verbindung zum Server und des Pfades für denn lokalen Verifizierungsspeicher.
Client client = new Client("sender_email@server.com", connection, Paths.get("C:\\\\temp"));
    
// Schritt 2: Verwenden der Service-Methoden

// Vorausgesetzt eine gültige Verifizierung ist vorhanden,
// können wir nun ein Passwort, mit beispielsweise 8 Zeichen, anfordern.
String password = client.requestGeneratedPassword(8);

Überprüfen eines spezifischen Passwortes

Wenn Sie ein eigenes Passwort für den Transfer verwenden möchten, so können Sie vom Server prüfen lassen, ob die Sicherheitsanforderungen für Passwörter erfüllt sind. Ist dies nicht der Fall, wird beim Versuch den Transfer mit diesem Passwort zu initiieren, ein Fehler auftreten. Die Methode Client#checkPassword(String) nimmt das zu verwendende Passwort als Parameter entgegen und lässt dieses vom Server validieren. Zurückgeliefert wird ein 'PasswordPolicy'-Objekt, welches das Ergebnis der Überprüfung enthält.

Beispiel=Passwort anfordern

// Schritt 1: Erzeugen einer Client-Instanz   
// Anlegen der URL zu Ihrem Cryptshare Server
WebServiceUri serviceUri = new WebServiceUri("https://cryptshare.server.com");
     
// Erzeugen der Verbindung zum Cryptshare Server
CryptshareConnection connection = new CryptshareConnection(serviceUri);
     
// Erzeugen der Client-Instanz unter Verwendung der Absenderadresse,
// der Verbindung zum Server und des Pfades für denn lokalen Verifizierungsspeicher.
Client client = new Client("sender_email@server.com", connection, "Paths.get("C:\\\\temp"));
    
// Schritt 2: Verwenden der Service-Methoden

// Vorausgesetzt eine gültige Verifizierung ist vorhanden, können wir nun
// beispielsweise das Passwort 'password123' überprüfen lassen.
String passwordToCheck = "password123";
PasswordCheckResult result = client.checkPassword(passwordToCheck);
 
// Wie sicher das Passwort eingestuft wird, kann als float-Wert auf einer Skala von
// 0.0f - 1.0f mit 1.0f als 'Sehr sicher' abgefragt werden.
System.out.println("password security = " + result.getSecurity());
 
// Das PasswordCheckResult-Objekt enthält außerdem die Resultate der Sicherheitsanforderungen
// des übergebenen Passwortes
System.out.println("Ist das Passwort zu kurz?: " + result.isTooShort());
System.out.println("It das passwort zu lang?: " + result.isTooLong());
System.out.println("Erfüllt das Passwort nicht alle Anforderungen?: " +   
                            result.isInsufficientCharacteristics());
System.out.println("Wurden im Passwort keine Ziffern verwendet?: " + 
                            result.isInsufficientDigits());
System.out.println("Wurden im Passwort alphabetische Zeichen verwendet?: " +
                            result.isInsufficientAlphabetical());
System.out.println("Wurden im Passwort keine Sonderzeichen verwendet?: " + 
                            result.isInsufficientSpecial());
System.out.println("Wurden im Passwort keine Großbuchstaben verwendet?: " +
                            result.isInsufficientUpper());
System.out.println("Wurden im Passwort keine Kleinbuchstaben verwendet?: " + 
                            result.isInsufficientLower());
System.out.println("Enthält das Passwort Whitespaces (Leerzeichen, Umbrüche, etc.)?: " + 
                            result.isIllegalWhitespace());
System.out.println("Ist das Passwort ein Wort?: " + 
                            result.isIllegalWord());
System.out.println("Enthält das Passwort Sequenzen (123, abc, etc.)?: " +  
                            result.isIllegalSequence());
System.out.println("Enthält das Passwort unerlaubte Wiederholungen (aaa, 111, etc.)?: " + 
                            result.isIllegalRepetition());

Abfrage der Passwortanforderungen

Möchten Sie Ihren Nutzern bereits im Voraus anzeigen, welche Anforderungen an ein Passwort gestellt werden, ohne jedes einzelne Passwort zuvor vom Server validieren zu lassen, so können Sie die Passwortanforderungen vom Server abfragen. Die Methode Client#requestPasswordPolicy() liefert wird ein 'PasswordPolicy'-Objekt, welches alle Anforderungen an Passwörter enthält.

Beispiel=Passwort anfordern

// Schritt 1: Erzeugen einer Client-Instanz   
// Anlegen der URL zu Ihrem Cryptshare Server
WebServiceUri serviceUri = new WebServiceUri("https://cryptshare.server.com");
     
// Erzeugen der Verbindung zum Cryptshare Server
CryptshareConnection connection = new CryptshareConnection(serviceUri);
     
// Erzeugen der Client-Instanz unter Verwendung der Absenderadresse,
// der Verbindung zum Server und des Pfades für denn lokalen Verifizierungsspeicher.
Client client = new Client("sender_email@server.com", connection, "Paths.get("C:\\\\temp"));
    
// Schritt 2: Verwenden der Service-Methoden

// Vorausgesetzt eine gültige Verifizierung ist vorhanden, können wir nun
// die Passwortanforderungen abfragen.
PasswordPolicy passwordPolicy = client.requestPasswordPolicy();
 
System.out.println("Minimale Passwortlänge: " + passwordPolicy.getMinimumLength());
System.out.println("Maximale Passwortlänge: " + passwordPolicy.getMaximumLength());
System.out.println("Muss ein Passwort Ziffern enthalten?: " + 
                            passwordPolicy.isMustContainDigits());
System.out.println("Muss ein Passwort reguläre Buchstaben enthalten?: " + 
                            passwordPolicy.isMustContainChars());
System.out.println("Muss ein Passwort Sonderzeichen enthalten?: " + 
                            passwordPolicy.isMustContainSpecialChars());
System.out.println("Muss ein Passwort Groß/Kleinschreibung enthalten?: " + 
                            passwordPolicy.isMustBeUpperLowerCase());
System.out.println("Werden reguläre Wörter nicht gestattet?: " + 
                            passwordPolicy.isDictionaryDeclined());
System.out.println("Werden Passwörter mit Zeichenwiederholungen abgelehnt?: " + 
                            passwordPolicy.isCharRepetitionsDeclined());
System.out.println("Sind Whitespaces (Leerzeichen, Umbrüche, etc.) erlaubt?: " + 
                            passwordPolicy.isAllowWhitespaces());
System.out.println("Sind alphabetische Sequenzen gestattet?: " + 
                            passwordPolicy.isAllowAlphabeticalSequence());
System.out.println("Sind numerische Sequenzen gestattet?: " + 
                            passwordPolicy.isAllowNumericSequence());
System.out.println("Sind Tastatursequenzen (qwerty) gestattet?: " + 
                            passwordPolicy.isAllowQwertySequence());
System.out.println("Welche Zeichen sind nicht gestattet?: " + 
                            passwordPolicy.getBlacklist());