Forum: PC Hard- und Software Software-VPN zusätzlich mit Hardware absichern


von Tobias (Gast)


Lesenswert?

Grüezi zammä,

als kleiner Hobbyparanoiker bin ich auf der Suche nach einer 
Möglichkeit, einen möglichst sicheren Fernzugang zu einem heimischen 
Server herstellen zu können. Bisher verwende ich dazu OpenVPN. Der 
Server selber kann keine sonstigen Verbindungen aufbauen bzw. annehmen, 
da bis auf den einzelnen OpenVPN UDP-Port alle Ports in den 
IP-Sicherheitsrichtlinien gesperrt sind. Als Hardware-Sicherheit 
befindet sich zwischen Server und DSL-Router derzeit ein weiterer Router 
mit einer durchaus umfangreich konfigurierbaren Firewall (keine simplen 
NAT-Settings), die ebenfalls so eingestellt ist, dass sie nur 
Datentransfer auf diesem einen UDP-Port in beide Richtungen zulässt. Ich 
gehe einmal davon aus, dass dies schon ein gewisses Maß an Sicherheit 
bietet. Ist jemand anderer Meinung?

Was mich nun aber noch stört ist die Tatsache, dass ich gelegentlich 
auch einmal von anderer Leute Rechner aus auf den Server möchte. 
Natürlich setzt dies voraus, dass dort OpenVPN installiert sowie OpenVPN 
Config-/Keyfile und Passwort vorhanden sein müssen – prinzipiell alles 
Dinge, die mittels Keylogger und sonstiger verstecker Tools unbemerkt in 
die Hände des Besitzers des Rechners fallen könnten, auch wenn ich sie 
nach dem Logout wieder entferne. Mir fehlt also ein Stück Hardware, das 
ich mit mir führen kann und ohne dessen Vorhandensein keine 
VPN-Verbindung möglich ist.

Was mir nun vorschwebt ist folgendes:  Der (nennen wir ihn mal) 
Firewall-Router wird ersetzt durch eine frei programmierbare Hardware 
mit zwei Ethernet-Ports (ich tendiere zum ATNGW100). Diese bekommt eine 
recht einfache Aufgabe:

- Wenn ein Paket mit einer Anforderung für eine Challenge empfangen 
wurde, erzeuge eine Challenge und sende sie an den Absender zurück.
- Wenn ein Paket mit einer Response empfangen wurde, vergleiche diese 
mit der zugehörigen Challenge.  Bei Übereinstimmung füge IP des 
Absenders mit einem Timeout von X Sekunden in die Whitelist ein.
- Wenn auf einem der Ethernet-Ports ein UDP-Paket mit der 
OpenVPN-Portnummer empfangen wurde und die externe IP auf der Whitelist 
steht, leite das Paket an den anderen Ethernet-Port weiter, ansonsten 
verwerfe das Paket.
- Wenn Timeout eines Whitelist-Eintrags abgelaufen ist, lösche diesen 
Eintrag.

Das zugehörige Gegenstück besteht aus einem selbstgebastelten USB-Stick, 
auf dem ein AVR mit AVRUSB-Firmware sein Dasein fristet. Dort sind die 
gleichen Algorithmen zur Challenge-/Response-Berechnung (sei es z.B. 
AES256) sowie die zugehörigen Keys vorhanden wie auch im ATNGW100. 
Außerdem ist noch ein kleines PC-Tool erforderlich, das die Vermittlung 
zwischen USB-Stick und entferntem ATNGW100 übernimmt.

Vor dem eigentlichen Aufbau der OpenVPN-Verbindung muss nun also 
zusätzlich der USB-Stick vorhanden sein. Clientseitig fordert das 
PC-Tool nun eine Challenge beim entfernten ATNGW100 an. Nach deren 
Erhalt leitet es sie an den USB-Stick weiter. Dieser antwortet mit der 
passenden Response, die das Tool dann wiederum zum ATNGW100 sendet. Dies 
gibt daraufhin den OpenVPN-Port zum Server hin frei. Dieser Vorgang 
wiederholt sich alle X Sekunden, so dass spätestens X Sekunden nach 
Abziehen des USB-Sticks die VPN-Verbindung unterbrochen wird.

