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

Hasonló dokumentumok
Biztonságos hálózati kommunikáció

Titkosítás NetWare környezetben

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

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

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

Sapientia Egyetem, Matematika-Informatika Tanszék.

Vezetéknélküli technológia

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

Hálózati fenyegetettség

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

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

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

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

Data Security: Protocols Integrity

Android Pie újdonságai

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Kriptográfiai alapfogalmak

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Sapientia Egyetem, Matematika-Informatika Tanszék.

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

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

Hálózati biztonság ( ) Kriptográfia ( )

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

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

5.1 Környezet Hálózati topológia

Android Wear programozás. Nyitrai István

RIA Rich Internet Application

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

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

Mobil Informatikai Rendszerek

A RICOH Smart Device Connector felhasználói számára: A készülék konfigurálása

Az adatfeldolgozás és adatátvitel biztonsága. Az adatfeldolgozás biztonsága. Adatbiztonság. Automatikus adatazonosítás, adattovábbítás, adatbiztonság

Hálózati architektúrák és Protokollok GI Kocsis Gergely

Mosolygó Ferenc. Értékesítési Konzultáns.

A SZABÁLYZAT CÉLJA...

Webszolgáltatások (WS)

SSH haladóknak. SSH haladóknak

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Hálózati architektúrák és Protokollok MI 7,8. Kocsis Gergely

Windows biztonsági problémák

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Mobil Informatikai Rendszerek


Adatbiztonság ZH, GaIn

IT hálózat biztonság. A WiFi hálózatok biztonsága

A WiFi hálózatok technikai háttere

Metadata specifikáció

Biztonság a glite-ban

Informatikai Biztonsági Tanúsítási Szervezet. 2/14. sz. Megfelelőségi Tanúsítvány

Számítógépes Hálózatok GY 8.hét

(Cisco Router) Készítette: Schubert Tamás. Site-to-Site VPN/1

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

A JAVA FUTTATÁSAKOR ELŐFORDULÓ HIBA-

A NÉGY BŰVÖS HÁRMAS WWW FTP SQL PHP. BRKK::Békéscsaba Linux rendszergazda képzés 2008

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk. Cserép Máté

ncipher nshield Solo termékismertető

Az intézményi hálózathoz való hozzáférés szabályozása

TANÚSÍTVÁNY TELEPÍTÉSE THUNDERBIRD LEVELEZŐ KLIENSBEN WINDOWS VISTÁN. Tartalom jegyzék

KÖZPONTOSÍTOTT EAP ALAPÚ HITELESÍTÉS VEZTÉK NÉLKÜLI HÁLÓZATOKBAN CENTRALIZED EAP BASED AUTHENTICATION FOR WIRELESS NETWORKS

Számítógépes Hálózatok. 3. gyakorlat

Informatikai alkalmazásfejlesztő alkalmazásfejlesztő Információrendszer-elemző és - Informatikai alkalmazásfejlesztő

Adatbiztonság az okos fogyasztásmérésben. Mit nyújthat a szabványosítás?

PKI és SSL mérés. Crysys Lab - oktatas@crysys.hu szeptember 12.

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

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

Központosított hitelesítés és vállalati címtár megvalósítása (1. rész)

Hálózatok építése, konfigurálása és működtetése EAP - RADIUS

Webalkalmazás-biztonság. Kriptográfiai alapok

