GnuPG – Tiedostojen salaaminen ja allekirjoittaminen PGP-protokollalla | Windows 10

Johdanto

Tämä on jatkoa aiemmalle harjoitukselleni:

GnuPG – Asennus, PGP-avainparien luonti ja hallinta | Windows 10

Tässä tekstissä kuvaan tiedostojen salaamisen PGP-protokollalla käyttäen GnuPG -ohjelmaa sekä graafisessa käyttöliittymässä että komentorivillä.


Tekstin allekirjoittaminen ja salaaminen

Graafinen käyttöliittymä

Tekstiä voidaan salata Kleopatrassa kätevästi “Muistikirjan” kautta. Kirjoitin viestin muistikirjan viestikenttään:

Sitten vaihdoin “Vastaanottajat“-välilehdelle, jossa laitoin täpän ruutuun “Allekirjoita henkilönä” ja valitsin siihen oman avaimeni.

Laitoin täpän myös ruutuun “Salataan minulle” ja valitsin oman avaimeni.

Salatakseni viestin toiselle henkilölle, laittaisin täpän ruutuun “Salataan muille” ja valitsisin kyseisen henkilön julkisen avaimen. Tässä vaiheessa salaan viestin kuitenkin vain itselleni.

Salasin ja allekirjoitin viestin painamalla “Allekirjoita tai salaa-muistikirja“. Allekirjoitus tapahtuu yksityisellä avaimellani ja salaaminen julkisella avaimellani.

Kleopatra pyysi salasanani, jonka syötin.

Salasanan syöttämisen jälkeen viesti oli salattu ja sain ilmoituksen “Allekirjoittaminen ja salaus onnistuivat”.

Salattu viesti alkoi -----BEGIN PGP MESSAGE----- tagillä ja päättyi -----END PGP MESSAGE----- tagiin.

Purkaakseni salauksen yksityisellä avaimellani, painoin “Pura tai todenna muistikirja“. Sitten syötin salasanani, kun sitä pyydettiin.

Kleopatra todensi allekirjoituksen aitouden ja purki salauksen:

Salattu teksti voidaan saada esimerkiksi sähköpostitse, ja sitten se kopioidaan Kleopatran muistikirjaan salauksen purkamiseksi.

Seuraavaksi salaan eri tekstin, mutta tällä kertaa jonkun toisen henkilön julkisella avaimella.

Kirjoitin Essi Esimerkille viestin ja valitsin “Vastaanottajat“-välilehdeltä vastaanottajaksi Essi Esimerkin laittamalla täpän ruutuun “Salataan muille” ja valitsemalla Essin Kleopatran avaintietokannasta. (Tallennettu sinne aiemmassa harjoituksessa).

Jätin vastaanottajaksi myös itseni (Salataan minulle), jotta voin tarvittaessa purkaa salauksen itse. Lisäksi allekirjoitin viestin omalla yksityisellä avaimellani. Näin Essi tietää, että se tuli varmasti minulta, eikä sitä ole muokattu matkalla.

Salasin viestin painamalla “Allekirjoita tai salaa-muistikirja“. Allekirjoittaminen vaati taas oman salasanani, jonka syötin.

Viesti allekirjoitettiin ja salattiin:

Käytännössä kopioisin salatun viestin nyt esimerkiksi sähköpostiviestiin ja lähettäisin Essi Esimerkille. Hän sitten purkaisi salauksen omalla koneellaan, omalla yksityisellä avaimellaan. Viestin allekirjoitus vahvistaisi, että se on tullut minulta.


Komentorivi

Ajoin GnuPG:tä Windowsin PowerShellissä. Tekstin salaaminen ei ole komentorivissä yhtä käytännöllistä, ellei sitä tallenneta tekstitiedostoon. Se onnistuu kuitenkin seuraavasti:

echo "Tämä viesti salataan PGP-protokollalla" | gpg --encrypt --sign --armor -r markus.pyharanta@mapy.fi