Lange Rede, kurzer Sinn: Was haltet Ihr von dieser Idee? Sieht jemand 
Schwachstellen? Gibt es vielleicht schon etwas Ähnliches zu bescheidenen 
Preisen käuflich zu erwerben? Was ich bisher gefunden habe ist 
kostenmäßig eher nur von mittelgroßen Firmen tragbar. Vielen Dank!

Tobias

von zwieblum (Gast)


Lesenswert?

und wenn du den stick verlierst? zufällig bei dem rechner mit dem 
keylogger?

von Reinhard S. (rezz)


Lesenswert?

Ich wär ja für Einweg-Kennwörter.

Außerdem fällt mir grad kein Grund ein wieso ich von fremden Computern 
auf meinen (auch nicht ständig laufenden) Computern zugreifen muss. 
Dafür gibts Webspace/Dedicated Server

von Manuel G. (forensix)


Lesenswert?

Bezueglich Sicherheit siehe auch 
http://de.wikipedia.org/wiki/Challenge-Response-Authentifizierung.

Jenachdem wie gewieft die Person dessen Rechner du benutzt ist (bzw. wie 
interessiert sie daran ist deine Sicherheitsmaßnahmen zu umgehen) 
koennte deine Verbindung auch lokal im Netz redirected und somit 
gesnifft werden).

Einwegpassen waeren bestimmt eine gute aber keinesfalls sichere 
Alternative (s. TCP/IP-Hijacking). Auch koennte von deinem USB-Stick 
invisible ein
Image erzeugt werden. Das ist allerdings nur theoretischer Natur.

Ich finde allerdings dass sich dein Vorhaben interessant anhoert. Die 
Sicherheit kann auch waerend der Projektphase oder nachhinein getestet 
und eventuell zusaetzliche Sicherheitsmechanismen implementiert werden.

MfG
Manuel Gebele

von Peter (Gast)


Lesenswert?

Das ganze klingt erstmal sehr sicher.

Aber das heutzutage noch Angriffe von aussen kommen ist sehr 
unwahrscheinlich, selbst die MS-Firewall verhindert das zu 100% wenn man 
keine Ausnahmen definiert.

Wenn jemand etwas von dir will, dann versucht er lücken im 
Browser/Plugin(java,flash,pdf) auszunutzen. Dabei hilft dir auch dein 
STück hardware nicht mehr.
Man sollte also nicht versuchen die Sicherheit zu einseitig auszulegen.

von Manuel G. (forensix)


Lesenswert?

Ja allerdings scheint Tobias vorallem auch gegen lokale (im Bezug auf 
den Rechner sowie das Netz) Angriffe gewappnet sein zu wollen.

MfG
Manuel Gebele

von zwieblum (Gast)


Lesenswert?

na ja, stromstecker rausziehen, dann kommt sicher keiner mehr rein.

von Manuel G. (forensix)


Lesenswert?

ja aber auch keiner mehr raus :)

MfG
Manuel Gebele

von Tobias (Gast)


Lesenswert?

> und wenn du den stick verlierst? zufällig bei dem rechner
> mit dem keylogger?

Dafür müsste dann schon eine ganze Kette ungünstiger Umstände eintreten. 
Hier sehe ich aber die Möglichkeit, dem Stick noch ein paar kleine 
Taster zu verpassen, über die nach dem Einstecken eine PIN eingegeben 
werden muss.

> Außerdem fällt mir grad kein Grund ein wieso ich von
> fremden Computern...

Was nicht heißt, dass anderen nicht doch welche einfallen.

> koennte deine Verbindung auch lokal im Netz redirected und
> somit gesnifft werden

Was gäbe es denn da noch zu sniffen? Die VPN-Daten sind verschlüsselt 
und die Challenges/Responses später nutzlos.

> Auch koennte von deinem USB-Stick invisible ein Image erzeugt
> werden.

Würde es sich um einen einfachen Speicherstick handeln, könnte ich das 
nachvollziehen. Wie erwähnt sitzt aber ein Controller darauf, auf dessen 
Keys und Algorithmen der PC keinerlei Zugriff hat.

> Wenn jemand etwas von dir will, dann versucht er lücken
> im Browser/Plugin(java,flash,pdf) auszunutzen.

Darum geht es ja in diesem Fall nicht. Der einzige Zugang, den der 
Server zur Außenwelt haben wird, ist über den VPN-Port. Er wird niemals 
einen reinen Internetzugang haben.

