Ohje digitaalisessa muodossa olevan aineiston siirtoon ja allekirjoittamiseen vaadittavien avainten muodostamisesta 1. Johdanto Digitaalisessa muodossa olevan aineiston luotettava siirtäminen Kansallisarkistoon asettaa vaatimuksia sekä käyttäjähallinnalle että siirron autenttisuuden todentamiselle. Tässä ohjeessa on esitettynä toimet vaadittavien avainten muodostamiseksi. Avainpareja on kaksi erilaista: Siirtoyhteyden varmistava RSA-avainpari, kuvattu luvussa 2 Siirtopakettien allekirjoittamiseen vaadittava avain, kuvattu luvussa 3. Avaimet tehdään vain kerran tässä ohjeessa esitetyllä tavalla. Avaimet tehdään erikseen testi ja tuotantokäyttöä varten. Avaimien luontiin ja siirtämiseen tarvitaan OpenSSL ja WinSCP sovellukset. Tässä ohjeessa on esitetty miten toimitaan Windows pohjaisessa järjestelmässä. Windows-järjestelmässä sovellukset täytyy noutaa ja asentaa erikseen. Linux-järjestelmässä sovellukset on monesti asennettu valmiiksi tai ne ovat saatavilla Linux-jakelun paketinhallinnasta. Mac OS X -järjestelmässä tarvittavat sovellukset löytyvät valmiina. Windows ympäristössä asennus tapahtuu seuraavasti: Asenna OpenSSL (uusin versio) osoitteesta (http://indy.fulgan.com/ssl/) Näissä ohjeissa käytetään hakemistoa: "c:\\openssl". Asenna WinSCP osoitteesta: http://winscp.net/ Lataa konfiguraatiotiedosto http://web.mit.edu/crypto/openssl.cnf ja tallenna se siihen hakemistoon, johon asensit OpenSSL:n. 2. Siirtoavaimen muodostaminen Siirtoavaimen avulla luodaan varmennettu yhteys siirtävän tahon ja vastaanottajan välille. Menettelytavassa palveluun tallennetaan tässä muodostettavan avaimen julkinen osio, vastaavasti palveluun kytkeytymisen yhteydessä käytetään avaimen yksityistä osiota. Tämä menettelytapa on turvallisempi kuin käyttäjätunnus salasana parin hyödyntäminen, koska varsinainen yhteyden todentaminen perustuu näihin varmenteisiin.
Siirtoavaimen muodostaminen voidaan tehdä WinSCP sovelluksella seuraavalla tavalla. Käynnistä "Tools"-valikosta "Run PuTTYgen". Valitse avautuvan ikkunan alareunasta SSH-2 RSA. Varmista, että bittien määrä ikkunan oikeassa alakulmassa on 2048. valitse "Generate" ja liikuttele kohdistinta ikkunan tyhjällä alueella, kunnes avain on luotu. Tyhjennä "Key comment"-kenttä. Anna passphrase-kenttiin avainfraasi. Avainfraasin tulee olla vähintään 12 merkkiä pitkä ja sisältää numeroita. Avainfraasi on samalla salasana avaimen hyödyntämiseen, joten tämä tulee ottaa talteen. Tallenna yksityinen avain klikkaamalla "Save private key"-nappia ja antamalla tiedostonimeksi "id_rsa_priv_[organisaation nimi].pkk". o esimerkiksi id_rsa_priv_kansallisarkisto.pkk Organisaation nimellä ei tässä yhteydessä ole muuta merkitystä kuin avainten hallinnoinnin helpottaminen. Nimi voi olla myös lyhenne.
Maalaa "Public key for pasting into OpenSSH authorized_keys file"-kentästä kaikki teksti hiirellä ja kopioi se leikepöydälle näppäinyhdistelmällä Ctrl+C. Avaa Windowsin Muistio (Notepad) ja liitä leikepöydän sisältö uuteen muistioon näppäinyhdistelmällä Ctrl+V. Tallenna tämä tiedostonimellä "id_rsa_pub_[organization].pub". Käynnistä Pageant valitsemalla WinSCP:n Tools-valikosta "Run Pageant". Avaa Pageant Windowsin oikean alakulman tehtäväpalkista oikealla hiiren napilla ja valitse "View Keys". Lisää yksityinen avain (id_rsa_priv_[organization].ppk) ja anna avainfraasi (passphrase), jotta koneelta voidaan muodostaa aineiston vastaanottopalveluun. Tässä kuvatun avainten muodostamis-toiminnon tuloksena muodostui siis yksi avain, josta välitetään vastaanottajalle julkinen osa ja pidetään yksityinen osa suojassa eikä jaeta tätä muille. Molemmat avaimet sekä niihin liittyvä avainfraasi tulee säilyttää huolellisesti ja ulkopuolisilta suojattuna. Julkinen avain on id_rsa_pub_[organization].pub ja tämä välitetään aineiston vastaanottopalveluun. Yksityinen avain id_rsa_priv_[organization].ppk. Tämä tulee pitää tallessa eikä saa jakaa ulkopuolisille. Siirtoyhteyden muodostamista varten tämä tarvitaan mm. WinSCP sovellusta varten (SSH-asetukset, Tunnistus, Yksityinen avaintiedosto)
3. Allekirjoitus avaimen muodostaminen Siirrettävään aineistoon tulee liittää alkuperäisen lähettäjän todentava digitaalinen varmenne, ohjeissa tästä käytetään nimitystä digitaalinen allekirjoitus. Tässä on kuvattuna varmenteen muodostamiseen liittyvät vaiheet sekä miten luodaan valmiudet varmenteen tuottamiseksi. Ohjeistus on laadittu Windows ympäristöä silmälläpitäen. Ohjeessa kuvatut scriptit ovat esimerkkejä ja niitä on mahdollista soveltaa omaan käyttö ja sovellusympäristöön paremmin soveltuviksi. Varmenteen generointiin käytetään OpenSSL sovellusta. Avaa komentorivi-ikkuna (Command Prompt) Käynnistä-valikosta ja lisää OpenSSLsovelluksen bin-hakemisto ja OpenSSL-konfiguraatiotiedosto ympäristömuuttujiin seuraavilla komennoilla. Tässä oletetaan, että hakemisto on c:\openssl set PATH=%PATH%;c:\openssl set OPENSSL_CONF=c:\openssl\openssl.cnf Asetus häviää, kun komentorivi-ikkuna suljetaan. Ympäristömuuttujiin voi tehdä pysyviä muutoksia Windowsin Ohjauspaneelin kautta. Allekirjoitusavainpari luodaan seuraavasti: openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout sip_sign.pem -out sip_sign.pem Komennon seurauksena kone kysyy joukon kysymyksiä, joihin tulee vastata oman organisaation tiedoilla. Erota allekirjoituksen avainparitiedostosta julkinen avain seuraavasti: openssl x509 -in sip_sign.pem -out sip_sign_[org].pub Lähetä luomasi julkinen pakettien allekirjoitusavain (sip_sign_[org].pub) osoitteeseen: digitaalisetsiirrot@arkisto.fi. Älä luovuta avainfraasia (passphrase) äläkä yksityisiä avaimia kenellekään. 4. Allekirjoitus scripti Allekirjoituksen tuottamista varten voidaan hyödyntää oheisen mallin mukaista scriptiä. Tallenna alla oleva teksti "sign.bat"-tiedostoon. Allekirjoittaminen tapahtuu komennolla sign
[avain] [kohdehakemisto], jossa avaimena on luontivaiheessa muodostettu.pem päätteinen avainparin yksityinen tiedosto. Hakemisto on se missä sijaitsee sahke.xml tiedosto. Tässä yksilöidään vain hakemisto, jossa ko. tiedosto on. Sign-komennon tuloksena ko. hakemistoon muodostuu signature.sig tiedosto, joka sisältää vaaditun allekirjoituksen. @echo off %~d2 cd %2 set RANDFILE=rnd-%RANDOM%.tmp set TMPFILE=sha-%RANDOM%.tmp IF EXIST %TMPFILE% EXIT /b 1 IF EXIST %RANDFILE% EXIT /b 1 for /f "tokens=2 delims==" %%a in ('openssl dgst -sha1 sahke.xml') do set S2SUM=%%a for /f %%a in ('echo %S2SUM%') do echo./sahke.xml:sha1:%%a > %TMPFILE% openssl smime -sign -signer %1 -in %TMPFILE% > signature.sig del %TMPFILE% del %RANDFILE% Lisätietoja hyödynnettävistä sovelluksista OpenSSL-ohjelmistosta osoitteesta: http://www.openssl.org/ WinSCP osoitteesta: http://winscp.net PuTTYgen osoitteesta http://winscp.net/eng/docs/ui_puttygen Pageant osoitteesta: http://winscp.net/eng/docs/ui_pageant