System-wide key

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

Bekijk vacature »

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Ervaren C#.NET programmeur

Functieomschrijving Voor een moderne werkgever in regio Prinsenbeek zijn wij op zoek naar een ervaren C#.NET programmeur die graag de uitdaging aangaat. Je houdt je bezig met het ontwikkelen van maatwerk webapplicaties voor diverse klanten, waarbij complexe processen optimaal worden ondersteund. Verder ziet jouw takenpakket er als volgt uit: Ontwikkelen en onderhouden van C#.NET-applicaties; Schrijven van hoogwaardige, herbruikbare codes; Schrijven van technische documentatie en gebruikershandleidingen; Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen; Troubleshooten en oplossen van bugs in softwaretoepassingen; Werken met databases en dataopslagoplossingen; Implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens. Bedrijfsprofiel

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Front-end developer (HTML, CSS, SASS, JavaScript)

Functie Momenteel zijn we voor ons Digital team op zoek naar een (medior) Front-end developer. Samen met je collega’s werk je in een Agile/Scrum omgeving aan de ontwikkeling van onze webapplicaties, websites en andere oplossingen. Je draagt bij aan een sterk ontwikkelproces waarin kwaliteit voorop staat. Hiervoor ben je niet alleen bezig met eigen code maar ook code reviews van andere collega’s. Ben jij graag op de hoogte van de nieuwste ontwikkelingen in je vakgebied en wil je deze toepassen voor diverse projecten? Dan komen wij graag met je in contact! Eisen • HBO werk- en denkniveau • Minimaal 2

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

Java Developer

Dit ga je doen Ontwerpen en bouwen van nieuwe functionaliteiten binnen de complexe omgeving; Proactief de processen kwalitatief en efficient inrichten; Opzetten van Unit Tests; Code Reviews; Regie nemen voor innovatieve projecten; Landschap beheren en de bijbehorende ketens hierbij in het oog houden. Hier ga je werken De organisatie is actief binnen de financiele branche en heeft een IT afdeling van circa 450 man. De organisatie voorziet de maatschappij binnen de financiele dienstverlening en is gedurende de jaren een onmisbare schakel geworden. Het is een high profile organisatie waar ze veel te maken hebben met veranderingen voortkomend uit maatschappelijke ontwikkelingen,

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Pagina: 1 2 volgende »

Ward van der Put
Moderator

Ward van der Put

30/11/2014 09:55:37
Quote Anchor link
In een database sla ik de hash van wachtwoorden op. Daarbij gebruik ik naast een salt per wachtwoord nog een system-wide key. In pseudocode:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$hash
= pbkdf2($system_wide_key . $salt . $password);
?>


De system-wide key mag, anders dan de salts en de hashes, natuurlijk nooit in de database worden opgeslagen. Maar waar zal ik deze key dan opslaan? Wat kunnen jullie me aanbevelen?
 
PHP hulp

PHP hulp

21/05/2024 00:03:13
 
- Ariën  -
Beheerder

- Ariën -

30/11/2014 10:45:12
Quote Anchor link
Persoonlijk zou ik hem buiten de webroot opslaan.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/11/2014 12:27:10
Quote Anchor link
Ik zou hem ook buiten het publieke gedeelte van de website in een config file opslaan. Dat ding verander je toch nooit meer
 
Dos Moonen

Dos Moonen

30/11/2014 13:31:57
Quote Anchor link
Het liefst zou je het opslaan in een Hardware Security Module (HSM) die je dan de opdracht geeft een Message Authentication Code (MAC) te genereren voor het wachtwoord. De MAC is dan wat je samen met een uniek salt aan PBKDF2 voert.

Maar dat kost weer geld. Buiten de webroot kost niets extra.
 
Ward van der Put
Moderator

Ward van der Put

30/11/2014 14:50:10
Quote Anchor link
Okay, dank allen.

Het punt is dat ik eigenlijk een derde niveau nodig heb. Buiten de root zijn namelijk gebruikersnaam en wachtwoord van de database opgeslagen, dus de system-wide key sla ik dan liever niet op hetzelfde niveau op. Niet dat de key dan nutteloos is, verre van, maar het kan nog veiliger, zoals Dos aangeeft, door de sleutel elders weg te parkeren.
 
Eddy E

Eddy E

30/11/2014 15:27:52
Quote Anchor link
Liefst nog op een andere website, waar je altijd bij kan komen, ook als je eigen website gehackt is.
Dus op een andere CDN oid.
 
Ozzie PHP

Ozzie PHP

30/11/2014 21:15:27
Quote Anchor link
Ward, waar ben je precies "bang" voor? Welk risico probeer je in te perken?
 
Bart V B

Bart V B

30/11/2014 21:45:43
Quote Anchor link
Ik kan natuurlijk niet voor Ward spreken, maar ik zou me kunnen voorstellen dat hij een licentie achtige applicatie aan het maken is, en dat ene stukje code uber geheim wenst te houden.
 
Ozzie PHP

Ozzie PHP

