You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

284 lines
8.3 KiB

  1. package ITsecAufgaben;
  2. import java.util.Scanner;
  3. import java.lang.Math;
  4. public class ITsecAufgaben {
  5. public static void zehnteAufgabe() {
  6. // Methodenrumpf füllen
  7. }
  8. public static void neunteAufgabe() {
  9. // Methodenrumpf füllen
  10. }
  11. public static void achteAufgabe() {
  12. // Methodenrumpf füllen
  13. }
  14. public static void siebteAufgabe() {
  15. // Methodenrumpf füllen
  16. }
  17. public static void sechsteAufgabe() {
  18. // Methodenrumpf füllen
  19. }
  20. public static int ggTLösung(int a, int b) {
  21. while (a != b) {
  22. if(a > b)
  23. a = a - b;
  24. else
  25. b = b - a;
  26. }
  27. if (a > b) {
  28. return b;
  29. }
  30. return a;
  31. }
  32. public static int[] randomNumberArray(int[] ausgabe) {
  33. int max = 99, min = 0, range, random;
  34. range = max - min + 1;
  35. for(int i = 0; i <= (ausgabe.length - 1); i++) {
  36. random = (int) (Math.random() * range) + min;
  37. ausgabe[i] = random;
  38. }
  39. return ausgabe;
  40. }
  41. public static void fünfteAufgabe() {
  42. System.out.println(
  43. "Drücken Sie '0' für die Aufgabe, '1' zum überspringen oder 'Strg + Z' zum abbrechen des Programmes: ");
  44. Scanner in = new Scanner(System.in);
  45. int[] ZahlenArray = new int[2];
  46. randomNumberArray(ZahlenArray);
  47. //
  48. int aufgabeStarten = in.nextInt();
  49. if (aufgabeStarten == 0) {
  50. int lösung;
  51. System.out.println("Berechnen Sie den 'größten gemeinsamen Teiler' der folgenden Zahlen: ");
  52. System.out.printf("%d & %d", ZahlenArray[0], ZahlenArray[1]);
  53. System.out.printf("\n\n Lösung anzeigen mit '2':");
  54. lösung = in.nextInt();
  55. if(lösung == 2) {
  56. lösung = ggTLösung(ZahlenArray[0], ZahlenArray[1]);
  57. System.out.printf("Lösung lautet: %d", lösung);
  58. }
  59. System.out.println("\nFünfte Aufgabe beendet");
  60. } else {
  61. System.out.println("\nFünfte Aufgabe beendet");
  62. }
  63. }
  64. public static void hielfsMethodeVierteAufgabe(String[][] eingabe, int spalte, int zeile) {
  65. Scanner hIn = new Scanner(System.in);
  66. if (zeile == 0) {
  67. System.out.println("Angreifer eingeben: ");
  68. } else if (zeile == 1) {
  69. System.out.println("Motivation eingeben: ");
  70. } else {
  71. System.out.println("Beispiel-Werkzeug eingeben: ");
  72. }
  73. eingabe[spalte][zeile] = hIn.nextLine();
  74. // hIn.close();
  75. }
  76. public static void vierteAufgabe() {
  77. System.out.println(
  78. "Erstellen Sie die Tabelle zu den sieben Angreifertypen, nennen Sie NACHEINANDER ihre Bezeichnung, ihre Motivation & mögliche Werkzeuge!\n Drücken Sie Zahl ungleich '0' für die nächste Frage.");
  79. String[][] lösung = {
  80. { "Nutzende", "Persönliche Vorteile (Features freischalten,...)",
  81. "Anwendung von Tools oder Anleitungen; Anheuerung organisierter Krimineller;..." },
  82. { "Mitarbeitende", "Rache; Geld; Whistleblower;...",
  83. "Zugriff auf und Kompromittierung interner Systeme" },
  84. { "White Hats, Pentester", "Prestige; Herausforderung; Geld;...",
  85. "Identifikation von Schwachstellen; Ausnutzung unter ethischen Richtlinien;..." },
  86. { "Grey Hats", "Prestige; Herausforderung; ideologische Ziele; Vandalismus; Geld",
  87. "Identifikation und Ausnutzung von Schwachstellen; Offenlegung des Eindringens" },
  88. { "Black Hats", "Geld oder Habgier",
  89. "Identifikation und Ausnutzung von Schwachstellen; Kompromittierung des Systems; Monetarisierung" },
  90. { "Konkurrenz", "Störung; Wirtschaftsspionage; Diskreditierung",
  91. "Reverse-Engineering von Produkten; Anheuerung organisierter Krimineller" },
  92. { "Staaten oder Geheimdienste", "Wirtschaftliche Vorteile, Destabilisierung",
  93. "Kompromittierung der Infrastruktur, Komponenten oder Standards; Tarnung vor Entdeckung" } };
  94. String[][] aufgabe = new String[7][3];
  95. // String[][] lösung = new String[7][3];
  96. int result = 1, frage = 1;
  97. Scanner in = new Scanner(System.in);
  98. frage = in.nextInt();
  99. if (frage == 0) {
  100. // aufgabe.length
  101. for (int i = 0; i <= 6; i++) {
  102. for (int j = 0; j <= 2; j++) {
  103. if (j == 3 || i == 8) {
  104. break;
  105. }
  106. hielfsMethodeVierteAufgabe(aufgabe, i, j);
  107. }
  108. if (i == 8) {
  109. break;
  110. }
  111. }
  112. }
  113. System.out.println("Zeigen Sie nun di2e Lösung mit '0' an & vergleichen Sie Ihre Eingabe:\n");
  114. result = in.nextInt();
  115. if (result == 0) {
  116. String res = "";
  117. for (int i = 0; i < 7; i++) {
  118. res = "" + lösung[i][0] + " | " + lösung[i][1] + " | " + lösung[i][2] + "\n";
  119. System.out.println(res);
  120. }
  121. // System.out.println("\n\n");
  122. res = "";
  123. for (int i = 0; i < 7; i++) {
  124. res = "" + aufgabe[i][0] + " | " + aufgabe[i][1] + " | " + aufgabe[i][2] + "\n";
  125. System.out.println(res);
  126. }
  127. } else {
  128. System.out.println("Bitte nochmal '0' eingeben, ansonsten 'STRG + Z'");
  129. result = in.nextInt();
  130. }
  131. in.close();
  132. }
  133. // String[][] für Angreifer
  134. public static void dritteAufgabe() {
  135. System.out.println(
  136. "Schreiben Sie die sechs IT-Sicherheitsziele mit kurzer Erläuterung auf!\n Drücken Sie '0' für die Lösung, andere Zahl für nächste Frage.");
  137. Scanner in = new Scanner(System.in);
  138. int result = 1;
  139. result = in.nextInt();
  140. if (result == 0) {
  141. System.out.println(
  142. "1. Vertraulichkeit (Vert.) := allg. Schutz vor unbefugter Preisgabe von Informationen\r\n" + "\r\n"
  143. + "2. Integrität (I.) := Sicherstellung der Korrektheit von Daten & der korrekten Funktionsweise von Systemen\r\n"
  144. + "\r\n"
  145. + "3. Authentizität (Auth.) := Kommunikationspartner/angegebene Quelle ist tatsächlich diejenige Person/Entität, die sie vorgibt zu sein, bzw. ist authentisch\r\n"
  146. + "\r\n"
  147. + "4. Verfügbarkeit (Verf.) := Sicherstellung der vorgesehenen Nutzbarkeit eines IT-Systems\r\n"
  148. + "\r\n"
  149. + "5. Autorisierung (Autor.) := Freischaltung der eingeräumten Rechte für eine erfolgreich authentifizierte Person\r\n"
  150. + "\r\n"
  151. + "6. Verbindlichkeit (Verb.) := Empfangen/Senden einer Nachricht oder Durchführen einer Handlung kann nicht abgestritten werden (e.g. wegen falscher Beschuldigung oder Fährten)");
  152. }
  153. System.out.println("\n\nAufgabe 3 fertig");
  154. }
  155. public static void zweiteAufgabe() {
  156. System.out.println("\nBerechnen Sie RSA per Hand. Taschenrechner & Website erlaubt.\n");
  157. System.out.println("Gegeben sind: p = 13, q = 17, e = 11, P1 = 23");
  158. System.out.println("Geben Sie das Ergebnis für N, phiOfN, encKey, decKey & C1:\n"); // <-- hier ggf. refactoring
  159. boolean an = true;
  160. int N = 0, phiOfN = 0, decKey = 0, C1 = 0, encKey = 0, abbrechen = 0;
  161. // String encKey = "(221, 11)";
  162. Scanner in = new Scanner(System.in);
  163. while (an) {
  164. System.out.println("Abbrechen & Lösungen anzeigen mit '1', ansonsten weiter ");
  165. abbrechen = in.nextInt();
  166. if (abbrechen == 1) {
  167. an = false;
  168. break;
  169. }
  170. System.out.println(
  171. "Ergebnisse für N, phiOfN, decKey, Cipher1 & encKey eingeben:\n Vorsicht: encKey besteht aus N & '?' angehangen ; alle Werte sind integer");
  172. System.out.println("N:");
  173. N = in.nextInt();
  174. System.out.println("phiOfN:");
  175. phiOfN = in.nextInt();
  176. System.out.println("decKey:");
  177. decKey = in.nextInt();
  178. System.out.println("C1:");
  179. C1 = in.nextInt();
  180. System.out.println("encKey:");
  181. encKey = in.nextInt();
  182. if (N == 221 && phiOfN == 192 && encKey == 22111 && decKey == 35 && C1 == 56) {
  183. System.out.println("\nRichtiges Ergebnis\n");
  184. an = false;
  185. } else {
  186. System.out.println("\nFalsches Ergebnis\n");
  187. }
  188. }
  189. in.close();
  190. }
  191. // kein äöüÄÖÜ
  192. public static void erstesQuiz() {
  193. System.out.println("debug: erstesQuiz() fängt an\n");
  194. System.out.println("Was ist die Definition von 'Schwachstelle'?\n");
  195. System.out.println(
  196. "\n1. Ein sicherheitsrelevanter technischer oder Prozess-Fehler.\n2. Ein Softwarefehler, der ausgenutzt werden kann\n3. Die Verse eines Menschen.\n\n 0 -> Lösung ; 42 -> naechste Aufgabe");
  197. Scanner in = new Scanner(System.in);
  198. int age = 1;
  199. while (age != 0) {
  200. age = in.nextInt();
  201. // if(age == 0) { break; }
  202. if (age == 1) {
  203. System.out.println("Richtig!\n");
  204. } else if (age == 0) {
  205. System.out.println("Auf Wiedersehen.");
  206. } else {
  207. System.out.println("Falsch.\n");
  208. }
  209. }
  210. in.close();
  211. System.out.println("\ndebug: erstesQuiz() fertig");
  212. }
  213. // für debugging & dev-test
  214. public static void main(String[] args) {
  215. // TODO Auto-generated method stub
  216. System.out.println("ITsec-main betreten\n\n");
  217. //erstesQuiz();
  218. //zweiteAufgabe();
  219. //dritteAufgabe();
  220. //vierteAufgabe();
  221. fünfteAufgabe();
  222. System.out.println("\n\nmain endet");
  223. }
  224. }