CSDNCurrent de:Passwortfunktionen

Aus Cryptshare Documentation
Wechseln zu:Navigation, Suche



Für die Durchführung eines Cryptshare-Transfers wird ein Passwort benötigt welches die Passwortanforderungen 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.RequestPassword(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, @"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.RequestPassword(8).Password;

Überprüfen eines 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, @"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";
PasswordPolicy passwordPolicy = 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.
Console.WriteLine("password security = " + passwordPolicy.Security);
 
// Das PasswordPolicy-Objekt enthält außerdem die Resultate der Sicherheitsanforderungen
// des übergebenen Passwortes
Console.WriteLine("Ist das Passwort zu kurz?: " + passwordPolicy.TooShort);
Console.WriteLine("It das passwort zu lang?: " + passwordPolicy.TooLong);
Console.WriteLine("Erfüllt das Passwort nicht alle Anforderungen?: " +
                            passwordPolicy.InsufficientCharacteristics);
Console.WriteLine("Wurden im Passwort keine Ziffern verwendet?: " +
                            passwordPolicy.InsufficientDigits);
Console.WriteLine("Wurden im Passwort alphabetische Zeichen verwendet?: " +
                            passwordPolicy.InsufficientAlphabetical);
Console.WriteLine("Wurden im Passwort keine Sonderzeichen verwendet?: " +
                            passwordPolicy.InsufficientSpecial);
Console.WriteLine("Wurden im Passwort keine Großbuchstaben verwendet?: " +
                            passwordPolicy.InsufficientUpper);
Console.WriteLine("Wurden im Passwort keine Kleinbuchstaben verwendet?: " +
                            passwordPolicy.InsufficientLower);
Console.WriteLine("Enthält das Passwort Whitespaces (Leerzeichen, Umbrüche, etc.)?: " +
                            passwordPolicy.IllegalWhitespace);
Console.WriteLine("Ist das Passwort ein Wort?: " +
                            passwordPolicy.IllegalWord);
Console.WriteLine("Enthält das Passwort Sequenzen (123, abc, etc.)?: " +
                            passwordPolicy.IllegalSequence);
Console.WriteLine("Enthält das Passwort unerlaubte Wiederholungen (aaa, 111, etc.)?: " +
                            passwordPolicy.IllegalRepetition);
 
// The PasswordPolicy object also contains the configured settings of the
// password policy to see how the policy is configured on the server
Console.WriteLine("Minimale Passwortlänge: " + passwordPolicy.MinimumLength);
Console.WriteLine("Maximale Passwortlänge: " + passwordPolicy.MaximumLength);
Console.WriteLine("Muss ein Passwort Ziffern enthalten?: " +
                            passwordPolicy.MustContainDigits);
Console.WriteLine("Muss ein Passwort reguläre Buchstaben enthalten?: " +
                            passwordPolicy.MustContainChars);
Console.WriteLine("Muss ein Passwort Sonderzeichen enthalten?: " +
                            passwordPolicy.MustContainSpecialChars);
Console.WriteLine("Muss ein Passwort Groß/Kleinschreibung enthalten?: " +
                            passwordPolicy.MustBeUpperLowerCase);
Console.WriteLine("Werden reguläre Wörter nicht gestattet?: " +
                            passwordPolicy.DictionaryDeclined);
Console.WriteLine("Werden Passwörter mit Zeichenwiederholungen abgelehnt?: " +
                            passwordPolicy.CharRepetitionsDeclined);
Console.WriteLine("Sind Whitespaces (Leerzeichen, Umbrüche, etc.) erlaubt?: " +
                            passwordPolicy.AllowWhitespaces);
Console.WriteLine("Sind alphabetische Sequenzen gestattet?: " +
                            passwordPolicy.AllowAlphabeticalSequence);
Console.WriteLine("Sind numerische Sequenzen gestattet?: " +
                            passwordPolicy.AllowNumericSequence);
Console.WriteLine("Sind Tastatursequenzen (qwerty) gestattet?: " +
                            passwordPolicy.AllowQwertySequence);