Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Digitaal ondertekenen van PDF's

13-11-2020, 07:42 door Anoniem, 20 reacties
Waarom zou het digitaal ondertekenen van een PDF met adobe acrobat bijvoorbeeld een unieke handtekening opleveren?

Want hoe kan een computer een unieke handtekeningen creeren?
Is dat cryptografie of hashing wat daarvoor zorgt?
Reacties (20)
13-11-2020, 12:11 door Tintin and Milou - Bijgewerkt: 13-11-2020, 12:11
Je signed meestal met een certificaat. En dat Certificaat is persoonsgebonden.

Maar Google kan je vast hierover een heel hoop basisinformatie geven hierover.
13-11-2020, 12:28 door MathFox
Ga even naar Wikipedia (nl) en lees "Digitale Handtekening" en "Asymmetrische Cryptografie" Daarna kun je verder googelen.
13-11-2020, 13:08 door Anoniem
Door Anoniem: Want hoe kan een computer een unieke handtekeningen creeren?

Dat kan met een ingebouwde cryptographically secure pseudo-random number generator (PRNG), of beter met een aangesloten true random number generator (TRNG), idealiter op basis van radioactief verval. De laatste is potentieel gevaarlijk voor de gezondheid, vrij prijzig en moeilijk te contrueren. Daarom grijpt men vaak naar de goedkoper varianten.

https://en.wikipedia.org/wiki/Random_number_generation
13-11-2020, 13:24 door Kelly Xolphin
Voor het ondertekenen van een PDF document gebruik je een digitaal certificaat dat inderdaad verbonden is aan bijvoorbeeld een persoon of een afdeling van een organisatie. De ondertekening is op meerdere manieren uniek:

- De technologie van de digitale handtekening maakt gebruik van een asymmetrisch sleutelpaar: de private key en de public key. Deze sleutels zijn codes die onlosmakelijk aan elkaar verbonden zijn en zijn uniek voor elk certificaat. De private key genereert de digitale handtekening en blijft geheim. De public key is voor iedereen toegankelijk.

- Het ondertekenen van een digitaal document met een geavanceerde digitale handtekening verloopt in twee stappen.
Het computerbestand dat het document bevat, wordt eerst 'gehasht'. Dit is het genereren van een unieke code gebaseerd op de inhoud van het bericht en de identiteit van de afzender. De 'hashwaarde' die hieruit komt wordt versleuteld met de private sleutel van de verzender. Het resultaat hiervan, de digitale handtekening, wordt samen met het document verstuurd naar de ontvanger. De ontvanger controleert de geldigheid van het document door het ontsleutelen van de digitale handtekening. Hiervoor gebruikt hij de public key van het certificaat.

zie ook: https://www.digitalehandtekeningen.nl/support/Veelgestelde_vragen/Elektronische_Handtekening
13-11-2020, 14:57 door Erik van Straten
Prima uitleg van Kelly Xolphin, die wel de vraag kan oproepen waarom je erop zou kunnen vertrouwen dat het digitale certificaat [x], en dus de digitale handtekening, is van de persoon van wie je denkt dat deze is.

[x] Meestal meegezonden als onderdeel van het PDF-bestand, met in dat certificaat onder meer eenduidig identificerende gegevens, plus de public key, van de ondertekenaar (maar natuurlijk niet de bijpassende private key - die de ondertekenaar strikt voor zichzelf moet houden). Daarnaast gegevens als geldigheidstermijn, gebruikdoel van het certificaat en nog meer "metadata".

Een digitaal certificaat zelf is, net als een digitaal ondertekende PDF, ook een bestand (klein, tot op heden zelden groter dan 3000 bytes) met eveneens een digitale handtekening. Die handtekening is gezet door de certificaatuitgever, nadat deze op meer of minder grondige wijze heeft vastgesteld dat de aanvrager (de latere ondertekenaar van de PDF):
1) Is wie hij zegt dat hij (m/v) is, op basis van de in het signing certificaat op te nemen eenduidige identificerende gegevens;
2) Bewijst over de private key te beschikken die past bij de (in het signing certificaat) op te nemen public key.

