Rafael: Sicherheitsfrage

Ich hab eine kleine Frage zu einer Problemstellung:

Eine Firma hat mehrere Datenbanken über Access:
Nun stehen neue Lizenzen an, die einen fünfstelligen Betrag kosten würden. Also stellt sich die Frage, ob eine Umstellung auf Open-Source (PHP+MySQL) sinnvoll wäre.

Folgende Konstellation: Es gibt zwei Server von denen die Datenbank bereitgestellt wird. Diese synchronisieren sich alle 15 Minuten. Auf die Datenbank zugreifen können müssen Außendienstmitarbeiter und Innendienstmitarbeiter.

Nun habe ich mir überlegt für Zugriffe ohne interne IP-Adresse eine Art TAN-System (wie beim Onlinebanking) zu nutzen. Die TANs werden in selber SQL-Datenbank gespeichert und so wird neben Login und Passwort einfach zusätzlich der TAN geprüft, der anschließend verfällt. Ein einmal genutzter TAN wird einfach als genutzt und ungültig erklärt.

Würde das funktionieren? Oder begehe ich einen Denkfehler?
Als Hash zu speichern wäre durch die einmalige Gültigkeit der TANs auch unnötig, oder?

Ist ein Übertragen von Access auf MySQL aufwendig?

  1. hi,

    Nun habe ich mir überlegt für Zugriffe ohne interne IP-Adresse eine Art TAN-System (wie beim Onlinebanking) zu nutzen. Die TANs werden in selber SQL-Datenbank gespeichert und so wird neben Login und Passwort einfach zusätzlich der TAN geprüft, der anschließend verfällt. Ein einmal genutzter TAN wird einfach als genutzt und ungültig erklärt.

    Aus Sicherheitsgründen wäre es schlecht, einen direkten Zugriff auf die DB zu erlauben. Besser ist es den Zugriff über ein Webfrontend mit einer gesicherten Verbindung zu machen (SSL) und eine FW-Regel im LAN schaffen, dass nur der Webserver auf die DB kommt (mysql port 3306).

    Den Zugriff vom Web aus evntl. über einen Proxy oder einen dedizierten Webserver in einer DMZ. Das häng von eurer Infrastruktur ab.

    Würde das funktionieren? Oder begehe ich einen Denkfehler?
    Als Hash zu speichern wäre durch die einmalige Gültigkeit der TANs auch unnötig, oder?

    Machbar ist vieles was Authentifizierung und Authorisierung betrifft. Das Thema ist zu komplex, als dass ich hierzu eine spezielle Lösung geben kann. Die häng von euren Anforderungen und Voraussetzungen ab.

    Ist ein Übertragen von Access auf MySQL aufwendig?

    Aufwendig ist es ein Script zu schreiben, was das macht. Wenn das einmal rennt, dann rennt es ;-)

    --roro

    1. Ein Webforntend ist sowieso geplant (deshalb das PHP) oder hab ich deinen Tipp falsch verstanden?

      Das Problem mit dem Proxy ist, dass die Computer bis auf die beiden Server alle uralt sind (teilweise Baujahr 1996) und die einzige Lösung, die mir einfällt wäre, dass lediglich der eine Server auf den anderen zufgreifen kann. Der Zugriff ginge aber wieder nicht per LAN, da sie an verschiedenen Standorten stehen...

      Naja, ein Proxy dürfte nicht das Problem sein. Da aber auch Dinge wie Firmenwebseite auf dem Server liegen sind die Rechner mit den Datenbanken auch heute schon ans Netz angeschlossen. Insofern ist dieser Sicherheitsmechanismus schon ausgehebelt...

    2. Ist ein Übertragen von Access auf MySQL aufwendig?

      Aufwendig ist es ein Script zu schreiben, was das macht. Wenn das einmal rennt, dann rennt es ;-)

      Oder auch nicht. Und zwar dann, wenn es Porbleme mit den Datenwerten bzw. Datrentypen gibt.

      Aber Du hast natürlich recht, dass man ein Script erstellen sollte, eventuell kommt ein so genanntes DTS-Paket von MS SQL Server in Betracht. Und zwar auch dann, wenn der MS SQL Server nur aus dem Grund irgendwo installiert worden ist, damit Daten transformiert werden können.

  2. Hallo Rafael,

    Eine Firma hat mehrere Datenbanken über Access:
    Nun stehen neue Lizenzen an, die einen fünfstelligen Betrag kosten würden. Also stellt sich die Frage, ob eine Umstellung auf Open-Source (PHP+MySQL) sinnvoll wäre.

    Wieso denn das? Welche Software ist so teuer? Welche Lizenzen sind so teuer? Wie komplex ist die Anwendung?

    Wie teuer kommt die Neuentwicklung? Software auf OpenSource-Basis schreibt sich nicht von selbst. Unterschätze nicht die Datenübernahme, unterschätze nicht die Einarbeitung der Mitarbeiter.

    Weiterhin benötigt man, um auf Access-Datenbanken zugreifen zu können, nicht die Vollversion von MS Access. Access-basierte Anwendungen sollten so entwickelt sein, dass sie mit der Runtime-Version von Access laufen und verteilt werden können. Früher benötigte man dafür das Developer-Kit für Access, heute die Visual-Studio-Tools für Office.

    Du kannst mit den verschiedenen Programmiersprachen, die in Visual Studio enthalten sind auf die Jet-Engine zugreifen, Du kannst dies auch ohne Visual Studio über die ODBC-Schnittstelle.

    Folgende Konstellation: Es gibt zwei Server von denen die Datenbank bereitgestellt wird. Diese synchronisieren sich alle 15 Minuten.

    Du willst also Replikation einrichten. Das sollte mit MySQL möglich sein.
    Frage: Welche Gründe hast Du für diese Synchronisierung? Möchtest Du vielleicht einen Cluster verwenden?

    Auf die Datenbank zugreifen können müssen Außendienstmitarbeiter und Innendienstmitarbeiter.

    Nun habe ich mir überlegt für Zugriffe ohne interne IP-Adresse eine Art TAN-System (wie beim Onlinebanking) zu nutzen. Die TANs werden in selber SQL-Datenbank gespeichert und so wird neben Login und Passwort einfach zusätzlich der TAN geprüft, der anschließend verfällt. Ein einmal genutzter TAN wird einfach als genutzt und ungültig erklärt.

    Das halte ich persönlich für viel zu kompliziert. Warum stellst Du nicht einfach VPN-Zugänge zur Verfügung? Damit habe ich bei einem ehemaligen Arbeitgeber sehr gute Erfahrungen machen können.

    Ist ein Übertragen von Access auf MySQL aufwendig?

    Die pauschale Antwort auf diese pauschale Frage:
    Ja. Selbstverständlich sehr aufwendig.

    Etwas differenzierter: Das hängt von der Access-Anwendung ab, das hängt vom Konzept der bestehenden Anwendung ab, das hängt vom Konzept der neuen Anwendung ab. Die Umstellung will genau überlegt und genau geplant sein. Sie kann teuer sein, sie kann teuer werden.

    Am Rande bemerkt:
    Warum denkst Du nicht über Alternativen beim Datenbankmanagementsystem nach?

    • PostgreSQL
    • MS SQL-Server, z.B. mit der kostenlosen Express Edition
    • Oracle oder DB2, ebenfalls mit kostenloser Express Edition

    Warum ausgerechnet MySQL?

    Freundliche Grüße

    Vinzenz

    1. Das ist alles nur der IST-Zustand. Ich hab das System heute auch zum ersten mal begutachtet. Warum die Lizenzen für die Software so teuer sind weiß ich nicht, auch IST-Zustand. Alles Microsoft, vom Windows bis zum Word... Und wenn ohnehin ein Officepacket nutzt nimmt man gleich das ganze Access. Base von OpenOffice ist aber noch nicht so der Bringer. Und ein einfaches Web-Interface ist sicher nicht so kompliziert zwecks anlernen wie zum Beispiel die Access-Schulungen, die auch ein halbes Vermögen kosten.
      Mit Open-Scource meinte ich übrigens nur MySQL und PHP, weil damit keinerlei Lizenz- und Folge-Kosten anfallen. Dass ich eventuell was zusammenbasteln muss ist ja überhaupt Grundlage der Überlegung.

      MySQL auch deshalb weil es die Datenbank ist mit der ich am meisten Erfahrung habe. Was spräche denn dagegen und für zum Beispiel Oracle?
      Und so aufwendig sind die Access-Datenbanken nicht. Eigentlich drei Adressverzeichnisse: Lieferanten, Kunden, Hersteller und verschiedenste Bestelllisten, alle gleich organisiert.

      1. Hallo Rafael,

        Das ist alles nur der IST-Zustand. Ich hab das System heute auch zum ersten mal begutachtet. Warum die Lizenzen für die Software so teuer sind weiß ich nicht, auch IST-Zustand.

        Meine Frage war eher, wofür Lizenzen erforderlich sind. Für die Anwendung? Oder für das Office-Paket?

        Alles Microsoft, vom Windows bis zum Word...

        Ja und? Das ist verbreitet. Wenn die Firma neu ausgestattet werden soll, dann sollte man sich auch über die Kosten für die Lizenzen unterhalten. Du kaufst ja schließlich keine Einzellizenzen.

        Und wenn ohnehin ein Officepacket nutzt nimmt man gleich das ganze Access.

        Das verstehe ich nicht.

        Base von OpenOffice ist aber noch nicht so der Bringer. Und ein einfaches Web-Interface ist sicher nicht so kompliziert zwecks anlernen wie zum Beispiel die Access-Schulungen, die auch ein halbes Vermögen kosten.

        Wozu Access-Schulungen für Anwendungen, die auf Access basieren? Völlig überflüssig.

        Mit Open-Scource meinte ich übrigens nur MySQL und PHP, weil damit keinerlei Lizenz- und Folge-Kosten anfallen. Dass ich eventuell was zusammenbasteln muss ist ja überhaupt Grundlage der Überlegung.

        Ich sehe hier wirklich keinen Unterschied zu MS SQL Server und den anderen von mir genannten Alternativen. Außer dass die von mir genannten Alternativen in vielen Fällen leistungsfähiger sind.

        MySQL auch deshalb weil es die Datenbank ist mit der ich am meisten Erfahrung habe.

        Über welche Erfahrung mit anderen Datenbankmanagementsystemen vefügst Du denn?

        Was spräche denn dagegen und für zum Beispiel Oracle?

        Die Leistungsfähigkeit der von mir genannten Alternativen. OK, seit der Version 5.0.12 (das ist die Mindestversion, die ich guten Gewissens empfehlen kann) wird MySQL allmählich akzeptabel.

        Und so aufwendig sind die Access-Datenbanken nicht. Eigentlich drei Adressverzeichnisse: Lieferanten, Kunden, Hersteller und verschiedenste Bestelllisten, alle gleich organisiert.

        Ich dachte, Du sprächest von Datenbanken? Handelt es sich nur um ein paar Tabellen? Wow, und dafür willst Du gleich eine Serversynchronisierung aufsetzen und ein TAN-Verfahren aufsetzen, das eventuell komplexer ist als die vorhandene DB.

        Ich vermute, Du solltest eher etwas mehr Aufwand in ein sinnvolles Backupkonzept stecken - und noch etwas in Sachen Datenbanken dazulernen. ;-)

        Freundliche Grüße

        Vinzenz

        1. Hast du überhaupt gelesen was ich geschrieben habe?
          Ich bin außerdem kein firmeninterner. Ich weiß nur was ich auch hier geschrieben habe und als quasi Freund der Familie mach ich mir mit Gedanken, ob man das auch mit OpenSource machen könnte. Wofür genau Gebühren bezahlt werden weiß ich nicht, hat mich im Grunde auch nicht zu interessieren.

          Ich überlege nur, ob man nicht ganz vom Office-Packet weg kann um diese Kosten zu sparen. Die Grundlage der Anfrage war ja auf Lizenzen nach und nach zu verzichten, deshalb auch nicht Oracle sondern SQL.
          Das es überdimensional viele Daten sind habe ich auch nie behauptet. Nur das es sich um sehr sensible Daten handelt. Und da auch Außendienstmitarbeiter auf sie zugreifen sollen, die nicht zwingend in einer sicheren Umgebung sind, sondern im schlimmsten Fall in einem Konkurenzunternehmen, wo sie sich mit ihrem Laptop ins WLAN einloggen.

          Gibt man Letzteren nun eine Liste mit TANs, dann kann jeder Login und jede Änderung / Ergänzug an der Datenbank nicht von "Fremden" durchgeführt werden, selbst wenn diese das Netz überwachen, weil diese dann hoffentlich keinen gültigen TAN besitzen.

          Datenbankmanagmentsysteme? Ist doch egal. Datenbanken: Ich kenne MySQL sehr gut und Oracle wenig. Die Verwaltung will ich eben selber schreiben. Darum gehts doch...

          1. Hallo Rafael,

            ich persönlich finde eine Anrede - und sei es nur ein "Hallo" - viel netter als gleich loszupoltern :-)

            Hast du überhaupt gelesen was ich geschrieben habe?

            Ja, hab' ich. Ich habe leider den Eindruck, dass Du meine Postings entweder nicht gelesen oder nicht verstanden hast. Letzeres wäre mir unangenehmer.

            Ich bin außerdem kein firmeninterner. Ich weiß nur was ich auch hier geschrieben habe

            Ich hoffe doch ein wenig mehr.

            und als quasi Freund der Familie mach ich mir mit Gedanken, ob man das auch mit OpenSource machen könnte.

            Das ist schön von Dir.

            Wofür genau Gebühren bezahlt werden weiß ich nicht, hat mich im Grunde auch nicht zu interessieren.

            Diese Frage steht im Widerspruch zu Deiner folgenden Aussage:

            Ich überlege nur, ob man nicht ganz vom Office-Packet weg kann um diese Kosten zu sparen. Die Grundlage der Anfrage war ja auf Lizenzen nach und nach zu verzichten, deshalb auch nicht Oracle sondern SQL.

            Ja, deswegen habe ich Dich schon zweimal gefragt, hat Frank Dich gefragt, und frage ich Dich erneut:

            Auf welche Lizenzen willst Du verzichten?

            Sollen die Mitarbeiter in Zukunft mit OpenOffice statt mit Word und Excel arbeiten? Ja? Wie intensiv werden diese Anwendungen genutzt? Glaubst Du, auf Anhieb auf diese beiden Programme verzichten zu können. Kannst Du diesen Ausstieg planen?

            Dass Du _keine_ Access-Lizenzen benötigst, also auch nicht die Professional-Variante von MS Office, das solltest Du inzwischen verstanden haben. Übrigens kannst auch auf Access ziemlich problemlos mit PHP zugreifen.

            Willst Du von Windows weg? Wenn nein, dann kannst Du auf diese Lizenzen nicht verzichten. Deswegen noch einmal:

            Auf welche Lizenzen möchtest Du verzichten?

            Zurück zu den Datenbankmanagementsystemen, die wie MySQL (bitte nicht SQL) allesamt einen eigenen SQL-Dialekt sprechen:

            - PostgreSQL
             - Oracle Express Edition
             - IBM DB2 Express Edition
             - MS SQL Server 2005 Express Edition

            Zwar nicht OpenSource, aber in der Anschaffung und Lizenzierung nicht teurer als MySQL und abgesehen vom MS SQL Server auch für Linux zu haben.

            - MySQL Community Server

            Das es überdimensional viele Daten sind habe ich auch nie behauptet. Nur das es sich um sehr sensible Daten handelt.

            Nein, das stand bisher in keinem Deiner Postings. Das ist eine neue Information. Nur, dass Du das ganze irgendwie absichern willst.

            Und da auch Außendienstmitarbeiter auf sie zugreifen sollen, die nicht zwingend in einer sicheren Umgebung sind, sondern im schlimmsten Fall in einem Konkurenzunternehmen, wo sie sich mit ihrem Laptop ins WLAN einloggen.

            Du solltest eher an verschlüsselte Datenübertragung denken als an Authentifizierung. Sehr sensible Daten möchte ich grundsätzlich im eigenen Netzwerk haben, und den Zugriff darauf nach Möglichkeit auf dieses beschränken. Welche Daten davon müssen überhaupt übers Internet wandern? Kannst Du eventuell diese Menge reduzieren? Vielleicht sogar eliminieren? Fragen, die Du Dir beantworten solltest.

            Datenbankmanagmentsysteme? Ist doch egal.

            Ist das egal? Für Dich? Für die Anwendung? Es ist nicht jedem egal :-)

            Datenbanken: Ich kenne MySQL sehr gut und Oracle wenig.

            Das ist ein Argument für Dich. Wie sieht es in Zukunft aus? Wenn Du z.B. auf Linux als Basis setzt, gibt es bereits potentielle Administratoren? Soll das so nebenbei laufen wie derzeit möglicherweise die (nicht vorhandene) Administration des Windows-Netzes? Ich finde es traurig, dass so viele davon ausgehen, auf Netzwerkadmins verzichten zu können.

            Die Verwaltung will ich eben selber schreiben. Darum gehts doch...

            Deswegen solltest Du Dich meiner Meinung nach aufs Wesentliche konzentrieren und überflüssige komplexe Dinge wie Deine TAN-Verwaltung vermeiden :-)

            Zurück zu Deiner Problemstellung:
            Informiere Dich darüber, welche Kosten für welche Lizenzen entstehen. Lies dazu nochmals das Posting von Frank.
            Informiere Dich darüber, auf welche Lizenzen nicht verzichtet werden kann.
            Ermittle so, auf welche Lizenzen verzichtet werden könnte.
            Entwickle ein Umstiegskonzept.
            Schätze ab, ob Deine Neuentwicklung - da liegt Hamstar nämlich genau richtig - Kosten einsparen kann.
            Entwickle ein Sicherheitskonzept für Deine Anwendung.
            Entwickle ein Sicherheitskonzept für die Firma.

            Was Du noch überhaupt nicht angesprochen hast:
            Wie aufwendig ist die bestehende Access-Lösung? Ist es Arbeiten direkt in der Access-Oberfläche (oh je, dann ist das keine Lösung) oder gibt es eine Anwendung mit den hübschen Access-Formularen, die z.T. schnell zusammengeklickt sind, zum anderen aber auch hochkomplexe VBA-Anwendungen sein können. Ich ging bei Deiner Fragestellung von letzterem aus, das ist nämlich meine Vorstellung von Access-Anwendungen. Hab' ich auch schon selbst gemacht. Natürlich benötigen die Anwender eine Einweisung in die Anwendung - da ist kein Unterschied zwischen einer GUI-Anwendung und einer Web-Anwendung.

            Freundliche Grüße

            Vinzenz

  3. Hallo,

    was hat deine Frage mit "Sicherheit" zu tun? Oder möchtest du dich "absichern"?

    Wofür genau stehen Lizenzkosten an? Wollt ihr auf Office 2007 upgraden? Oder ein weiteres Jahr Software Assurance kaufen, was durchaus auch 5stellig sein kann je nach Umfang. Aber 5stellig reicht von 10.000 bis 99.999?

    Was hat ein TAN System mit eurem Lizenzproblem zu tun oder mit der Synchronisierung. Selbt mit diesem TAN System wäre die Benutzung von MS Access (ich betone: nicht der Datenbankdateien .mdb) immernoch lizenzpflichtig. (Gottseidank, ich möchte ja auch jeden Monat mein Geld bekommen).

    Was hat das Speichern eines Hashes (von was) mit einem TAN System zu tun?

    Willst du für jeden Datenbankaufruf (der unter realen Umständen öfters mit einem Login/Logout verbunden ist) eine TAN vergeben.

    Wenn du einen Denkfehler begehst (aktuell), dann den, dass du nicht genau weisst

    • was du willst
    • warum du es willst
    • was das Problem genau ist
    • was die Ursachen des Problems sind
      (Irgendwas davon wird sicherlich zutreffen ;))

    Analysiere bitte deinen IST-Zustand genauer. Dein Posting beinhaltet zuviel Durcheinander um konkret Hilfestellung bieten zu können.

    Ciao,
    Frank

  4. Nun habe ich mir überlegt für Zugriffe ohne interne IP-Adresse eine Art TAN-System (wie beim Onlinebanking) zu nutzen. Die TANs werden in selber SQL-Datenbank gespeichert und so wird neben Login und Passwort einfach zusätzlich der TAN geprüft, der anschließend verfällt. Ein einmal genutzter TAN wird einfach als genutzt und ungültig erklärt.
    Würde das funktionieren? Oder begehe ich einen Denkfehler?

    Keine schlechte Idee, aber was machst Du, wenn der Aussendienstmitarbeiter mehrere Anfragen bzw. Datenänderungen anfordert? Mehrere TANs? - Falls nicht, dann wirst Dú an SSL und einem Session-Konzept nicht vorbeikommen.

    Ach ja, TANs sind natürlich wesentlich aufwendiger zu handeln als UserName/Password.

    Ist ein Übertragen von Access auf MySQL aufwendig?

    Ja.

    Noch aufwendiger natürlich die Umstellung auf PHP.

    Alles in allem würde ich vonj einer kompletten Neuentwicklung der eingesetzten SW schreiben wollen.

    Viel Spass!   ;)