Simple File Encryptor
Máte v počítači soubor, který obsahuje nějaké citlivé informace (hesla, smlouvy, dokumenty, fotografie, videa, nahrávky nebo něco jiného, co chcete chránit)? Pak tato aplikace je to, co hledáte. Pravda, ochrana vašich souborů nejspíše neobstojí před specialisty tajných služeb, ale vaši přátelé, rodina nebo lidé, se kterými sdílíte počítač, nemají téměř žádnou šanci dostat se k vašim informacím. Ani správci systému, kteří nepotřebují heslo k vašemu Windows účtu, aby se dostali k vašim souborům.
Aplikaci jsem napsal pro vlastní potřebu někdy na jaře 2020, protože jsem nemohl najít na internetu nic dostatečně jednoduchého a spolehlivého, co by plnilo stejnou funkci a zároveň jsem měl díky koronavirovým prázdninám fůru volného času.
Současný stav
Pro účely soutěže jsem aplikaci notně vylepšil. Jedním z hlavních
rozdílů je schopnost šifrovat a dešifrovat jakýkoliv typ souborů, včetně
binárních (například soubory aplikací Office nebo s příponou
.pdf
). Dalším rozdílem je přidání přípony .ecp
k zašifrovaným souborům, která umožňuje okamžitě rozlišit soubor
zašifrovaný od nezašifrovaného, i když třeba mají stejný název. V
neposlední řadě byla zvýšena bezpečnost šifrování zašifrováním
samotného hesla před jejím použitím.
Plány do budoucna
Pokud budu mít čas a motivaci pokračovat ve vylepšování aplikace, rád bych přidal následující funkce:
- Možnost vybrat složku a zašifrovat / odšifrovat všechny soubory v ní najednou
- Nastavit souborům s příponou
.ecp
nějakou ikonu, která by se u nich zobrazovala v průzkumníkovi souborů - Umožnění dešifrování souboru s příponou
.ecp
pouhým jeho otevřením a zadáním hesla do vyskakovacího okna - Hromada dalších věcí, na které si teď nevzpomínám
Jak to funguje
Aplikace šifruje soubory na principu vylepšené Vigenèrovy šifry. Ta funguje na principu sčítání znaku v šifrovaném textu a hesle. Rozdíl mezi obyčejnou Vigenèrovou šifrou a tou použitou spočívá v tom, že nejsou kódovány jednotlivé znaky, ale jednotlivé bajty. Soubor je (postupně) přečten jako série bajtů (číslo 0 až 255) a následně se do takovéto formy převede i zadané heslo. Následně se pouze sečte první bajt souboru s prvním bajtem hesla a výsledek přepíše první bajt souboru. Heslo je zopakováno tolikrát, aby mělo stejnou délku jako soubor. Při dešifrování je postup stejný, ale namísto sčítání bajtů se bajty odečítají.
Vzhledem k tomu, že původní heslo, ani jeho otisk (hash) se do zašifrovaného souboru neukládají, je možné pro dešifrování použít jakékoliv heslo, jelikož aplikace nepozná, zda je správné či špatné. Důsledkem použití špatného hesla je však nečitelný a poškozený soubor. Někteří toto mohou považovat za výhodu, jiní za nevýhodu.
Tvůrci
- Jan Štěch (já)
Programovací jazyky
Aplikace je naprogramována v jazyce C# a využívá technologii WinForms.
Lidské jazyky
Aplikace je anglicky, avšak pochopit její fungování by nemělo být těžké ani pro ty, kteří sami anglicky neumí.
Hodnocení poroty
Tento projekt se účastnil soutěže ITnetwork summer 2020.
Porotce | Bodů | Hodnocení |
---|---|---|
David Čápka |
8.5 | Program dělá to, co se od něj očekává a dělá to dobře. Zajímavé je, že se nebojí rovnou smazat původní soubor a nahradit jej zašifrovanou kopií, je tam ale potvrzení a zajistí se tím, že bude opravdu jen zašifrovaný, takže proč ne. Určitě by bylo zajímavější použít nějaký skutečný šifrovací algoritmus, tyhle substituční šifry jsou spíše takové akademické hříčky, binárky v sobě mají běžně nějaké známé sekvence hlaviček pro operační systém, které obsahují i ASCII texty, takže teoreticky není problém frekvenční analýzou přijít na heslo. Samozřejmě to prakticky nikdo neudělá, bylo by k tomu potřeba hodně znalostí a času a ty i zmiňuješ, že se jedná spíše o rodinné využití. Při dešifrování by se mělo zobrazovat asi jiné potvrzení, které by vysvětlovalo, co se může stát. Jinak k tomu asi nemám výhrad, kdybys to chtěl nějak výrazněji propagovat, udělal bych hezčí a jednodušší UI. |
Samuel Hél |
8 | Aplikace funguje správně, jak by měla. Její ovládání je jednoduché, tak to může bez problému využít i naprostý laik. Líbí se mi funkce smazání souboru, který bude zašifrován, aspoň nezůstane nezašifrovaná kopie souboru. Co se týče bezpečnostního algoritmu, tak si tím nejsem úplně jistý. Taktéž je velmi špatné, pokud někdo bude chtít dešifrovat soubor se špatným heslem. Soubor se poté špatně dešifruje, bude nečitelný (OK), jenže původní majitel se k původním datům už nedostane. Pokud tedy nemá zálohu, tak je jeho soubor navždy ztracen. Tento systém je však dobrý, pokud by někdo dělal Brute-force útok. Pro domácí použití je program asi vhodný, ale dal bych si pozor na tu kopii. |
Michal Čápka |
8 | Jednoduchá, intuitivní aplikace, která plní svoji funkci. Určitě si dokážu představit, že bych pro ni já sám našel využití. |
Galerie
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 13x (567.26 kB)
Aplikace je včetně zdrojových kódů v jazyce C#