[{"data":1,"prerenderedAt":507},["ShallowReactive",2],{"sc:header-data-da":3,"sc:footer-data-da":102,"glossary-da--glossary-important-data-formats":140,"authors_data":423},{"lang":4,"home":5,"navigation":14,"contact":95},"en",{"name":6,"imgLight":7,"img":8,"languages":9},"home","/products/scepman/scepman-logo-all-white.svg","/products/scepman/scepman-logo-rgb.svg",{"da":10},{"title":11,"url":12,"alt":13},"Forside","/da","SCEPman",[15,19,25,31,83,89],{"name":16,"languages":17},"nav-home",{"da":18},{"title":11,"url":12},{"name":20,"languages":21},"pricing",{"da":22},{"title":23,"url":24},"Priser","/da/pricing",{"name":26,"languages":27},"partner",{"da":28},{"title":29,"url":30},"Partnere","/da/partner",{"name":32,"languages":33,"children":36},"support-hub",{"da":34},{"title":35},"Support Hub",[37,53,68],{"name":38,"children":39},"support-hub-group-1",[40,47],{"name":41,"target":42,"languages":43},"docs","_blank",{"da":44},{"title":45,"url":46},"Docs","https://docs.scepman.com/",{"name":48,"languages":49},"faq",{"da":50},{"title":51,"url":52},"FAQ","/da/faq",{"name":54,"children":55},"support-hub-group-2",[56,62],{"name":57,"target":42,"languages":58},"support-ticket",{"da":59},{"title":60,"url":61},"Support Ticket","https://support.scepman.com/support/tickets/new?ticket_form=technical_support_request_%28scepman%29",{"name":63,"target":42,"languages":64},"drop-a-question",{"da":65},{"title":66,"url":67},"Drop a Question","https://support.scepman.com/support/tickets/new?ticket_form=drop_a_question_%28scepman%29",{"name":69,"children":70},"support-hub-group-3",[71,77],{"name":72,"languages":73},"glossary",{"da":74},{"title":75,"url":76},"Ordliste","/da/glossary",{"name":78,"languages":79},"blog",{"da":80},{"title":81,"url":82},"Blog","/da/blog",{"name":84,"languages":85},"events",{"da":86},{"title":87,"url":88},"Arrangementer","/da/events",{"name":90,"languages":91},"about",{"da":92},{"title":93,"url":94},"Om os","/da/about-us",{"name":96,"languages":97},"contact",{"da":98},{"title":99,"url":100,"active":101},"support@scepman.com","mailto:support@scepman.com",false,{"data":103},{"mail":104,"logos":105,"socials":110,"links":123,"linksDa":133},"sales@SCEPman.com",[106],{"img":107,"alt":108,"url":109},"/products/scepman/scepman-logo-yellow.svg","SCEPman Logo","/",[111,115,119],{"icon":112,"url":113,"title":114},"fa-x-twitter","https://twitter.com/scepman_","X",{"icon":116,"url":117,"title":118},"fa-youtube","https://www.youtube.com/channel/UCKnLYxlQFhzdXkDADV_Unrg","Youtube",{"icon":120,"url":121,"title":122},"fa-linkedin","https://www.linkedin.com/showcase/scepman","LinkedIn",[124,127,130],{"title":125,"url":126,"target":42},"Privacy","https://www.glueckkanja.com/en/privacy",{"title":128,"url":129,"target":42},"Imprint","https://www.glueckkanja.com/en/imprint",{"title":131,"url":132,"target":42},"Contact & Locations","https://www.glueckkanja.com/en/company/contact-and-locations",[134,136,138],{"title":135,"url":126,"target":42},"Privatlivspolitik",{"title":137,"url":129,"target":42},"Juridisk information",{"title":139,"url":132,"target":42},"Kontakt og adresser",{"id":141,"title":142,"author":143,"body":144,"cta":143,"description":377,"eventid":143,"extension":396,"hideInRecent":101,"layout":397,"meta":398,"moment":143,"navigation":418,"path":419,"seo":420,"stem":421,"tags":143,"webcast":101,"__hash__":422},"content_da/glossary/important-data-formats.md","Vigtige dataformater",null,{"type":145,"value":146,"toc":376},"minimal",[147,152,175,183,186,191,196,199,202,205,209,212,216,219,222,230,233,237,245,249,252,255,268,272,285,289,292,295,299,302,311,315,318,321,324,335,339,342,346,354,358,366,369],[148,149,151],"h2",{"id":150},"x509","X.509",[153,154,155,156,160,161,168,169,174],"p",{},"X.509 er ",[157,158,159],"em",{},"dén"," standard for digitale certifikater. Der har været konkurrenter som ",[162,163,167],"a",{"href":164,"rel":165},"https://www.rfc-editor.org/rfc/rfc4880",[166],"nofollow","OpenPGP",", men de bruges langt sjældnere i dag. Men vent ... X.509 er faktisk ikke den rigtige standard. X.509 er en ITU-T-standard, mens de definitioner, der reelt betyder noget, er en del af ",[162,170,173],{"href":171,"rel":172},"https://www.rfc-editor.org/rfc/rfc5280",[166],"RFC 5280",", altså en standard fra IETF og ikke fra ITU-T. RFC'en definerer \"PKI-profilen til internettet\" med udgangspunkt i X.509, og det er den eneste profil, der har reel betydning i praksis.",[153,176,177,178,182],{},"Et digitalt certifikat bygger på asymmetrisk kryptografi og især på digitale signaturer. Det mest almindelige formål med digitale certifikater i dag er serverautentificering. Alle har allerede brugt dem, formentlig uden at vide, at der var tale om et X.509-certifikat: Hver gang du åbner et HTTP",[179,180,181],"strong",{},"S","-websted, opretter browseren en TLS-forbindelse til webserveren. Webserveren bruger et X.509-certifikat til at bevise, hvem den er. Når folk for eksempel åbner deres banks websted for at overføre penge fra deres konto, vil de gerne være sikre på, at det rent faktisk er banken, de kommunikerer med. Angribere kan forsøge at udgive sig for bankens websted, læse brugerens adgangskode og TAN-kode og derefter overføre pengene til en konto, de selv kontrollerer. HTTPS er med til at forhindre det, fordi angriberne ikke har X.509-certifikatet fra bankens webserver. Når browseren siger, at du er inde på et bestemt domæne, og at forbindelsen er HTTPS, sikrer certifikatet, at du rent faktisk er forbundet til en webserver, der tilhører ejeren af domænet.",[153,184,185],{},"Hvordan gør certifikatet det? Certifikatet indeholder nogle metadata, den offentlige nøgle fra et kryptografisk nøglepar og en signatur fra en certifikatmyndighed. Lad os gennemgå de tre dele:",[187,188,190],"h3",{"id":189},"indholdet-i-et-x509-certifikat","Indholdet i et X.509-certifikat",[192,193,195],"h4",{"id":194},"metadata","Metadata",[153,197,198],{},"Metadataene i X.509-certifikatet angiver blandt andet, i hvilket tidsrum certifikatet er gyldigt, hvad det må bruges til, og hvem det er udstedt til. Særligt for et TLS-servercertifikat indeholder de webserverens domæne. Browseren sammenligner det domæne, den forsøgte at åbne, med domænet i certifikatet. Hvis de ikke stemmer overens, fortsætter browseren ikke, men viser en advarsel. Hvis certifikatet er udløbet, viser den også en advarsel.",[153,200,201],{},"Mærkeligt nok viste browsere ofte ingen advarsel, hvis du åbnede et HTTP-websted uden TLS, selvom det er endnu mindre sikkert. Hvis du åbnede en webserver med et ugyldigt X.509-certifikat, kunne der være tale om en fejlkonfiguration, og du kunne godt være beskyttet mod angribere, der udspionerer din forbindelse, mens HTTP-forbindelsen slet ingen beskyttelse giver.",[153,203,204],{},"Der er dog sket fremskridt på området, for eksempel Certificate Pinning. Men det er et emne for viderekomne, så lad os se på de to andre ting i et X.509-certifikat.",[192,206,208],{"id":207},"offentlig-nøgle","Offentlig nøgle",[153,210,211],{},"Certifikatet indeholder den offentlige del af et asymmetrisk nøglepar. Kryptografien gør det muligt for webserveren, eller mere generelt for certifikatindehaveren i andre anvendelser, at bevise, at den også har den private del af nøgleparret, uden at afsløre den over for den klient, der opretter forbindelse, eller over for andre. Dermed kan klienten være sikker på, at webserveren rent faktisk ejer certifikatet og ikke bare har kopieret det. Selve certifikatet er faktisk ret nemt at kopiere, fordi webserveren sender en kopi af det til alle, der forsøger at forbinde til serveren. Det er svært eller umuligt at stjæle den private nøgle, fordi den aldrig forlader webserveren. Der findes forskellige metoder til at gøre tyveri af den private nøgle endnu sværere, for eksempel HSM'er og TPM'er.",[192,213,215],{"id":214},"signatur-fra-en-certifikatmyndighed","Signatur fra en certifikatmyndighed",[153,217,218],{},"Metadataene gør det muligt for klienten at kontrollere, at certifikatet passer til det konkrete formål. Den offentlige nøgle viser, at modparten rent faktisk ejer certifikatet. Men en angriber kunne jo bare danne et nyt nøglepar og et nyt certifikat, der også opfylder de to kriterier. Hvordan skulle en klient vide, om certifikatet er troværdigt?",[153,220,221],{},"Certifikatet indeholder en kryptografisk signatur fra et andet nøglepar, som hører til et certifikat fra en certifikatmyndighed (CA). CA-certifikatet kan kontrolleres på samme måde og er også signeret af et certifikat. Klienten kan følge denne tillidskæde fra det såkaldte bladcertifikat op til Root CA-certifikatet, som den kan genkende på, at det er selvsigneret, altså at certifikatets signatur stammer fra dets eget nøglepar. Normalt er det kun et eller to trin, så der er kun et eller to CA-certifikater involveret.",[153,223,224,225,229],{},"CA'er skal omhyggeligt kontrollere, at metadataene er korrekte, når de ",[162,226,228],{"href":227},"enrollment-methods/","udsteder et certifikat",". Hvis du for eksempel vil have et TLS-servercertifikat til dit eget domæne, skal du bevise over for CA'en, at du rent faktisk er ejeren. Alt efter hvor grundig den kontrol er, får du et almindeligt certifikat eller et Extended Validation-certifikat (EV).",[153,231,232],{},"Hver browser og hvert styresystem leveres med en liste over foruddefinerede betroede Root CA'er. Brugere og administratorer kan tilføje flere betroede Root CA'er. Nogle Root CA'er er kun betroede til bestemte formål, mens andre har en mere generel tillid. Klienten kontrollerer, om tillidskæden ender i en betroet Root CA. Hvis den gør det, og alle certifikater i tillidskæden stadig er gyldige, og metadataene siger, at de bruges efter deres formål, er webserverens bladcertifikat betroet, og forbindelsen bliver oprettet.",[187,234,236],{"id":235},"gyldighed-af-x509-certifikater","Gyldighed af X.509-certifikater",[153,238,239,240,244],{},"X.509-certifikater handler om tillid, der skal etableres. Som forklaret er et kriterium for tillid, at et certifikat kan føres op til en betroet Root CA. Et andet er, at det er inden for sin gyldighedsperiode. Det betyder som regel, at det ikke er udløbet, men et certifikat kan også nå at være endnu ikke gyldigt, typisk på grund af tekniske fejl. Der er dog et kriterium mere: CA'en, der udstedte certifikatet, må ikke have tilbagekaldt det. Fordi det er et emne for sig, har vi en ",[162,241,243],{"href":242},"other-stuff/certificate-lifecycle-management","separat artikel"," om det.",[148,246,248],{"id":247},"pkcs7","PKCS#7",[153,250,251],{},"PKCS#7 er schweizerkniven blandt kryptografiske dataformater, og det kan indeholde stort set hvad som helst: krypterede beskeder, signerede beskeder, signerede og krypterede beskeder, certifikater og private nøgler",[153,253,254],{},"Det er samtidig formatets største ulempe. Når en applikation eller en bruger får en PKCS#7, fremgår det ikke i sig selv, hvad der skal gøres med den. Her er nogle vigtige anvendelser:",[256,257,258,262,265],"ul",{},[259,260,261],"li",{},"S/MIME-beskeder er grundlæggende e-mails med PKCS#7 som brødtekst eller vedhæftet fil.",[259,263,264],{},"SCEP-anmodninger og -svar er begge reelt signerede PKCS#7-beskeder.",[259,266,267],{},"EST-svar er CMS-beskeder.",[187,269,271],{"id":270},"kodning","Kodning",[153,273,274,275,279,280,284],{},"Almindelige filendelser er .p7b (",[162,276,278],{"href":277},"asn.1-and-pem#der-encoding","DER-kodet","), .p7s (en signeret besked eller en beskedsignatur) og .p7m (en signeret og/eller krypteret besked). ",[162,281,283],{"href":282},"asn.1-and-pem#pem-encoding","PEM-kodningen"," med label \"PKCS7\" er også defineret, men bruges sjældent.",[187,286,288],{"id":287},"værktøjer","Værktøjer",[153,290,291],{},"I Windows kan du åbne PKCS#7-beskeder med et dobbeltklik, hvorefter Crypto-shell-udvidelserne viser dem for dig. Du kan dog som regel kun udtrække certifikater og deres private nøgler, ikke beskedindholdet.",[153,293,294],{},"Du kan konvertere filerne til andre formater med værktøjer som OpenSSL.",[148,296,298],{"id":297},"pkcs10","PKCS#10",[153,300,301],{},"En Certificate Signing Request (CSR), som defineret i PKCS#10, er en fil med en beskrivelse af det certifikat, du gerne vil have fra en certifikatmyndighed (CA). Den har en struktur, der ligner et X.509-certifikat, men den mangler signaturen fra en CA. Til gengæld indeholder den signaturen fra den, der anmoder om certifikatet. Det er stadig et andet format, så det er ikke det samme som et selvsigneret certifikat.",[153,303,304,305,310],{},"Den kan være binært DER-kodet eller PEM-kodet ",[162,306,309],{"href":307,"rel":308},"https://datatracker.ietf.org/doc/html/rfc7468#section-7",[166],"med labelen \"CERTIFICATE REQUEST\"",".",[148,312,314],{"id":313},"pkcs12","PKCS#12",[153,316,317],{},"PKCS#12 kaldes også PFX, især i Windows-miljøer. Almindelige filendelser er derfor .pfx og .p12. Formatet indeholder X.509-certifikater og næsten altid de tilhørende private nøgler, selvom det teknisk set ikke er et krav.",[153,319,320],{},"Data i en PKCS#12-fil er som regel krypteret med adgangskoder. Ofte er det kun den private nøgle, der er krypteret, så du kan udtrække certifikaterne uden at kende adgangskoderne, hvis din applikation tillader det, og det gør de færreste. PKCS#12 er den mest udbredte måde at gemme et certifikat og dets private nøgle i en fil på i Windows-miljøer. I Linux-miljøer er PEM-kodede PKCS#8-filer mere almindelige.",[153,322,323],{},"Fordi standarden giver mange muligheder for at gemme certifikater og private nøgler i indlejrede safebags, har PKCS#12-filer nogle kompatibilitetsproblemer, for eksempel:",[256,325,326,329,332],{},[259,327,328],{},"Windows er berygtet for at knytte private nøgler i en PKCS#12 til alle certifikater, der udtrækkes fra filen, og ikke kun til det, nøglen hører til. Hvis PKCS#12-filen indeholder en certifikatkæde, kan Windows finde på at vise, at den har den private nøgle til CA-certifikatet.",[259,330,331],{},"På macOS kan du ikke importere PKCS#12-filer, hvis de kryptografiske algoritmer er for nye.",[259,333,334],{},"Det kan være nødvendigt at kryptere certifikaterne i en PKCS#12-fil, for at de modtagende applikationer kan udtrække dem. Men nogle understøtter kun meget gamle og svage algoritmer, hvilket normalt ikke er et problem, eftersom oplysningerne alligevel er offentlige. OpenSSL 3.x understøtter dog ikke disse gamle og sårbare algoritmer og nægter at åbne PKCS#12-filen.",[148,336,338],{"id":337},"asn1-og-pem","ASN.1 og PEM",[153,340,341],{},"Abstract Syntax Notation One (ASN.1) er et sprog, der bruges til at beskrive datastrukturer. Der findes nogle foruddefinerede basisdatatyper som heltal og sekvenser, og den, der udvikler en protokol eller et filformat, kan derefter definere egne datatyper ud fra de grundlæggende.",[187,343,345],{"id":344},"der-kodning","DER-kodning",[153,347,348,353],{},[162,349,352],{"href":350,"rel":351},"https://www.itu.int/rec/T-REC-X.680/",[166],"ITU-T-standarden X.680"," definerer forskellige kodninger af data, der er specificeret som ASN.1. For X.509-relaterede data er den vigtigste kodning DER, fordi der kun findes én måde at kode en type på. Derfor vil en hash af den binære DER-repræsentation af typen altid have den samme værdi, og det er vigtigt, for eksempel når ASN.1-kodede data skal signeres.",[187,355,357],{"id":356},"pem-kodning","PEM-kodning",[153,359,360,361,365],{},"For mange, men ikke alle X.509-relaterede filtyper kan du enten gemme filen binært i DER-kodning eller lægge en ekstra ",[162,362,357],{"href":363,"rel":364},"https://datatracker.ietf.org/doc/html/rfc7468",[166]," oven på DER-kodningen. PEM bruger kun ASCII-tegn og kan derfor nemt kopieres og indsættes via udklipsholderen eller, for nogle årtier siden, da det stadig var relevant, sendes med e-mail.",[187,367,288],{"id":368},"værktøjer-1",[153,370,371,372,310],{},"Hvis du har en ASN.1-kodet fil, og du enten ikke ved, hvilken type det er, eller ikke har en applikation, der håndterer den konkrete type, kan du stadig afkode den rå ASN.1-struktur og se, hvad den indeholder. I Windows kan det indbyggede værktøj certutil gøre det med kommandoen ",[373,374,375],"code",{},"certutil -decode",{"title":377,"searchDepth":378,"depth":378,"links":379},"",2,[380,385,389,390,391],{"id":150,"depth":378,"text":151,"children":381},[382,384],{"id":189,"depth":383,"text":190},3,{"id":235,"depth":383,"text":236},{"id":247,"depth":378,"text":248,"children":386},[387,388],{"id":270,"depth":383,"text":271},{"id":287,"depth":383,"text":288},{"id":297,"depth":378,"text":298},{"id":313,"depth":378,"text":314},{"id":337,"depth":378,"text":338,"children":392},[393,394,395],{"id":344,"depth":383,"text":345},{"id":356,"depth":383,"text":357},{"id":368,"depth":383,"text":288},"md","post",{"lang":399,"seoTitle":400,"titleClass":401,"blogtitlepic":402,"socialimg":403,"customExcerpt":404,"keywords":405,"asideNav":406,"maxContent":418},"da","Vigtige dataformater - X.509, PKCS, ASN.1 og PEM forklaret","h1-font-size","header-scepman-important-data-formats.png","/blog/heads/header-scepman-important-data-formats.png","Få overblik over de vigtigste kryptografi- og certifikatformater, blandt andet X.509, PKCS 7, PKCS 10, PKCS 12, ASN.1 og PEM.","vigtige dataformater, X.509-certifikat, PKCS-formater, PKCS 7, PKCS 10, PKCS 12, ASN.1, PEM-format, digitale certifikater, public key infrastructure, PKI-formater",{"menuItems":407},[408,410,412,414,416],{"href":409,"text":151},"#x509",{"href":411,"text":248},"#pkcs7",{"href":413,"text":298},"#pkcs10",{"href":415,"text":314},"#pkcs12",{"href":417,"text":338},"#asn1-og-pem",true,"/glossary/important-data-formats",{"title":142,"description":377},"glossary/important-data-formats","pPHomXOhmMs02bVAdy52N0iWmoOTy-02W1adORfSkfY",{"id":424,"extension":425,"meta":426,"stem":505,"__hash__":506},"authors_data/authors.json","json",{"path":427,"Alexander Rudolph":428,"Sophie Luna":434,"Nadine Kern":440,"Thorben Pöschus":446,"Karsten Kleinschmidt":452,"Julian Wendt":458,"Holger Bunkradt":463,"Ralf Mania":469,"Oliver Kieselbach":475,"Steffen Schwerdtfeger":481,"Christoph Hannebauer":487,"body":492,"title":504,"Thorben Poeschus":446},"/authors",{"display_name":429,"avatar":430,"permalink":431,"twitter":432,"linkedin":433},"Alexander Rudolph","people/people-alexander-rudolph.png","author/alexander-rudolph/","AlexanderOnIT","rudolph-alexander",{"display_name":435,"avatar":436,"permalink":437,"twitter":438,"linkedin":439},"Sophie Luna","c_thumb,h_1600,w_1600/people/people-sophie-luna.jpg","author/sophie-luna/","glueckkanjagab","company/glueckkanja-gab",{"display_name":441,"avatar":442,"permalink":443,"twitter":444,"linkedin":445},"Nadine Kern","people/people-nadine-kern.png","author/nadine-kern/","nadineausRT","nadine-kern",{"display_name":447,"avatar":448,"permalink":449,"twitter":450,"linkedin":451},"Thorben Pöschus","people/people-thorben-poeschus.png","author/thorben-poeschus/","TPO901","thorben-pöschus-624693b7",{"display_name":453,"avatar":454,"permalink":455,"twitter":456,"linkedin":457},"Karsten Kleinschmidt","people/people-karsten-kleinschmidt.png","author/karsten-kleinschmidt/","KarstenonIT","karstenkleinschmidt",{"display_name":459,"avatar":460,"permalink":461,"linkedin":462},"Julian Wendt","people/people-julian-wendt.png","author/julian-wendt/","julian-wendt",{"display_name":464,"avatar":465,"permalink":466,"linkedin":467,"twitter":468},"Holger Bunkradt","people/people-holger-bunkradt.png","author/holger-bunkradt/","holger-bunkradt-12b5053b","hbunkradt",{"display_name":470,"avatar":471,"permalink":472,"linkedin":473,"twitter":474},"Ralf Mania","people/people-ralf-mania.png","author/ralf-mania/","ralf-mania-146a2757","RaMa1976",{"display_name":476,"avatar":477,"permalink":478,"linkedin":479,"twitter":480},"Oliver Kieselbach","people/people-oliver-kieselbach.png","author/oliver-kieselbach/","oliver-kieselbach-a4a3409","okieselbT",{"display_name":482,"avatar":483,"permalink":484,"linkedin":485,"twitter":486},"Steffen Schwerdtfeger","people/people-steffen-schwerdtfeger.png","author/steffen-schwerdtfeger/","steffen-schwerdtfeger","SteffenAtCloud",{"display_name":488,"avatar":489,"permalink":490,"twitter":438,"linkedin":439,"imageOffsetTop":491},"Dr. Christoph Hannebauer","people/people-christoph-hannebauer.png","/authors/christoph-hannebauer/","72%",{"Alexander Rudolph":493,"Sophie Luna":494,"Nadine Kern":495,"Thorben Pöschus":496,"Karsten Kleinschmidt":497,"Julian Wendt":498,"Holger Bunkradt":499,"Ralf Mania":500,"Oliver Kieselbach":501,"Steffen Schwerdtfeger":502,"Christoph Hannebauer":503},{"display_name":429,"avatar":430,"permalink":431,"twitter":432,"linkedin":433},{"display_name":435,"avatar":436,"permalink":437,"twitter":438,"linkedin":439},{"display_name":441,"avatar":442,"permalink":443,"twitter":444,"linkedin":445},{"display_name":447,"avatar":448,"permalink":449,"twitter":450,"linkedin":451},{"display_name":453,"avatar":454,"permalink":455,"twitter":456,"linkedin":457},{"display_name":459,"avatar":460,"permalink":461,"linkedin":462},{"display_name":464,"avatar":465,"permalink":466,"linkedin":467,"twitter":468},{"display_name":470,"avatar":471,"permalink":472,"linkedin":473,"twitter":474},{"display_name":476,"avatar":477,"permalink":478,"linkedin":479,"twitter":480},{"display_name":482,"avatar":483,"permalink":484,"linkedin":485,"twitter":486},{"display_name":488,"avatar":489,"permalink":490,"twitter":438,"linkedin":439,"imageOffsetTop":491},"Authors","authors","PIJJchcHqfzD5YPmn4V8YLxY6gtySOfBG5u8lTczi2w",1790098971712]