Software- und Systemsicherheit. Kurt Stenzel



Ähnliche Dokumente
Herzlich willkommen. Programmieren von Java-Smartcards

Programmierung von Smart Cards mit Hilfe von Java

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets-

Java: Vererbung. Teil 3: super()

Applet Firewall und Freigabe der Objekte

CLX.Sentinel Kurzanleitung

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Download unter:

Java Kurs für Anfänger Einheit 5 Methoden

Digi Vox Ultimate Pro

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Wie Sie mit Mastern arbeiten

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Anleitung zur Installation und Freischaltung der Signaturlösung S-Trust für Mitglieder der Rechtsanwaltskammer des Landes Brandenburg

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Anleitung über den Umgang mit Schildern

Übung - Konfigurieren einer Windows-XP-Firewall

Hinweise zur Inbetriebnahme der FMH-HPC auf Windows 7. Version 4,

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Online bezahlen mit e-rechnung

Installation OMNIKEY 3121 USB

Version 0.3. Installation von MinGW und Eclipse CDT

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Erste Vorlesung Kryptographie

Anleitung zum Öffnen meiner Fotoalben bei web.de

KvBK: Basic Authentication, Digest Authentication, OAuth

Karten-Freischaltung mit dem UNLOCK MANAGER

Informatik für Ökonomen II HS 09

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Übung - Datensicherung und Wiederherstellung in Windows 7

Kompatibilitätsmodus und UAC

FTP-Leitfaden RZ. Benutzerleitfaden

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Energieeffiziente Empfänger in Sensornetzwerken

Kryptographie in der Moderne

Herzlich willkommen auf unserer Internet-Seite über Ganztags-Schulen. Hier finden Sie folgende Informationen in Leichter Sprache:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Zeitstempel für digitale Dokumente. Ein neuer Dienst in der DFN-PKI

2. Konfiguration der Adobe Software für die Überprüfung von digitalen Unterschriften

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Was meinen die Leute eigentlich mit: Grexit?

Handbuch zur Installation der Software für die Bürgerkarte

Windows 10 > Fragen über Fragen

EARSandEYES-Studie: Elektronisches Bezahlen

Empfohlene Sicherheitsmaßnahmen aus Sicht eines Betreibers. Wien,

How to install freesshd

Konfiguration IKMZ / Universitätsrechenzentrum des Cisco VPN-Clients v3.6 Netze und Datenkommunikation

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

RIZIV INAMI - LIKIV. eid-anleitung für PC

Einführung in die Programmierung

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Verwendung des IDS Backup Systems unter Windows 2000

Techniken der Projektentwicklungen

Updatehinweise für die Version forma 5.5.5

Wireless LAN PCMCIA Adapter Installationsanleitung

AutoTexte und AutoKorrektur unter Outlook verwenden

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

Gebundene Typparameter

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Online Messe Kartensicherheit

Schritt 1: Auswahl Schritt 3 Extras > Konten Schritt 2: Konto erstellen Konto hinzufügen klicken

1 Vom Problem zum Programm

mysoftfolio360 Handbuch

Installation der SAS Foundation Software auf Windows

17 Ein Beispiel aus der realen Welt: Google Wallet

Was tun, vor der Installation? Betriebssystem & Hardware Kontrolle

Installationsanleitung für S-TRUST Wurzelzertifikate

Da unser Girokonto kostenlos ist, können Sie sich woanders etwas mehr gönnen.

Programmieren in Java

Fotostammtisch-Schaumburg

Einführung in die Java- Programmierung

Die Vielfalt der Remote-Zugriffslösungen

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Übung - Datensicherung und Wiederherstellung in Windows Vista

FTP-Leitfaden Inhouse. Benutzerleitfaden

PLEXTALK Pocket PTP1 Tutorial - Podcast-Empfänger -

ANLEITUNG NETZEWERK INSTALATION

Gruppenrichtlinien und Softwareverteilung

OP-LOG

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Buchen eines Webinars

Datenabgleich. Meine Welt auf einen Blick erleben.

A1 -Einstellungen Outlook 2013

Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt

Meine Welt auf einen Blick erleben.

Xesar. Die vielfältige Sicherheitslösung

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Einrichten eines Exchange-Kontos mit Thunderbird

Grundlagen der Informatik

Transkript:

Software- und Systemsicherheit Kurt Stenzel

Herzlich willkommen zur integrierten Vorlesung und Übung Software- und Systemsicherheit im Wintersemester 2011/2012 Kurt Stenzel, Nina Moebius, Marian Borek Software- und Systemsicherheit: Einführung 2

Kapitel 1: Einführung Worum geht es in der Vorlesung? Organisatorisches Zum Titel: Heute: Software- und Systemsicherheit Früher: Programmieren von Java Smart Cards Software- und Systemsicherheit: Einführung 3