Nb. in de praktijk is er vaak sprake van één of meer intermediate (tussenliggende) certificaten, waardoor er een hiërarchie onstaat. Je hebt dan te maken met een keten in een soort stamboom (die net als een familie-stamboom op z'n kop getekend wordt, met de oudste voorouder bovenaan, de "wortel"; daarom spreken we van een rootcertificaat, een keten van nul of meer intermediate certificaten en onderaan een leafcertificaat - dat de authenticiteit van een PDF kan aantonen).

Met andere woorden:
a) Als je de certificaatuitgever erop vertrouwt dat deze bovenstaande checks met (voor jouw doel) voldoende betrouwbaarheid heeft uitgevoerd (en geen valse certificaten uitgeeft of gehacked kan worden waardoor dit gebeurt),

b) en je erop vertrouwt dat de PDF-ondertekenaar voldoende (voor jouw doel) veilig met zijn private key omspringt en geen malware op zijn computer heeft die hem iets anders laat ondertekenen dan hij ziet (of überhaupt weet dat er iets ondertekend wordt - misbruik makend van zijn private key),

c) en de gebruikte cryptografie (asymmetrische- en -hashes) nog voldoende veilig zijn (o.a. geen SHA-1 of ouder),

d) en er geen sprake is van implementatiefouten of bewust aangebrachte achterdeurtjes waarmee het eenmaal ondertekende document toch gewijzigd kan worden,

e) en je de software waarmee jij de PDF bekijkt en/of afdrukt erop kunt vertouwen dat deze jou op z'n minst waarschuwt als er iets niet klopt of als één van de relevante certificaten is ingetrokken (en dat niet onterecht is gebeurd omdat de ondertekenaar onder een overeenkomst uit wil),

dan kun je erop vertrouwen [y] dat de PDF is ondertekend door de kennelijke ondertekenaar en daarna niet meer is gewijzigd.

[y] Tot hooguit het niveau van de zwakste hierboven genoemde schakel.
13-11-2020, 15:33 door Anoniem
Wat natuurlijk ook wel interessant is, is dat uitgegeven certificaten altijd maar een beperkte geldigheidsduur hebben.
En die termijn wordt ook nog eens korter gemaakt.
Dat wil dan zeggen dat je als beoordelaar van dat document alleen maar kunt controleren of het geldig ondertekend
is binnen de geldigheidsduur van dat certificaat.
Maar wat nou als je 10 of 20 jaar later nog terug moet vallen op zo'n ondertekening?
Dat kan bij juridische kwesties rond een arbeidscontract of iets met onroerend goed ofzo best het geval zijn.
Heb je dan nog precies de benodigde gegevens waarmee je kunt natrekken of die ondertekening op dat moment
verricht is door een op dat moment gevalideerd persoon?
Lijkt me lastig te borgen.
13-11-2020, 16:59 door Kelly Xolphin
Door Erik van Straten: Prima uitleg van Kelly Xolphin, die wel de vraag kan oproepen waarom je erop zou kunnen vertrouwen dat het digitale certificaat [x], en dus de digitale handtekening, is van de persoon van wie je denkt dat deze is.

Een terechte vraag. Hiervoor moeten de partijen die deze certificaten uitgeven voldoen aan vastgestelde procedures (plus veel periodieke certificering) qua controle. Bijvoorbeeld een bedrijfscheck bij de KvK, plus een telefonische controle van de persoon waar de handtekening voor is (bij een persoonlijke handtekening).

Door Anoniem: Wat natuurlijk ook wel interessant is, is dat uitgegeven certificaten altijd maar een beperkte geldigheidsduur hebben.
En die termijn wordt ook nog eens korter gemaakt.
Dat wil dan zeggen dat je als beoordelaar van dat document alleen maar kunt controleren of het geldig ondertekend
is binnen de geldigheidsduur van dat certificaat.
Maar wat nou als je 10 of 20 jaar later nog terug moet vallen op zo'n ondertekening?
Dat kan bij juridische kwesties rond een arbeidscontract of iets met onroerend goed ofzo best het geval zijn.
Heb je dan nog precies de benodigde gegevens waarmee je kunt natrekken of die ondertekening op dat moment
verricht is door een op dat moment gevalideerd persoon?
Lijkt me lastig te borgen.

