mtc2011 enterprise class security für android-apps-fujita

36
© Zühlke 2011 Masanori Fujita Masanori Fujita Enterprise-class Security für Android-Apps

Upload: zuehlke

Post on 22-Nov-2014

643 views

Category:

Technology


0 download

DESCRIPTION

Android-Apps für den Unternehmenseinsatz sind speziell. Auf der einen Seite laden Flexibilität und Offenheit zur Umsetzung vieler interessanter Features ein. Auf der anderen Seite sind Enterprise-Apps häufig direkt in den Geschäftsprozess der Unternehmen eingebettet und greifen auf Anwendungen im Backend zu, deren sensible Daten nicht in fremde Hände geraten dürfen. Wie handhabt man unter diesen Umständen die robuste und sichere Synchronisation von Daten? Wie legt man diese sicher auf mobilen Endgeräten ab? Was ist bezüglich Authentifizierung und Autorisierung zu beachten? Der Vortrag beleuchtet Stärken und Schwächen der Android-Plattform, stellt sicherheitsrelevante Frameworks vor und behandelt Architekturansätze für den sicheren Einsatz von Android-Apps im Enterprise-Umfeld.

TRANSCRIPT

Page 1: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Masanori Fujita

Masanori Fujita

Enterprise-class Security für Android-Apps

Page 2: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Softwarelösungen, Produktinnovationund Managementberatung

Wir beraten, entwickeln und integrieren aufgabengerecht –mit überzeugender Qualität und Wirtschaftlichkeit.

• Mehr als 7000 Projekte in Europa realisiert

• 50 Mio. EUR Umsatz (2010)

• 400 Mitarbeiter (Ende 2010)

• In Deutschland, Grossbritannien, Österreich und in der Schweiz

• Gründung 1968, im Besitz von Partnern

• ISO 9001 und 13485 zertifiziert

Eine Idee mehr. Und Zühlke. 4. März 2011 Folie 2

Page 3: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Consulting – Development – Integration

Softwarelösungen

• Realisieren von Individuallösungen

• Entwicklungsunterstützung

• Methodische Beratung

Fokus-Themen

• M2M-Lösungen

• Enterprise Integration

• Mobile Anwendungen

• Software-Entwicklungsprozesse

• Projektmanagement

Eine Idee mehr. Und Zühlke. 4. März 2011 Folie 3

Page 4: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Unsere Protagonisten

• Tätig als Vertreter für zwei sehr unterschiedliche Versicherungen

•Mobile Vertriebsplattformen sind ein Thema

Foto von Hans

Enterprise-class Security für Android-Apps | Masanori Fujita 13. September 2011 Folie 4

Image: Ambro / FreeDigitalPhotos.net

Image: photostock / FreeDigitalPhotos.net

Hans

Peter

Page 5: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Die Aufnummersicher Versicherung

• Setzt auf traditionelle Werte und Seriosität

• Zielgruppe: Familien und Senioren in ländlichen Regionen

• Persönliche Beratung beim Kunden zu Hause

• Konservative IT-Politik

•Mobile Lösungen werden sehr kritisch beobachtet. Bisher nur Konzepte.

Enterprise-class Security für Android-Apps | Masanori Fujita 13. September 2011 Folie 5

Foto von Hans

Image: photostock / FreeDigitalPhotos.net

Image: xedos4 / FreeDigitalPhotos.net

Page 6: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Die Einfachsicher Versicherung

• Setzt auf einfache, klare Produkte

• Zielgruppe: junge Arbeitnehmer in Städten

• Beratung in der Kaffeepause beim Starbucks in der Stadt

• Das Tablet wird als zeitgemäßes Instrument für den Vertrieb gesehen.

Enterprise-class Security für Android-Apps | Masanori Fujita 13. September 2011 Folie 6

Image: Ambro / FreeDigitalPhotos.net

Image: Salvatore Vuono / FreeDigitalPhotos.net

Page 7: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Lösungsarchitektur der Einfachsicher

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 7

HTTPS

� Peters Kunden� Verträge von Peters Kunden� Alle Tarife der Gesellschaft

Authentifizierung mit User + Passwort

Web-Service für die mobile Anwendung

Backendsystem Bestandsverwaltung

Gerät loggt sich automatisch ein

Page 8: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

HTTPS korrekt nutzen

• Automatische Verifikation der Zertifikate bei bekannten Ausstellern