Meldungen von August 2011 Trügerische Sicherheit: Hacker missbrauchen gestohlene SSL- Zertifikate Falscher Helfer: Antivirensoftware "Open Cloud Antivirus" ist Scareware Frontalangriff: Windows-Wurm "Morto" nutzt schwache Passwörter aus Spiel mit dem Datenschutz: Sicherheitslücken bei Browsergame-Anbieter Zynga Microsoft schließt 15 Sicherheitslücken: Windows, Office und Server-Software betroffen Bewegungsmelder: Smartphone-Beschleunigungssensor zeichnet Tastatureingaben auf GPRS-Verbindungen leicht abhörbar Kaspersky-Studie: Adobe Software größtes Sicherheitsrisiko Profi-Hacker spionieren weltweit im großen Stil Regierungen und Industrie aus EC-Karten Skimming im Baumarkt Software- und Systemsicherheit: Einführung 4

IBM Security Report für 2010 Ungepatchte Lücken Ende 2010: 44 % Software- und Systemsicherheit: Einführung 5

Meldungen vom 24.8.2010 Durch den integrierten RF-Chip kann man den elektronischen Personalausweis in Zukunft auch als Ausweis im Internet verwenden, dazu dient die so genannte eid-anwendung. Die Verbindung von integriertem Chip und zusätzlicher PIN-Abfrage sei bei Online-Transaktionen ein deutlicher Sicherheitsgewinn gegenüber dem heute üblichen Verfahren von Username und Passwort. German goverment ID already cracked Surely this is some sort of record. Software- und Systemsicherheit: Einführung 6

Gliederung 1. Was sind Smart Cards? 2. Beispiel: Kopierkarte 1. Aufgabe 2. Design 3. Programmierung 3. Kryptographische Protokolle 4. Sicherheitseigenschaften Software- und Systemsicherheit: Einführung 7

Was ist eine Smart Card? ein kleiner Computer ein sicherer Datenspeicher ein ICC: integrated circuit card ein tamper-proof device ein Ärgernis (?) ein Zwangsmittel (?) Software- und Systemsicherheit: Einführung 8

Wo kommen Smart Cards vor? Bankkarten Reisepass Personalausweis SIM Karten TV desktop box Autoschlüssel Software- und Systemsicherheit: Einführung 9

Smart Cards 8/16 Bit CPU 32 K ROM 16-64 K EEPROM 0,5-4 K RAM 5 Mhz Takt 9600 55800 Bit/sec Datenübertragung 1024 Bit RSA, 3-DES Software- und Systemsicherheit: Einführung 10

Bedeutung von Smart Cards 2010: 6 Milliarden Smart Cards ausgegeben, davon 4 Milliarden SIM Karten 1 Milliarde Banking/Payment Karten epass: 200 Millionen bisher ausgegeben von 79 Ländern, 750 Millionen in Zukunft Deutschland: 6 Mio. Personalausweise (seit 1.11.2010), Gesundheitskarte (irgendwann), in Zukunft 70 Mio, Bankkarten (80 Mio) Prognose für 2020: 20 Milliarden pro Jahr ausgegeben Java Smart Cards: 1998-2011: 8 Milliarden ausgegeben 2010: 2 Milliarden ausgegeben Software- und Systemsicherheit: Einführung 11

Beispiel: Auftrag: Realisieren Sie eine Universitätskopierkarte Laden von Punkten an einem Automaten gegen Geld Abbuchen von Punkten an den Kopierern Realisierung mit Java Smart Cards Vision: Kostenersparnis, bequemer für den Nutzer, Integration mit anderen Anwendungen, weniger Betrug Software- und Systemsicherheit: Einführung 12

Lösung 1 Laden T C Load + n C T Ok Abbuchen T C Pay + n C T Ok T: Terminal, C: Card, n: Anzahl Punkte, +: Konkatenation Alles spezifiziert? Jetzt programmieren? Software- und Systemsicherheit: Einführung 13

Lösung 2 Kommunikation mit APDUs: Load: 00 04 00 00 02 data (data: Anzahl zu ladende Punkte als short) Applet AID: 3d 5f 61 60 00 00 00 20 ff ac 00 00 00 01 value: auf der Karte gespeicherte Punkte als short Antwort: ISO7816.SW_WRONG_LENGTH falls #data 2 ISO7816.SW_DATA_INVALID falls data < 0 ISO7816.SW_DATA_INVALID falls data + value > 50000 ISO7816.SW_OK sonst Software- und Systemsicherheit: Einführung 14

Java Card Programmierung Im Prinzip wie Java, aber: Keine Strings, keine Integer Keine garbage collection Komplett andere API total anderer Programmierstil Software- und Systemsicherheit: Einführung 15