Tobias

von Folke Will (Gast)


Lesenswert?

Hallo,

aus einer ähnlichen Motivation heraus entwickle ich gerade ein ähnliches 
System im Rahmen meiner Technikerarbeit - Einmalpasswörter werden mit 
einem Mobiltelefon erzeugt und können benutzt werden, um sich unter 
anderem mit PAM zu authentisieren. PAM kann auch von OpenVPN verwendet 
werden, um Benutzer zu authentifizieren.

Die Authentifizierung geschieht dann so, dass der Benutzer ein Programm 
auf seinem Mobiltelefon startet, welches das jeweils aktuelle 
Einmalpasswort für einen Zugang anzeigt. Jedes Passwort ist nur einmal 
und nur für 60 Sekunden gültig. Das Programm auf dem Telefon kann mit 
einem Passwort geschützt werden, auch gegen Keylogging auf dem Telefon 
habe ich mir etwas überlegt.

PAM-Modul, Mobiltelefon-Programm und weitere Implementierungen sind 
bereits fertig, eigentlich arbeite ich nur noch an der Dokumentation.

Falls dich das System interessiert, ist hier die vorläufige 
Dokumentation zu finden: http://folko.solhost.org/abschluss.pdf

Bei Interesse kannst du dich gerne hier melden, dann schicke ich dir 
alles zu. Später wird es sowieso OpenSource.

Gruß

Folke

von Mr.X (Gast)


Lesenswert?

AB

von Gast3 (Gast)


Lesenswert?

Zweiwegeloesung:
Wenn von DEINEM Mobiltelefon mit Rufnummeruebermittlung ein bestimmter 
Abschluss angerufen wird, dann besteht fuer 2 Min. die Chance, sich 
einzuloggen.

Gast3

von Reinhard S. (rezz)


Lesenswert?

Gast3 wrote:
> Zweiwegeloesung:
> Wenn von DEINEM Mobiltelefon mit Rufnummeruebermittlung ein bestimmter
> Abschluss angerufen wird, dann besteht fuer 2 Min. die Chance, sich
> einzuloggen.

Alternativ gibts mindestens für Linux die Alternative "Port-Knocking", 
sprich: nur wenn bestimmte Ports in bestimmter Reihenfolge "angefragt" 
werden (müssen dazu nicht offen sein) schaltet der PC einen bestimmten 
Port frei. Aber das würde ja nicht verhindern das jemand auf dem fernen 
PC deine Tastatureingaben mitloggt.

von ... (Gast)


Lesenswert?

Wie wäre es einfach mit One Time Passphrases?

von 1234 (Gast)


Lesenswert?

Zur urspruenglichen Frage.
1)Ohne meinen notebook geh ich auch nicht ausm Haus.
2)Mein Server ist hinter einem Router, welcher durch noch einen Router 
von LAN getrennt ist.Der erste Router hat zB nur SSH offen. Der zweite 
Router ist zu.

Was war das Problem nochmals ?

von Reinhard S. (rezz)


Lesenswert?

1234 wrote:
> Zur urspruenglichen Frage.
> 1)Ohne meinen notebook geh ich auch nicht ausm Haus.
> 2)Mein Server ist hinter einem Router, welcher durch noch einen Router
> von LAN getrennt ist.Der erste Router hat zB nur SSH offen. Der zweite
> Router ist zu.
>
> Was war das Problem nochmals ?

Das hieße ja das du den Server von außen gar nicht ansprechen kannst und 
nur der Server von sich aus Verbindungen aufbauen kann.

von Tim (Gast)


Lesenswert?

1234 (Gast) wird wohl folgendes laufen haben:
1
WWW----Router1--+--Router2----Lan
2
                |  
3
              Server

Auch eine Lösung währe mit Zertifikaten zu arbeiten und
nach einen erfolgreichen Tunnelaufbau das Client-Zertifikat für
ungültig zu erklären. Ein 2. Login mit gleichem Zertifikat
ist dann nicht mehr möglich.

Und für den SSH zugang gibt es mittels PAM mindestens 2
OTP lösungen.

Ansonsten kann ich 1234 (Gast) nur zustimmen:
Es gibt Netbooks.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.