Om dit op te lossen kan er gelijktijdig met een digitale ondertekening, een tijdstempel worden gezet op een document. Deze timestamp bewijst dat het certificaat ten tijde van de ondertekening geldig was; hierdoor verloopt een digitale handtekening met timestamp niet. Dit maakt controle van een ondertekend document ook op lange termijn en zonder een geldig certificaat, rootcertificaat of actieve CA mogelijk. De meeste PDF certificaten worden verkocht met ondersteuning van deze tijdstempels.
14-11-2020, 00:07 door Anoniem
In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Zie https://eid.belgium.be/nl/faq/hoe-onderteken-ik-een-document-elektronisch-met-acrobat-reader-dc#7261
14-11-2020, 11:37 door Anoniem
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Zie https://eid.belgium.be/nl/faq/hoe-onderteken-ik-een-document-elektronisch-met-acrobat-reader-dc#7261
Zal hier nooit kunnen, veels te veel complottheorie bedenkers!
14-11-2020, 11:55 door MathFox
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?
14-11-2020, 12:03 door Erik van Straten
Door Anoniem:
Door Anoniem: Want hoe kan een computer een unieke handtekeningen creeren?
Dat kan met een ingebouwde cryptographically secure pseudo-random number generator [...]
Een betrouwbare random number generator, meestal een CSPRNG (Cryptographically Secure Pseudo Random Number Genetator), is essentieel voor het genereren van elk asymmetrisch sleutelpaar [x], maar speelt, bij mijn weten, geen enkele rol bij het digitaal signeren van bestanden.

Opmerking [x]: Bij een asymmetrisch sleutelpaar zijn er twee verschillende sleutels. Daarbij geldt: wat je met de ene sleutel versleutelt, kun je uitsluitend met de andere sleutel ontsleutelen (een symmetrische sleutel wordt zowel voor versleutelen als ontsleutelen gebruikt). Dit geldt beide kanten op: wat je met de public key versleutelt, kun je uitsluitend met de bijpassende private key ontsleutelen, en wat je met de private key versleutelt, kun je uitsluitend met de bijpassende public key ontsleutelen (maar zie ook opmerking [y] verderop).

Na het genereren van het asymmetrische sleutelpaar wordt de public key gekoppeld aan een identiteit, bijv. middels een certificaat; de private key wordt gebruikt voor het genereren van handtekeningen. Het certificaat (of andere combinatie van public key en identiteit) wordt, door ontvangers van gesigneerde bestanden, gebruikt voor het valideren van digitale handtekeningen en daarmee het vaststellen van de authenticiteit van het bestand (zoals een e-mail of PDF).

Bij het, middels asymmerische encryptie, versleutelen van bestanden, wordt wel een CSPRNG gebruikt (misschien was je daarmee in de war). De reden daarvoor is dat asymmetrische encryptie vreselijk traag is bij grotere bestanden.

Als je iemand een versleuteld bestand wilt sturen, dat alleen die persoon kan decrypten, gaat dit als volgt:
1) De voorwaarde is dat je over een public key (bestemd voor encryption [y]) beschikt van de bedoelde persoon, bijv. in een certificaat;
2) Je moet voldoende zeker weten dat die public key die jij "in handen" hebt, daadwerkelijk van de betreffende persoon is (en die persoon zorgvuldig omspringt met de bijbehorende private key);
3) Gebruik een CSPRNG om een random symmetrische sleutel te genereren, bijv. voor AES (essentieel is dat aanvallers die sleutel niet kunnen raden of voorspellen, daarom een CSPRNG);
4) Versleutel het bestand met die symmetrische sleutel;
5) Versleutel die symmetrische sleutel met de public key van de ontvanger;
6) Stuur het symmetrisch versleutelde bestand, samen met de asymmetrisch versleutelde symmetrische sleutel, naar de ontvanger.

