SCS

Kohteesta DigiWiki
Versio hetkellä 26. heinäkuuta 2021 kello 07.54 – tehnyt TUOMALA JUHA 10000350X (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun
SCS-tapahtuman viestit.

Signature Creation Service (SCS) on Digiviraston kehittämä ja tuottama allekirjoitusratkaisu jossa päätelaitteessa allekirjoitetaan web-palvelussa sijaitseva sisältö.

Allekirjoitustapahtumassa SCS käyttää käyttäjän päätelaitteessa väliohjelmiston (eng middleware) kautta saatavilla olevia henkilökortin varmenteita, tarjoaa niistä listan käyttäjälle ja allekirjoittaa tapahtuman käyttäjän valinnan ja syöttämän tunnusluvun jälkeen.

SCS on oma ohjelmointirajapinta jonka tuki on toteutettava väliohjelmistossa toimiakseen. Nykyisellään tuki sille löytyy DigiSign Client ja SecMaker Net iD ohjelmistosta.

Tekninen toteutus on JSON-muotoa käyttävä rajapinta HTTP-yhteystavalla paikalliseen porttiin. Rajapintaa voi kokeilla avaamalla selaimella osoitteen https://localhost:53952/ jolloin aukeaa sivu jossa pystyy käyttämään erilaisia testejä jne. Itse json rajapinta tukee kahta operaatiota eli version ja sign operaatiot. Jos haluaa käyttää rajapintaa ilman salausta (https) niin porttinumero on 53951.

Version operaatio toimii hyvin yksinkertaisesti urli https://localhost:53952/version palauttaa:

{ "version": "1.1", 
  "httpMethods": "GET, POST", 
  "contentTypes": "data, digest", 
  "signatureTypes": "signature,cms,cms-pades", 
  "selectorAvailable": true, 
  "hashAlgorithms": "SHA1, SHA224, SHA256, SHA384, SHA512"
}

Varsinainen allekirjoitus operaatio on hieman monimutkaisempi, eli sinne https://localhost:53952/sign pitää lähettää seuraavan tapainen json:

{ "version": "1.1",
  "selector": { 
     "keyusages": [ "digitalsignature" ]
  },
  "signatureType": "signature",
  "hashAlgorithm": "SHA256",
  "contentType": "data",
  "content: "xxxx"
}

Missä tuo xxxx on base64 encoodattu merkkijono, joka siis allekirjoitetaan. Tuossa data versiossa tuon pitää olla muotoa jossa alussa on urli ja sen perässä vähintään 64-merkkiä pitkä digest.

Ja vastauksena tulee:

{ "version": "1.1", 
  "signatureAlgorithm": "SHA256withRSA", 
  "signatureType": "signature", 
  "signature": "Dsf...3SMLF==", 
  "chain": [
    "MII...8=",
    "MII...Y=",
    "MII...m" ], 
  "status": "ok", 
  "reasonCode": "200", 
  "reasonText": "Signature generated"
}

Missä tuo signature kenttä sisältää sen allekirjoituksen ja chain sisältää varmenneketjun allekirjoittajasta juurivarmenteeseen.

Katso myös

Aiheesta muualla