expertenaustausch > comm.software.* > comm.software.webserver

Wilhelm Greiner (14.07.2015, 16:05)
Hallo,

habe hier einen Apache mit Zertifikaten, Clients müssen
ein Clientzert benutzen, soweit alles sauber.

Was ich möchte ist eine Möglichkeit zu verhindern das der
Service von unterschiedlichen Usern (ggf. auch mit anderer
IP) - und mit dem selben Zertifikat mehrfach benutzt werden
kann.

Gibt es eine Möglichkeit das bei Apache sauber einzuschränken?

Wilhelm
Michael Ströder (14.07.2015, 18:53)
Wilhelm Greiner wrote:
> habe hier einen Apache mit Zertifikaten, Clients müssen
> ein Clientzert benutzen, soweit alles sauber.
> Was ich möchte ist eine Möglichkeit zu verhindern das der
> Service von unterschiedlichen Usern (ggf. auch mit anderer
> IP) - und mit dem selben Zertifikat mehrfach benutzt werden
> kann.
> Gibt es eine Möglichkeit das bei Apache sauber einzuschränken?


Du suchst vermutlich sowas wie eine saubere Sitzungsverwaltung.
Ohne den "Service" genau zu kennen, kann man Dir schlecht Vorschläge machen.

Ciao, Michael.
Paul Muster (14.07.2015, 22:27)
On 14.07.2015 16:05, Wilhelm Greiner wrote:

> habe hier einen Apache mit Zertifikaten, Clients müssen
> ein Clientzert benutzen, soweit alles sauber.
> Was ich möchte ist eine Möglichkeit zu verhindern das der
> Service von unterschiedlichen Usern (ggf. auch mit anderer
> IP) - und mit dem selben Zertifikat mehrfach benutzt werden
> kann.
> Gibt es eine Möglichkeit das bei Apache sauber einzuschränken?


Das scheint mir so dermaßen gegen die Natur eines Webservers zu sein,
dass es kaum mit Bordmitteln machbar sein dürfte.

mfG Paul
Sven Hartge (15.07.2015, 00:02)
Wilhelm Greiner <wilhelm.greiner> wrote:

> habe hier einen Apache mit Zertifikaten, Clients müssen ein Clientzert
> benutzen, soweit alles sauber.


> Was ich möchte ist eine Möglichkeit zu verhindern das der Service von
> unterschiedlichen Usern (ggf. auch mit anderer IP) - und mit dem
> selben Zertifikat mehrfach benutzt werden kann.


> Gibt es eine Möglichkeit das bei Apache sauber einzuschränken?


Das wird schwer, da HTTP an sich keine Sessions o.ä. kennt. Der Browser
selbst kann ja schon für eine Webseite mehrere HTTP-Anfragen
gleichzeitig an den Server schicken. Und wenn dieser dann noch hinter
einem Proxy-Cluster oder einem NAT mit IP-Pool sitzt, dann könnten die
Anfragen auch von mehreren IPs kommen.

Die Mehrfachnutzung wirst du vermutlich wohl oder übel in deiner
Applikation verhindern müssen.

Wilhelm Greiner (15.07.2015, 09:15)
Hallo,
* Sven Hartge <sh-157> schrieb:
> Wilhelm Greiner <wilhelm.greiner> wrote:
> > Was ich möchte ist eine Möglichkeit zu verhindern das der Service von
> > unterschiedlichen Usern (ggf. auch mit anderer IP) - und mit dem
> > selben Zertifikat mehrfach benutzt werden kann.
> > Gibt es eine Möglichkeit das bei Apache sauber einzuschränken?


> Das wird schwer, da HTTP an sich keine Sessions o.ä. kennt. Der Browser
> selbst kann ja schon für eine Webseite mehrere HTTP-Anfragen
> gleichzeitig an den Server schicken. Und wenn dieser dann noch hinter
> einem Proxy-Cluster oder einem NAT mit IP-Pool sitzt, dann könnten die
> Anfragen auch von mehreren IPs kommen.
> Die Mehrfachnutzung wirst du vermutlich wohl oder übel in deiner
> Applikation verhindern müssen.


Proxy ist klar, es gibt zusätzlich noch eine individuelle Config via
mod_bw, das würde dann dadurch gebremst.

Ein komplettes Sperren wäre aber zusätzlich schon genial, eine
Applikation gibt es ander Stelle nicht dahinter, es werden einfach
via http Files heruntergeladen, ist eine inhouse Client Applikation
dahinter welche ich nicht verbrochen habe :) - will es nur passend
infrastrukturmässig absichern...

Aber ob man die Config irgendwie dynamisch genug konfiguriert bekommt,
bzw. ob nach dem SSL Handshake die Info welches Zertifikat angekommen
sich überhaupt noch auslesen lässt, das ist wohl die Frage.

Wilhelm
Peter J. Holzer (18.07.2015, 19:16)
On 2015-07-14 14:05, Wilhelm Greiner <wilhelm.greiner> wrote:
> habe hier einen Apache mit Zertifikaten, Clients müssen
> ein Clientzert benutzen, soweit alles sauber.
> Was ich möchte ist eine Möglichkeit zu verhindern das der
> Service von unterschiedlichen Usern (ggf. auch mit anderer
> IP) - und mit dem selben Zertifikat mehrfach benutzt werden
> kann.


