Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies



Hasonló dokumentumok
Alapfogalmak. Biztonság. Biztonsági támadások Biztonsági célok

Mobil eszközökön tárolt adatok biztonsága

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

S, mint secure. Nagy Attila Gábor Wildom Kft.

Titkosítás mesterfokon. Tíz évvel a titkosítás után. Előadó: Tóthi Dóra Kovárczi Béla András

API tervezése mobil környezetbe. gyakorlat

Izsó Krisztián Péti Zoltán. Cisco Identity Services Engine

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

TANÚSÍTVÁNY. tanúsítja, hogy a Utimaco Safeware AG által kifejlesztett és forgalmazott

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

Gyakorlati tudnivalók

OE-NIK 2010/11 ősz OE-NIK ősz

ELEKTRONIKUS MUNKABÉRJEGYZÉK MODUL

Web-fejlesztés NGM_IN002_1

A DOLLÁROS PIZZA TÖRTÉNETE, AVAGY MENNYIT ÉR A BITCOIN?

Summer of LabVIEW The Sunny Side of System Design

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Biztonság a glite-ban

Vectory telepítési útmutató

Az elektronikus növényorvosi vény (e-vény) szoftver

Adatkezelési tájékoztató. A Stúdió Liszt Zeneművészeti Kft. adatkezelési tájékoztatója

Adatszerkezetek 1. előadás

A tűzfal mögötti adatvédelem. Kalmár István ICT technológia szakértő

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Fábián Zoltán Hálózatok elmélet

IP alapú távközlés. Virtuális magánhálózatok (VPN)

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Pénzügyi algoritmusok

Eduroam változások - fejlesztések, fejlődések. Mohácsi János NIIF Intézet HBONE Workshop 2015

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön

Adott egy szervezet, és annak ügyfelei. Nevezzük a szervezetet bank -nak. Az ügyfelek az Interneten keresztül érzékeny információkat, utasításokat

Enterprise User Security

Szabó Zoltán PKI termékmenedzser

Webalkalmazás-biztonság. Hitelesítés, jelszókezelés, hozzáféréskontroll

Képi információk hatékony feldolgozása széles társadalmi rétegeket érintő egészségügyi problémákban

Tanúsítványok kezelése az ibahir rendszerben

(appended picture) hát azért, mert a rendszerek sosem

NIIF szolgáltatások a múzeumok számára

Nem attól secure, hogy drága! A vállalati Wi-Fi biztonságos bevezetése

20 éve az informatikában

4. Óravázlat. projektor, vagy interaktív tábla az ismétléshez, frontális, irányított beszélgetés

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Csoportkezelés a szövetségben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Számítástechnikai kommunikációs lehetőségek a QB-Pharma rendszerrel. Előadó: Bagi Zoltán Quadro Byte Kft. ügyvezető

Új Paradox My Home, Insite Gold és IP150 verzió információk

Hálózati WAN forgalom optimalizálása

Alkalmazások biztonsága

Adja meg, hogy ebben az esetben mely handshake üzenetek kerülnek átvitelre, és vázlatosan adja meg azok tartalmát! (8p)

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

TANÚSÍTVÁNY. tanúsítja, hogy az. ORGA Kartensysteme GmbH, Germany által előállított

Networkshop 2014 (április ) 1.

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

TERC V.I.P. hardverkulcs regisztráció

WEB2GRID: Desktop Grid a Web 2.0 szolgálatában

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Személyes adatok védelmi alapelvei

HunGrid Grid technológiák hozzáférési lehetőségei az intézetben

8. gyakorlat Pointerek, dinamikus memóriakezelés

Szoftver fő funkciói. Diszpécser rádió GPS nyomkövetés Adatátvitel és tárolás Telefonhívások kezelése 1 / 7

Zoiper VoIP mobil alkalmazás szoftver beállítása Android rendszerre

Budapest Főváros Kormányhivatala. Földmérési, Távérzékelési és Földhivatali Főosztály. Általános Szerződési Feltételek.

MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM KÖZLEKEDÉSMÉRNÖKI ÉS JÁRMŰMÉRNÖKI KAR

Vezetéknélküli technológia

Vállalati WIFI használata az OTP Banknál

YOUNG PARTNER NAP

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Folyamatok. 6. előadás

INFORMATIKA EGYRE NAGYOBB SZEREPE A KÖNYVELÉSBEN

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Tanúsítványkérelem készítése, tanúsítvány telepítése Lotus Domino szerveren

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

WebEC kliens számítógép telepítése és szükséges feltételek beállítása, az alábbi ellenőrző lista alapján történik.

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 8. óra. Kocsis Gergely, Kelenföldi Szilárd

Kriptográfiai alapfogalmak

OSS szoftverek használta a VINGIS rendszer kialakításában

INFORMATIKAI RENDSZER FEJLESZTÉSE. TÁMOP D-12/1/KONV A Szolnoki Főiskola idegen nyelvi képzési rendszerének fejlesztése

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

Az autorizáció részletes leírása

Hitelesítés elektronikus aláírással BME TMIT

Pénzügyi algoritmusok

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Eduroam Az NIIF tervei

Egyetemi könyvtári nyilvántartó rendszer

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

Szervervirtualizáció és fürtözés újdonságok a WS16 TP3-ban

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

Private Cloud architektúra keretrendszer

Felhasználói kézikönyv

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

Tudjuk-e védeni dokumentumainkat az e-irodában?

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Átírás:

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban A CryptTalk fejlesztése során alkalmazott módszerek Dr. Barabás Péter Arenim Technologies

Agenda CryptTalk Hálózati kommunikáció Authentikált kérések Adatvalidáció Kliens adattárolás Jailbreak detekció Memóriavédelem Eredmények

CryptTalk Kliens oldal Saját fejlesztésű kiforrott VoIP motor, SIP Több mint 100 millió sikeres hívás 2013-ig Peer-to-peer hívásfelépítés Platform független kód Software alapú megoldás, nincs szükség speciális hardware-re Szerver oldal Presence, Regisztráció és kontakt kezelés CA, Tanusítvány kezelés OTP Autentikáció: a szerver végzi jelszó nincs tárolva a kliensen

Hálózati kommunikáció - SSL SSL certificate pinning Szerver tanúsítvány Bundle Előny: támadó nem tudja a bináris hozzáférés nélkül lecserélni Hátrány: tanusítvány megújítása esetén újrafordítás, publikálás Kliens authentikáció Kliens tanúsítvány Bundle Jelszó kezelés: Ahogyan NE: normál sztring konstansként Ahogyan IGEN: valamilyen algoritmus rakja össze és adja vissza

Hálózati kommunikáció II. - SSL Példa kliens tanúsítvány jelszavának tárolására Jelszó: A1b2C3d4E5f6G7h8 1. Vegyünk egy nevezetes sorozatot, pl. Recamán, Fibonacci 2. Számítsuk ki a letárolandó byte tömb értékeit a következőképpen: 1. T[i] = Sorozat[i] + ASCII(jelszo[i]) 3. Jelszó generálásnál végezzük az előző lépéseket fordítva: 1. PWD[i] = T[i] Sorozat[i] 2. Vegyük a PWD byte tömböt, mint jelszó sztringet 4. Végül, amikor már nincs szükség rá, írjuk felül a memóriában a PWD tömböt.

Authentikált kérések - OTP Authentikált kérések statikus jelszó Dinamikus jelszó + PIN védelem One-Time Password (OTP) mechanizmus HOTP OTP = HOTP_ALG(OTP-kulcs, counter) Azonosítás: userid + OTP Problémák: OTP-kulcs, counter tárolás Brute-force támadás User blokkolás

Authentikált kérések II. - OTP OTP-kulcs tárolás: Fájlban, titkosítva (ECB mód) Titkosítás kulcsa: user PIN + salt Mindez PBKDF2-vel pár 1000x megpörgetve Minden PIN próbálkozásra kapunk OTP-t eredményül Az OTP validálás a szerver dolga Counter tárolása pl. keychain-ben Counter elcsúszás elleni védelem (időablak)