Opmerking [y]: Hoewel het wel kan, is het onverstandig en daarom ongebruikelijk om één asymmetrisch sleutelpaar zowel voor signing als voor encryption te gebruiken (zie bijv. https://crypto.stackexchange.com/questions/12090/using-the-same-rsa-keypair-to-sign-and-encrypt).

De ontvanger ontsleutelt de asymmetrisch versleutelde symmetrische sleutel met diens private key. Daarna kan zij/hij het (symmetrisch) versleutelde bestand ontsleutelen.

Nb. naast dat je een te verzenden bestand versleutelt, kun je het desgewenst ook digitaal ondertekenen, zodat de ontvanger met enige zekerheid weet wie de afzender is (en het bestand "onderweg" niet is gewijzigd, vervangen of door een ander is verzonden dan de ontvanger denkt).

Door MathFox:
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?
Of het een stomme vraag is, weet ik niet, maar ook ik ben hier benieuwd naar!
14-11-2020, 13:51 door Anoniem
Door MathFox:
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?

Met een 'eID kaartlezer' .
De belgische identiteitskaart is een chipkaart , blijkbaar, met certificaten .

https://eid.belgium.be/nl/hoe-installeer-ik-de-eid-software

(windows, mac en linux)
Ik zie niet meteen of er nog speciale eisen zijn aan de lezer, maar dat denk ik eigenlijk niet - de protocollen om met chipkaarten te praten zijn erg standaard.
14-11-2020, 15:05 door Anoniem
Door Anoniem:
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Zie https://eid.belgium.be/nl/faq/hoe-onderteken-ik-een-document-elektronisch-met-acrobat-reader-dc#7261
Zal hier nooit kunnen, veels te veel complottheorie bedenkers!

Als er één denkfout is dat je af moet leren, is het wel de aanname dat de gemiddelde poster hier ook maar ergens representatief voor is .
14-11-2020, 15:39 door MathFox
Door Anoniem:
Door MathFox:
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?

Met een 'eID kaartlezer' .
De belgische identiteitskaart is een chipkaart , blijkbaar, met certificaten .

https://eid.belgium.be/nl/hoe-installeer-ik-de-eid-software

(windows, mac en linux)
Ik zie niet meteen of er nog speciale eisen zijn aan de lezer, maar dat denk ik eigenlijk niet - de protocollen om met chipkaarten te praten zijn erg standaard.
Ja, zo op het eerste gezicht voldoet een standaard chipkaartlezer. Daarmee wordt het afgeven van je ID-kaart weer een stukje riskanter omdat je ook je privé-sleutel uit handen geeft.
14-11-2020, 16:04 door Anoniem
Door MathFox:
Door Anoniem:
Door MathFox:
Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?

Met een 'eID kaartlezer' .
De belgische identiteitskaart is een chipkaart , blijkbaar, met certificaten .

https://eid.belgium.be/nl/hoe-installeer-ik-de-eid-software

(windows, mac en linux)
Ik zie niet meteen of er nog speciale eisen zijn aan de lezer, maar dat denk ik eigenlijk niet - de protocollen om met chipkaarten te praten zijn erg standaard.
Ja, zo op het eerste gezicht voldoet een standaard chipkaartlezer. Daarmee wordt het afgeven van je ID-kaart weer een stukje riskanter omdat je ook je privé-sleutel uit handen geeft.

Ik zie niet waarom dat volgt .

Een chipkaart kan heel goed een model hebben waarbij de kaart -tekent- met de privesleutel, maar die sleutel niet uitleesbaar is. (zoiets doet je bankpas-chip ook ).
Ik las in die EID pagina's dat er ook sprake is van een pincode - daarmee kan ook 'tekenen van iets gedurende toegang tot de kaart' in principe tegen gegaan worden.

Ik zou m'n hand niet in het vuur steken als het gaat om aanvallers met een behoorlijk lab en ruim de tijd, maar goed genoeg om misbruik door huisgenoten , collega's en zakkenrollers te blokkeren zolang die niet de pincode gezien hebben moet absoluut mogelijk zijn.
14-11-2020, 16:25 door Anoniem
Door MathFox:
Ja, zo op het eerste gezicht voldoet een standaard chipkaartlezer. Daarmee wordt het afgeven van je ID-kaart weer een stukje riskanter omdat je ook je privé-sleutel uit handen geeft.
Je kunt die prive sleutel niet uit zo'n kaart lezen, je kunt hem alleen opdracht geven een of andere encryptie te doen
met die sleutel en het resultaat te retourneren.
14-11-2020, 16:29 door Anoniem
Door Anoniem:
Door Anoniem: Want hoe kan een computer een unieke handtekeningen creeren?

Dat kan met een ingebouwde cryptographically secure pseudo-random number generator (PRNG), of beter met een aangesloten true random number generator (TRNG), idealiter op basis van radioactief verval. De laatste is potentieel gevaarlijk voor de gezondheid, vrij prijzig en moeilijk te contrueren. Daarom grijpt men vaak naar de goedkoper varianten.

https://en.wikipedia.org/wiki/Random_number_generation

Je impliceert een misverstandje : radioactief verval is niet persé de 'beste' of 'meest ideale' bron van entropie.
Het is één van de _mogelijke_ fysische fenomenen die fundamenteel random zijn (hoewel met een bepaalde statistische verdeling) , maar niet de enige. Wel een erg lastige om te gebruiken. (maar klinkt wel erg spannend )
De wiki link geeft een aantal andere fysische gedragingen die óók fundamenteel random zijn, en veel makkelijker bruikbaar .

Deze link geeft wat meer uitleg over (andere) bronnen van entropie:
https://en.wikipedia.org/wiki/Hardware_random_number_generator#Physical_phenomena_with_random_properties

(die wiki pagina is overigens onjuist met de stelling dat een roulette wiel "onvoorspelbaar is" . Als je de begincondities (snelheid van de bal, positie van het wiel) mag meten voordat de croupier 'rien na va plus' roept - zelfs met de hand - kun je de uitkomst goed genoeg voorspellen om ruim winst te maken. https://www.researchgate.net/publication/231610304_Predicting_the_outcome_of_roulette


Dergelijke elektronische ruis is waar de hardware rng van Intel en AMD chips op gebaseerd zijn.
Er is overigens nog best een hoop werk nodig om van een fysische bron betrouwbaar en bruikbaar uniform random getallen te krijgen . En heel zeker te zijn dat je geen correlaties introduceert bij het samplen en processen van de bron - en defecten van de bron te constateren.
Lees https://web.archive.org/web/20141230024150/http://www.cryptography.com/public/pdf/Intel_TRNG_Report_20120312.pdf voor een boeiende analyse van de intel rdrand bron en verwerking.
14-11-2020, 20:32 door Anoniem
Btw, de uitdrukking 'signing a PDF' wordt ook gebruikt voor het plakken van een scan van je handtekening onder een document.

Vanuit security perspectief zegt dat niet veel .

(het kan wel een handige feature zijn - als je een 'ondertekende versie' moet terugsturen is het handiger dan printen, krabbel zetten, inscannen, en dan mailen).

https://helpx.adobe.com/au/reader/using/sign-pdfs.html
https://www.howtogeek.com/164668/how-to-electronically-sign-documents-without-printing-and-scanning-them/
15-11-2020, 12:36 door Briolet
Door Anoniem:
Door MathFox:
Ja, zo op het eerste gezicht voldoet een standaard chipkaartlezer. Daarmee wordt het afgeven van je ID-kaart weer een stukje riskanter omdat je ook je privé-sleutel uit handen geeft.
Je kunt die prive sleutel niet uit zo'n kaart lezen, je kunt hem alleen opdracht geven een of andere encryptie te doen
met die sleutel en het resultaat te retourneren.

Ik heb geen idee hoe deze sleutel werkt, maar het is mogelijk om een stukje hardwarematige ruis te laten ontstaan op de chip. Dit is niet te reproduceren op een volgende chip. Volgens hetzelfde principe kun je niet-copieerbare privé sleutels maken met een veeg reflecterende verf. Ook al kun je deze sluitel bestuderen, je krijgt hem niet nagemaakt.
Zie pagina 50 in: https://www.utwente.nl/en/bms/steps/staff/nanotechnologie-in-dienst-van-veiligheid-en-justitie-2016.pdf
15-11-2020, 13:15 door Briolet
Door Anoniem: Btw, de uitdrukking 'signing a PDF' wordt ook gebruikt voor het plakken van een scan van je handtekening onder een document.…
https://helpx.adobe.com/au/reader/using/sign-pdfs.html]

Ik zie dat Adobe dit inderdaad ook ondertekenen noemt. In macOS is deze methode een bibliotheek procedure die voor alle programma's beschikbaar is via de annotatie functie.

Je maakt een aantal handtekeningen, activeert de handtekeningen tab bij annotaties. Vervolgens houdt je de diverse handtekeningen voor de camera van de pc en slaat ze op. Daarna kun je een handtekening kiezen als je een pdf of plaatje wilt ondertekenen.
Ik gebruik het inderdaad zelf ook voor onbelangrijke formulieren die ik digitaal krijg en getekend moet retourneren. Het enige niet vervalsbare is dan de DKIM ondertekening van de mail met onze domeinnaam, en niet het document zelf.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.