TIPS for PKI signering med IPS

Language

Note: This part of the documentation is in Norwegian only. An English version can be provided if needed.

 





Rydding i begrepene

Dette er ikke er så enkelt, så her har vi gitt en mer detaljert beskrivelse av noen av begrepene brukt i dokumentasjonen tilknyttet PKI signering på web via WIPS (IPS på web).

 

I den lokale keystore (.p12-fila) finnes  virksomhetens brukerstedssertifikat med tilhørende privat nøkkel. Dette brukes til å  signere Bx-requesten slik at WIPS kan verifisere hvem avsender er.


Signaturen blir liggende i requestens <ips:SIgnature> element.

 

I tillegg finnes et sertifikat (.cer-fil) som tilhører WIPS-tjenesten. Her ligger den motsvarende private nøkkelen i Buypass back-end. Sertifikatet, eller rettere sagt den offentlige nøkkelen i sertifikatet, brukes til å kryptere Bx-requesten.
En presis formulering vil være; Buypass offentlige nøkkel brukes til å kryptere en symmetrisk engangsnøkkel som brukes til å kryptere requesten.


Dette er et standardmønster: Asymmetriske nøkler (public/private key) brukes aldri direkte til datakryptering, i stedet genereres en symmetrisk (secret) engangsnøkkel som brukes til å kryptere dataene. Så krypteres den symmetriske nøkkelen med mottagers public key fra sertifikatet. 

I form-dataene som POSTes til WIPS er "E" den krypterte engangsnøkkelen, mens "PSE" er den krypterte Bx-requesten. Responsen er kryptert med den samme engangsnøkkelen, så nøkkelen må tas vare på den – fortrinnsvis som et attributt på web-sesjonen. Se på slutten av koden til signreq.aspx, der engangsnøkkelen samt et par andre attributter legges på sesjonen, og koden til signresp.aspx der nøkkelen hentes frem igjen og brukes til å dekryptere Bx-responsen.

Innholdet i responsen – etter at den er dekryptert – er blant annet et IDtoken (<ips:IdToken>) som inneholder data om den som har signert dokumentet. IdTokenet er signert med en privatnøkkel hos Buypass – det er denne signaturen som ligger i <ips:EncryptedData> elementet. Signaturen kan verifiseres med Buypass-sertifikatet. De fleste brukersteder velger imidlertid å stole på at signaturen er korrekt.

Sluttbrukerens signeringssertifikat og signatur ligger i henholdsvis <ips:Certificate> og <ips:Signature> elementene.  Du får ikke det ferdig signerte dokumentet i retur fra WIPS, men må sette det sammen selv ved hjelp av encoding-funksjoner i den aktuelle SignatureProvider. Se koden for signresp.aspx.

Hvilket signaturformat du skal bruke er opp til Brukerstedet å bestemme. BPESIG0101 og BPESIG0201 er begge basert på PKCS#7-standarden, mens BPESIG0301 er XML basert på den norske SEID-standarden.

PDF-signaturformatene forutsetter at selve dokumentet transporteres gjennom vår tjeneste, noe de fleste Brukerstedene av konfidensialitetshensyn generelt ikke ønsker. Alle våre Brukersteder benytter BPESIG0201 eller BPESIG0301 og sender i WIPS-requesten en URL til dokumentet. I de fleste tilfeller er dokumentet lagret kryptert; da sendes krypteringsnøkkelen, som er en tilfeldig generert engangsnøkkel, også med i requesten. Med et slikt mønster lastes dokumentet ned og dekrypteres i WIPS GUI og går ikke gjennom vår backend.

I tillegg fins et "signaturformat" BPESIG0001 der vi i Buypass ikke forholder oss til format i det hele tatt, men bare produserer en signatur over den verdien vi får inn i ContentHash-attributtet . I så fall kan WIPS GUI ikke vise frem dokumentet før signering.