2009-04-13 10 views
2

Ich habe eine App mit einem eingebetteten Webserver. Dieser Webserver kann jetzt SSL über das OpenSSL-Paket ausführen :)Embedded Webserver und Zertifikate

Jetzt zum Cert-Problem. Diese App wird verkauft, was ich sage, weil sie nicht nur auf einem Server sitzt, den ich besitze - sie wird auf Tausenden von Computern installiert. Ich möchte, dass meine Kunden sicher sind, also möchte ich, dass sie SSL so schmerzfrei wie möglich nutzen. Im Moment erstellen wir unsere eigene CA und erstellen dann selbstsignierte Zertifikate. Dies bedeutet, dass alle unsere Kunden (und ihre Benutzer) entweder ihre benutzerdefinierte, installationsspezifische Zertifizierungsstelle installieren müssen oder mit der nicht vertrauenswürdigen Stammwarnung des Zertifikats leben müssen, von denen keine ansprechend ist.

Wie komme ich dazu?

Wir müssen entweder:

  1. Machen Sie es tot-einfach unsere CA zu installieren (die Browser absichtlich ziemlich schwer machen - viele scarey Warnung Dialoge)
  2. Irgendwie all diese Kunden certs erhalten legitim Von einer vom Browser anerkannten Zertifizierungsstelle signiert.
  3. die Kunden zwingen, ihre eigenen cert kaufen zu gehen und es

Ich sehe nicht installieren, wie wir # 1 tun würden, so suchen wir auf # 2. # 3 kommt so gut wie nicht in Frage.

Es kommt uns vor, dass wir nur ein SSL-Zertifikat kaufen und es mit unserem Produkt liefern können - ja, jeder benutzt das gleiche Zertifikat, und das Zertifikat und der private Schlüssel könnten in die Public Domain gelangen. .. hmmm ... Wahrscheinlich wollen wir unseren Namen nicht wegen der Haftung ...

Ich denke, das Problem ist, dass wir gegen den Zweck von CAs in erster Linie arbeiten. Irgendwelche Gedanken, wie man das für den Benutzer einfach und sicher macht? (Angenommen, Man-in-the-Middle-Angriffe sind kein Problem - hat man jemals tatsächlich dokumentiert?)

Antwort

1

Es gibt keine einfache einfache Lösung für diese. Wenn dies leicht gelöst werden könnte, wäre die Sicherheit des SSL-Zertifikatsystems schlecht.

Wie Sie bereits gesagt haben, sind Ihre Möglichkeiten begrenzt, wie Sie die Browserwarnungen vermeiden können. Jeder Ansatz kann je nach Anwendung gut sein.

1. Installieren Sie Root-CA auf dem Client-Browsern

Dies ist eine vernünftige Lösung, wenn die Anwendung intern verwendet wird, oder wenn die Clients erwartet, etwas zu installieren, um die Anwendung zu verwenden. Dies ist wahrscheinlich auch die kostengünstigste Lösung, da keine zusätzlichen Kosten erforderlich sind. Wenn die Anwendung jedoch von der gesamten Bevölkerung verwendet wird, ist dies keine vernünftige Lösung.

2. Kaufen Sie eine kommerzielle Root-CA-Zertifikat signiert

Wenn Ihre Anwendung ist mit dem Internet geöffnet, das die meisten wird wahrscheinlich erforderlich. Wenn Sie jedoch die Anwendung verkaufen und nicht nur ihre Dienste anbieten, ist dies aus Haftungsgründen, wie Sie erwähnt haben, möglicherweise nicht gut.

3. Holen Kunden ihre eigenen kommerziellen Root-CA signiertes Zertifikat

zu kaufen Wenn Ihre Anwendung verkauft wird von Kunden verwendet werden, ist es wahrscheinlich sinnvoll.Sie können die Anwendung mit einem selbstsignierten Zertifikat als Basisoption anbieten und Ihrem Kunden anbieten, sein Zertifikat zu verwenden, wenn er dies wünscht. Viele Unternehmen haben bereits SSL-Zertifikate für ihre Websites.

+0

Je nachdem, ob die Kunden kommerzielle oder sogar größere Unternehmen sind, kann Punkt 3 am einfachsten sein, wenn der Kunde eine eigene CA betreibt und sein CA-Zertifikat in den Unternehmensbrowsern durch Rollout-Software installiert. Aber über John reden Ist das weit jenseits ... –