30/11/2014 21:56:22
Quote Anchor link
Het zou kunnen, maar ik ben benieuwd waarom hij juist de code ergens anders wil zetten. Ik zou denken dat als iemand al buiten de root kan komen, niks meer veilig is.
 
Bart V B

Bart V B

30/11/2014 22:02:19
Quote Anchor link
Nee daarom. Als zijn systeem ergens plat gaat of als het buiten de root staat, dan is die ene extra code nou juist net het missende stukje waardoor het wel gehackt is, maar de schade beperkt. Men kan daar verder niets meer mee. Vandaar snap ik Eddy's reply wel door te zeggen: zet het totaal ergens anders neer.
Gewijzigd op 30/11/2014 22:04:08 door Bart V B
 
Ward van der Put
Moderator

Ward van der Put

01/12/2014 07:12:02
Quote Anchor link
Correct, je kunt in één keer de boel op slot gooien door de sleutel in te trekken. Dat geldt ook voor de accounts van admins: gebruikers die doorgaans wél toegang hebben tot bestanden buiten de root.

Verder gaat het ook om het principe natuurlijk. Je hebt namelijk:

1. Salt en wachtwoordhash in de database.
2. Databasegebruikersnaam en databasewachtwoord buiten de root.
3. System-wide key.

De system-wide key kan dus beter niet worden opgeslagen in (1) de database of (2) de configuratie buiten de root.
 
Ozzie PHP

Ozzie PHP

01/12/2014 11:57:22
Quote Anchor link
>> De system-wide key kan dus beter niet worden opgeslagen in (1) de database of (2) de configuratie buiten de root.

Ik snap wat je bedoelt te zeggen, maar is het echt noodzakelijk. Dat is wat ik me afvraag. Op het moment dat iemand je database leegtrekt, dan zijn de wachtwoorden via de hashes beschermd. Als iemand je server kraakt en dus overal bij kan, dan is in principe niks meer veilig. Als een hacker die expertise heeft, dan zal hij ook de expertise hebben om te kunnen zien waar die system-wide key vandaan komt ... en ... hij zal die key dan ook kunnen downloaden. Hij heeft immers toegang tot jouw server. De vraag is dus of dit niet een vorm van schijnveiligheid is.

Als iemand de database leegtrket, zou je dat kunnen zien alsof je ergens een raampje hebt open laten staan. Als iemand echter je voordeur forceert, dan vrees ik dat je platgezegd de l@l bent. Dan kun je de system-wide key wel ergens in een kluisje hebben gestopt, het probleem is echter dat de sleutel van die kluis zich ook ergens in huis bevindt.
 
Ward van der Put
Moderator

Ward van der Put

01/12/2014 12:31:56
Quote Anchor link
>> Dan kun je de system-wide key wel ergens in een kluisje hebben gestopt, het probleem is echter dat de sleutel van die kluis zich ook ergens in huis bevindt.

Precies, daarom moet die sleutel dus niet in huis bewaard worden.

Sla je sleutel op buiten de root, dan is dat niet zozeer schijnveiligheid, maar is de toegevoegde waarde inderdaad veel beperkter. Je hebt dan meer een soort noodrem: je kunt bij wijze van spreken even // voor de define('SYSTEM_WIDE_KEY', '...') zetten en de heleboel gaat vanzelf op slot. Dat kan bijvoorbeeld nuttig zijn als je eerst wilt onderzoeken wat er loos is.

Bart noemde een toepassing die ik niet voor ogen had maar die ook nuttig kan zijn: het intrekken van een externe licentiesleutel heeft een vergelijkbaar effect.
 
Bart V B

Bart V B

01/12/2014 12:47:13
Quote Anchor link
Het leek me het beste voorbeeld om het duidelijker te maken waarvoor je het kunt toepassen.
Wat me wel interresant lijkt om te weten hoe je dat stukje externe code het beste zou kunnen mengen in je code.
Want dat lijkt me niet makkelijk.
Ik zou me kunnen voorstellen dat je daar een externe database voor in zet.
Dan zou je de sleutels op kunnen slaan per user/licentie of wat dan ook.
Daar zou je ook extern nog een beveiliging in kunnen brengen met meer dan 3 pogingen mislukt, de boel daar op slot te zetten.
Het is maar even een hersenspinsel.
 
Ozzie PHP

Ozzie PHP

01/12/2014 14:49:55
Quote Anchor link
>> Precies, daarom moet die sleutel dus niet in huis bewaard worden.

Maar wat ik bedoel is dat je de sleutel (zijnde de key zelf óf de code om de key op te halen) altijd binnenshuis moet opslaan, anders kun je zelf ook de kluis niet meer openen ;)

Je hebt in feite 2 "secties" op server-niveau. Je hebt een publiek gedeelte (document root / web root) waarvan een bezoeker rechtstreeks bestanden kan aanroepen, en je hebt een niveau hoger ... een privé gedeelte waar een bezoeker niet bij kan.

Zorg ervoor dat al je code buiten de web root staat, ofwel in het privé gedeelte. Dus ook je system-wide key.

