Sms messaging with message encryption
Jan Kubový
(kubovja1@fel.cvut.cz)
Moje práce se týkala aplikace pro odesílání SMS pro systém Android. Podle zadání měla aplikace splňovat: odesílání SMS, výběr telefonního čísla ze seznamu kontaktů, ruční zadání čísla, historie odeslaných SMS. V rámci soutěže měla implementovat nějakou funkcionalitu navíc a tou mojí bylo šifrování. Byly dva typy šifrování: Symetrické pomocí hesla pro uložené SMSky a asymetrické pro odesílané SMSky.
Jelikož se SMSky ukládají do systémového uložiště (content://sms), kam mohou mít přístup i jiné aplikace v mobilu, případně uživatel chce zabránit čtení zpráv při odcizení mobilu, může jednotlivé konverzace šifrovat pomocí hesla (konverzace jsou všechny zprávy odeslané nebo přijaté z jednoho telefonního čísla). Když pak chce konverzaci zobrazit, musí nejprve ono heslo zadat. Nově příchozí/odchozí zprávy do zašifrované konverzace se automaticky šifrují.
Každá SMS zpráva je po GSM síti odesílána jako prostý text. Proto jsem navíc implementoval i šifrování odesílaných zpráv. To má podmínku, že jak příjemce, tak odesílatel, musí mít nainstalovanou tuto aplikaci. V první části příjemce šifrovaných odešle svůj veřejný klíč odesílateli (v menu tlačítkem "Odeslat klíč"). Ten se rozkouskuje do SMS zpráv a odešle. Pokud odesílatel klíč přijme v pořádku, bude mu před příštím odesláním SMS zprávy nabídnuto, zda se má zpráva šifrovat. Pokud zvolí, že ano, pak se zpráva zašifruje veřejným klíčem příjemce a odešle. U příjemce se takto šifrovaná zpráva automaticky dešifruje po přijetí. Odeslané zprávy se šifrují veřejným klíčem příjemce ze dvou důvodů: a) pokud by tomu bylo naopak, nemáme úplnou jistotu, že druhá strana má náš veřejný klíč, b) odeslané šifrované zprávy od různých odesílatelů můze rozšifrovat jen příjemce. Z toho vyplývá, že pokud chtějí obě strany přijímat a odesílat šifrované zprávy, musí si oba navzájem poslat své veřejné klíče. Vlastní veřejný a soukromý klíč se generuje při prvním spuštěni aplikace.
Hadoop
Petr Zadražil
(zadrape1@fel.cvut.cz)
Jako téma semestrální práce z předmětu A4M33VIA jsem si vybral vytvoření distribuovaného výpočtu pomocí algoritmu MapReduce. Hlavní motivací bylo vyzkoušet si, jak se s MapReduce pracuje v praxi. Zadáním bylo vytvořit aplikaci pro tvorbu reverzního indexu výskytu slov v souborech.
Zjednodušeně se jednalo o vygenerování abecedně seřazeného seznamu, který má pro každé slovo uložené počty a pozice jeho výskytů v jednotlivých souborech. Celý problém byl rozdělen na tři části s přesně specifikovanými vstupy a výstupy, takže nebylo moc prostoru pro nějaké inovativní použití.
Jelikož nám Google nemohl „zapůjčit“ zdrojové kódy svého MapReduce, byli jsme nuceni použít Open Source projekt Hadoop. Ten je celý napsaný v Javě, navíc obsahuje i implementaci distribuovaného filesystému a BigTable. Hadoop se ovšem velmi rychle vyvíjí. A to tak rychle, že dokumentace a příklady dostupné na webu jsou z velké části zastaralé. Těžiště samotné práce nakonec bylo v pročítání zdrojových kódů a přicházení na způsob, jakým celý systém pracuje.
Po dokončení a otestování na malých datech jsem se rozhodl vyzkoušet zpracovat data české Wikipedie (300MB dat). Čekalo mě však překvapení v podobě nedostatku paměti a dlouhého načítání překladových slovníků.
Problémy se však podařilo odstranit a nakonec jsem se s časem dostal na únosnou hranici 23 minut. Hlavní využitelnost této aplikace spočívá v indexování webových stránek či jiných dokumentů s využitím škálovatelnosti, kterou algoritmus MapReduce poskytuje.
Jan Kubový
(kubovja1@fel.cvut.cz)
Moje práce se týkala aplikace pro odesílání SMS pro systém Android. Podle zadání měla aplikace splňovat: odesílání SMS, výběr telefonního čísla ze seznamu kontaktů, ruční zadání čísla, historie odeslaných SMS. V rámci soutěže měla implementovat nějakou funkcionalitu navíc a tou mojí bylo šifrování. Byly dva typy šifrování: Symetrické pomocí hesla pro uložené SMSky a asymetrické pro odesílané SMSky.
Jelikož se SMSky ukládají do systémového uložiště (content://sms), kam mohou mít přístup i jiné aplikace v mobilu, případně uživatel chce zabránit čtení zpráv při odcizení mobilu, může jednotlivé konverzace šifrovat pomocí hesla (konverzace jsou všechny zprávy odeslané nebo přijaté z jednoho telefonního čísla). Když pak chce konverzaci zobrazit, musí nejprve ono heslo zadat. Nově příchozí/odchozí zprávy do zašifrované konverzace se automaticky šifrují.
Každá SMS zpráva je po GSM síti odesílána jako prostý text. Proto jsem navíc implementoval i šifrování odesílaných zpráv. To má podmínku, že jak příjemce, tak odesílatel, musí mít nainstalovanou tuto aplikaci. V první části příjemce šifrovaných odešle svůj veřejný klíč odesílateli (v menu tlačítkem "Odeslat klíč"). Ten se rozkouskuje do SMS zpráv a odešle. Pokud odesílatel klíč přijme v pořádku, bude mu před příštím odesláním SMS zprávy nabídnuto, zda se má zpráva šifrovat. Pokud zvolí, že ano, pak se zpráva zašifruje veřejným klíčem příjemce a odešle. U příjemce se takto šifrovaná zpráva automaticky dešifruje po přijetí. Odeslané zprávy se šifrují veřejným klíčem příjemce ze dvou důvodů: a) pokud by tomu bylo naopak, nemáme úplnou jistotu, že druhá strana má náš veřejný klíč, b) odeslané šifrované zprávy od různých odesílatelů můze rozšifrovat jen příjemce. Z toho vyplývá, že pokud chtějí obě strany přijímat a odesílat šifrované zprávy, musí si oba navzájem poslat své veřejné klíče. Vlastní veřejný a soukromý klíč se generuje při prvním spuštěni aplikace.
Hadoop
Petr Zadražil
(zadrape1@fel.cvut.cz)
Jako téma semestrální práce z předmětu A4M33VIA jsem si vybral vytvoření distribuovaného výpočtu pomocí algoritmu MapReduce. Hlavní motivací bylo vyzkoušet si, jak se s MapReduce pracuje v praxi. Zadáním bylo vytvořit aplikaci pro tvorbu reverzního indexu výskytu slov v souborech.
Zjednodušeně se jednalo o vygenerování abecedně seřazeného seznamu, který má pro každé slovo uložené počty a pozice jeho výskytů v jednotlivých souborech. Celý problém byl rozdělen na tři části s přesně specifikovanými vstupy a výstupy, takže nebylo moc prostoru pro nějaké inovativní použití.
Jelikož nám Google nemohl „zapůjčit“ zdrojové kódy svého MapReduce, byli jsme nuceni použít Open Source projekt Hadoop. Ten je celý napsaný v Javě, navíc obsahuje i implementaci distribuovaného filesystému a BigTable. Hadoop se ovšem velmi rychle vyvíjí. A to tak rychle, že dokumentace a příklady dostupné na webu jsou z velké části zastaralé. Těžiště samotné práce nakonec bylo v pročítání zdrojových kódů a přicházení na způsob, jakým celý systém pracuje.
Po dokončení a otestování na malých datech jsem se rozhodl vyzkoušet zpracovat data české Wikipedie (300MB dat). Čekalo mě však překvapení v podobě nedostatku paměti a dlouhého načítání překladových slovníků.
Problémy se však podařilo odstranit a nakonec jsem se s časem dostal na únosnou hranici 23 minut. Hlavní využitelnost této aplikace spočívá v indexování webových stránek či jiných dokumentů s využitím škálovatelnosti, kterou algoritmus MapReduce poskytuje.
Žádné komentáře:
Okomentovat