Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014

L
Luuk DanesEncryption Expert / Security Architect at MakeSecure Information Security
Correct toepassen
van cryptografie
Luuk Danes
dinsdag 10 juni 2014
(ISC)2 NL - Bilthoven
Luuk Danes Advies
Agenda
• Over Luuk Danes (Advies)
• Over het CISSP domein Cryptografie
• Basisbegrippen Cryptografie
• Correct toepassen van cryptografie in 5 stappen
• Samenvattend advies
• Vragen
Luuk Danes Advies
• Wiskundige,
gespecialiseerd in cryptologie
• Ervaring opgedaan bij
de OV-chipkaart en een
security evaluation lab
• Werkzaam als freelance
security-adviseur
• Lid Normcommissie voor het
Framework Secure Software
Over CISSP domein Cryptografie
• Veel technische ‘weetjes’
• Kennis voor cryptografen, niet voor decision makers
• Veel historische informatie over ‘onbekende’ algoritmes
• Tussen de regels door wel tips voor toepassing,
maar geen duidelijk advies of richting gegeven
Samenvattend advies
• Bezint eer ge begint:
Cryptografie is moeilijk
• Volg de 5 stappen:
Eisen opstellen, ontwerpen, implementeren, controleren, onderhouden
• Kies voor erkende standaard oplossingen:
Standaard algoritmes, protocollen, libraries en oplossingen
• Schakel een expert in
De 4 hoofdfuncties van cryptografie
• Vertrouwelijkheid
• Integriteit
• Authenticatie
• Onweerlegbaarheid (non-repudiation)
Cryptografische primitieven
Symmetrisch
• encryptie
• message authentication codes (MACs)
Random number generation
Asymmetrisch
• public key encryptie
• digitale handtekening
• public key authenticatie &
sleuteluitwisseling
Hash functies
Cryptografische primitieven
Symmetrisch
• encryptie
block ciphers
(3DES, AES, Blowfish)
modes of operation
(ECB, CBC, CTR)
stream ciphers
(RC4, A5/1, SNOW 3G)
• message authentication codes (MACs)
(HMAC, CBC-MAC, CMAC)
Random number generation
Asymmetrisch
• public key encryptie
(RSA, Elliptic Curve)
• digitale handtekening
(RSA PKCS#1 v1.5, DSA, ECDSA)
• public key authenticatie &
sleuteluitwisseling
(Diffie-Hellman, PKI, TLS, SSH)
Hash functies
(MD5, RIPE-MD160, SHA-2)
• 5 stappen:
1. Eisen opstellen
2. Ontwerpen
3. Implementeren
4. Controleren
5. Onderhouden
• Requirements traceability!
(volgens waterval-methode)
Stappenplan
Stap 1: Eisen opstellen
• Bepaal het doel
• Is vertrouwelijkheid, integriteit, authenticatie of onweerlegbaarheid vereist?
• Is er sprake van opslag, transport of enkel tijdelijk materiaal?
• In geval van opslag, bepaal voor welke termijn
• In geval van transport, bepaal de dataflow:
beginlocatie, eindlocatie en tussenlocaties
ImplementationRequirements Design MaintenanceVerification
Stap 1: Eisen opstellen
• Bepaal het beschermingsniveau
• Bepaal mogelijke typen aanvallers
• Bepaal de termijn waarop de gegevens beschermd moeten blijven
ImplementationRequirements Design MaintenanceVerification
Very short-term < 5 years protection
Short-term ≈ 10 years protection
Medium-term ≈ 20 years protection
Long-term ≈ 30 years protection
Foreseeable future
Stap 1: Eisen opstellen
• Bepaal het
beschermingsniveau
• Bepaal de vereiste
veiligheid in
Bits of Security
Let op:
sleutellengte
≠
security level
ImplementationRequirements Design MaintenanceVerification
Bronnen
• Sleutellengtes: www.keylength.com
• Beschermingsniveaus en bijpassende cryptografische primitieven:
ECRYPT II Report 2012 ENISA Report 2013 NIST SP 800-131A
Stap 2: Ontwerpen
• Kies de juiste type (categorie) crypto
• Op basis van het doel
• Kies de juiste algoritmes en protocollen
• Op basis van het doel
• Op basis van de benodigde Bits of Security
• Uit de lijst met ‘approved’ algoritmes en protocollen
(ECRYPT / ENISA / NIST documenten)
• Kies de juiste parameters
• Op basis van toegestane parameters
• Op basis van benodigde Bits of Security
ImplementationRequirements Design MaintenanceVerification
Stap 2: Ontwerpen
• Kies voor erkende oplossingen
Let op:
Ga niet zelf iets uitvinden! en Kies nooit voor een bekend zwak algoritme!
• Zorg dat het ontwerp in overeenstemming is met de eisen
Let op:
Doe hierbij geen concessies aan projectleiders en business-owners!
(Eventueel: laat de eindverantwoordelijke tekenen voor aanpassing van eisen)
ImplementationRequirements Design MaintenanceVerification
Stap 2: Ontwerpen
• Dwing in het ontwerp het correct gebruiken van de crypto-
maatregelen af
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Implementeer de ontworpen oplossing
• Kies betrouwbare crypto libraries
• Gebruik die op de juiste manier!
• Gebruik de laatste versies
• Voorbeelden: OpenSSL, Crypto++, BouncyCastle, NaCl, .NET Framework
• Gebruik functies op de juiste manier
• Correcte aanroep
• Selecteer de juiste algoritmes en parameters
• Pas het ‘Fail secure’-principe toe op cryptografische functies
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Kies een veilige random number generator
Niet goed: Ook niet goed:
ImplementationRequirements Design MaintenanceVerification
int main(void) {
srand(time(NULL));
for(int i = 1; i <=10; i) {
cout << rand() % 10;
}
return 0;
}
bron: xkcd.com/221
Stap 3: Implementeren
• Kies een veilige random number generator:
• Veiligste* oplossing: True Random Number Generator (TRNG)
• Praktische oplossing:
gebruik de random number generator van het platform of library
Let op: controleer of de gekozen RNG cryptographically secure is!
• Voorbeelden:
• Java : java.security.SecureRandom
• Linux : /dev/random of /dev/urandom
• Windows : CryptGenRandom (CAPI) of BCryptGenRandom (CNG)
• .Net : RNGCryptoServiceProvider.GetBytes
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Implementeer sleutelbeheer:
• Technisch
• Organisatorisch
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Implementeer sleutelbeheer vanuit technisch oogpunt:
• Veiligste* oplossing: Hardware Security Module
• Software-oplossing:
gebruik de key management functies van het platform
• Voorbeelden:
• CNG Key Storage Functions
• iOS/OS X Keychain Services
• Android KeyStore
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Implementeer sleutelbeheer vanuit organisatorisch oogpunt:
• Zorg voor processen rond sleuteluitgifte, intrekking, etc.
• Maak processen voor het veilig aanmaken van master/root keys
• Houd een register bij (passief en actief!) van uitgegeven sleutels
ImplementationRequirements Design MaintenanceVerification
Stap 3: Implementeren
• Algemene software security
• Maatregelen tegen side-channel attacks
• Maatregelen buiten de applicatie
ImplementationRequirements Design MaintenanceVerification
Stap 4: Controleren
• Controleer of eisen en ontwerp in overeenstemming zijn
Vaststelling van tweezijdige compleetheid is bij crypto nóg
belangrijker dan bij ‘gewone’ software-verificatie
• Controleer of ontwerp en implementatie in overeenstemming zijn
• Controleer de security van de implementatie in het algemeen
• Sterk aanbevolen: review/beoordeling door een externe partij
ImplementationRequirements Design MaintenanceVerification
Stap 5: Onderhouden
• Volg en onderhoud de processen rond sleutelbeheer
• Houd software up-to-date
en zorg voor een update-routine
• Zowel technische als procedureel
• Niet enkel voor de software, maar ook voor het crypto-algoritme of protocol
• Zorg voor informatiebeveiliging in het algemeen:
ImplementationRequirements Design MaintenanceVerification
PROTECT RECOVERDETECTDETER RESPOND
Samenvattend advies
• Bezint eer ge begint:
Cryptografie is moeilijk
• Volg de 5 stappen:
Eisen opstellen, ontwerpen, implementeren, controleren, onderhouden
• Kies voor erkende standaard oplossingen:
Standaard algoritmes, protocollen, libraries en oplossingen
• Schakel een expert in
Vragen?
Luuk Danes Advies www.luukdanes.nl
bron: xkcd.com/257
1 of 27

Recommended

Het begint allemaal bij gezond verstand by
Het begint allemaal bij gezond verstandHet begint allemaal bij gezond verstand
Het begint allemaal bij gezond verstandB.A.
368 views37 slides
Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015 by
Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015
Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015Luuk Danes
1K views28 slides
Modern Digitaal Documentbeheer by
Modern Digitaal DocumentbeheerModern Digitaal Documentbeheer
Modern Digitaal DocumentbeheerSOD Next
617 views27 slides
SOD-Opleidingen presenteert Leergang Informatiemanagement by
SOD-Opleidingen presenteert Leergang InformatiemanagementSOD-Opleidingen presenteert Leergang Informatiemanagement
SOD-Opleidingen presenteert Leergang InformatiemanagementSOD Next
867 views24 slides
Veiliger door gezond verstand - Presentatie Safe@schools 27 mei 2014 by
Veiliger door gezond verstand - Presentatie Safe@schools 27 mei 2014Veiliger door gezond verstand - Presentatie Safe@schools 27 mei 2014
Veiliger door gezond verstand - Presentatie Safe@schools 27 mei 2014B.A.
724 views24 slides
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ... by
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...FARO
998 views26 slides

More Related Content

Similar to Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014

Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale by
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleJeroen Reijn
381 views64 slides
Good practices in pentesting - Bas de Heer by
Good practices in pentesting - Bas de HeerGood practices in pentesting - Bas de Heer
Good practices in pentesting - Bas de HeerSogeti Nederland B.V.
293 views43 slides
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling by
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkelingGGZ Oost Brabant
796 views15 slides
Robot framework en ci v2 by
Robot framework en ci v2Robot framework en ci v2
Robot framework en ci v2christiantester
430 views22 slides
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk? by
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?Jaap van Ekris
765 views44 slides
2016 11-15 - nvrb - software betrouwbaarheid by
2016 11-15 - nvrb - software betrouwbaarheid2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheidJaap van Ekris
422 views86 slides

Similar to Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014(20)

Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale by Jeroen Reijn
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Jeroen Reijn381 views
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling by GGZ Oost Brabant
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling
20131203 pv ib_zalmtrijssenaar_auditenvanagilesoftwareontwikkeling
GGZ Oost Brabant796 views
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk? by Jaap van Ekris
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?
2008-06-23 - SDN - Kwaliteit van software, wat is dat nu eigenlijk?
Jaap van Ekris765 views
2016 11-15 - nvrb - software betrouwbaarheid by Jaap van Ekris
2016 11-15 - nvrb - software betrouwbaarheid2016 11-15 - nvrb - software betrouwbaarheid
2016 11-15 - nvrb - software betrouwbaarheid
Jaap van Ekris422 views
Loggingenmonitoringpresentatiemetpenetratietesten by Ferdinand_u
LoggingenmonitoringpresentatiemetpenetratietestenLoggingenmonitoringpresentatiemetpenetratietesten
Loggingenmonitoringpresentatiemetpenetratietesten
Ferdinand_u341 views
Techdays 2012 - Better code through reviews and tools by Jesse Houwing
Techdays 2012 - Better code through reviews and toolsTechdays 2012 - Better code through reviews and tools
Techdays 2012 - Better code through reviews and tools
Jesse Houwing549 views
Versiebeheer van database changes by Arjen van Vliet
Versiebeheer van database changesVersiebeheer van database changes
Versiebeheer van database changes
Arjen van Vliet1.1K views
Safeshops ? Nadenken over veiligheidsaspecten van E-shops/Commerce by B.A.
Safeshops ?  Nadenken over veiligheidsaspecten van E-shops/CommerceSafeshops ?  Nadenken over veiligheidsaspecten van E-shops/Commerce
Safeshops ? Nadenken over veiligheidsaspecten van E-shops/Commerce
B.A.401 views
BPUG Seminar 2014 Rik Marselis - effectief testen in agile by Rik Marselis
BPUG Seminar 2014 Rik Marselis - effectief testen in agileBPUG Seminar 2014 Rik Marselis - effectief testen in agile
BPUG Seminar 2014 Rik Marselis - effectief testen in agile
Rik Marselis604 views
INFORUM - VEILIGHEIDSPROBLEMEN VOOR BIBLIOTHEEK EN ARCHIEF IN HET DIGITALE TI... by B.A.
INFORUM - VEILIGHEIDSPROBLEMEN VOOR BIBLIOTHEEK EN ARCHIEF IN HET DIGITALE TI...INFORUM - VEILIGHEIDSPROBLEMEN VOOR BIBLIOTHEEK EN ARCHIEF IN HET DIGITALE TI...
INFORUM - VEILIGHEIDSPROBLEMEN VOOR BIBLIOTHEEK EN ARCHIEF IN HET DIGITALE TI...
B.A.545 views
http://weekvanhetdigitaalerfgoed.nl/ 1 b1 keeswaterman certificering by Rob Blaauboer
http://weekvanhetdigitaalerfgoed.nl/ 1 b1 keeswaterman certificeringhttp://weekvanhetdigitaalerfgoed.nl/ 1 b1 keeswaterman certificering
http://weekvanhetdigitaalerfgoed.nl/ 1 b1 keeswaterman certificering
Rob Blaauboer2.2K views
Nearshore softwareontwikkeling - Technosoft by Bart Zwager
Nearshore softwareontwikkeling - TechnosoftNearshore softwareontwikkeling - Technosoft
Nearshore softwareontwikkeling - Technosoft
Bart Zwager29 views
SYSQA Kennissessie oktober 2011, presentatie 1 Testen en Scrum by SYSQA BV
SYSQA Kennissessie oktober 2011, presentatie 1 Testen en ScrumSYSQA Kennissessie oktober 2011, presentatie 1 Testen en Scrum
SYSQA Kennissessie oktober 2011, presentatie 1 Testen en Scrum
SYSQA BV319 views
Meetup 19/12/2016 - Blockchain-as-a-service voor Antwerpen? by Digipolis Antwerpen
Meetup 19/12/2016 - Blockchain-as-a-service voor Antwerpen?Meetup 19/12/2016 - Blockchain-as-a-service voor Antwerpen?
Meetup 19/12/2016 - Blockchain-as-a-service voor Antwerpen?
Webinar de balans tussen security en gebruiksvriendelijkheid by Delta-N
Webinar de balans tussen security en gebruiksvriendelijkheidWebinar de balans tussen security en gebruiksvriendelijkheid
Webinar de balans tussen security en gebruiksvriendelijkheid
Delta-N916 views
Load En Stress Testers Te Slim Af Final by PlutonIT
Load En Stress Testers Te Slim Af FinalLoad En Stress Testers Te Slim Af Final
Load En Stress Testers Te Slim Af Final
PlutonIT217 views

Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014

  • 1. Correct toepassen van cryptografie Luuk Danes dinsdag 10 juni 2014 (ISC)2 NL - Bilthoven Luuk Danes Advies
  • 2. Agenda • Over Luuk Danes (Advies) • Over het CISSP domein Cryptografie • Basisbegrippen Cryptografie • Correct toepassen van cryptografie in 5 stappen • Samenvattend advies • Vragen
  • 3. Luuk Danes Advies • Wiskundige, gespecialiseerd in cryptologie • Ervaring opgedaan bij de OV-chipkaart en een security evaluation lab • Werkzaam als freelance security-adviseur • Lid Normcommissie voor het Framework Secure Software
  • 4. Over CISSP domein Cryptografie • Veel technische ‘weetjes’ • Kennis voor cryptografen, niet voor decision makers • Veel historische informatie over ‘onbekende’ algoritmes • Tussen de regels door wel tips voor toepassing, maar geen duidelijk advies of richting gegeven
  • 5. Samenvattend advies • Bezint eer ge begint: Cryptografie is moeilijk • Volg de 5 stappen: Eisen opstellen, ontwerpen, implementeren, controleren, onderhouden • Kies voor erkende standaard oplossingen: Standaard algoritmes, protocollen, libraries en oplossingen • Schakel een expert in
  • 6. De 4 hoofdfuncties van cryptografie • Vertrouwelijkheid • Integriteit • Authenticatie • Onweerlegbaarheid (non-repudiation)
  • 7. Cryptografische primitieven Symmetrisch • encryptie • message authentication codes (MACs) Random number generation Asymmetrisch • public key encryptie • digitale handtekening • public key authenticatie & sleuteluitwisseling Hash functies
  • 8. Cryptografische primitieven Symmetrisch • encryptie block ciphers (3DES, AES, Blowfish) modes of operation (ECB, CBC, CTR) stream ciphers (RC4, A5/1, SNOW 3G) • message authentication codes (MACs) (HMAC, CBC-MAC, CMAC) Random number generation Asymmetrisch • public key encryptie (RSA, Elliptic Curve) • digitale handtekening (RSA PKCS#1 v1.5, DSA, ECDSA) • public key authenticatie & sleuteluitwisseling (Diffie-Hellman, PKI, TLS, SSH) Hash functies (MD5, RIPE-MD160, SHA-2)
  • 9. • 5 stappen: 1. Eisen opstellen 2. Ontwerpen 3. Implementeren 4. Controleren 5. Onderhouden • Requirements traceability! (volgens waterval-methode) Stappenplan
  • 10. Stap 1: Eisen opstellen • Bepaal het doel • Is vertrouwelijkheid, integriteit, authenticatie of onweerlegbaarheid vereist? • Is er sprake van opslag, transport of enkel tijdelijk materiaal? • In geval van opslag, bepaal voor welke termijn • In geval van transport, bepaal de dataflow: beginlocatie, eindlocatie en tussenlocaties ImplementationRequirements Design MaintenanceVerification
  • 11. Stap 1: Eisen opstellen • Bepaal het beschermingsniveau • Bepaal mogelijke typen aanvallers • Bepaal de termijn waarop de gegevens beschermd moeten blijven ImplementationRequirements Design MaintenanceVerification Very short-term < 5 years protection Short-term ≈ 10 years protection Medium-term ≈ 20 years protection Long-term ≈ 30 years protection Foreseeable future
  • 12. Stap 1: Eisen opstellen • Bepaal het beschermingsniveau • Bepaal de vereiste veiligheid in Bits of Security Let op: sleutellengte ≠ security level ImplementationRequirements Design MaintenanceVerification
  • 13. Bronnen • Sleutellengtes: www.keylength.com • Beschermingsniveaus en bijpassende cryptografische primitieven: ECRYPT II Report 2012 ENISA Report 2013 NIST SP 800-131A
  • 14. Stap 2: Ontwerpen • Kies de juiste type (categorie) crypto • Op basis van het doel • Kies de juiste algoritmes en protocollen • Op basis van het doel • Op basis van de benodigde Bits of Security • Uit de lijst met ‘approved’ algoritmes en protocollen (ECRYPT / ENISA / NIST documenten) • Kies de juiste parameters • Op basis van toegestane parameters • Op basis van benodigde Bits of Security ImplementationRequirements Design MaintenanceVerification
  • 15. Stap 2: Ontwerpen • Kies voor erkende oplossingen Let op: Ga niet zelf iets uitvinden! en Kies nooit voor een bekend zwak algoritme! • Zorg dat het ontwerp in overeenstemming is met de eisen Let op: Doe hierbij geen concessies aan projectleiders en business-owners! (Eventueel: laat de eindverantwoordelijke tekenen voor aanpassing van eisen) ImplementationRequirements Design MaintenanceVerification
  • 16. Stap 2: Ontwerpen • Dwing in het ontwerp het correct gebruiken van de crypto- maatregelen af ImplementationRequirements Design MaintenanceVerification
  • 17. Stap 3: Implementeren • Implementeer de ontworpen oplossing • Kies betrouwbare crypto libraries • Gebruik die op de juiste manier! • Gebruik de laatste versies • Voorbeelden: OpenSSL, Crypto++, BouncyCastle, NaCl, .NET Framework • Gebruik functies op de juiste manier • Correcte aanroep • Selecteer de juiste algoritmes en parameters • Pas het ‘Fail secure’-principe toe op cryptografische functies ImplementationRequirements Design MaintenanceVerification
  • 18. Stap 3: Implementeren • Kies een veilige random number generator Niet goed: Ook niet goed: ImplementationRequirements Design MaintenanceVerification int main(void) { srand(time(NULL)); for(int i = 1; i <=10; i) { cout << rand() % 10; } return 0; } bron: xkcd.com/221
  • 19. Stap 3: Implementeren • Kies een veilige random number generator: • Veiligste* oplossing: True Random Number Generator (TRNG) • Praktische oplossing: gebruik de random number generator van het platform of library Let op: controleer of de gekozen RNG cryptographically secure is! • Voorbeelden: • Java : java.security.SecureRandom • Linux : /dev/random of /dev/urandom • Windows : CryptGenRandom (CAPI) of BCryptGenRandom (CNG) • .Net : RNGCryptoServiceProvider.GetBytes ImplementationRequirements Design MaintenanceVerification
  • 20. Stap 3: Implementeren • Implementeer sleutelbeheer: • Technisch • Organisatorisch ImplementationRequirements Design MaintenanceVerification
  • 21. Stap 3: Implementeren • Implementeer sleutelbeheer vanuit technisch oogpunt: • Veiligste* oplossing: Hardware Security Module • Software-oplossing: gebruik de key management functies van het platform • Voorbeelden: • CNG Key Storage Functions • iOS/OS X Keychain Services • Android KeyStore ImplementationRequirements Design MaintenanceVerification
  • 22. Stap 3: Implementeren • Implementeer sleutelbeheer vanuit organisatorisch oogpunt: • Zorg voor processen rond sleuteluitgifte, intrekking, etc. • Maak processen voor het veilig aanmaken van master/root keys • Houd een register bij (passief en actief!) van uitgegeven sleutels ImplementationRequirements Design MaintenanceVerification
  • 23. Stap 3: Implementeren • Algemene software security • Maatregelen tegen side-channel attacks • Maatregelen buiten de applicatie ImplementationRequirements Design MaintenanceVerification
  • 24. Stap 4: Controleren • Controleer of eisen en ontwerp in overeenstemming zijn Vaststelling van tweezijdige compleetheid is bij crypto nóg belangrijker dan bij ‘gewone’ software-verificatie • Controleer of ontwerp en implementatie in overeenstemming zijn • Controleer de security van de implementatie in het algemeen • Sterk aanbevolen: review/beoordeling door een externe partij ImplementationRequirements Design MaintenanceVerification
  • 25. Stap 5: Onderhouden • Volg en onderhoud de processen rond sleutelbeheer • Houd software up-to-date en zorg voor een update-routine • Zowel technische als procedureel • Niet enkel voor de software, maar ook voor het crypto-algoritme of protocol • Zorg voor informatiebeveiliging in het algemeen: ImplementationRequirements Design MaintenanceVerification PROTECT RECOVERDETECTDETER RESPOND
  • 26. Samenvattend advies • Bezint eer ge begint: Cryptografie is moeilijk • Volg de 5 stappen: Eisen opstellen, ontwerpen, implementeren, controleren, onderhouden • Kies voor erkende standaard oplossingen: Standaard algoritmes, protocollen, libraries en oplossingen • Schakel een expert in
  • 27. Vragen? Luuk Danes Advies www.luukdanes.nl bron: xkcd.com/257