Erlangen der gegenseitigen SSL-Authentifizierungsinformationen mit Heroku

8

Ich möchte eine gegenseitige ssl-Authentifizierung mit Heroku aufbauen, bei der ein Dritter einen Heroku-Endpunkt anruft und die Antwort von Heroku davon abhängt, welcher Dritte Heroku anruft. Ich muss gegenseitige SSL verwenden, da die Dritten sehr sicherheitsbewusst sind.

Ich habe einen Dritten, der Heroku (über das SSL-Add-On) anruft, mit einem Zertifikat ausgestattet und kann eine Antwort erhalten. Der gegenseitige SSL-Handshake scheint also funktioniert zu haben.

Allerdings kann meine Anwendung nicht feststellen, welcher Dritte Heroku angerufen hat, da keine Zertifikatsinformationen zu prüfen sind. Ich habe mir die Heroku-Header angeschaut, um zu sehen, ob es zusätzliche Informationen gibt, die vom SSL-Addon bereitgestellt werden, konnte aber nichts finden.

Gibt es eine Möglichkeit, Zertifikatsinformationen aus dem gegenseitigen Sal-Handshake über eine andere Methode für Heroku zu erhalten?

    
Mark Sivill 15.03.2013, 15:05
quelle

1 Antwort

4

Heroku SSL wird mithilfe von Amazon Elastic Load Balancers (ELB) implementiert, die eine SSL-Terminierung mit Ihrem SSL-Zertifikat vor dem Routing-Mesh von Heroku bereitstellen.

Da das SSL beendet wird und Details der Verhandlung nicht weitergegeben werden, gibt es keine Möglichkeit für Sie, Zertifikatsinformationen vom gegenseitigen SSL-Handshake zu erhalten.

Wenn Sie jedoch eine zertifikatbasierte Authentifizierung zur Authentifizierung des HTTP-Clients verwenden möchten, können Sie dies auf der Anwendungsebene erstellen.

Haftungsausschluss: Ich bin kein Kryptograf, und Sie sollten sich mit einem davon beraten, bevor Sie krypto-basierte Authentifizierungsmechanismen erstellen.

Das Zertifikat des Clients könnte zum Signieren eines Tokens verwendet werden, das Sie überprüfen können. Normalerweise enthält ein Authentifizierungstoken einige user_id , eine timestamp und eine große nonce . Sie können dies über einen HTTP-Header oder einen HTTP-Abfrageparameter mit der Anforderung übergeben, wodurch die Authentifizierung auf App-Ebene und nicht auf SSL-Ebene erfolgt.

Zum Beispiel:

%Vor%     
Winfield 31.01.2014 17:36
quelle