Tulos:

-----BEGIN PGP MESSAGE-----

hQIMA1zqQJER2x8pARAAurLTy2jUpZc2P/8qZDxG8hH1jVMerwwXq04O5NQg+6y5
1ClxRpWJyIuqC4iwZdD5Q9OUC7ae63O7CprpMf/i7ZXYcTO7Jrgm63rOX+GrC2/W
1tKV+g9oAl1s6kd+2X8CAZvPpMEZML2mhdN+sb6RWYNlK1XsgR/cphn+/eK9Q95x
o6grKpsKYgZNysp6kVlC3paspRiRMJJVW0Xo/NiZXypa6Emntn6qssIMIRPtpaOO
sdtrfXDzRpGfBy654II33+VNcihZSdhvE9+cnXUdrKvBfgDkLRLO1l+qxPPaSwMi
9XUXiw5iuSmjts4+ZWG2w0HYEX2LBSb0LLH394U+yUIQjwNMtAI4Iwms74003S5L
wWPI1Apsijst23CNLPJwGbpEHNRUXiOdp4H4sAUq1M3vLPveHSIHA2fK2a3vvY14
Tmy0M7a6hCJiQXe/QYaZaMRWW6nJMSt0E7gcAS+7eOOMwn9+pNL3FkC1hYKuTEUq
B9qcNTquHDhvoZclk45bM24Wx8vq4LNYGyHQPcEcIxicU+jtYTv9I5b1HjSZJ78d
4yGjyarvK6vWVeNBPrRkmiMGXO2WI3YaBZPYnxndAaPjXXcfav6LLf/4bjwVLGPL
IkSNw8QqwBcHt7uN7fMcOTaSs2XDEygK3TM389t/MPFDngNzjRDIZMQynybdSX3S
6QHsj92zYBB/RKrqs0GXN1QQRAACy/3UU05jga3pQr0KuGMC7rt37fYiIqPfEP1W
aFWcxlNYmEcPZ/7jCEUqXtaqwJJyWL/fSlDWBRM+nye0sN8qf7YL31DuoOKGcHBQ
WT9CK1QrNCywP+5tDlcdxS5J7hXDnMJiY0n7qmGrvBcP/5+CwFPV2b6IyRYgX79O
+Qow0RQh0/23M+tuQn9GtIQ1xpeRBi6nEWEm+lxmcPYJUXAiyNCZoV3oLSWZfDqU
v7l4Y4V56DysoUUmofaC2TE/6wf+HfzMtWf6rlzfGjJCId2aWrpPXbO73KrcqTlN
Vyszs9HXfCRiqN6eWMqBZjaSwa5xNsNEpfD6j/voFXDNFIm9yPDaVfuMX1e57cBN
5vGEADN7eyUfR09NHz3EQM1VlLVCigSf7+/1bVu8keoOhXfU4OQL5xmSbAc54Ub/
P/Etl+hN3DlTTYEORYf+UiSapGqT4FaW+4QpBlWtT5PlW5cqz5IKp27liB/hZq+V
aE1NhyXZhj8cb2OZYMmE+LuWN4c7zIikzew68/FGTn6D4cYftcPRcSeblV18ltcP
bXkFlp6lKqpZv51JR0uMupfGA4R6oS6H+LA5o7TGtjFiwsPvGz5JQVDT1XQzMNBe
dLM9kkdaXdmxqhDDV8OWANNCNraJ0x47WDplaXdtH5B8q9yKm7J2kU2svO79hwrP
FiXjd4z9RtTzVhFAv9ECJnPh+oN22LY1Y1lsSYrAQ6EZEcAqgMjj9cGWY6jQYBO2
49HKVlpvFV/e1gHzfX3xLTZXF3rT5NEbPnFuAWTJSKpbyqVJeqel+rbV1/rvBqLT
oA70jeaLxHbE+n5l2MxDbMU3ZxA6kwKGGOKIwmSWoP0z/ZvY07cqq2KSM+2J8Qad
JkZ8RCn/mIbIbtQr9Q==
=mze+
-----END PGP MESSAGE-----