CopyCard Applet import javacard.framework.*; public class CopyCard extends Applet { final static byte LOAD = 4; final static byte PAY = 6; short value = 0; public static void install(byte[] bar, short off, byte len) { new CopyCard(); } CopyCard() { register(); } Software- und Systemsicherheit: Einführung 16

CopyCard Applet public void process(apdu apdu) throws ISOException { switch(apdu.getbuffer()[iso7816.offset_ins]) { case LOAD: load(apdu); return; case PAY: pay(apdu); return; case ISO7816.INS_SELECT: return; default: ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED); } } Software- und Systemsicherheit: Einführung 17

CopyCard Applet private void load(apdu apdu) throws ISOException { short len = apdu.setincomingandreceive(); if (len!= 2) ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); byte[] buffer = apdu.getbuffer(); short val = Util.getShort(buffer,ISO7816.OFFSET_CDATA); if (val < 0 (short)(val + value) > (short)50000 ) } ISOException.throwIt(ISO7816.SW_DATA_INVALID); value += val; private void pay(apdu apdu) throws ISOException { } Software- und Systemsicherheit: Einführung 18

Ist die Anwendung sicher? Software- und Systemsicherheit: Einführung 19

Ist die Anwendung sicher? Problem: Man kann selbst Punkte laden (mit Kartenleser und geeignetem Programm). Man kann eine gefälschte Karte verwenden. Ziel: Sichere Anwendung Lösung: Kryptographische Protokolle Software- und Systemsicherheit: Einführung 20

Die sichere CopyCard challenge : Zufallszahl hash = hash(instruction, secret, challenge, value) Software- und Systemsicherheit: Einführung 21

Software- und Systemsicherheit: Einführung 22

Alles klar, oder? Security protocols are three line programs that people still manage to get wrong (Roger Needham) Needham-Schroeder Protokoll (1978) 1. A B A, B, {Na, A}PK(B) 2. B A B, A, {Na, Nb}PK(A) 3. A B A, B, {Nb}PK(B) 1. A B A, B, {Na, A}PK(B) 2. B A B, A, {Na, Nb, B}PK(A) 3. A B A, B, {Nb}PK(B) PK(A): Public Key von A Na: Zufallszahl (Nonce) { }K: Verschlüsseln mit K Denning 1981: unsicher Burrows et.al. 1989: sicher Lowe 1995: unsicher Software- und Systemsicherheit: Einführung 23

Alles klar, oder? 2008: Schwächen des RFID-Systems Mifare Classic bestätigt. 2008: Microsoft patcht SMB-Reflection Lücke nach 7 (12) Jahren. 2009: Authentication Gap in TLS Renegotiation 2010: Chip and PIN is broken. (Ross Anderson) Software- und Systemsicherheit: Einführung 24

Was heißt eigentlich sicher? Kopierkarte: Interessen Universität 1. Punkte nicht fälschbar und nicht kopierbar 2. Wert der Kopien eingenommenes Geld 3. Kontrolle der Benutzer Kunde 1. Wert der Kopien eingenommenes Geld 2. Bei Kartenverlust kein Punkteverlust 3. Karte unbenutzbar für Diebe 4. Anonymität Software- und Systemsicherheit: Einführung 25

Risikoanalyse Angreifer (Motivation) kostenlos kopieren hoch billiger kopieren hoch auf Kosten anderer kopieren hoch Anwendung unbrauchbar machen gering andere Benutzer schädigen gering Was, wenn doch? (Schaden) eine Karte gehackt gering alle Karten hackbar mittel Anwendung unbrauchbar hoch andere Benutzer geschädigt gering Software- und Systemsicherheit: Einführung 26

Ihre Aufgabe Entwicklung von Java Smart Card Anwendungen (Analyse und) Design der Anwendung Festlegung der Sicherheitseigenschaften Entwurf der kryptographischen Protokolle Programmierung der Karte mit Java Card Programmierung des Terminals mit Java Software- und Systemsicherheit: Einführung 27

Vorlesung 1. Einführung (heute) 2. Smart Cards (und Standards) 3. Kommunikation mit der Karte (APDUs) 4. Java Card, API, short-arithmetik 5. Kryptographie (1): DES, Nonces, Hashes 6. Krypto-Protokolle 7. Kryptographie (2): RSA, Signaturen, mehr Protokolle 8. Angriffe auf Smart Cards Software- und Systemsicherheit: Einführung 28

Ablauf Betreutes Arbeiten am Rechner in 3017 N Zusätzlich selbstständiges Arbeiten Software: SmartCafe Toolkit, Eclipse, Windows Arbeiten im Zweierteam Vier Aufgaben: MasterMind, Unsigned, Purse, Eticket Im Semester Meilensteine, Abnahme am Ende 8 Leistungspunkte (Bereich Softwaretechnik) neue POs: Master Anmeldung: Jetzt Software- und Systemsicherheit: Einführung 29