2017-04-01 5 views
0

Zertifikat Pinning auf AWS LambdaZertifikat Pinning auf AWS Lambda

Kann Funktionen in AWS Lambda, aufgerufen durch API-Gateway-Handler erreichen nach unten in die Verbindungsschicht des Antrags auf alle für den Zugriff auf das Zertifikat verwendet wurde, zu etablieren die SSL/TLS-Verbindung auf der Client-Seite? Ich möchte eine Zertifikatsfixierungs-Strategie für die API implementieren, die ich erstelle, da ich ein Dutzend Möglichkeiten gefunden habe, wie SSL ohne Pinning umgangen werden kann und die Daten in meiner API keine Social-Media-Posts sind.

Irgendwelche Alternativen, wenn nicht möglich?

Wenn Lambda-Funktionen ist eine vergleichbare Art und Weise die Sicherheit der weiteren Durchsetzung es keinen Zugriff auf die Verbindungsschicht haben und nicht einfach sagen: „SSL ist genug“

Last Resort

Wenn Lambda doesn Geben Sie mir nicht Zugriff auf die Zertifikatsinformationen der Clientverbindungen. Ich muss auf die asymmetrische Verschlüsselung zurückgreifen.

+0

Was bedeutet * "Ich habe ein Dutzend Möglichkeiten gefunden, in denen SSL ohne Pinning umgangen werden kann" * eigentlich gemeint? Wie umgehen Sie einen nicht implementierten Authentifizierungsmechanismus? Ist Ihnen bewusst, dass der Server, bevor er nach einem Client-Zertifikat fragen kann, sich der CA (s) bewusst sein muss, gegen die er das Client-Zertifikat authentifizieren kann? (API-Gateway ist es nicht.) Oder dass der Client überhaupt kein Zertifikat * vorlegt, wenn der Server nicht nach einem fragt? (API-Gateway nicht.) Es gibt kein Client-Zertifikat, über das das System Sie informieren kann. –

+0

@Michael Was denkst du, was es bedeutet? Der Mann in der Mitte. Fälschung von Zertifikatsketten. Weiterleiten einer gefälschten HTTPS-Anfrage, bevor HTTP zu HTTPS weitergeleitet wird. Wenn Sie der Meinung sind, dass SSL nicht durchbrochen werden kann, sollten Sie die Konversation sofort beenden. –

+0

Ich habe nie vorgeschlagen, dass SSL nicht verletzt werden kann, aber keines der Probleme, die Sie erwähnt haben, wird durch das Thema der vorliegenden Frage, die die Client-Authentifizierung ist, wirklich gemildert. API Gateway unterstützt HTTP bereits ohne TLS. Und natürlich können Sie immer noch HSTS verwenden ... und mit einem benutzerdefinierten Domain-Namen und Zertifikat können Sie auch [HPKP] (https://en.m.wikipedia.org/wiki/HTTP_Public_Key_Pinning) verwenden, aber diese haben auch nichts mit Client-Zertifikaten zu tun ... also versuche ich diesen Aspekt dessen, was Sie sagen, zu verstehen. –

Antwort

1

Eine AWS Lambda-Funktion hat keine direkte Verbindung mit einer HTTP-Anforderung, sie kann durch viele Dinge aufgerufen werden, z. ein SNS-Abonnement oder ein einfacher SDK-Aufruf. Oder, und das ist, was Sie anstreben, können Sie eine Lambda-Funktion über das AWS API Gateway aufrufen.

Wenn Sie also irgendwelche HTTP- oder TLS-Details in Ihrer Lambda-Funktion haben möchten, müssen Sie sicherstellen, dass das API-Gateway diese Daten irgendwie in die Payload einspeist, die zur Lambda-Funktion führt. Ich bin mir nicht sicher, ob das möglich ist, ein tiefer Tauchgang in einige API Gateway documentation wird Ihnen wahrscheinlich weiterhelfen.

+0

Danke. Ja, ich meinte mit API-Gateway aufgerufen. Ich habe nichts über Cert Zugriff gefunden, also lehne ich mich darauf, dass es nicht möglich sein könnte Zeitraum –

+0

Das API-Gateway ist ein High-Level-Service, so würde ich nicht überrascht sein, wenn Low-Level-HTTP/TLS-Daten nicht zugänglich ist . Alternativ können Sie Ihr eigenes 'API Gateway' mit einer Sprache Ihrer Wahl (z. B. NodeJS) einrichten und Ihre Lambda-Funktion im Code aufrufen. Auf diese Weise haben Sie vollen Zugriff auf den HTTP-Prozess auf niedriger Ebene. Die App kann z.B. Führen Sie Elastic Beanstalk oder eine EC2-Instanz aus. – Bram

+0

Ja, es macht Sinn. Sie können Ihren Kuchen nicht essen und essen. Mein Setup muss in Lambda für die Serverless-Vorteile ausgeführt werden. Ich werde die Dokumente untersuchen, um zu sehen, was ich vom Gateway in die Antwort schieben kann. –