Asetin vastaanottajaksi itseni, joten seuraavaksi purin viestin omalla julkisella avaimellani.

Viestin purkaminen komennolla:

echo '-----BEGIN PGP MESSAGE-----
>>
>> hQIMA1zqQJER2x8pARAAurLTy2jUpZc2P/8qZDxG8hH1jVMerwwXq04O5NQg+6y5
>> 1ClxRpWJyIuqC4iwZdD5Q9OUC7ae63O7CprpMf/i7ZXYcTO7Jrgm63rOX+GrC2/W
>> 1tKV+g9oAl1s6kd+2X8CAZvPpMEZML2mhdN+sb6RWYNlK1XsgR/cphn+/eK9Q95x
>> o6grKpsKYgZNysp6kVlC3paspRiRMJJVW0Xo/NiZXypa6Emntn6qssIMIRPtpaOO
>> sdtrfXDzRpGfBy654II33+VNcihZSdhvE9+cnXUdrKvBfgDkLRLO1l+qxPPaSwMi
>> 9XUXiw5iuSmjts4+ZWG2w0HYEX2LBSb0LLH394U+yUIQjwNMtAI4Iwms74003S5L
>> wWPI1Apsijst23CNLPJwGbpEHNRUXiOdp4H4sAUq1M3vLPveHSIHA2fK2a3vvY14
>> Tmy0M7a6hCJiQXe/QYaZaMRWW6nJMSt0E7gcAS+7eOOMwn9+pNL3FkC1hYKuTEUq
>> B9qcNTquHDhvoZclk45bM24Wx8vq4LNYGyHQPcEcIxicU+jtYTv9I5b1HjSZJ78d
>> 4yGjyarvK6vWVeNBPrRkmiMGXO2WI3YaBZPYnxndAaPjXXcfav6LLf/4bjwVLGPL
>> IkSNw8QqwBcHt7uN7fMcOTaSs2XDEygK3TM389t/MPFDngNzjRDIZMQynybdSX3S
>> 6QHsj92zYBB/RKrqs0GXN1QQRAACy/3UU05jga3pQr0KuGMC7rt37fYiIqPfEP1W
>> aFWcxlNYmEcPZ/7jCEUqXtaqwJJyWL/fSlDWBRM+nye0sN8qf7YL31DuoOKGcHBQ
>> WT9CK1QrNCywP+5tDlcdxS5J7hXDnMJiY0n7qmGrvBcP/5+CwFPV2b6IyRYgX79O
>> +Qow0RQh0/23M+tuQn9GtIQ1xpeRBi6nEWEm+lxmcPYJUXAiyNCZoV3oLSWZfDqU
>> v7l4Y4V56DysoUUmofaC2TE/6wf+HfzMtWf6rlzfGjJCId2aWrpPXbO73KrcqTlN
>> Vyszs9HXfCRiqN6eWMqBZjaSwa5xNsNEpfD6j/voFXDNFIm9yPDaVfuMX1e57cBN
>> 5vGEADN7eyUfR09NHz3EQM1VlLVCigSf7+/1bVu8keoOhXfU4OQL5xmSbAc54Ub/
>> P/Etl+hN3DlTTYEORYf+UiSapGqT4FaW+4QpBlWtT5PlW5cqz5IKp27liB/hZq+V
>> aE1NhyXZhj8cb2OZYMmE+LuWN4c7zIikzew68/FGTn6D4cYftcPRcSeblV18ltcP
>> bXkFlp6lKqpZv51JR0uMupfGA4R6oS6H+LA5o7TGtjFiwsPvGz5JQVDT1XQzMNBe
>> dLM9kkdaXdmxqhDDV8OWANNCNraJ0x47WDplaXdtH5B8q9yKm7J2kU2svO79hwrP
>> FiXjd4z9RtTzVhFAv9ECJnPh+oN22LY1Y1lsSYrAQ6EZEcAqgMjj9cGWY6jQYBO2
>> 49HKVlpvFV/e1gHzfX3xLTZXF3rT5NEbPnFuAWTJSKpbyqVJeqel+rbV1/rvBqLT
>> oA70jeaLxHbE+n5l2MxDbMU3ZxA6kwKGGOKIwmSWoP0z/ZvY07cqq2KSM+2J8Qad
>> JkZ8RCn/mIbIbtQr9Q==
>> =mze+
>> -----END PGP MESSAGE-----' | gpg --decrypt

