Duomenų šifravimas su ssh viešu raktu

2015 Birželio 9 d  •  Remigijus Jarmalavičius  •  Atviras kodas

Nesu GnuPG (dar žinomo kaip GPG) mylėtojas, todėl šiame straipsnyje greitai
parodysiu kaip užšifruoti kažkokius duomenis turint (gavus) žmogaus viešą raktą.

Viešasis ssh raktas, toks kaip manasis, kurį galite parsisiųsti
iš Launchpad yra netinkamas
openssl programai, todėl teks susgeneruoti atitinkamo formato raktą-sertifikatą:

openssl rsa -in ~/.ssh/id_rsa -out /tmp/viesas_raktas.pub -outform PEM -pubout

Būsite paprašytas įvesti savo privataus rakto slaptažodį jeigu tokį turite.
Mano sugeneruoto rakto turinys:

-----BEGIN PUBLIC KEY-----
MIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAyul8GjRteUYK7fSqKYEI
q1yQasYROEfqBe13gPmYiXscmduK/VqlMfyj39F+3r7MvMHsnA9TA03oJi521cjX
bi8KeFYLmyzJr0zZrb/pUo1txzeEDP6nPG7pDen4lDX7Sgcn9t6aqfxG8XvZ58Ge
/eAQw0Gxunz3Dw1/JrOXE4B0R2bKODBV4QFPZXUA+BZF5X5Lmc9JILHef25hvBQR
rgpyKz6p5nvGyiBFX+KvWe8DFKtX9JkMG1toKYjHv/CycCCY7SJMDIigPZ5+EaRT
HKyHl2i43uRdu89/2UD06+6dcLOAlThVnqghVKH+Empm3Ot349V9vhCiyAHFohHi
OXmxLpsO2q5mY0ciiMEMTChSf3EnkFGi9OyhGf8by4EelSpg9S9X+wKdfe/Mq/jD
FTCxl8I13O9u0zwxJtpsKAMnrxP8UT3zuIU83+YPPvTJqGxIqybgb8/aCnViaMi3
xXhnikiJ0U3V2GuJPHCv1BOSfx+Paa6V5tgk7bVkrwIA1fgTGweExDRudgCN/Vzp
OiMYipvWu815tRc1x3ahZhLjBvMq/0z3iM5GBwRBE4j6GgBxxK+Ojf6+bXwdRF1K
VS+FO5yyZG9SNfKkNHlZztQG+g3h6Uvxgl30U5eZrHAcgYncOYaMXG4PWLehLQBR
XM8hX01gV+tv8SChFxIfmNMCASM=
-----END PUBLIC KEY-----

O dabar, imkimės šifravimo darbų!

Pradžiai turėkime ką užkoduoti. Tam galime panaudoti kokį nors jau seniai
turimą failą. Kaip pavyzdį tokį galime lengvai susikurti:

echo 'Mano slapta žinutė čia.' > /tmp/failas.txt

Ir užkoduokime žinutę:

openssl rsautl -encrypt -inkey /tmp/viesas_raktas.pub -pubin -in /tmp/failas.txt -out /tmp/uzkoduotas_failas

Programa openssl sukurs užkoduotą failą /tmp/uzkoduotas_failas kurį galima bus
atsikoduoti tik turint privatų raktą (tokį, kurį turite tik Jūs). Tą galima
pasidaryti taip:

openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in /tmp/uzkoduotas_failas -out /tmp/atkoduotas_failas

Dešifravimui būsite paprašytas įvesti savo privataus rakto slaptažodį jeigu
tokį turite.

Atspausdinkime atkoduoto failo turinį:

cat /tmp/atkoduotas_failas

Ir gausime:

Mano slapta žinutė čia.

Tikrai paprasta, greita ir sakyčiau patogu!