Je to popsane ve specifikaci formatu...
https://github.com/C2SP/C2SP/blob/main/age.md
Je zajimave ze nekdo nazyva "hejteni" pouhy komentar o podstatne informaci ktera v clanku chybi. Pouzite algoritmy rozhoduji dnes v prve rade o nasazeni nebo nenasazeni technologie! Tedy bylo by zahodno toto uvest nekde hned na zacatku aby clovek vedel jestli ma cenu se tim zabyvat.
Nedava taky smysl komentar o tom at si ten clovek napise clanek sam. Nikdo nerika ze cely clanek za nic nestoji. Ta hodnota clanku neni typ boolean. Clanek muze mit porad velkou hodnotu i kdyz nejaka podstatna informace chybi.
Ad absurdum bych mohl rict ze by nebylo vubec treba psat clanek a dat jen kratkou zpravicku s odkazem - nactete si to sami stejne byste to jinak hejtovali, nemam s tim zkusenosti ale vypada to jako cool vec.
Ja jsem clanek ocenil jako zajimavy, jen toto mne z pohledu bezpecnosti tez zarazilo.
A ze to nikomu nevadilo pred cca rokem, kdy tu o nastroji age vysla zpravicka... :-)
Popsat ten format do detailu vyda na samostatny clanek a jen ohanet se algoritmy taky cenu nema, ono posuzovat (ne)bezpecnost jen na zaklade vyskytu klicovych slov typu "ChaCha20-Poly1305" je taky nesmysl.
Clanek viditelne cili spise na zacatecniky, ktere tu urcite sve misto maji - coz ale zda se nekteri pokrocilejsi uzivatele tezce nesou ;-)
Zatim korporatni sec audity nejsou na takove urovni aby rozlisovali konkretni implementaci. Ten algoritmus a jeho pouziti je pro mne takovy entry level ktery by v clanku byt mohl.
Aby se resila radne implementace pouze jednou jsem zazil jen jednou a to pro financni sektor kde byla knihovna kvuli ctyrem algoritmum rozrypana do posledniho patche. Ale to byl vyvoj uzce spjaty se strategickou bezpecnosti celeho odvetvi.
Tu kterou implementaci obvykle stejne posuzuje nejaky kryptoanalytik ktereho si kralovsky zaplatite. Ani od konzultantu necekam tak podrobny vystup - ano jsem v IT uz dlouho a ma ocekavani jsou tudiz nizka.
22. 12. 2022, 18:11 editováno autorem komentáře
Danny, pardon, ale mnoho článků čte člověk proto, že to třeba není něco, čím se přímo zabývá ale prostě si rozšiřuje obzory. Nepotřebuje a nemá čas se však se někam proklikávata něco studovat, proto právě čte jen články třetích stran. Kdyby to bylo nějaké složité vysvětlování na dvě strany A4, pak prosím, ale tohle je jedna krátká jednoduchá věta.
NIkdo neceka ze zde bude rozebrany zdrojak a specificka debata o implementaci - typicky meeting nasich devu na kterem spi pulka lidi. Kazdy ale asi mame jine ocekavani. Verim ze by autor na zaklade podnetu i clanek doplnil. Vzdyt je to jeden/dva radky. Pripadne by stacilo uvest jak moc je produkt flexibilni v uziti algoritmu.
Takovych clanku tu je ale vice. A zalezi dost na tom, kdo je cilova skupina daneho clanku. Treba zacatecnikum ta informace bude k nicemu, neni potreba je tim hned zahlcovat (a styl, jakym to je psane opravdu necili na pokrocileho uzivatele) . To je jak kdybyste chtel do latky v prvni tride zakladky zahrnout zminky o integralech, ze? ;-)
Pána hlavně dobře platí za minutu práce, nikoliv za to, aby se prohrabával v dokumentaci. Mám pár minut když něco buildím, pak si obvykle něco čtu, ale rozhodně ne čas na to, abych to řešil kvůli takovéhle triviální informaci do hloubky.
Takže ano, očekávám. Od toho (nejen) odborné zpravodajské servery jsou.
Nástroj age používá pro šifrování symetrický klíč, kterým soubor zašifruje a kopii klíče zašifrovanou požadovanými veřejnými klíči přiloží k souboru. Pro dešifrování stačí dodat jednu z identit, pro které byl soubor zašifrován.
To ze sa normalne pouziva pre kazdeho prijemcu unikatny symetricky kluc ma svoj vyznam vzhladom na to ako funguje DH.
Ak ma potencionalny utocnik, ktory chce ziskat sukromne kluce ostatnych, ktorym je takto zasifrovany subor urceny, tak je to predpoklad pre zaujimavy zivot bez nudnych chvil. Hlavne ak bude dostatok suborov urceny tym istym prijemcom. To ze identity budu ssh kluce to vylepsi na maximum...
Nastroj vymenu klicu vubec neresi - presne v duchu unixove filozofie (jak se pise ve clanku) dela jen jednu vec - sifruje soubory. Navic Diffie-Hellmann je urceny spise pro online vymenu klicu, u offline vymeny se spise hodi nejaka key derivation funkce - a to tam v podobe HKDF-SHA-256 implementovane je...
Pořád píšete o nějakých lahůdkách, ale ani jednou jste nenapsal, jak by měl vypadat útok.
To, že se data šifrují symetrickou šifrou a asymetrickou se zašifruje jenom klíč, je běžná věc všude, kde se šifruje asymetrickou šifrou. Asymetrické šifry jsou totiž pomalé a dešifrovat jimi velký objem dat by trvalo dlouho. Když pak chcete umožnit rozšifrování pomocí více klíčů, zašifruje se ten symetrický klíč několika různými klíči. Kdybyste data na disku chtěl zpřístupnit třeba třem uživatelům s třemi různými klíči a šifroval je třikrát symetrickou šifrou, uložil byste na disk jednom třetinu dat, protože byste musel každý blok ukládat na disk třikrát.
Pokud se dostane útočník k jednomu ze soukromých klíčů, tak se dá předpokládat, že nejsíš tak, že oloupal ten cílový stroj, a pak má stejně přístup ke všemu v cleartextu, bez ohledu na použitý šifrovací protokol.
Spíš mě docela chybí možnost zašifrovaný soubor podepsat. Jinak si dovedu představit celkem hodně napáchané škody, která nemusí být na první pohled viditelná (co když např. někdo v gitu přehodí connect string do databáze, aby se konektnul na útočníka?) Tohle gnupg řeší...
> Hlavne ak bude dostatok suborov urceny tym istym prijemcom
Tohle se mi nezda. age pouze pouziva verejny klic. A predpokaldam, ze prijemce si verejny klic prilis nechrani, takze pro utocnika bude celkem snadne ho ziskat. A pak si muze generovat zasifrovanych dat kolik chce, vcetne plaintextu. K cemu by mu pak bylo pouziti znamych dat z age souboru?
Má smysl použít pro symetrické šifrování externí nástroj (ať už je to age, mcrypt, ccrypt, nebo cokoli jiného), když můžu použít přímo Libre/OpenSSL nebo OpenPGP ? Tj. proč použít age, když můžu použít standardní nástroje (které má většina uživatelů nainstalované jako závislosti) a udělat něco jako tohle:
gpg --symmetric --cipher-algo aes256 SOUBOR
nebo:
openssl enc -aes-256-cbc -salt -in SOUBOR -out VYSTUP
???
openssl enc
mimo jine nepodporuje modernejsi AEAD algoritmy a CBC mod precijen ma sve mouchy, ze? ;-) ChaCha20-Poly1305 (pouzity u age) je z rodiny AEAD algoritmu.
Tebou uvedené příklady šifrují symetricky pomocí hesla/klíče, které si musíš s protistranou nějakým bezpečným způsobem vyměnit. Popisovaný nástroj šifruje asymetricky, takže si klíče můžeš vyměňovat přes odposlouchávaný kanál (jen důvěryhodný - ne MITM) a jeden klíč můžeš distribuovat mnoha lidem.
gpg samozřejmě má i (dokonce hlavní) asymetrický mód, ale oproti popisovanému nástroji jsou klíče dlouhé a jejich správa je komplikovaná (ano, je to cena za to, že správa klíčů gpg má mnohem víc funkcí).
Pokud vám ve vašem použití funguje gpg a openssl, držte se ho!
Pro náš use case byla výhoda age pohodlná integrace s dalšími nástroji. Dřív jsme používali gpg, ale bylo to ve větším málo pohodlné. Uzavřít gpg do CI/CD pipeline sice jde, ale bylo to pracné a náchylné na chyby. Tady je secret prostě jeden krátký řetězec (protože eliptické křivky) a není potřeba řešit keystore.
abych na tom měl rozumné rps, tak to jsou milionové částky za kus, zpravidla se nasazují dvojmo. Řada usb HSM zvládají jednotky operací za vteřinu, to i na dnešní malé deploymenty může být velká brzda.
Dnes není běžné, aby HSM měli všeobecně nasazení banky a kritické infrastruktury, často se to používá max. v PKI ke krmení CA.
K vláknu, dnes se začíná více spolehát na wrapper secrets, kdy tajné hodnoty nemá k dispozici ani samotný CI/CD a nestává se kritickým systémem v bezpečnosti, ale až samotná instance si vyžádá dešifrovaná data do secret služby, k nim dostane jen token, ideálně s nízkou životností a jednorázovým použitím, umí třeba zmíněný Hashicorp Vault. Je to asi dobrý kompromis mezi náklady na implementaci, složitostí a poskytnutou úrovní bezpečnosti.
Milionove castky to nejsou, delal jsem nekolik implementaci a vim kolik treba za kolik byvale safenet hsm nebo thales hsm byli. Rychlost samozrejme zavisi od toho jak hsm implementujete, sifrovat vsechna data pres hsm je samozrejme blbost a dela se to trochu jinak ale to zachazime do detailu. Nejvetsi instalace x hsm na ktere jsem pracoval obsluhuje pres 100mil zarizeni a ta implementace vyuziva hsm ktere nejsou nijak zavratne rychle. NDA. Hashicorp je urcite lepsi nez mit secrets nekde v textaku a pokud se spravne implementuje tak je relativne bezpecnou a hlavne levnou alternativou k hsm.
list price HW asi není ta konečná částka, co mě zajímá při pořízení, co? On je také rozdíl, jestli myslíš ceny v letošním roce nebo před 7 lety. Pořád se bavíme alespoň o stokách a víc tisíc plus nějaká bižutérie, instalace, provoz, licence, lidi atd.
Ano, pak třeba v HSM máš máster klíče, z nich generuješ krátké certy a ty drzíš v KMS či v paměti. Takže tě rychlost nebrzdí, ale zase nemůžeš říct, že klíče ti drží HSM.
Právě díky Thalesu a třeba Luně je tenhle obor polomrtví, ač je šifrování na vzestupu, jejich licenční, cenová a obchodní politika ve spojení se spoustou patentů to celé strašně brzdí. Hashicorp Vault je něco, co mě osobně extrémně překvapilo, byl jsem v počátku skeptický, ale udělali strašně moc práce.
RECIPIENT can be an age public key generated by age-keygen ("age1...") or an SSH public key ("ssh-ed25519 AAAA...", "ssh-rsa AAAA...").