1
Kapitel 15:Sicherheit
Oliver Vornberger
Fachbereich Mathematik/Informatik
Universität Osnabrück
49069 Osnabrück
2
Datenschutz
Datenbank
3
Legislative Maßnahmen
Gesetz zum Schutz
vor Mißbrauch personenbezogener
Daten
4
Organisatorische Maßnahmen
• bauliche Maßnahmen• Pförtner• Ausweiskontrolle• Diebstahlsicherung• Alarmanlage
5
Authentisierung
• Magnetkarte• Stimmanalyse• Fingerabdruck• Paßwort• dynamisches Paßwort
6
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.000W: Gehalt < 5.000
7
Zugriffskontrolle durch Sichten
define view v(angnr, gehalt) as
select angnr, gehalt from angest
where gehalt < 3000
8
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
9
Statistische Datenbanken
Nur aggregierte Werte erlaubt !
Obacht !
select sum (gehalt) from angest
select sum (gehalt) from angestwhere gehalt < (select max(gehalt) from angest)
10
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)
11
Revoke-Anweisung
revoke { select | insert | delete | update | references | all }
on <relation> from <user>
B: revoke all on angest from C
12
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
13
Auditing
audit delete any table
noaudit delete any table
audit update on professoren whenever not successful
14
Verschlüsselung
Selber Atmenz76;9#d5%j§östSelber Atmen
15
Caesar-Chiffre
Verschiebe Buchstaben im Alphabet
G
C A E S A R
E I EW V
z.B. 4
16
Klartext: 010010101110110
1
Schlüssel:
0001
110110110110110
Klartext: 010010101110110
Schlüssel: 110110110110110
Chiffre:
XOR-Verknüpfung
100 1000000
17
Ablauf
encode decodeKlartext x Klartext xChiffre y
Schlüssel e Schlüssel d
SPION
18
Diffie & Hellman, 1976
x
aus der Kenntnis von encode läßt sich nicht decode ermitteln
decode( )encode( ) = x
19
BobAlice
Nachricht verschlüsseln
y :=
encBencBdecB
x
ydecB ( )x :=
encB ( )
20
Einweg-Funktion
Caan 456789Cabarena 423477Cadiz 996543Caesar 784513Carter 341123Castrop 458944Capellen 675432
21
Rivest, Shamir, Adleman, 1978:
Wähle 2 Primzahlen p,q
Bestimme n := p·q
Wähle Primzahl d relativ prim zu (n) := (p-1) • (q-1)
Bestimme e mit e·d 1 mod (n)
encode(x) := x e mod n
decode(y) := y d mod n
22
Beispiel mit 2-stelligen Primzahlen:
p := 11q := 13n := 143d := 23e := 47
encode(x) := x 47 mod 143
decode(y) := y 23 mod 143
23
Beispiel mit 200-stelligen Primzahlen:
p=89909531058836627717440422858641402456684976683721255300590190073945028024188735646917834001445460697949352415335921952260900528540697407053331179637761895800615635806322855777396006499513330486337609
q=79902175078147244686379339512677276366231220752229356019349893671876420931744377430687365812687754246830101282297574713772455933933867764022563251792393443769903948317050160321698561025532877647684683
n=7183967091857281647581304065755973526232171670874824234027764220263949612908867044764409948013198639812433071661572827626547829385245705289778323945746104767498330122039464149315665206737745079315029030505846196489917568869335544777353689814016451189380595050450835091699231543139661865507163114707749384671493207215643822775585016598035481820024189408851781761294219320404437751888461388903116142947
d=6912880792983134201795097575592609129094117142951732155916113134708061619270609376090284210013866218445930101961895056516397352324585120228774900720850196541261833070428620931661349155515945612960396000308199646278344377562606989931674080238238945773520492076314252906439396129185619926176106618391594863515996066327659034986867136911356014076859406917008870341895680167331429079515342903719787052113
e=32060956321701259905596578736460047365111500078235979150808651783912548293819432597831619829917499109195252931659284324831218397277144058830127546998961582106443297700554088899665948071647548434168832003527652121631893839546797171960967191537076338226340888927287616084554407880875931958510259177246251661227907691999195827804405610391749679780186113
24
BobAlice
Nachricht verschlüsseln
y :=
[e , n][e , n]
p , q
[d , n]
x
y d mod nx :=
e mod n
25
Komplexitätxe 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 1919 6
6 11 0
26
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
27
Sicherheit
Der Spion kennt e, n, y
Faktorisieren von n würde p und q liefern.
Damit könnte er d ausrechnen.
encode decode
SPION
ln ln (n)ln (n)
nAber: Faktorisieren von n dauert Schritte !
n = 21000
n0.1 Schritte
= 1030 Schritte = 1013 Jahre (bei 109 Schritte/sec)
28
Und wenn sie nicht gestorben sind,
entschlüsseln sie noch heute !
Top Related