Als iemand via sql injectie databasegegevens steelt, dan heeft hij de system-wide key niet. Goedzo!

Echter, als iemand in staat is om binnen te dringen in het privé gedeelte, dan maakt het niet meer uit of jij die system-wide key op de server of ergens extern hebt opgeslagen. Namelijk:

Om een site te laten werken, moet de system-wide key beschikbaar zijn in het privé gedeelte. Ergens in de code staat dus óf de key zelf, óf een script dat de system-wide key ophaalt. Een hacker kan dat stukje code uitvoeren, en heeft vervolgens alsnog de key te pakken. Dus wat is dan nog de meerwaarde? Het enige wat je feitelijk doet is de key "verstoppen".

Oké, als je helderziend bent, dan zou het meerwaarde kunnen hebben. Dan kun je 5 minuten voordat de hacker jouw server binnendringt alle keys op de externe server deactiveren, maar ja ... ik ben niet helderziend helaas.

Wat ik hiermee wil zeggen is dat je dus eigenlijk maar 1 optie hebt, en dat is alles buiten de web root opslaan. Je kunt wel alles extern opslaan op een andere server, maar volgens mij heeft dat geen meerwaarde om hack-pogingen tegen te gaan. Wel heeft het als negatief effect dat de website trager wordt en dat op het moment dat de externe database eruit ligt, de complete website plat gaat.
 
Ward van der Put
Moderator

Ward van der Put

01/12/2014 15:10:26
Quote Anchor link
Ozzie, zó ver reikt mijn begrip van servers al wel hoor ;-)

>> Echter, als iemand in staat is om binnen te dringen in het privé gedeelte, dan maakt het niet meer uit of jij die system-wide key op de server of ergens extern hebt opgeslagen.

Je gaat er dan van uit dat webserver en databaseserver op dezelfde VPS-server draaien, maar dát is niet per se het geval. En ook niet heel verstandig, juist om de redenen die je zelf noemt. De aanname dat een gecompromitteerde webserver of FTP-server meteen de databaseserver raakt (en vice versa), gaat daarom lang niet altijd op.

Je kunt webservers (meervoud) en een cluster met databaseservers (meervoud) hebben; die delen dan een netwerk, maar meer ook niet. De idee om daaraan een extra laag toe te voegen voor die sleutel in hardware, op een extra server óf in een extra database is dus niet onlogisch.

Je kunt het enigszins met andere vormen van encryptie vergelijken. Dat kan peer-to-peer met twee partijen die elkaar vertrouwen. Maar het kan ook via een trusted third partij: een derde die door beide partijen wordt vertrouwd. Het enige verschil is dat je asymmetrische encryptie gebruikt, zonder decryptie.
 
Ozzie PHP

Ozzie PHP

01/12/2014 15:17:22
Quote Anchor link
>> Ozzie, zó ver reikt mijn begrip van servers al wel hoor ;-)

Hehe, daar twijfelde ik niet aan, maar het was even om mijn verhaal duidelijk te maken.

Ik snap wel wat je bedoelt, maar omdat de servers onderling met elkaar kunnen praten vraag ik me af of je op deze manier extra veiligheid inbouwt.

Even ervan uitgaande dat iemand op je webserver inbreekt, dan staat ergens op die server een stukje code om de system-wide key op te halen. Weliswaar staat de key zelf er dan misschien niet op, maar wel de code om 'm op te halen. Dus mijn vraag is wat je daar dan mee opschiet, hooguit dat je het de hacker wat lastiger maakt omdat die nu moet zoeken naar een stukje code in plaats van een key.
 
Ward van der Put
Moderator

Ward van der Put

01/12/2014 15:55:11
Quote Anchor link
We zijn het er allemaal wel over eens hoor: buiten de root opslaan is altijd veiliger.

Ik heb het topic geopend omdat ik me afvroeg hoe je het nog veiliger kunt maken: zelfs niet eens op dezelfde webserver opslaan.

In mijn eerste opzet staat de sleutel gewoon bij de databaseconfiguratie, zoals databasewachtwoord, maar dáár wil ik de sleutel liever weg hebben.
 
Ozzie PHP

Ozzie PHP

01/12/2014 15:58:34
Quote Anchor link
Ik snap wel wat je bedoelt, maar de vraag is of het zinvol is. Hoe je het ook wendt of keert, je server heeft de key nodig, dus zal deze of aanwezig moeten zijn op de server, of er zal code aanwezig zijn om de key op te halen. En dat is eigenlijk wat ik bedoelde te zeggen. Op het moment dat een hacker op je server kan komen ben je het haasje. Ik zou niet weten hoe je dat zou moeten oplossen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/12/2014 19:41:06
Quote Anchor link
Een andere optie is om een eigen PHP extensie te schrijven, deze compileren et voila ;-)
 
Ozzie PHP

Ozzie PHP

01/12/2014 21:18:39
Quote Anchor link
Ger, hoe bedoel je dat? Ik lees wat je schrijft, maar ik begrijp er niks van :)
 

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.