Wachtwoord encrypten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Consultant Low Code Developer

Functie omschrijving Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Voor een mooie opdrachtgever in omgeving Delft zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten. Onderdelen functie Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan Mendix of Betty Blocks. Je bent verantwoordelijk voor

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Pagina: 1 2 volgende »

Sam H

Sam H

23/01/2013 15:56:39
Quote Anchor link
Hey iedereen,

ik ben me wat aan het verdiepen in wachtwoordbeveiliging. Ik gebruik altijd gewoon een MD5 maar nu vraag ik me af of dit wel zo veilig is?

Ik heb al redelijk wat gelezen en heb al wel ontdekt dat je best niet meerde hashes over elkaar gebruikt omdat het dan makelijker 'te kraken' is. Hoe komt dit ik snap de analogie hier niet van. Welke methode gebruiken jullie?

Alvast bedankt
Gewijzigd op 23/01/2013 15:56:54 door Sam H
 
PHP hulp

PHP hulp

18/04/2024 15:51:15
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 16:06:54
Quote Anchor link
De beste manier is SHA1() met een unieke salt...

Dus $pass = "PHpHu1pi$7H383$7".$_POST['password'];
Zodra je de leden zich aanmelden sla je hun password op met die unieke salt ervoor. Zo is kraken zeer lastig, gezien het wachtwoord uiteindelijk minimaal 26 tekens kent (ervanuitgaande dat je alleen wachtwoorden toestaat van 6 tekens lang.
Gewijzigd op 23/01/2013 16:07:19 door - Ariën -
 
Sam H

Sam H

23/01/2013 16:17:41
Quote Anchor link
Ah ik dacht altijd dat bij een salt erdoorheen werd gegooid als volgt:
Salt: APPELS
Pass: phphulp123

=> pAhpPhPuElpL1S23

Simpel voorbeeld maar je snapt wel wat ik bedoel.

EDIT:

Ik vond over sha1 dit nog op php.net:
Quote:
Note: Secure password hashing
It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.
Gewijzigd op 23/01/2013 16:20:04 door Sam H
 
Moose -

Moose -

23/01/2013 16:18:59
 
Sam H

Sam H

23/01/2013 16:23:40
Quote Anchor link
Als ik het artikel goed versta, wilt het zeggen dat bcrypt een zeer traag encryptie algoritme is. Dus dit is veiliger omdat het voor bruteforce attacks pakken langer gaat duren? Dus het enige wat bcrypt doet, is de tijd nodig om in te loggen tragen maken, of zit ik mis?
Alvast bedankt beiden voor de hulp
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 16:26:11
Quote Anchor link
Sam H op 23/01/2013 16:17:41:

Ik vond over sha1 dit nog op php.net:
Quote:
Note: Secure password hashing
It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.

Tenzij je een salt gebruikt.
 
Sam H

Sam H

23/01/2013 16:38:43
Quote Anchor link
Ik heb hier een class gevonden die bcrypt genereert en verifieerd.
Als ik het localhost run, duurt het 9 seconden (!) voor het simpele wachtwoord 'password' te encrypten.
Dit is toch wel héél erg lang ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
class Bcrypt {
  private $rounds;
  public function __construct($rounds = 12) {
    if(CRYPT_BLOWFISH != 1) {
      throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
    }


    $this->rounds = $rounds;
  }


  public function hash($input) {
    $hash = crypt($input, $this->getSalt());

    if(strlen($hash) > 13)
      return $hash;

    return false;
  }


  public function verify($input, $existingHash) {
    $hash = crypt($input, $existingHash);

    return $hash === $existingHash;
  }


  private function getSalt() {
    $salt = sprintf('$2a$%02d$', $this->rounds);

    $bytes = $this->getRandomBytes(16);

    $salt .= $this->encodeBytes($bytes);

    return $salt;
  }


  private $randomState;
  private function getRandomBytes($count) {
    $bytes = '';

    if(function_exists('openssl_random_pseudo_bytes') &&
        (
strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
      $bytes = openssl_random_pseudo_bytes($count);
    }


    if($bytes === '' && is_readable('/dev/urandom') &&
       (
$hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
      $bytes = fread($hRand, $count);
      fclose($hRand);
    }


    if(strlen($bytes) < $count) {
      $bytes = '';

      if($this->randomState === null) {
        $this->randomState = microtime();
        if(function_exists('getmypid')) {
          $this->randomState .= getmypid();
        }
      }


      for($i = 0; $i < $count; $i += 16) {
        $this->randomState = md5(microtime() . $this->randomState);

        if (PHP_VERSION >= '5') {
          $bytes .= md5($this->randomState, true);
        }
else {
          $bytes .= pack('H*', md5($this->randomState));
        }
      }


      $bytes = substr($bytes, 0, $count);
    }


    return $bytes;
  }


  private function encodeBytes($input) {
    // The following is code from the PHP Password Hashing Framework
    $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

    $output = '';
    $i = 0;
    do {
      $c1 = ord($input[$i++]);
      $output .= $itoa64[$c1 >> 2];
      $c1 = ($c1 & 0x03) << 4;
      if ($i >= 16) {
        $output .= $itoa64[$c1];
        break;
      }


      $c2 = ord($input[$i++]);
      $c1 |= $c2 >> 4;
      $output .= $itoa64[$c1];
      $c1 = ($c2 & 0x0f) << 2;

      $c2 = ord($input[$i++]);
      $c1 |= $c2 >> 6;
      $output .= $itoa64[$c1];
      $output .= $itoa64[$c2 & 0x3f];
    }
while (1);

    return $output;
  }
}

?>
 
Aad B

Aad B

23/01/2013 16:48:53
Quote Anchor link
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.
 
Sam H

Sam H

23/01/2013 16:50:12
Quote Anchor link
Ja dit gebruik ik ook (enkel ipv gelocked gebruik ik een timeout van 5 minuten).
 
Ozzie PHP

Ozzie PHP

23/01/2013 16:55:14
Quote Anchor link
Aad B op 23/01/2013 16:48:53:
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.

Is dat niet heel erg extreem? De gebruiker logt per ongeluk 3x verkeerd in en moet dan meteen een nieuw wachtwoord aanvragen? Lijkt me niet echt gebruiksvriendelijk.
 
Erwin H

Erwin H

23/01/2013 16:55:54
Quote Anchor link
Aad B op 23/01/2013 16:48:53:
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.

En wat als ze in een brute force attack een hele lijst met usernamen aflopen, maar dan met elke keer hetzelfde (een gebruikelijk) password? Ben je alsnog de Sjaak.

Brute Force attacks kan je helaas niet met een simpele beveiliging voorkomen. Als dat namelijk zou kunnen zou het niet meer voorkomen. Meerdere beveiligingen is altijd beter.
- loggen waar de aanvragen vandaan komen
- loggen op welke username er wordt geprobeerd
- inlog vertragen

En als iemand nog andere mogelijkheden heeft om attacks tegen te gaan ben ik ook nog wel benieuwd.
 
Sam H

Sam H

23/01/2013 16:59:33
Quote Anchor link
Ik sla momenteel het IP adres en username op bij een mislukte inlogpoging, is dit groter dan 3 dan geef ik die username en/of IP een timeout van 5 minuten. Nu ga ik ook bcrypt gebruiken, ik heb een class gevonden waarbij het ongeveer 3 seconden duurt om een wachtwoord te verifiëren.
Dus dit lijkt me wel veilig genoeg?

Voor de geïnteresseerden, dit is de uiteindelijke klasse die ik ga gebruiken (de vorige deed er 9 seconden over, dit lijkt me wat extreem):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
class Bcrypt {
  private $rounds;
  private $prefix;
  
  public function __construct($prefix = '', $rounds = 12) {
    if(CRYPT_BLOWFISH != 1) {
      throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
    }

 
    $this->rounds = $rounds;
    $this->prefix = $prefix;
  }

 
  public function hash($input) {
    $hash = crypt($input, $this->getSalt());
 
    if(strlen($hash) > 13)
      return $hash;
 
    return false;
  }

 
  public function verify($input, $existingHash) {
    $hash = crypt($input, $existingHash);
 
    return $hash === $existingHash;
  }

 
  private function getSalt() {
    // the base64 function uses +'s and ending ='s; translate the first, and cut out the latter
    return sprintf('$2a$%02d$%s', $this->rounds, substr(strtr(base64_encode($this->getBytes()), '+', '.'), 0, 22));
  }

  
  private function getBytes() {
    $bytes = '';
 
    if(function_exists('openssl_random_pseudo_bytes') &&
        (
strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
      $bytes = openssl_random_pseudo_bytes(18);
    }

 
    if($bytes === '' && is_readable('/dev/urandom') &&
       (
$hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
      $bytes = fread($hRand, 18);
      fclose($hRand);
    }

    
    if($bytes === '') {
      $key = uniqid($this->prefix, true);
      
      // 12 rounds of HMAC must be reproduced / created verbatim, no known shortcuts.
      // Changed the hash algorithm from salsa20, which has been removed from PHP 5.4.

      for($i = 0; $i < 12; $i++) {
        $bytes = hash_hmac('snefru256', microtime() . $bytes, $key, true);
        usleep(10);
      }
    }

    
    return $bytes;
  }
}

 
?>
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 17:03:04
Quote Anchor link
Gewoon een vertraging per IP.

3x een foute pass, 10 seconden wachttijd, daarna meer drie, en dan steeds 25 sec wachttijd en dat steeds ophogen of het IP blokkeren na verloop van tijd.

Zorg ervoor dat de gebruiker buiten schot blijft.
 
Sam H

Sam H

23/01/2013 17:03:59
Quote Anchor link
Ik heb gehoord dat hackers constant van IP adres veranderen (hoe, geen idee) en daarom doe ik ook de username.
 
Eddy E

Eddy E

23/01/2013 18:43:44
Quote Anchor link
Precies, gewoon IP en/of gebruikersnaam.
Als er op 1 gebruikersnaam 3 (of meer) inlogpogingen zijn gewoon met sleep() de boel een paar seconden vertragen.
En na 10x IP adres blokkeren (al is het maar voor 10 minuten).
 
Sam H

Sam H

23/01/2013 19:02:58
Quote Anchor link
En dan voor de hash is eigenlijk MD5 prima?
 
Eddy E

Eddy E

23/01/2013 19:55:01
Quote Anchor link
Nee, MD5 is A-Z, a-z en 0-9
Dan mis je alle $*(@&$_#Y)#€½¾@!&*()[]|\ dingen bijvoorbeeld terwijl die juist het moeilijk maken.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/01/2013 20:22:14
Quote Anchor link
Inderdaad, MD5 en SHA1 zijn hashes en GEEN encryptie.
Die hashes zijn algoritmes die je zelf kunt programmeren, en daardoor kan je gewoon ook simpel gestelt ze terugvoeren naar het oorspronkelijke als je de tijd en de moeite neemt.
 
Sam H

Sam H

23/01/2013 20:24:36
Quote Anchor link
Dus wat moet ik dan gebruiken? Toch Bcrypt?
 
Ozzie PHP

Ozzie PHP

23/01/2013 20:26:40
Quote Anchor link
Eddy E op 23/01/2013 18:43:44:
... gewoon met sleep() de boel een paar seconden vertragen.

Hoe moet ik dat zien... kun je dan sleep instellen op 5 minuten en doet de website dan 5 minuten niks meer?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/01/2013 20:29:39
Quote Anchor link
SSL is de meest optimale beveiliging, de rest is allemaal maar een beetje extra hangsloten op de deur.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.