Webes alkalmazások fejlesztése 14. fejezet. Szolgáltatások adatkezelése (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

IP alapú kommunikáció. 11. Előadás Hálózat Monitoring/Hálózat Manadgement Kovács Ákos

Osztott alkalmazások fejlesztési technológiái Áttekintés

Socket programozás Példák

Java Programozás 11. Ea: MVC modell

Kommunikáció Androidon Mobilinternet Wifi

Dr. Bakonyi Péter c.docens

Hargitai Zsolt Novell Mo.

Tartalom. 8.1 ISP biztonsági megfontolások 8.2 ISP felelősség 8.3 Szolgáltatói szerződés 8.4 Biztonsági mentések és katasztrófahelyzet helyreállítás

Google Cloud Print útmutató

API tervezése mobil környezetbe. gyakorlat

TANÚSÍTVÁNY. Időbélyegzés szolgáltatás keretén belül: Időbélyegző aláíró kulcsok generálására, tárolására, időbélyegző aláírására;

Számítógépes Hálózatok GY 3.hét

Vodafone-os beállítások BADA operációs rendszer esetében

vezeték nélküli Turi János Mérnök tanácsadó Cisco Systems Magyarország Kft.

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Kliens authentikálás és Form Signing

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

MVC. Model View Controller

Áttekintés a GPG/PGP-ről Mohácsi János NIIF Intézet

Vodafone-os beállítások Android operációs rendszer esetében

Elektronikus aláírás. Gaidosch Tamás. Állami Számvevőszék

Gyakran Feltett Kérdések. a CIB Bank Zrt. ecommerce internetes kártyaelfogadás szolgáltatásáról

Objektum-orientált tervezés

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

Molnár Gábor Zalatnay Zsolt

Átírás:

Tamas Balogh Tech lead @ AutSoft

Key Reinstallation AttaCK 2017 őszi sérülékenység Biztonsági rés a WPA2 (Wi-Fi Protected Access) protokollban Nem csak Androidon - más platform is Minden Android eszköz, amin a wifi be van kapcsolva Kulcskezelési sérülékenység a handshake során Sokkal könnyebben kikövetkeztetni a titkostáshoz használt kulcsot

Key Reinstallation AttaCK Az Android 6.0 és felett egy speciális implementációs hiba Kikényszeríthető a teljes nulla kulcs Sérülékenységek - Titkosítás teljes visszafejtése - Üzenetek újra játszása - TCP session lopás - HTTP tartalom beszúrás Android Security Bulletin - 2017 November 6.

Mit tehetünk? Az Alkalmazás fejlesztője nem tudja ezeket kijavítani Főként kernel szintű modulban vannak hibák A Google kiadja a javításokat...... na de az eszköz gyártók milyen gyorsak? További biztonsági rétegek hozzáadása (pl. HTTPS) Fontos tisztába lenni a platform sérülékenységeivel

HTTPS HTTP + Transport Layer Security TLS: Transport réteg HTTP: Application réteg Mi a helyzet a GET paraméterekkel? Titkosított, de a szerver logolja! http://nhprice.com/what-is-ios-model- the-overall-explanation-of-ios-7- layers.html

Transport Layer security Legutóbbi verzió: TLS 1.2 Androidon nagyon fragmentált Supported vs Enabled https://developer.android.com/reference/javax/net/ssl/sslsocket.html

A TLS 1.2 kikényszerítése class ForceTlsSocketFactory @Throws(KeyManagementException::class, NoSuchAlgorithmException::class) constructor(val internalsslsocketfactory: SSLSocketFactory) : SSLSocketFactory() { @Throws(IOException::class) override fun createsocket(): Socket { return enabletlsonsocket(internalsslsocketfactory.createsocket()) //... private fun enabletlsonsocket(socket: Socket?): Socket { if (socket!= null && socket is SSLSocket) { socket.enabledprotocols = arrayof("tlsv1.2") return socket!!

Példa OkHttp 3-al val builder = ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) // For below API 16 use TLS 1.0 if (FORCE_TLS_1_2) { if (Build.VERSION.SDK_INT >= 16) { builder.tlsversions(tlsversion.tls_1_2) if (Build.VERSION.SDK_INT >= 20) { builder.tlsversions(tlsversion.tls_1_2) val client = OkHttpClient.Builder().connectionSpecs(listOf(builder.build())).build()

Android verziók https://developer.android.com/about/dashboards/index.html

TLS - Cipher Suitok TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS - Definiálja, hogy TLS/SSL ECDHE Kulcs-csere protokoll RSA Résztvevő felek azonosítási protokollja AES_256_GCM Blokk rejtjelező/kulcs méret/blokk mód SHA384 Üzenet integritás ellenőrző protokoll

TLS - Cipher Suitok https://developer.android.com/reference/javax/net/ssl/sslsocket.html

Cipher Suitok Példa OkHttp-vel //Not secure enough, but compatible - OkHttp Docs: The following ciphers are on the HTTP/2's bad cipher suites list if (Build.VERSION.SDK_INT >= API_LEVEL_11) { builder.ciphersuites( CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) //Secure - Chrome 51 supports if (Build.VERSION.SDK_INT >= API_LEVEL_20) { builder.ciphersuites( CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) //Secure - Chrome 51 supports if (Build.VERSION.SDK_INT >= API_LEVEL_24) { builder.ciphersuites( CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256)

TLS - Cipher Suitok A sikeres kommunikációhoz a szervernek is támogatnia kell a megfelelő TLS verziót és CipherSuitot, a kliens által definiált halmazzal metszete kell legyen. Több találat esetén a szerver sorrend dönt! Tesztelhető NMAP-al: nmap -sv --script ssl-enum-ciphers -p 443 hostname

TLS - Cipher Suitok

TLS - Azonosítás Aszimmetrikus kriptográfia - Védelem a Man-in-the-middle támadásokkal szemben Tanúsítvány Gyakorlatilag a szerver publikus kulcsa és meta-adatai aláírva (1) Tanúsító hatóság által aláírt tanúsítvány CA felel érte CA-nél regisztrálva van, és tanúsítja (2) Self-signed certificate Szerver adminisztrátor készíti, másnál nincs meg, saját magát tanúsítja Alapértelmezetten kivételt eredményez..

TLS Certificate pinning Azért használjuk hogy biztosan a megfelelő féllel kommunikáljuk A szerver tanúsítványt (vagy annak lenyomatát) az alkalmazásba tesszük Kommunikáció során ezt használjuk a validálásra. Hogyan szerezzük meg ezt a tanúsítványt? echo openssl s_client -connect hostname:443 2>&1 sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p > hostname.pem Az Android csak BKS-V1 tanúsítványokat fogadja el a régebbi verziókban, használjuk a Portecle alkalmazást, hogy PEM ből BKS-V1 be alakítsunk.

TLS Certificate pinning

TLS Certificate pinning private fun gettrustmanagers(context: Context, keystorefile: Int, keystorepassword: String): Array<TrustManager> { val trusted = KeyStore.getInstance("BKS") val rawresource = context.resources.openrawresource(keystorefile) trusted.load(rawresource, keystorepassword.tochararray()) val trustmanagerfactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) trustmanagerfactory.init(trusted) return trustmanagerfactory.trustmanagers

TLS Certificate pinning @Throws(KeyStoreException::class, CertificateException::class, NoSuchAlgorithmException::class, IOException::class, KeyManagementException::class) fun getpinnedcertsocketfactory(context: Context, keystorefile: Int, keystorepassword: String, forcetls12: Boolean): SSLSocketFactory { val trustmanagers = gettrustmanagers(context, keystorefile, keystorepassword) val sslcontext = SSLContext.getInstance("TLS") sslcontext.init(null, trustmanagers, null) var socketfactory = sslcontext.socketfactory if (forcetls12 && Build.VERSION.SDK_INT in 16..19) { socketfactory = ForceTlsSocketFactory(sslContext.socketFactory) return socketfactory

Referenciák http://nhprice.com/what-is-ios-model-the-overall-explanation-of-ios-7-layers.html https://developer.android.com/reference/javax/net/ssl/sslsocket.html https://developer.android.com/about/dashboards/index.html http://square.github.io/okhttp/ github.com/baloghtamas balogh.tamas@autsoft.hu

Kérdések? Köszönöm a figyelmet! github.com/baloghtamas balogh.tamas@autsoft.hu