SCS

Kohteesta DigiWiki
Versio hetkellä 10. maaliskuuta 2021 kello 13.20 – tehnyt KIVINEN TERO 133366417 (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun
SCS-tapahtuman viestit.

Signature Creation Service (SCS) on Digiviraston kehittämä ja tuottama Euroopan Unionin eIDAS-direktiivin luottopalveluiden (eTS, eletronic Trust Services) mukainen allekirjoituspalvelu jota on tarkoitus käyttää HTML5 mukaisissa Web-sivuissa.

Allekirjoitustapahtumassa SCS tukeutuu käyttäjän päätelaitteessa väliohjelmiston (eng middleware) kautta saatavilla olevaan varmenteisiin, 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 tuli sille löytyy mPollux DigiSign Client ja SecMaker Net iD ohjelmistosta.

Yksinkertaisimmillaan kyseessä on siis JSON rajapinta http protokollan ylitse paikalliseen porttiin. Eli tuota pystyy kokeilemaan menemällä selaimella osoitteeseen https://localhost:53952/ jolloin saat sieltä sivun 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 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