Zunächst einmal solltest Du Dir darüber klar werden, was Du unter
"unterschiedliche Benutzer" verstehst und was unter "mehrfach benutzt"
und wie Du das (zumindest prinzipiell) feststellen kannst.

Wenn Du das weißt, dann suche eine technische Lösung.

Ein paar Szenarien (ohne Anspruch auf Vollständigkeit):

1) Person A ist im Büro auf einem Windows-Desktop-Rechner eingeloggt
und nimmt Dein Service in Anspruch. 5 Minuten später loggt sie sich im
Besprechungszimmer auf einem Laptop mit dem gleichen Account in die
gleiche Domain ein und möchte das Service benützen.

2) Gleiche Situation, aber am Laptop im Besprechungszimmer wird ein
Gastaccount verwendet. Der Key für das Clientzertifikat ist auf einem
Hardware-Token.

3) Die Person fährt nach Dienstschluss nach Hause und möchte das Service
von daheim aus nützen. Der Rechner daheim fährt Linux, ist nicht Teil
der Firmendomain und der Benutzername ist auch anders.

4) Die Person ist daheim und über RDP auf einem Rechner in der Firma
eingeloggt, und möchte das Service gleichzeitig sowohl am Rechner daheim
als auch in der Firma verwenden.

5) Person A lässt den Laptop aus Szenario 1 ungesperrt im
Besprechungszimmer stehen und Person B verwendet ihn weiter.

6) Person B kopiert den Private Key in Szenario 5 (mit oder ohne
Einverständnis von Person A) und verwendet ihn auf einem anderen
Rechner.

hp
Wilhelm Greiner (20.07.2015, 13:32)
Hallo,
* Peter J. Holzer <hjp-usenet3> schrieb:
> On 2015-07-14 14:05, Wilhelm Greiner <wilhelm.greiner> wrote:
> > Was ich möchte ist eine Möglichkeit zu verhindern das der
> > Service von unterschiedlichen Usern (ggf. auch mit anderer
> > IP) - und mit dem selben Zertifikat mehrfach benutzt werden


> Zunächst einmal solltest Du Dir darüber klar werden, was Du unter
> "unterschiedliche Benutzer" verstehst und was unter "mehrfach benutzt"
> und wie Du das (zumindest prinzipiell) feststellen kannst.
> Wenn Du das weißt, dann suche eine technische Lösung.


Es sind nicht wirklich User, sondern Server als Clients.

Mehrfach benutzt bedeutet das es mehr als eine Verbindung mit dem selben
Client zertifikat gibt.

Hätte ich die Möglichkeit mit Perl/PHP zu hantieren,
wäre das benutzen einer der ENV Variablen evtl. möglich (sicher wird der
CN des Zerts da irgendwo vorgehalten.).

Das geht so aber nicht, da direkt Files heruntergeladen werden.

Wilhelm
Peter J. Holzer (22.07.2015, 20:27)
On 2015-07-20 11:32, Wilhelm Greiner <wilhelm.greiner> wrote:
> * Peter J. Holzer <hjp-usenet3> schrieb:
> Es sind nicht wirklich User, sondern Server als Clients.


Ok, das ist schon mal klarer (und nicht das, was ich erwartet hätte,
wenn von "Usern" die Rede ist).

> Mehrfach benutzt bedeutet das es mehr als eine Verbindung mit dem selben
> Client zertifikat gibt.


Verbindung oder Session? Im Subject steht Session.

Und sind parallele Sessions bzw. Verbindungen vom gleichen Client-Host
aus erlaubt? Wenn ja, wie erkennst Du das? Denk on Proxys, NAT und Hosts
mit mehreren IP-Adressen.

> Hätte ich die Möglichkeit mit Perl/PHP zu hantieren,
> wäre das benutzen einer der ENV Variablen evtl. möglich (sicher wird der
> CN des Zerts da irgendwo vorgehalten.).
> Das geht so aber nicht, da direkt Files heruntergeladen werden.


Hilft Require env? Eventuell in Zusammenarbeit mit mod_session?

hp
Wilhelm Greiner (24.07.2015, 12:42)
Hallo,
* Peter J. Holzer <hjp-usenet3> schrieb:
> On 2015-07-20 11:32, Wilhelm Greiner <wilhelm.greiner> wrote:
> > Mehrfach benutzt bedeutet das es mehr als eine Verbindung mit dem selben
> > Client zertifikat gibt.

> Und sind parallele Sessions bzw. Verbindungen vom gleichen Client-Host
> aus erlaubt? Wenn ja, wie erkennst Du das? Denk on Proxys, NAT und Hosts
> mit mehreren IP-Adressen.


Parallele Sessions sind nicht erlaubt und damit ersteinmal keine Proxies
möglich, das funktioniert.

> > Hätte ich die Möglichkeit mit Perl/PHP zu hantieren,
> > wäre das benutzen einer der ENV Variablen evtl. möglich (sicher wird der
> > CN des Zerts da irgendwo vorgehalten.).
> > Das geht so aber nicht, da direkt Files heruntergeladen werden.


> Hilft Require env? Eventuell in Zusammenarbeit mit mod_session?


Ich glaube nicht, mit Require könnte ich einzelne Zertifikate erlauben,
müsste dann aber immer die Volle Liste vorhalten, mal schauen evtl.
wird es so, aber lieber wäre mir das generische Verbot.

Wilhelm
Ähnliche Themen