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.

255 lines
7.8 KiB

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