vault backup: 2023-06-21 20:57:03

This commit is contained in:
2023-06-21 20:57:03 +02:00
parent 378b93d3d5
commit 2c8f86cc30
8 changed files with 573 additions and 16 deletions

View File

@@ -49,7 +49,7 @@
"state": {
"type": "pdf",
"state": {
"file": "English/Matters Technik - IT Matters 3rd EditionB1B2 - Englisch Für IT-Berufe Schülerbuch (Isobel E. Williams) (Z-Library).pdf"
"file": "Informationssicherheit/Ueb9/UEB 09.pdf"
}
}
}
@@ -128,7 +128,7 @@
"state": {
"type": "backlink",
"state": {
"file": "English/Matters Technik - IT Matters 3rd EditionB1B2 - Englisch Für IT-Berufe Schülerbuch (Isobel E. Williams) (Z-Library).pdf",
"file": "Informationssicherheit/Ueb9/UEB 09.pdf",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -145,7 +145,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "English/Matters Technik - IT Matters 3rd EditionB1B2 - Englisch Für IT-Berufe Schülerbuch (Isobel E. Williams) (Z-Library).pdf",
"file": "Informationssicherheit/Ueb9/UEB 09.pdf",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -168,7 +168,7 @@
"state": {
"type": "outline",
"state": {
"file": "English/Matters Technik - IT Matters 3rd EditionB1B2 - Englisch Für IT-Berufe Schülerbuch (Isobel E. Williams) (Z-Library).pdf"
"file": "Informationssicherheit/Ueb9/UEB 09.pdf"
}
}
},
@@ -231,8 +231,18 @@
},
"active": "f9cf9fea491fdc42",
"lastOpenFiles": [
"English/KW21.md",
"Informationssicherheit/Ueb9/UEB 09.md",
"Informationssicherheit/Ueb9/UEB 09.pdf",
"English/Matters Technik - IT Matters 3rd EditionB1B2 - Englisch Für IT-Berufe Schülerbuch (Isobel E. Williams) (Z-Library).pdf",
"Informationssicherheit/Ueb9",
"Informationssicherheit/Ueb6/white1-4015396961.webp",
"Informationssicherheit/Ueb6/white2.jpg",
"Informationssicherheit/Ueb7/07-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb7/Ueb07.md",
"Informationssicherheit/Ueb7",
"Informationssicherheit/UEB8/UEB08.md",
"Informationssicherheit/UEB8",
"English/KW21.md",
"Informationssicherheit/Ueb6/06-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb6/Ueb 6.md",
"Informationssicherheit/Ueb5/new UEB5.md",
@@ -240,14 +250,9 @@
"Informationssicherheit/Ueb5/05-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb4/04-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb5/Ueb5.md",
"Informationssicherheit/Ueb4/Ueb4.pdf",
"Informationssicherheit/Ueb4/Ueb4.md",
"Mathe/KW20/KW20-VekRau_vor.pdf",
"Mathe/KW20/KW20-VekRau.pdf",
"Mathe/KW20/KW20.md",
"Algorithmen und Datenstrukturen/VL/VL06/VL07.md",
"Informationssicherheit/Ueb5",
"Mathe/KW20",
"English/KW18.md",
"Mathe/KW17/KW17.md",
"Algorithmen und Datenstrukturen/UEB04/UEB4.md",
@@ -267,14 +272,9 @@
"Algorithmen und Datenstrukturen/UEB01/UEB01.md",
"Informationssicherheit/Ueb2/2023-04-17_15-55.png",
"Informationssicherheit/Ueb2/2023-04-17_14-16.png",
"Untitled 1.md",
"Untitled.md",
"Excalidraw/Drawing 2023-04-17 08.21.36.excalidraw.md",
"Informationssicherheit/Ueb1/20230330_19h30m31s_grim.png",
"Informationssicherheit/Ueb1/20230330_19h34m13s_grim.png",
"Informationssicherheit/Ueb1/20230331_07h21m13s_grim.png",
"Informationssicherheit/Ueb1/20230331_10h28m24s_grim.png",
"Informationssicherheit/Ueb1/20230331_10h28m43s_grim.png",
"Informationssicherheit/Ueb1/20230331_14h12m43s_grim.png"
"Informationssicherheit/Ueb1/20230331_10h28m24s_grim.png"
]
}