Sitten piti syöttää oma salasana:

Sain tuloksen, jossa salaamaton viesti on tummennettuna:

gpg: encrypted with 4096-bit RSA key, ID 5CEA409111DB1F29, created 2019-04-10
"Markus Pyhäranta <markus.pyharanta@mapy.fi>"
T?m? viesti salataan PGP-protokollalla
gpg: Signature made 04/11/19 18:01:35 Suomen kesõaika
gpg: using RSA key F1270A503E7DAC11AE50C2D4E157B433DB53F050
gpg: Good signature from "Markus Pyhäranta <markus.pyharanta@mapy.fi>" [ultimate]

Ilmeisesti salauksen purkaminen tällä tavalla ei toimi hyvin UTF-8 koodaustavalla, koska ääkköset eivät toimi. Tuosta kuitenkin näkyi, että ainakin allekirjoitus on OK ja Markus Pyhärannan kirjoittama.

Pitkien salattujen viestien liittäminen PowerShelliin on muutenkin aika kömpelöä, joten tekstitiedostojen käyttäminen on helpompi tapa.


Tiedostojen ja kansioiden allekirjoittaminen ja salaaminen

Graafinen käyttöliittymä

Loin tavallisen tekstitiedoston esimerkiksi. Tallensin sen työpöydälleni “temp“-kansioon nimellä hello.txt. Kirjoitin tiedoston sisään vähän tekstiä.

Tiedosto voidaan salata ainakin kahdella tavalla. Joko klikkaa tiedostoa hiiren oikealla ja navigoi “More GpgEX options” > “Sign and Encrypt“,

tai painaa Kleopatrassa “Allekirjoita tai salaa tiedostoja” ja valitsee haluamansa tiedoston.

Itse käytän mielummin tuota ensimmäistä tapaa resurssienhallinnan kautta. Valitsin hello.txt tiedoston ja painoin “Sign and Encrypt“.

Valitsin oman avaimeni allekirjoittamiseen ja vastaanottajaksi valitsin itseni ja Hessu Hopon. Lopussa voi vielä halutessaan muuttaa salatun tiedoston nimen. Tässä tapauksessa hello.txt tiedosto muuttuu muotoon hello.txt.gpg

Painoin “Allekirjoita tai salaa” ja syötin salasanani allekirjoitusta varten, kun sitä pyydettiin.

Sain viestin “Allekijroittaminen ja salaus onnistuivat”. Painoin “Valmis“.

Työpöytäni “temp“-kansioon oli nyt ilmestynyt hello.txt.gpg -tiedosto. Huomaa kuitenkin, ettei alkuperäinen hello.txt tiedosto ole kadonnut mihinkään. Yleinen käyttötarkoitus voisi olla esimerkiksi se, että lähetän nyt hello.txt.gpg -tiedoston vaikka sähköpostitse Hessu Hopolle, joka on minun lisäksi ainoa henkilö, joka tiedoston salauksen voi purkaa.

Jos taas jostain syystä ei ole tarvetta säilyttää alkuperäistä hello.txt -tiedostoa, niin se pitää itse hävittää asiallisesti. Poistamisen myötä se menee roskakoriin ja sieltä tyhjennettynä se on vielä palautettavissa fyysiseltä kiintolevyltä, ellei dataa ylikirjoiteta. Nämä asiat pitää tiedostonhallinnassa ottaa huomioon.

