2016-04-04 22 views
0

Ich möchte vor-signierte URLs mit AWS S3 verwenden. Was ich bemerkte, ist, dass die vor-signierte URL die aws_access_key_id und die aws_security_token enthält.Was ist das "aws_security_token" für

Von meinem Verständnis ist die aws_security_token Teil der URL, weil ich temporäre Sicherheitsberechtigungsnachweise verwende und es notwendig ist, die URL ordnungsgemäß zu signieren.

Aber ist es in Ordnung, die URL zu geben, sagen wir einem Frontend-Client, um ein Bild herunterzuladen? Die aws_security_token ist Teil der URL (nicht verschlüsselt). Ich mache mir Sorgen um die Sicherheit und ich konnte nicht herausfinden, was der Zweck des Tokens ist. Und was ein Angreifer mit meinem aws_access_key_id und dem aws_security_token machen kann.

Antwort

1

Ja, die aws_access_key_id und aws_security_token (falls vorhanden) werden als sicher betrachtet.

Um Schaden anrichten zu können, müsste der Angreifer theoretisch die dritte Komponente, den aws-Zugriffsschlüssel, basierend auf den Anforderungsparametern und der Signatur zurückentwickeln, so dass sie gültige alternative Signaturen für alternative Anforderungen generieren könnten .

Wenn dies möglich wäre, könnte der Angreifer dann jede Aktion ausführen, für die die temporären Anmeldeinformationen zuständig sind - dies würde jedoch ein Reverse-Engineering mehrerer HMAC-SHA-256-Runden erfordern und wird als nicht machbar angesehen .

Darüber hinaus, wenn temporäre Anmeldeinformationen (wo Sie aws_security_token sehen) verwendet wurden, sind die Anmeldeinformationen sowieso nur für kurze Zeit gültig - also selbst wenn Reverse-Engineering praktisch wäre, müsste es getan werden eine unpraktisch kurze Zeitspanne. Das Sicherheitstoken selbst ist - vermutlich - eine signierte und verschlüsselte Nachricht, die die Berechtigungen beschreibt, die mit der temporären Zugriffsschlüssel-ID und dem geheimen Schlüssel einhergehen und die Dezentralisierung der Autorisierungsentscheidungen basierend auf den Token innerhalb von AWS erleichtern. Unabhängig von ihrem tatsächlichen Inhalt (der nicht dokumentiert zu sein scheint), ist sie ohne die zugehörige temporäre Zugangsschlüssel-ID und das Geheimnis nicht unabhängig nützlich - und das Geheimnis wird nicht in der signierten URL offenbart und kann nicht umgekehrt sein wie oben besprochen. Die ID und das Schlüsselwort für den temporären Zugriff sind umgekehrt ohne das Token nutzlos.

+0

Vielen Dank für diese Erklärung. Dies ist eine sehr gute Zusammenfassung dessen, was ich in verschiedenen Quellen gelesen habe. Kennst du eine offizielle Quelle, wo ich nachschlagen kann, was du beschrieben hast? Ich habe in keiner AWS-Dokumentation einen nützlichen Überblick gefunden. – kgalli