Sicherheit in Netzwerken

Hallo an alle!

Hat jemand eine Idee für eine Aufgabe mit dem Themengebiet „Sicherheit in Netzwerken“? Es geht darum in Java in einem Zeitraum von 1-2 Wochen eine Anwendung zu schreiben (und kurz zu dokumentieren) in dem es um das Thema Sicherheit geht. Dies ist sozusagen das Seminar für die zuvor gehörte Vorlesung über dieses Themengebiet. Behandelt wurden symmetrische und asym. Verschlüsselungsverfahren, Firewalls, VPN, SSH, SSL, Public-Key-Verfahren, DES, RSA, …

Hat jemand von Euch eine Idee was man in dieser Zeit entwickeln könnte?
Bin recht erfahren in der Java-Programmierung, also kann schon etwas mit ein wenig Anspruch sein :smile:

Gruß PHANTOM

Hat jemand von Euch eine Idee was man in dieser Zeit
entwickeln könnte?

Einen simplen Port / Paketsniffer?
Eine simplen Paketfilter?
Nen SSH verschlüsselten Chat?

Hallo!

Danke für die Rückmeldung!

Einen simplen Port / Paketsniffer?
Eine simplen Paketfilter?

-> Kann man das mit Java machen? Also einen verschlüsselten Chat, das weiß ich, das geht. Das macht auch so jeder Zweite hier. Gibt wohl schon gute Vorlagen dafür, deswegen sehr beliebt :smile:

Aber wie kann man mittels Java plattformunabhängig den Verkehr mithören lassen?

Einen Paketsniffer kannst du nicht so weiteres plattformunabhängig umsetzen, da du dafür direkten Zugriff auf das Netzwerk-Device bräuchtest, und das von Betriebssystem zu Betriebssystem unterschiedlich ist und die JVM keine API dafür anbietet.

Du brauchst also native Funktionen oder Bibliotheken, über die du auf das Netzwerk-Device zugreifen kannst. Eine Möglichkeit wäre, dass du die libpcap/winpcap nutzt. Das ist eine Bibliothek die es für fast alle gängigen Betriebssysteme gibt (http://www.tcpdump.org bzw http://www.winpcap.org).

Es gibt bereits eine Java-Bibliothek die die libpcap-Funktionen nutzen kann, nämlich jpcap:
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/inde…
Damit kannst du auf allen Plattformen auf denen es libpcap gibt z.B. Pakete mitsniffen.

Damit dein Programm dann funktioniert, muss dann nur noch libpcap/winpcap auf dem jeweiligen Rechner installiert sein. Unter den meisten Betriebssystemen sind außerdem Administrator- bzw. root-Rechte nötig, um libpcap/winpcap nutzen zu können.

Du könntest aber einen einfachen Port-Scanner schreiben, der einen TCP-Syn Scan macht. Das kannst du komplett in Java ohne Fremdbibliotheken erledigen. Du musst nur zu den Ports die du scannen willst eine TCP-Verbindung aufbauen (Siehe Klassen in java.net.*) und wenn diese zustande kommt ist der Port offen. Schlägt die Verbindung fehl ist der Port entweder geschlossen oder wird von einer Firewall gefiltert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das klingt ja schon mal gut. Ich hoffe nur, dass JPCAP das auch dann wirklich kann. Sieht so aus, als ob das nicht mehr aktiv weiterentwickelt wird.

Was kann man denn damit Schönes anstellen? Denn ein wireshark o.ä. kann ich ja nicht nachbauen… EInfach eine Funktionalität implementieren?

Gruß PHANTOM

-> Kann man das mit Java machen? Also einen verschlüsselten
Chat, das weiß ich, das geht. Das macht auch so jeder Zweite
hier. Gibt wohl schon gute Vorlagen dafür, deswegen sehr
beliebt :smile:

Ich habe gerade nicht so die Engergie in die API zu schauen, aber ich bin mir sehr sicher, daß es fertige Module für JAVA gibt, damit man SSH sprechen kann. Evtl. muß man das extra installieren, weil es nicht in der standardt API drin ist. Nen Chat zu bauen ist in JAVA ist ne Übung für 2tes Semester Pratische Informatik.

Aber wie kann man mittels Java plattformunabhängig den Verkehr
mithören lassen?

Wenn es nen Wrapper an die libpcap gibt (und der auch auf jeder Plattform verfügbar ist, kann man vom Prinzip her erstmal so gut wie alles mitlesen, was am LAN-Adapter vorbeikommt.

Das klingt ja schon mal gut. Ich hoffe nur, dass JPCAP das
auch dann wirklich kann. Sieht so aus, als ob das nicht mehr
aktiv weiterentwickelt wird.

Das stimmt anscheinend. Alternativ kannst du dir auch jnetpcap anschauen:
http://jnetpcap.com
Das wird noch aktiv weiterentwickelt und ist genau wie JPCAP ein Wrapper um libpcap/winpcap.

Was kann man denn damit Schönes anstellen? Denn ein wireshark
o.ä. kann ich ja nicht nachbauen… EInfach eine
Funktionalität implementieren?

Sicher kannst du damit etwas wie Wireshark nachbauen. Wireshark nutzt ja auch nur die libpcap zum Sniffen. Genau das kannst du mit jnetpcap und jpcap auch tun.

Was du mit den beiden Libraries machen kannst, beschreibt die Webseite von JPCAP sehr schön:

What kind of applications can be developed using Jpcap?
Jpcap can be used to develop many kinds of network applications, 
including (but not limited to):

 \* network and protocol analyzers
 \* network monitors
 \* traffic loggers
 \* traffic generators
 \* user-level bridges and routers
 \* network intrusion detection systems (NIDS)
 \* network scanners
 \* security tools

Quelle: http://netresearch.ics.uci.edu/kfujii/jpcap/doc/tuto…

Am einfachsten ist natürlich ein simples Tool das einfach den Netzwerk-Traffic mitschneidet und ggfs vielleicht noch nach IP-Adressen filtert.

Ein Portscanner wie zuvor von mir beschrieben mit Standard Java-API ist aber auch nicht schwer.