• Bei selbst-signierten Server-Zertifikaten „not trusted server“-Fehler

• Manueller Import von Zertifikaten

• Man bringt Android dazu, jedes Zertifikat zu akzeptieren (X509TrustManager-Hack)

• Zertifikat als Ressource in die App einbinden

Enterprise-class Security für Android-Apps | Masanori Fujita 13. September 2011 Folie 8

Image: twobee / FreeDigitalPhotos.net

Page 9: Mtc2011 enterprise class security für android-apps-fujita

Peter verliert das Gerät.

Image: Sura Nualpradid / FreeDigitalPhotos.net

Page 10: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Aufnummersicher will es besser machen.

„Wir wollen den Vertrieb modernisieren. Trotzdem gilt für die Vertriebsinstrumente die gleiche Devise wie auch für unsere Produkte: Wir gehen auf Nummer sicher.“

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 10

Der IT-Vorstand

Page 11: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Security-Aspekte

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 11

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Vertraulichkeit wahren, d.h. Unbefugten den Zugriff

verweigern

Unverfälschtheit von Informationen sicherstellen

Kontrolle über die zu schützende Information

behalten

Nutzbarkeit der Information sicherstellen

Verfügbarkeit der Information sicherstellen

Quelle der Information verifizieren

Page 12: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Problemanalyse EinfachSicher

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Folie 12

Page 13: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Gerät vor unbefugtem Zugriff schützenVerfügbare Produkte

Google Apps Device Policy

• Passwortabfrage erzwingen

• Komplexer Passwörter erzwingen

• Remote Wiping

• PIN zurücksetzen

• Gerät klingeln lassen

• Gerät sperren

• Gerät orten

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 13

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 14: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Gerät vor unbefugtem Zugriff schützenAndere Mobile Device Management Produkte

• Zenprise Mobile Manager

• Symantec Mobile Management

• Sybase Afaria

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 14

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 15: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Gerät vor unbefugtem Zugriff schützenEinfacher, aber wirksamer Schutz

Gelegenheit macht Diebe…

…aber noch lange keine Datenspione.

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 15

Image: digitalart / FreeDigitalPhotos.net

Page 16: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Security Modell von Android

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 16

Kernel

ProzessApp 1

ProzessApp 2

ProzessApp 3

Dalvik VM Dalvik VM Dalvik VM

Internal Storage Content Provider

SD-Karte

App Code App Code App Code

Native Code

UID A UID B UID C

Page 17: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Anwendungen richtig designenIntents für IPC

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 17

App 1 App 2

Activity 1

Activity 2

Activity 3

App 3

Activity 4

Service

App 4

Activity 5

Broadcast

?

Page 18: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Anwendungen richtig designenPermissions und Protection Levels

Protection Levels:

• normal

• dangerous

• signature

• signatureOrSystem

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 18

<permissionxmlns:android="http://schemas.android.com/apk/res/android"android:name="com.zuehlke.ACCESS_CUSTOMER_DATA"android:description="@string/access_customer_data_desc"android:protectionLevel="normal" android:label="@string/access_customer_data_label"></permission>

<uses-permissionandroid:name="com.zuehlke.ACCESS_CUSTOMER_DATA "></uses-permission>

Permissions definieren

Permissions nutzen

Image: nuttakit / FreeDigitalPhotos.net

Page 19: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Anwendungen richtig designenPermissions richtig einsetzen

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita

App 1 App 2

Activity 1

Activity 2

Activity 3

App 3

Activity 4

Service

App 4

Activity 5

Broadcastexportiert

Intent-Filter, aber keine Permission

keine Signaturprüfung

keine Empfänger-Permission

?

Folie 19

enthält sensible Daten

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 20: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Rooting – Security ausgehebelt

• OS ist Open Source

• viele OSS 3rd-Party-Bibliotheken

• Freundlicher Bootloader

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 20

Freier Zugriff auf:

• Internal Storage

• Content Provider

• PasswörterImage: Jomphong / FreeDigitalPhotos.net

Page 21: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Daten verschlüsselt ablegen

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 21

Persistenzschicht

Internal Storage / SD Card

Vers-/Entschlüsselung

Algorithmen:AES, 3DES, DES

ABC DEFGHI JKL

### $$$??? %%%

SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");

Cipher cipher = Cipher.getInstance("AES");

cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);

byte[] encrypted = cipher.doFinal(clearBytes);

Page 22: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Verschlüsselte Datenbanken

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita

ID Feld 2 Feld 3

1 A B

2 C D

3 E F

Persistenzschicht

ID Feld 2 Feld 3

1 ### ###

2 ### ###

3 ### ###

Vers-/Entschlüsselung

Folie 22

Probleme:

• Komplexe Abfragen nicht mehr möglich

• Großer Performance-Overhead

Page 23: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Verschlüsselte Datenbanken

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 23

ID Feld 2 Feld 3

1 A B

2 C D

3 E F

Persistenzschicht

ID Feld 2 Feld 3

1 ### ###

2 ### ###

3 ### ###

Vers-/Entschlüsselung

Internal Storage / SD Card

### $$$??? %%%

### $$$??? %%%

### $$$??? %%%

Page 24: Mtc2011 enterprise class security für android-apps-fujita

Und wohin mit dem Schlüssel?

Image: jannoon028 / FreeDigitalPhotos.net

Page 25: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Passwortabfrage beim Öffnen der App

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 25

Image: Nutdanai Apikhomboonwaroot / FreeDigitalPhotos.net

Achtung:Usability-Killer!

Page 26: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Schlüssel in einem Service vorhalten

• fragt Passwort bei Bedarf ab

• hält Schlüssel innerhalb des Services als Variable

• Service vor unbefugtem Zugriff absichern!

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 26

Service

Anfrage

Prompt bei Bedarf

Schlüssel

Activity

Activity

Activity

Page 27: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Überlassen wir es doch dem GerätDevice Level Encryption

Ab Android 3.0:

Transparente Verschlüsselungmit dm-crypt

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 27

Droid Pro

Galaxy S II

Vor Android 3.0:

Hersteller-spezifische Lösungen

z.B. Motorola, Samsung

Page 28: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Auf lokale Persistenz verzichten

Daten immer vom Server abrufen

Mobile Web-App

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 28

Datenhaltung im Speicher

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 29: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Die Welt von der anderen Seite

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 29

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 30: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Einloggen über den AccountManager

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 30

Sehr praktisch, aber…• Credentials werden in Plaintext in einer SQLite-Datenbank gespeichert

• Nach Rooten sind die Credentialszugreifbar

� Mit Auth-Tokens arbeiten!

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 31: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Client-Zertifikate

• SSL-Verbindungen mit Client-Zertifikat möglich

• Private/Public-Key im Keystore nötig

• Private-Key mit Passwort schützen

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 31

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Wirklich sicherer?

Page 32: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

VPN

Out-of-the-box werden unterstützt:

• PPTP

• L2TP

• L2TP mit IPSec und Shared Key

• L2TP mit IPSec und Zertifikaten

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 32

Confidentiality

Availability

Authenticity

Utility

Control

Integrity

Page 33: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Die neue Lösung von EinfachSicher

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 33

SSL

� Peters Kunden� Verträge von Peters Kunden� Alle Tarife der Gesellschaft

Passwortschutzper Policy erzwungen,

Bildschirmsperre nach 3 min MDM,Authentifizierungmit User + Passwort,Auth-Token-Verwaltung

Web-Service für die mobile Anwendung

Backendsystem Bestandsverwaltung

Auth-Token Verschlüsselte Datenhaltung

Page 34: Mtc2011 enterprise class security für android-apps-fujita

© Zühlke 2011

Die Lösung von Aufnummersicher

13. September 2011Enterprise-class Security für Android-Apps | Masanori Fujita Folie 34

VPN (L2TP, IPSec m. CRT)

Einheitliche Geräte,Dev. Level Encryption, Passwortschutzper Policy erzwungen,Bildschirmsperre sofort MDM, mobile Web-App

Authentifizierungmit User + Passwort

Mobile Web-App

Backendsystem Bestandsverwaltung

Keine lokale Datenhaltung

Page 35: Mtc2011 enterprise class security für android-apps-fujita

Wer hat also Recht?

Image: renjith krishnan / FreeDigitalPhotos.net

Page 36: Mtc2011 enterprise class security für android-apps-fujita

Security ist mit Trade-Offs verbunden.Image: Danilo Rizzuti / FreeDigitalPhotos.net

Confidentiality

Usability

Performance

AvailabilityIntegrity

AuthenticityUtility