300 likes | 389 Views
Kapitel 15: Sicherheit. legislative Maßnahmen. organisatorische Maßnahmen. Authentisierung. Zugriffskontrolle. Kryptographie. Datenbank. Datenschutz. Legislative Maßnahmen. Gesetz zum Schutz vor Mißbrauch personenbezogener Daten. Organisatorische Maßnahmen.
E N D
legislative Maßnahmen organisatorische Maßnahmen Authentisierung Zugriffskontrolle Kryptographie Datenbank Datenschutz
Legislative Maßnahmen • Gesetz zum Schutz vor Mißbrauch personenbezogener Daten
Organisatorische Maßnahmen • bauliche Maßnahmen • Pförtner • Ausweiskontrolle • Diebstahlsicherung • Alarmanlage
Authentisierung • Magnetkarte • Stimmanalyse • Fingerabdruck • Passwort • dynamisches Passwort
Zugriffskontrolle durch Berechtigungsmatrix • A (Manager) R R RW • B (Personalchef) RW RW R • C (Lohnbüro) R R - Benutzer Ang-Nr Gehalt Leistung Zugriff (A, Gehalt): R: Gehalt < 10.000 W: Gehalt < 5.000
Zugriffskontrolle durch Sichten • define view v(angnr, gehalt) as • select angnr, gehalt from angest • where gehalt < 3000
Zugriffskontrolle durch Abfrageeinschränkung • deny (name, gehalt) where gehalt > 3000 • + • select gehalt from angest where name = ‘Schmidt‘ • = • select gehalt from angestwhere name = ‘Schmidt‘ and not gehalt > 3000
Statistische Datenbanken • Nur aggregierte Werte erlaubt ! • Obacht ! • select sum (gehalt) from angest • select sum (gehalt) from angestwhere gehalt < (select max(gehalt) from angest)
Zugriffsrechte in SQL-92 • grant { select | • insert | • delete | • update | • references | • all } • on <relation> to <user> [with grant option] • A: grant read, insert on angest to B with grant option • B: grant read on angest to C with grant option • B: grant insert on angest to C • Obacht bei Recht auf Fremdschlüssel: • Probeweises Einfügen kann Schlüssel finden ! • create table Agententest(Kennung character(3) references Agenten)
Revoke-Anweisung • revoke { select | insert | delete | update | references | all } • on <relation> from <user> • B: revoke all on angest from C
Entzug eines Grant • ... als wenn es nie gewährt worden wäre: • A: grant read, insert, update on angest to D • B: grant read, update on angest to D with grant option • D: grant read, update on angest to E • A: revoke insert, update on angest from D • D verliert nur sein insert-Recht (weil update von B erhalten) • E verliert keine Rechte (weil indirekt von B erhalten) • Aber: Falls vorher • A: grant all on angest to B with grant option • D und E verlieren update-Recht
Auditing • audit delete any table • noaudit delete any table • audit update on professoren whenever not successful
Verschlüsselung z76;9#d5%j§öst Selber Atmen Selber Atmen
Caesar-Chiffre Verschiebe Buchstaben im Alphabet z.B. 4 C A E S A R G E I W E V
XOR-Verknüpfung Klartext:010010101110110 Schlüssel: 110 110 110 110 110 Chiffre: 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 Schlüssel:110110110110110 Klartext:010010101110110
Schlüssel e Schlüssel d Klartext x Chiffre y Klartext x encode decode SPION Ablauf
Diffie & Hellman, 1976 decode( ) encode( ) x = x aus der Kenntnis vonencode läßt sich nicht decode ermitteln
Alice Bob encB encB ( ) y Nachricht verschlüsseln encB decB x y := decB ( ) x :=
Caan 456789Cabarena 423477Cadiz 996543Caesar 784513Carter 341123Castrop 458944Capellen 675432Caan 456789Cabarena 423477Cadiz 996543Caesar 784513Carter 341123Castrop 458944Capellen 675432 Einweg-Funktion
Rivest, Shamir, Adleman, 1978: Wähle 2 Primzahlenp,q Bestimmen := p·q Wähle Primzahld relativ prim zu (n) := (p-1) • (q-1) Bestimmeemite·d 1 mod (n) encode(x) := x e mod n decode(y) := y d mod n
Beispiel mit 2-stelligen Primzahlen: p := 11 q := 13 n := 143 d := 23 e := 47 encode(x) := x 47 mod 143 decode(y) := y 23 mod 143
Beispiel mit 200-stelligen Primzahlen: p=89909531058836627717440422858641402456684976683721255300590190073945028024188735646917834001445460697949352415335921952260900528540697407053331179637761895800615635806322855777396006499513330486337609 q=79902175078147244686379339512677276366231220752229356019349893671876420931744377430687365812687754246830101282297574713772455933933867764022563251792393443769903948317050160321698561025532877647684683 n=7183967091857281647581304065755973526232171670874824234027764220263949612908867044764409948013198639812433071661572827626547829385245705289778323945746104767498330122039464149315665206737745079315029030505846196489917568869335544777353689814016451189380595050450835091699231543139661865507163114707749384671493207215643822775585016598035481820024189408851781761294219320404437751888461388903116142947 d=6912880792983134201795097575592609129094117142951732155916113134708061619270609376090284210013866218445930101961895056516397352324585120228774900720850196541261833070428620931661349155515945612960396000308199646278344377562606989931674080238238945773520492076314252906439396129185619926176106618391594863515996066327659034986867136911356014076859406917008870341895680167331429079515342903719787052113 e=32060956321701259905596578736460047365111500078235979150808651783912548293819432597831619829917499109195252931659284324831218397277144058830127546998961582106443297700554088899665948071647548434168832003527652121631893839546797171960967191537076338226340888927287616084554407880875931958510259177246251661227907691999195827804405610391749679780186113
Alice Bob [e , n] e mod n y Nachricht verschlüsseln p , q [d , n] [e , n] x y := x := d mod n
Komplexität • xe mod n • x13 = ((x2•x)2)2 •x • e·d 1 mod (p-1)·(q-1) • ggt (a,b) := ggt(b, a mod b) • (p-1)•(q-1) d • 120 19 • 19 6 • 6 1 • 1 0
Primzahlen • würfel ungerades x (500 Bit) • teste x, x+2, x+4, ... • mittlerer Abstand ln(x) ln(2500) 350 • x ist Zeuge für die Zusammengesetztheit von n • n zusammengesetzt mehr als ¾ n Zeugen • z=0; • repeat z++; würfel x until (x ist Zeuge für n) or (z=50) • Fehler = ¼50 10-30
ln ln (n) encode decode ln (n) n Aber: Faktorisieren von n dauert Schritte ! SPION Sicherheit • Der Spion kennt e, n, y • Faktorisieren von n würde p und q liefern. • Damit könnte er d ausrechnen. • n = 21000 • n0.1 Schritte = 1030 Schritte = 1013 Jahre (bei 109 Schritte/sec)
Reihenfolge vertauschen • decode(encode(x)) = x • = xed mod n • = xde mod n • = encode(decode(x))
Alice Bob encB y Nachricht signieren encB decB decB( ) x y := encB( ) x :=
Und wenn sie nicht gestorben sind, entschlüsseln sie noch heute !