-
Notifications
You must be signed in to change notification settings - Fork 0
TheSolution
claeslundahl edited this page Sep 21, 2015
·
3 revisions
#Lösningsbeskrivning <img src#"https://github.com/Vastra-Gotalandsregionen/oppna-program-signing-service/wiki/images/solution.png" width"800"/>
- Klienten begär att få något signerat(TBS – To Be Signed) av SS. Rekommenderat är att skicka en kontrollsumma av TBS. Kontrollsumman är förslagsvis beräknad utifrån SHA-2(t.ex. SHA-256) för att få en ökad säkerhet. SS behöver även ha en submitUri dit signaturen skall skickas när den är klar. Valbart(optional) är att skicka in en clientType.
- Har ingen clientType skickats med visas ett val av tillgängliga clientTypes för användaren. SS tar fram ett block av html/xhtml(PKI Client Code) baserat på clientType och TBS som den visar för klienten.
- PKI-klienten startar upp för signering hos användaren.
- Användaren matar in lösenord för sin privata nyckel och TBS signeras. PKI-klienten postar signaturen PKSC#7 eller XML-Signature) till SS. Vilket format som skickas till SS beror på clientType.
- Signaturen verifieras via en OSIF tjänst.
- Status för hur valideringen gick skickas tillbaka till SS.
- SS skickar signaturen till submitUri för lagring, detta sker över ftps eller https. Om https väljs finns även en möjlighet för applikationen att själv presentera status för signeringen (se steg 7). I annat fall kommer SS att hantera presentationen av status.
- Om X själv kan och vill presentera status för signeringen gör den en 302 redirect till en url som hanterar presentationen. Om X vill överlåta detta till SS räcker det med att svara med en vanlig 200 OK response.
- Om SS får en 302 redirect från X skickar även SS en 302 redirect tillbaka till klienten med samma location som X satte i sin redirect. Om SS får en 200 OK visar den en status sida för klienten.
- 302 redirect till location satt av X.
- X visar ett svar för klienten. Kommentarer
- Steg 10 och 11 kommer endast att inträffa om X gör en 302 redirect i steg 8.
#Säkerhet För att garantera säkerheten bör all kommunikation ske över en krypterad anslutning – https. Det finns dock fortfarande en risk att SS blir utsatt för en attack och ersätts av en "elak" SS som byter ut signatur och certifikat. För att förhindra detta är det starkt rekommenderat att X sätter upp TLS mot SS. TLS syftar till att genom utbyte av certifikat mellan SS och X kan X grantera att identiteten på SS. Alltså, med tillgång till SS publika nyckel kan X verifiera att det är SS som skickar signaturen till submitUri.
#Ordlista
| Begrepp | Förklaring |
|---|---|
| TBS | To Be Signed. Data som skall signeras. |
| submitUri | Uri dit signaturen skall skickas efter signering. |
| clientType | Typ av signering, i dagsläget har Signeringstjänsten stöd för !BankId, Nordea, Posten och SITHS. |