Man reikėjo sugalvoti kaip saugoti atsargines kopijas 3 lygiais - serveryje, lokaliai ir atskiroje laikmenoje. Žinoma, čia viskas kaip ir paprasta - dump, zip, copy, rotate. Tereikės parašyti kelis script‘us ir viskas veiks tobulai. Bet atsarginės kopijos gali būti nutekintos, ir jei jos nėra apsaugotos, tai gali baigtis labai blogai. Archyvavimas su slaptažodžiu netiko, nes slaptažodis turėtų būti saugomas prie script‘o, o tai reiškia, kad jis gali būti nutekintas kartu su atsarginėmis kopijomis.

Taigi pasidomėjus daugiau, radau, kad galima su OpenSSL užšifruoti failą su viešuoju raktu, o iššifruoti tik su privačiu. Tai reiškia, kad nereikia rūpintis viešojo rakto saugumu, reikia rūpintis tik privačiuoju raktu, kuris bus naudojamas tik failo iššifravimui.

Žinoma, nemanau, kad šis planas neturi skylių, bet dabar apie tai kaip užšifruoti ir iššifruoti failą.

Pastaba: šifruojamas failas negali būti didesnis nei ~1.9GB, kitu atveju bus užšifruota tik dalis failo.

Šifravimo raktai

Reikia pasidaryti šifravimo raktus, kurie bus naudojami atsarginės kopijos šifravimui ir iššifravimui. Pradžioje reikia sukurti privatų raktą, kuris bus naudojamas atsarginės kopijos iššifravimui ir viešo rakto sukūrimui.

openssl req -newkey rsa:2048 -keyout privkey.pem -out req.pem

Pastaba: Reikės įvesti slaptažodį ir papildomus duomenis (kurie nėra svarbūs)

Tada iš sertifikato užklausos req.pem reikia sukurti viešąjį raktą, jis bus naudojamas atsarginės kopijos užšifravimui:

openssl x509 -req -in req.pem -signkey privkey.pem -out cert.pem

Pastaba: Reikės įvesti slaptažodį, kurį įvedėte prieš tai. Po sėkmingo viešo rakto sukūrimo req.pem galima pašalinti.

Pavyzdinis failo šifravimas ir iššifravimas

Failo failas.zip užšifravimas su viešu raktu:

openssl smime -encrypt -aes256 -in failas.zip -binary -outform DER -out failas.zip.enc cert.pem

Failo failas.zip.enc išifravimas:

openssl smime -decrypt -in failas.zip.enc -inform DER -inkey privkey.pem -out failas.zip