System-wide key

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren Software Developer

Functie omschrijving Ben jij een ervaren Software Developer, en heb je ervaring met technieken zoals C#, MS Access & SQL? Vind jij het leuk om maatwerk software te ontwikkelen voor klanten in een specifieke branche? Dan is dit de baan voor jou! Als ontwikkelaar ben jij samen met een team van 12 collega’s verantwoordelijk voor het bouwen van nieuwe functionaliteiten en het uitbreiden van de core applicatie. Belangrijk is dat je ervaring hebt met C# en MS Access. Je bent flexibel en klantvriendelijk ingesteld, omdat het belangrijk is om de klanten zo goed mogelijk van dienst te kunnen zijn. Thuiswerken

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in de regio van Bergen op Zoom ben je als PHP Developer niet alleen gefocust op het ontwikkelen van Software. Daarnaast ben je ook voortdurend bezig met het zoeken naar nieuwe mogelijkheden en innovaties die essentieel kunnen zijn voor de efficiëntie van software ontwikkeling. Je deelt veel kennis en informatie met het team en ontvangt deze dan ook graag terug. Techstack: PHP, Symfony & mySQL. Bedrijfsprofiel Deze uitdagende opdrachtgever is ruim 20 jaar actief in de regio Bergen op Zoom. Het vooruitstrevende team staat de hele dag voor je klaar om je te helpen en ondersteunen.

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

.net developer

Hoi! Wij zijn auto.nl en wij verkopen auto's online. je bestelt bij ons een auto net zo makkelijk als een spijkerbroek. En bevalt ie niet? Dan stuur je 'm gewoon weer terug. En dat we dat goed doen bewijst onze hoge klanttevredenheid van een 9,3. Nu maken we de volgende stap bij auto.nl. We starten met fysieke winkels. Online zoeken, offline bekijken. Maar nog altijd, geen gedoe! Gewoon eerlijk, transparant en zonder zorgen een auto kopen.. Maar om dat waar te blijven maken en nóg beter te worden, zoeken we uitbreiding van ons development team. Wat ga je precies doen?

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

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

15/05/2024 18:43:36
 
- 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.