Authentikált kérések III. OTP Brute-force támadás: userid + OTP pár kipörgetése Megoldás: a szerver a userid-t X db sikertelen próbálkozás után blokkolja Következmény: Egy valós user könnyen kiblokkolható néhány fals userid+otp kéréssel

Authentikált kérések IV. - OTP UserID blokkolás kivédése Device-függő kérések Aktuális deviceid generálás + regisztrálás a user-hez DeviceID küldése minden kérésben Authentikált kérés paraméterek: UserID + DeviceID + OTP Következmény: Hibás userid + OTP-vel nem blokkoljuk a user-t X db próbálkozás után Csak a userid-hoz regisztrált deviceid-val fogadható el a kérés

Adatvalidáció Szerver oldalon Kérés feldolgozása Paraméterek vizsgálata Szigorú validációs szabályok Hossz korlátozás, valid karakterek, értékek, regexp, stb. Whitelist alapon Kliens oldalon Ugyanazok a szabályok, mint szerver oldalon Mit validáljunk?: Minden user inputot Minden szerver kérést + választ

Kliens adattárolás Fájl, adatbázis, keychain (ios), memória,? Keychain jó lehet, de! Jailbreak esetén könnyen dumpolható Fájl Egyszerű adatokra, titkosítva Adatbázis Összetett, strukturált adatokra, titkosítva Memória Alkalmazás futása idejéig, ideiglenes adatokra

Kliens adattárolás II. Adatbázis példa Adatbázis: sqlite + sqlcipher Kérdések: Adatbázis kulcs mi legyen? Hol tároljuk az adatbázis kulcsát?

Kliens adattárolás III. DB kulcs Két komponens Szerver oldali kulcsrészlet (Ks) Kliens oldali kulcsrészlet (PIN_hash + salt) DB kulcs: PBKDF2(Ks, PBKDF2(PIN_hash, salt, 4096), 4096) Ks authentikált kérés válaszában kerül a kliensre Töröljük a memóriából, amint nincs rá szükség Tárolandók: Szerver oldalon DB-ben: Ks Kliens oldalon keychain-ben: salt

Jailbreak detekció Nincs tökéletes módszer Néhány népszerű módszer: Bash test - fopen( /bin/bash, r ) Hosts test - fopen( /etc/hosts, a ) FileExistsAtPath tests - @ /bin/apt, @ /usr/sbin/sshd, @ /Applications/Cydia.app Fstab test - stat( /etc/fstab, &sb) result>=0 size!= 80 Shell test - system(0) SignerIdentity test Dyld test Fork test

Memóriavédelem Érzékeny adatokat, amint nincs rá szükség töröljünk Nem elég nil-lé tenni WIPE!!! írjuk felül random értékkel Debugging detekció (PTRACE) void* handle = dlopen(0, RTLD_GLOBAL RTLD_NOW); ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace"); ptrace_ptr(pt_deny_attach, 0, 0, 0); dlclose(handle);

Összegzés Biztonság fontossága Alkalmazásonként változhatnak a biztonsági szintek, igények Legfontosabb védendő területek Felhasználói interakció Hálózati kommunikáció Adattárolás Fizikai védelem Amiről még lehetne beszélni Szerver infrastruktúra védelem Tűzfalszabályok, route-ok Tanúsítvány kiállító működése, konfigurálása Hangkommunikáció titkosítása

Eredmények CryptTalk 2.3.1 2014. november 6. : Ready for Sale Publikus verzió 1 havi ingyenes trial időszak CryptTalk 2.4.0 (Pro verzió) 2014. október 30. : Ready for Sale Üzleti verzió Konferencia funkcióval

Köszönöm a figyelmet! Kapcsolat: Dr. Barabás Péter Director of Software Development peter.barabas@arenim.com +36 70 314 56 57