Itse salasin tiedoston vain toiselle henkilölle lähettämisen ajaksi, eikä minulla siten ole tarvetta hävittää alkuperäistä versiota omalta koneeltani. Poistan alkuperäisen tiedoston kuitenkin tässä esimerkissä, koska purettuani salatun tiedoston saan taas kopion samasta hello.txt tiedostosta.

Jos PGP-salattua tiedostoa yrittää lukea esimerkiksi muistiossa tai Notepad ++ -tekstieditorissa, se näyttää sian saksalta.

Salaus pitääkin purkaa ensin, jotta tekstistä tulee taas luettavaa. Purin salauksen klikkaamalla tiedostoa hiiren oikealla ja navigoimalla “More GpgEX options” > “Decrypt and verify“.

Syötin taas salasanani, kun sitä pyydettiin. Koska tiedosto salattiin sekä minun että Hessun julkisella avaimella, molempien yksityiset avaimet kelpaavat salauksen purkamiseen.

Tiedoston salaus purettiin onnistuneesti ja allekirjoituskin oli kunnossa:

“Temp”-kansiossa oli nyt taas täysin normaalisti luettava hello.txt -tiedosto. Salattu hello.txt.gpg ei kuitenkaan kadonnut mihinkään, vaan sen voi poistaa erikseen.

Seuraavaksi loin saman kansion sisälle uuden kansion nimeltä “salainen“. Sinne tein tekstitiedoston nimeltä salainen_viesti.txt ja png-kuvan.

Salasin ja allekirjoitin koko “salainen“-kansion klikkaamalla sitä hiiren oikealla ja navigoimalla “More GpgEX options” > “Sign and Encrypt“.

Allekirjoitin kansion taas omalla avaimellani ja salasin sen itseäni ja Hessu Hopoa varten.

Syötin taas salasanani allekirjoitusta varten.

Sain ilmoituksen allekirjoittamisen ja salauksen onnistumisesta. Painoin “Valmis“.

Kansiosta oli nyt tehty salattu tar-paketti, jonka voisin lähettää Hessulle. Tar-paketit ovat samanlaisia, kuin zip-paketit, mutta ilman pakkausta.

Poistin alkuperäisen kansion ja kokeilin purkaa tiedoston salainen.tar.gpg. Purin salauksen klikkaamalla taas tiedostoa hiiren oikealla ja navigoimalla “More GpgEX options” > “Decrypt and verify“.

Syötin taas yksityisen avaimeni salasanan. Toki myös Hessun yksityinen avain kävisi, sillä salauksessa käytettiin hänenkin julkista avaintaan. Salauksen purkaminen onnistui ja varmennekin oli kunnossa. Painoin “Tallenna kaikki“.

“temp”-kansioon ilmestyi taas kansio “salainen” ja sen sisältä löytyvät tiedostot olivat lukukelvollisia.


Komentorivi

Avasin PowerShellin ja loin tavallisen tekstitiedoston työpöytäni “temp“-kansioon nimellä hello.txt. Kirjoitin tiedoston sisään vähän tekstiä.

echo "Hello World! `nTämä viesti on salattu PGP-protokollalla" > 'C:\Users\Markus\Desk
top\temp\hello.txt'

Sitten salasin ja allekirjoitin tiedoston komennolla:

gpg --encrypt --sign --armor -r markus.pyharanta@mapy.fi -r hessu.hopo@gmail.com 'C:\Users\Markus\Desktop\temp\hello.txt'

Tuo siis salasi tiedoston sekä omaani että Hessun avainta käyttäen. Syötin salasanani, kun se pyydettiin.

Kansiossa oli nyt salaamaton hello.txt ja salattu hello.txt.asc. Poistin hello.txt tiedoston ja purin sitten salatun tiedoston komennolla:

