2013-02-08 5 views
6

Ich habe eine App erstellt, die als Brücke zwischen 2 verschiedenen APIs dient - WebEx & Exchange Web Services - und E-Mail. Ein Benutzer sendet eine Kalendereinladung an eine spezielle E-Mail-Adresse, die Anwendung analysiert das ICS und erstellt ein WebEx-Meeting, stellt dann eine Verbindung mit den Exchange-Webdiensten her und fügt die WebEx-Einladungsinformationen in die ursprüngliche Einladung ein.Sicher speichern API-Anmeldeinformationen, die als Klartext verwendet werden müssen

Dies wurde erstellt, da WebEx keine Mac E-Mail/Kalender-Integration hat.

Der Haken ist, dass WebEx API und Exchange API zu verwenden, brauche ich natürlich Anmeldeinformationen für beide APIs. Ich sichere die Anmeldeinformationen sicher mit AES-256-Bit-Verschlüsselung in der DB, aber für den Zugriff auf die APIs brauche ich ursprüngliche Klartext-Anmeldeinformationen (keine oAuth oder Token-Unterstützung in APIs). Sie werden natürlich sicher über SSL übertragen.

Das Sicherheitsrisiko besteht nicht darin, dass die Kennwörter gestohlen werden, da Verschlüsselungsschlüssel sicher gespeichert werden. Das Problem, das ich angehen möchte, ist die Tatsache, dass Kunden befürchten, dass ihre Unternehmensanmeldeinformationen jetzt so gespeichert sind, dass jemand mit Zugriff auf diese Schlüssel - entweder ich oder jemand im Entwicklungsteam - ihre Informationen entschlüsseln und Zugriff auf die Anmeldeinformationen erlangen kann .

Der Wert der App ist großartig - es spart jede Menge Zeit, aber wie kann ich vor dieser Angst schützen, während ich immer noch zulässt, dass dieser Ansatz funktioniert?

+0

Ruft Ihr Server zu Hause an und übergibt die Anmeldeinformationen? Wenn nicht, sehe ich nicht, warum Kunden denken würden, dass Daten, die sie eingeben und auf ihrem Gerät speichern, für andere verfügbar sind. –

+0

Die Anmeldeinformationen werden verschlüsselt in der von der Web-App verwendeten Datenbank gespeichert. Wenn eine E-Mail empfangen und verarbeitet wird, werden diese gespeicherten Anmeldeinformationen verwendet, um im Namen des Benutzers mit den WebEx- und Exchange-APIs zu arbeiten. –

Antwort

0

Die Realität ist, wenn Ihr Code die Passwörter dann senden muss, wenn ein Entwickler den Quellcode und die verschlüsselten Passwörter hat, haben sie Zugriff auf die Plain Test Passwörter. Der einzige Weg ist, dem Entwicklerteam den Zugriff auf die verschlüsselten Passwörter zu verweigern und denjenigen mit den verschlüsselten Passwörtern den Zugriff auf den Quellcode zu verwehren. Sie erreichen dies, indem Sie das Entwicklerteam von der Produktionsdatenbank fernhalten.

Das Sicherheitsrisiko besteht darin, dass Sie Zugriff auf die Produktionsdatenbank haben, in der die Schlüssel gespeichert sind. Beseitigen Sie diesen Zugriff und ihre Bedenken sollten beseitigt werden. Stellen Sie ein Dienstprogramm zur Verfügung (Desktop oder Web-basiert), das zum Konfigurieren der Schlüssel verwendet werden kann - eine gute Idee, da diese Kennwörter in Zukunft geändert werden müssen.

Lassen Sie den Kunden eine Datenbank erstellen und weisen Sie dann die App durch eine Änderung der Verbindungszeichenfolge auf die Datenbank hin. Der Kunde kann das Dienstprogramm verwenden, um die Kennwörter festzulegen.

+0

Es wäre schön, wenn es möglich wäre, ihren E-Mail-Client irgendwie eindeutig zu identifizieren und den identifizierenden Wert als Teil des Schlüssels zu verwenden ... –

Verwandte Themen