View File

@@ -0,0 +1,330 @@
# 1. 
## a 
`openssl genrsa -out key.pem 1024` 
``` 
-----BEGIN PRIVATE KEY----- 
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMZwcZmvikwKsPJZ 
BdJ5PX+Jkp8UjEVcqkDquJgVFET9stJIxO2dhhLkrf2V4xybV+bAq9RGbzdosPXu 
j/b3LQwQb786tyAIonS3QtElQyUcCm+bnLW+I9gK1eqd7mzzvd0OpTx5KeskLI0o 
V1m0KLR2gU1kR/qQtzxm5kdJLp3fAgMBAAECgYEAsCqA32Q0jX9sSSn4/jo9+2xh 
qzJtuOIkD0+RowoLnZfwWbjaguw2a61yPU8EeY/7QFLJ+MCy2WjquNoaGrCi3qNj 
wsSO+3gkTZfKyf0VYQ+44XwcNHMvyvjZddPfUxz7OJOMeXZ/gnTIL7ZLiVbUXLVO 
HEvhAxVsH7moGEbGBEECQQDrZrH2Js7DJrj1QBM79PB3/AKb5yey5tmUisI9vJaX 
YWaBCa1fUP5lDpSY/GyQIJaP54QrytVZBmUcd/5Oy6BhAkEA183AYlcOEHfOKtPK 
LMUgHla2pstLCJxAD03IFVXz/425RtY6t3mtRj16RGzpNttCnKmyyghhj/6liSrs 
wNvmPwJAUbyi5nmrKY/0gRPymcr/BGp47XFiE3ic7DsSHyWwlHe5g+y8SnBxJN3f 
Mw/TEmh+XxFgj2QqmHLkAPKZVvrVgQJAfdOVzMD9jlSMfSQnyZrWc1oT/YSjJ04T 
e9jaRLZtIiA8WzUl3zyu7zmBRMxL3pRRbo7zlCD24cKUOjow+PI+eQJBAOWj8Z+3 
Pcykk2vdxn2GOL2eNgE2ywe1BU8pjMboVT/i9nFRj+3CVFbHO37upiL65U9bl4vF 
sdQc3etTvcu+kWo= 
-----END PRIVATE KEY----- 
```
quelle: https://samsclass.info/141/proj/pCH-RKF.htm 
--- 
## b 
### .pem (Privacy-Enhanced Mail): 
Dateiformat für kryptographische Schlüssel. 
### ASN.1 (Abstract Syntax Notation One): 
"eine Beschreibungssprache zur Definition von Datenstrukturen" 
quellen:  
- https://de.wikipedia.org/wiki/Privacy_Enhanced_Mail 
- https://de.wikipedia.org/wiki/Abstract_Syntax_Notation_One 
--- 
## c / d 
`openssl rsa -in key.pem -text -inform PEM -noout` 
``` 
modulus:(n = pq) 
    00:a4:54:3b:f9:d9:0a:8e:01:be:51:0d:49:e3:d6: 
    17:c7:77:96:6b:75:02:8b:4b:f0:e1:8a:cc:14:39: 
    e0:d3:07:d1:2a:74:de:98:4d:6c:0a:e3:b4:88:c0: 
    b6:c7:47:38:3a:12:bf:e4:4e:67:a8:2f:85:10:bd: 
    b5:a8:a9:88:cc:96:cf:76:69:14:68:8f:e8:bb:ce: 
    35:5b:59:10:b5:7e:c2:a4:98:a5:43:87:c2:2e:60: 
    b4:81:5d:e1:49:60:d1:55:df:a5:ff:38:bb:5f:e9: 
    f0:b7:0c:d6:52:78:23:80:7a:55:1a:eb:92:3f:b0: 
    0b:14:18:48:c9:cb:a1:d2:7f 
publicExponent: 65537 (0x10001) (e) 
privateExponent: (d) 
    31:7d:d5:1a:68:8d:cf:3b:23:30:92:0a:00:fe:87: 
    e6:e1:53:82:45:99:60:8e:9c:9b:b1:0b:c9:c3:ac: 
    bc:a2:0c:12:f7:63:db:06:e6:55:59:43:14:34:c6: 
    57:ba:51:6a:dc:1e:c3:0a:02:1a:1b:45:be:47:04: 
    a1:29:7e:33:74:2b:4f:98:3e:83:ab:9f:6e:9f:27: 
    f1:91:80:4d:97:be:c8:00:f1:f4:72:4d:e4:9f:c9: 
    80:ef:59:72:5d:72:ca:d5:42:43:5d:70:50:7e:bd: 
    4f:87:6e:3d:ce:1c:5d:40:a3:a9:07:fb:75:29:04: 
    a8:61:e9:0d:6a:a7:ea:71 
prime1: (p) 
    00:d9:cd:05:8b:ed:1d:49:9b:90:f4:a2:e8:2d:62: 
    2c:cd:ef:bb:68:74:72:c2:a3:fb:3b:27:32:5b:09: 
    51:b2:3d:72:29:61:03:da:5a:fb:71:8d:66:85:66: 
    c2:f9:84:77:8f:c3:79:03:29:cd:dc:60:20:2a:f8: 
    cf:d3:15:66:4b 
prime2: (q) 
    00:c1:26:65:82:0d:2c:7b:76:b8:44:20:1f:ad:75: 
    d7:5d:94:02:96:3d:0a:82:36:fc:78:3f:17:3a:bd: 
    2c:e6:19:8d:bf:2d:b4:af:c0:fe:40:f5:03:d7:62: 
    a0:60:7a:1a:d3:e2:b9:7d:e4:8d:43:d5:79:d8:cd: 
    25:0f:8a:34:1d 
exponent1: (dp) 
    57:be:12:b7:f6:44:50:3d:0d:be:a0:4a:6c:ce:1a: 
    42:b4:8b:89:5f:30:44:5d:8f:7e:9b:21:dc:2e:fa: 
    ec:95:78:82:57:05:18:58:82:e7:92:11:75:38:9a: 
    df:ae:90:04:28:b9:7d:9e:bf:c2:42:2f:73:60:5d: 
    49:2a:5b:d5 
exponent2: (dq) 
    00:af:17:b1:99:4d:7b:ef:88:55:ce:5c:18:9b:54: 
    62:21:90:95:2f:c0:b2:10:0c:ec:9d:cd:03:af:d9: 
    e2:23:cd:32:74:06:68:ef:92:52:6a:6c:32:49:44: 
    3d:02:78:6e:6d:79:f0:91:31:68:e5:ff:55:6f:b5: 
    b8:4c:f8:09:f9 
coefficient: (q inv) 
    00:8e:68:ff:dd:cd:ab:61:6d:91:88:5e:4b:ba:24: 
    d9:47:4f:24:3f:58:8f:21:a4:07:f2:c8:98:a5:5e: 
    be:45:06:d4:03:08:df:ec:a7:d0:db:48:5d:52:2b: 
    ff:86:e8:b3:5e:66:e5:79:c7:20:bc:4a:71:ca:ac: 
    c8:24:3a:3b:62 
```
quelle: https://crypto.stackexchange.com/questions/6593/what-data-is-saved-in-rsa-private-key 
--- 
## e 
Chinesischer Restsatz: Effizienteres verschlüsseln/signieren. 
quelle: https://de.wikipedia.org/wiki/RSA-Kryptosystem#RSA_mit_dem_Chinesischen_Restsatz 
--- 
## f 
`openssl rsa -in key.pem -pubout > key.pub` 
`openssl rsa -pubin -in key.pub -text` 
``` 
RSA Public-Key: (1024 bit) 
Modulus: 
    00:a4:54:3b:f9:d9:0a:8e:01:be:51:0d:49:e3:d6: 
    17:c7:77:96:6b:75:02:8b:4b:f0:e1:8a:cc:14:39: 
    e0:d3:07:d1:2a:74:de:98:4d:6c:0a:e3:b4:88:c0: 
    b6:c7:47:38:3a:12:bf:e4:4e:67:a8:2f:85:10:bd: 
    b5:a8:a9:88:cc:96:cf:76:69:14:68:8f:e8:bb:ce: 
    35:5b:59:10:b5:7e:c2:a4:98:a5:43:87:c2:2e:60: 
    b4:81:5d:e1:49:60:d1:55:df:a5:ff:38:bb:5f:e9: 
    f0:b7:0c:d6:52:78:23:80:7a:55:1a:eb:92:3f:b0: 
    0b:14:18:48:c9:cb:a1:d2:7f 
Exponent: 65537 (0x10001) 
writing RSA key 
-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkVDv52QqOAb5RDUnj1hfHd5Zr 
dQKLS/DhiswUOeDTB9EqdN6YTWwK47SIwLbHRzg6Er/kTmeoL4UQvbWoqYjMls92 
aRRoj+i7zjVbWRC1fsKkmKVDh8IuYLSBXeFJYNFV36X/OLtf6fC3DNZSeCOAelUa 
65I/sAsUGEjJy6HSfwIDAQAB 
-----END PUBLIC KEY----- 
```
quellen: 
- https://stackoverflow.com/questions/5244129/use-rsa-private-key-to-generate-public-key 
- https://superuser.com/questions/1644533/how-do-i-use-the-openssl-command-to-decode-a-public-key-pem-file 
--- 
## g 
`echo 'hey abc' | openssl rsautl -encrypt -pubin -inkey key.pub >message.encrypted` 
``` 
$ xxd message.encrypted 
00000000: 9f6a 58aa ef1f bf17 8058 6e03 39f8 673b  .jX......Xn.9.g; 
00000010: 6d3b ad1e b9b3 8f71 a7c2 0984 a0ff 5291  m;.....q......R. 
00000020: a2ef 8a36 8132 3d61 7df7 105b e8c9 e07c  ...6.2=a}..[...| 
00000030: fde7 5663 13f0 961b 63e8 2061 c3f7 253e  ..Vc....c. a..%> 
00000040: e7bf 7711 8761 9a16 1ce9 b320 0903 4c58  ..w..a..... ..LX 
00000050: 0b45 f506 4d5a 6c47 a4b9 4d32 6735 637b  .E..MZlG..M2g5c{ 
00000060: 648c c7d1 194c f263 6bfb 7bf8 a338 9dfc  d....L.ck.{..8.. 
00000070: 621e e772 3c4f c165 a6ce 0e1a 93a4 c031  b..r<O.e.......1 
```
quellen: 
- https://unix.stackexchange.com/questions/12260/how-to-encrypt-messages-text-with-rsa-openssl 
- https://stackoverflow.com/questions/1765311/how-to-view-files-in-binary-from-bash 
--- 
## h 
Weil bei zu lange Nachrichten das entschlüsseln nicht richtig funktioniert. 
Das Problem hierbei ist der RSA Schlüssel zu klein ist und mein ein "roll over" bekommt. 
quelle: https://stackoverflow.com/questions/31403494/encrypt-a-long-text-string-using-rsa-encryption-only 
--- 
## i 
`openssl rsautl -decrypt -in message.encrypted -out message.decrypted -inkey key.pem` 
``` 
$ cat message.decrypted 
hey abc 
```
quelle: https://stackoverflow.com/questions/42300795/openssl-decrypting-with-a-private-key 
# 2. 
## a) 
``` 
$ openssl rsa -pubin -in key.pub -text 
RSA Public-Key: (128 bit) 
Modulus: 
    00:c2:49:bd:6e:85:25:fa:44:86:c5:77:b5:37:ad: 
    00:4b 
Exponent: 65537 (0x10001) 
writing RSA key 
-----BEGIN PUBLIC KEY----- 
MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAMJJvW6FJfpEhsV3tTetAEsCAwEAAQ== 
-----END PUBLIC KEY----- 
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

View File

@@ -0,0 +1,72 @@
# 1
## a
Die Gruppe \(Z_{13}^*\) ist die multiplikative Gruppe der Einheiten des Rings \(\mathbb{Z}/13\mathbb{Z}\). Sie besteht aus den Restklassen, die teilerfremd zu 13 sind. Da 13 eine Primzahl ist, sind alle Nicht-Null-Elemente von \(\mathbb{Z}/13\mathbb{Z}\) teilerfremd zu 13, so dass \(Z_{13}^*\) die Elemente {1, 2, 3, ..., 12} enthält.
Da 13 eine Primzahl ist, ist die Ordnung von \(Z_{13}^*\) gleich 12, was eine zusammengesetzte Zahl ist. Daher hat \(Z_{13}^*\) mehrere Untergruppen.
Die Ordnung jeder Untergruppe von \(Z_{13}^*\) muss ein Teiler der Ordnung von \(Z_{13}^*\) sein. Die Teiler von 12 sind 1, 2, 3, 4, 6 und 12. Daher hat \(Z_{13}^*\) Untergruppen der Ordnungen 1, 2, 3, 4, 6 und 12.
Um die spezifischen Elemente jeder Untergruppe zu finden, müssen wir die Elemente von \(Z_{13}^*\) betrachten, deren Ordnung ein Teiler der Ordnung der Untergruppe ist.
Ich werde jetzt die spezifischen Elemente jeder Untergruppe berechnen.
Die Untergruppen von \(Z_{13}^*\) sind wie folgt:
1. Untergruppe der Ordnung 1: {1}
2. Untergruppe der Ordnung 2: {1, -1 mod 13} = {1, 12}
3. Untergruppe der Ordnung 3: {1, 5, 8}, {1, 8, 5}, {1, 4, 3}, {1, 3, 4}
4. Untergruppe der Ordnung 4: {1, -1, i, -i mod 13} = {1, 12, 3, 10}, {1, 12, 10, 3}, {1, 12, 4, 9}, {1, 12, 9, 4}
5. Untergruppe der Ordnung 6: {1, -1, \(\sqrt{3}\), -\(\sqrt{3}\), i, -i mod 13} = {1, 12, 3, 10, 4, 9}, {1, 12, 10, 3, 9, 4}, {1, 12, 4, 9, 3, 10}, {1, 12, 9, 4, 10, 3}
6. Untergruppe der Ordnung 12: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
## b
Die additive Gruppe (Z/nZ, +) und die multiplikative Gruppe (Z/nZ)^*, haben unterschiedliche Eigenschaften und Strukturen. In Bezug auf (Z/nZ)^* sind die Zahlen, die koprime (relativ prim) zu n sind, die Elemente dieser Gruppe.
In Bezug auf die spezifische Gruppe Z_13, sind die Elemente {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, da alle Zahlen unter 13 und koprime zu 13 sind.
Jedes Element in dieser Gruppe kann die gesamte Gruppe generieren, außer der 1. Dies liegt daran, dass die Potenz von 1 immer 1 bleibt und somit nicht in der Lage ist, die gesamte Gruppe zu generieren.
Elemente, die die gesamte Gruppe generieren können, sind von besonderem Interesse für den diskreten Logarithmus, weil sie eine Basis für die Gruppe bilden. In einer Gruppe, die durch einen Generator generiert wird, kann jedes Element als eine Potenz des Generators ausgedrückt werden. Daher ist der diskrete Logarithmus in einer solchen Gruppe definiert als der Exponent, zu dem der Generator erhoben werden muss, um ein gegebenes Gruppenelement zu erzeugen.
Die Schwierigkeit des Berechnens des diskreten Logarithmus in einer Gruppe, in der der Generator bekannt ist, ist die Grundlage für viele kryptografische Systeme, einschließlich des Diffie-Hellman-Schlüsselaustauschs und des Elgamal-Verschlüsselungssystems. Das Sicherheitsniveau dieser Systeme hängt von der Schwierigkeit des diskreten Logarithmusproblems ab. Wenn es einfach wäre, den diskreten Logarithmus zu berechnen, könnten diese Systeme kompromittiert werden. Daher sind die Generatoren dieser Gruppen für die Kryptographie von zentraler Bedeutung.
## c
Der Diffie-Hellman-Schlüsselaustausch ist ein Methode, die es zwei Parteien ermöglicht, sicher einen gemeinsamen geheimen Schlüssel über ein unsicheres Netzwerk auszutauschen. Im Folgenden wird gezeigt, wie der Diffie-Hellman-Schlüsselaustausch mit den gegebenen Werten p = 13 und g = 11 durchgeführt wird.
Schritt 1: Alice und Bob vereinbaren öffentlich einen Primzahlmodulus p und eine Basis g. In diesem Fall sind p = 13 und g = 11.
Schritt 2: Alice wählt eine geheime Zahl a und Bob wählt eine geheime Zahl b. Diese Zahlen werden nicht geteilt und sollten zufällig und groß sein. Angenommen, a = 4 und b = 3.
Schritt 3: Alice berechnet A = g^a mod p und sendet A an Bob. In diesem Fall ist A = 11^4 mod 13 = 9.
Schritt 4: Bob berechnet B = g^b mod p und sendet B an Alice. In diesem Fall ist B = 11^3 mod 13 = 5.
Schritt 5: Alice erhält B und berechnet den gemeinsamen Schlüssel als K = B^a mod p. In diesem Fall ist K = 5^4 mod 13 = 3.
Schritt 6: Bob erhält A und berechnet den gemeinsamen Schlüssel als K = A^b mod p. In diesem Fall ist K = 9^3 mod 13 = 3.
Jetzt haben Alice und Bob denselben geheimen Schlüssel K = 3, den sie für kryptografische Zwecke verwenden können, und kein Außenstehender kann den Schlüssel erraten, selbst wenn er die öffentlich geteilten Werte und die ausgetauschten Zahlen kennt, vorausgesetzt, dass das diskrete Logarithmusproblem schwer zu lösen ist.
## d
Ein Man-in-the-Middle-Angriff (MitM) ist eine Art von Cyberangriff, bei dem ein Angreifer die Kommunikation zwischen zwei Parteien abfängt und möglicherweise manipuliert. Im Kontext des Diffie-Hellman-Schlüsselaustauschs könnte ein solcher Angriff wie folgt aussehen:
1. Alice und Bob einigen sich auf eine öffentliche Basis und einen öffentlichen Modulus. Mallory kann diese Werte abfangen, da sie öffentlich sind.
2. Alice generiert eine private Zufallszahl \(a\) und sendet \(A = g^a \mod p\) an Bob. Mallory fängt \(A\) ab und sendet stattdessen \(A' = g^{a'} \mod p\) an Bob, wobei \(a'\) eine von Mallory gewählte Zufallszahl ist.
3. Bob generiert eine private Zufallszahl \(b\) und sendet \(B = g^b \mod p\) an Alice. Mallory fängt \(B\) ab und sendet stattdessen \(B' = g^{b'} \mod p\) an Alice, wobei \(b'\) eine von Mallory gewählte Zufallszahl ist.
4. Alice berechnet den gemeinsamen Schlüssel als \(s = B'^a \mod p\), und Bob berechnet den gemeinsamen Schlüssel als \(s = A'^b \mod p\). In Wirklichkeit haben jedoch sowohl Alice als auch Bob einen gemeinsamen Schlüssel mit Mallory und nicht miteinander.
5. Mallory kann nun die Kommunikation zwischen Alice und Bob abhören und sogar manipulieren, indem sie Nachrichten entschlüsselt, ändert und dann wieder verschlüsselt.
Durch diesen Angriff hat Mallory mehrere Möglichkeiten:
- Sie kann die Kommunikation zwischen Alice und Bob abhören (Verletzung der Vertraulichkeit).
- Sie kann die Kommunikation manipulieren, indem sie Nachrichten ändert oder eigene Nachrichten einschleust (Verletzung der Integrität).
- Sie kann sich als Alice gegenüber Bob oder als Bob gegenüber Alice ausgeben (Verletzung der Authentizität).
Um sich gegen Man-in-the-Middle-Angriffe zu schützen, können Alice und Bob zusätzliche Sicherheitsmaßnahmen ergreifen, wie z.B. die Verwendung von digitalen Signaturen oder die Durchführung einer Authentifizierung vor dem Schlüsselaustausch.
# 2
# a

View File

@@ -0,0 +1,155 @@
# 1
## a
Eine Zugriffskontrollmatrix ist ein Modell, das in Computersystemen zur Darstellung der Rechte von einzelnen Benutzern (in diesem Fall Alice und Bob) auf bestimmte Ressourcen (in diesem Fall die drei Dateien) verwendet wird.
Die Matrix könnte so aussehen:
|Benutzer / Datei|hello world.txt|check world.sh|print hello world.sh|
|---|---|---|---|
|Alice|R, W|R, X|X|
|Bob|R|R, W|-|
Hinweis:
- R steht für Lesen (Read)
- W steht für Schreiben (Write)
- X steht für Ausführen (Execute)
- "-" zeigt an, dass kein Zugriff gewährt wurde
In dieser Matrix kann Alice die Datei "hello world.txt" lesen und schreiben, die Datei "check world.sh" lesen und ausführen, und sie kann die Datei "print hello world.sh" ausführen. Bob hingegen kann die Datei "hello world.txt" lesen, kann in "check world.sh" lesen und schreiben, aber hat keinen Zugriff auf "print hello world.sh".
## b)
Access Control Lists (ACLs) sind Listen, die auf jeder Ressource basieren und definieren, welcher Benutzer welche Zugriffsrechte auf die Ressource hat. Hier sind die ACLs für die genannten Dateien:
**hello world.txt**
- Alice: Lesen, Schreiben
- Bob: Lesen
**check world.sh**
- Alice: Lesen, Ausführen
- Bob: Lesen, Schreiben
**print hello world.sh**
- Alice: Ausführen
- Bob: Kein Zugriff
## c)
Im Gegensatz zu ACLs, die auf Ressourcen basieren, basieren Capabilities auf Benutzern. Sie definieren, welche Ressourcen von einem bestimmten Benutzer zugegriffen werden können und welche Operationen ausgeführt werden können. Hier sind die Capabilities für Alice und Bob:
**Alice**
- hello world.txt: Lesen, Schreiben
- check world.sh: Lesen, Ausführen
- print hello world.sh: Ausführen
**Bob**
- hello world.txt: Lesen
- check world.sh: Lesen, Schreiben
- print hello world.sh: Kein Zugriff
Bei beiden Modellen handelt es sich um verschiedene Ansätze zur Darstellung von Zugriffsrechten in Computersystemen, wobei ACLs den Zugriff auf der Basis einzelner Ressourcen steuern und Capabilities auf Benutzerbasis arbeiten.
# 2
Um die Situation mit Linux-Dateisystemberechtigungen umzusetzen, müssen wir zuerst die Dateien erstellen und dann die entsprechenden Berechtigungen setzen. Bitte beachten Sie, dass in Linux Dateinamen ohne Leerzeichen üblicher sind. Ich werde Unterstriche anstelle von Leerzeichen verwenden, um den Prozess reibungslos zu gestalten.
a) Erstellen Sie eine Datei `hello_world.txt` mit dem Inhalt "Hello, world!".
``` bash
echo "Hello, world!" > hello_world.txt
```
b) Erstellen Sie eine Datei `check_world.sh` mit dem Inhalt `cat hello_world.txt | grep -q world && echo "world found"`.
``` bash
echo "cat hello_world.txt | grep -q 'world' && echo "'world' found"" > check_world.sh
```
c) Erstellen Sie eine Datei `print_hello_world.sh` mit dem Inhalt `cat hello_world.txt`.
``` bash
echo "cat hello_world.txt" > print_hello_world.sh
```
Nun setzen wir die Berechtigungen entsprechend der Anforderungen. In Linux repräsentieren die Ziffern 4, 2 und 1 die Berechtigungen zum Lesen, Schreiben und Ausführen. Der Eigentümer (user), die Gruppe (group) und andere (other) haben jeweils eine dieser Ziffern.
Zum Beispiel: Die Berechtigung 7 (4+2+1) bedeutet, dass der Eigentümer lesen, schreiben und ausführen kann. Die Berechtigung 6 (4+2) bedeutet, dass der Eigentümer lesen und schreiben kann, aber nicht ausführen.
Gemäß der Zugriffskontrollmatrix:
- Alice kann `hello_world.txt` lesen und schreiben, `check_world.sh` lesen und ausführen und `print_hello_world.sh` ausführen.
- Bob kann `hello_world.txt` lesen, `check_world.sh` lesen und schreiben und hat keinen Zugriff auf `print_hello_world.sh`.
Nehmen wir an, Alice und Bob gehören zur gleichen Gruppe, dann könnten die Berechtigungen wie folgt gesetzt werden:
``` bash
chmod 640 hello_world.txt # Alice (der Eigentümer) kann lesen und schreiben, Bob (in der Gruppe) kann nur lesen
chmod 750 check_world.sh # Alice kann lesen und ausführen, Bob kann lesen und schreiben
chmod 700 print_hello_world.sh # Alice kann lesen, schreiben und ausführen, Bob hat keinen Zugriff
```
d) Erstellen Sie die Benutzer Alice und Bob mithilfe des Werkzeugs `adduser`.
```bash
sudo adduser alice
sudo adduser bob
```
Bei diesen Befehlen werden Sie nach weiteren Informationen gefragt, wie z.B. dem Passwort für die Benutzer.
e) Erstellen Sie eine Gruppe `shared` mithilfe des Werkzeugs `addgroup`.
``` bash
sudo addgroup shared
```
f) Fügen Sie Alice und Bob zur Gruppe `shared` hinzu mithilfe des Werkzeugs `usermod`.
``` bash
sudo usermod -a -G shared alice
sudo usermod -a -G shared bob
```
Der Parameter `-a` steht für 'append' (hinzufügen) und `-G` steht für 'groups' (Gruppen). Also fügt `usermod -a -G` den Benutzer zu der angegebenen Gruppe hinzu, ohne ihn aus anderen Gruppen zu entfernen.
g) Wir haben bereits die Dateien erstellt und nun müssen wir die entsprechenden Berechtigungen setzen. Da wir die Benutzer und die Gruppe erstellt haben, müssen wir auch die Eigentümerschaft der Dateien auf Alice setzen und die Gruppe der Dateien auf `shared` setzen:
```bash
sudo chown alice:shared hello_world.txt
sudo chown alice:shared check_world.sh
sudo chown alice:shared print_hello_world.sh
```
Jetzt setzen wir die Berechtigungen entsprechend der Anforderungen.
```bash
sudo chmod 640 hello_world.txt # Alice (Eigentümer) kann lesen und schreiben, Gruppe (shared) kann nur lesen
sudo chmod 760 check_world.sh # Alice kann lesen, schreiben und ausführen, Gruppe (shared) kann lesen und ausführen
sudo chmod 700 print_hello_world.sh # Alice kann lesen, schreiben und ausführen, Gruppe (shared) und andere haben keinen Zugriff
```
h) Testen Sie die von Ihnen erstellten Dateisystemberechtigungen.
Wir können testen, ob die Berechtigungen korrekt gesetzt sind, indem wir versuchen, die Dateien als Benutzer Alice und Bob zu lesen, zu schreiben und auszuführen. Angenommen, die Passwörter für Alice und Bob sind jeweils `alicepassword` und `bobpassword`, dann können wir die `su` (switch user) Befehle verwenden, um die Tests durchzuführen.
Als Alice:
```bash
su - alice -c "cat hello_world.txt" # Sollte "Hello, world!" ausgeben
su - alice -c "echo 'Goodbye, world!' >> hello_world.txt" # Sollte erfolgreich sein
su - alice -c "./check_world.sh" # Sollte "'world' found" ausgeben, da 'world' in der Datei hello_world.txt existiert
su - alice -c "./print_hello_world.sh" # Sollte den Inhalt der Datei hello_world.txt ausgeben
```
Als Bob:
```bash
su - bob -c "cat hello_world.txt" # Sollte "Hello, world!" ausgeben
su - bob -c "echo 'Goodbye, world!' >> hello_world.txt" # Sollte einen Fehler ausgeben, da Bob nicht schreiben darf
su - bob -c "./check_world.sh" # Sollte "'world' found" ausgeben, da 'world' in der Datei hello_world.txt existiert
su - bob -c "./print_hello_world.sh" # Sollte einen Fehler ausgeben, da Bob nicht auf die Datei zugreifen darf
```

Binary file not shown.