gpg --decrypt 'C:\Users\Markus\Desktop\temp\hello.txt.asc' > 'C:\Users\Markus\Desktop\temp\hello.txt'

Tiedot vietiin tiedostoon hello.txt.

Lopuksi kokeilin vielä salata kansion. Loin “temp”-kansioon uuden kansion nimeltä “salainen“, jonka sisään laitoin png-kuvan ja tekstitiedoston nimeltä “salainen_viesti.txt“.

Allekirjoitin ja salasin kansion itselleni ja Hessulle. Koska kansio pitää ensin muuntaa tar-paketiksi, käytin gpgtar-komentoa sekä muuntamiseen että salaamiseen. Ensiksi palasin “temp”-kansioon, jossa “salainen”-kansio oli.

cd ..

Sitten ajoin komennon:

gpgtar --encrypt --sign -r markus.pyharanta@mapy.fi -r hessu.hopo@gmail.com -o salainen.tar.gpg salainen

Komennossa output-tiedostonimi tulee ennen tar-pakettiin sisällytettävää kansiota. Jostain syystä aina, kun yritin laittaa koko hakemistopolun kansioon, sain virheilmoituksen:

gpgtar: skipping invalid name 'C:/Users/Markus/Desktop/temp/salainen/'

Siksi suoritinkin komennon pelkällä kansion nimellä ollessani “temp”-kansiossa. Tiedosto salainen.tar.gpg luotiin, jonka jälkeen poistin rekursiivisesti kansion “salainen”.

Salatun paketin sisällön voi tarkistaa komennolla:

gpgtar --list-archive .\salainen.tar.gpg

Tulos:

gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: gpg: encrypted with 4096-bit RSA key, ID D99554A50C1E7996, created 2019-04-11
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: "Hessu Hopo <hessu.hopo@gmail.com>"
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: gpg: encrypted with 4096-bit RSA key, ID 5CEA409111DB1F29, created 2019-04-10
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: "Markus Pyhäranta <markus.pyharanta@mapy.fi>"
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: gpg: Signature made 04/11/19 20:23:18 Suomen kesõaika
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: gpg: using RSA key F1270A503E7DAC11AE50C2D4E157B433DB53F050
gpgtar: C:\Program Files (x86)\GnuPG\bin\gpg.exe: gpg: Good signature from "Markus Pyhäranta <markus.pyharanta@mapy.fi>" [ultimate]
drwxr-x--- 0 0/0 0 2019-04-11 17:15:18 salainen
-rw-r----- 0 0/0 47900 2019-04-11 17:00:59 salainen/profilepic.png
-rw-r----- 0 0/0 70 2019-04-11 17:01:38 salainen/salainen_viesti.txt

Sitten kokeilin purkaa salatun tar-paketin käyttäen taas gpgtar-komentoa:

gpgtar --decrypt 'C:\Users\Markus\Desktop\temp\salainen.tar.gpg'

Onnistui, ja hakemistoon ilmestyi salainen.tar_1_ -kansio, jonka sisältä löytyi koko alkuperäinen salainen kansio sisältöineen:


Yhteenveto

Tässä on nyt käyty läpi sekä graafisen käyttöliittymän että komentorivin kanssa, kuinka allekirjoittaa ja salata tiedostoja sekä kansioita Windows 10-ympäristössä.

Seuraavaksi salaan sähköposteja suoraan Outlook-sähköpostiohjelmassa käyttäen  GnuPG:n GpgOL-lisäosaa.

https://markuspyharanta.com/2019/04/11/gnupg-sahkopostien-salaaminen-suoraan-outlookissa-ggpol-lisaosan-kautta/


TÄTÄ DOKUMENTTIA SAA KOPIOIDA JA MUOKATA GNU GENERAL PUBLIC LICENSE (VERSIO 3 TAI UUDEMPI) MUKAISESTI. HTTP://WWW.GNU.ORG/LICENSES/GPL.HTML
MARKUS PYHÄRANTA

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top