Sicherheitsrichtlinien
Schützen Sie Ihr appsecret
Bevor Sie mit der Integration der API starten können, erhalten Sie von allyve einen appkey und ein appsecret übermittelt. Der appkey dient bei der Kommunikation mit der API zur Identifizierung Ihrer Anwendung. Das appsecret wird benötigt um Anfragen an die API zu signieren und siginierte Antworten der API zu überprüfen.
Bitte bewahren Sie das appsecret daher sicher und für Unbefugte nicht zugänglich auf. Wie Sie Daten signieren können, erfahren Sie nachfolgend.
Signierung von Daten
![]() |
Um ein Höchstmaß an Sicherheit zu gewährleisten sind folgende Punkte zu erfüllen:
|
Konventionen beim Signieren von Daten
Die Signatur der Aufrufe an die API wird auf folgendem Weg erzeugt:
- Der Parameter “timestamp” wird mit dem aktuellen UNIX-Timestamp (Sekunde) erzeugt und zu den anderen Parametern hinzugefügt
- Alle Parameter werden alphabetisch sortiert
- Anschließend wird ein Query-String nach folgendem Schema aufgebaut:
a=1&b=2&...&timestamp=1303394153&v=22
- Es wird eine Signatur mit für den Query-String erzeugt
- Diese Signatur wird base64 und url codiert und an den Query-String als weiterer Parameter „signature“ angehängt.
Ergebnis:
a=1&b=2&...&timestamp=1303394153&v=22&signatur=VcT2nDIWMPl4p4+SW0fD6/hB+T4=
Beispiel/Vorlage
PHP Beispiel:
base64_encode(hash_hmac("sha1", $data, applicationSecret, true));
Überprüfung der Signatur
An Ihr Backend wird z.B. dieser Query-String übergeben:
?accountname=IchBinEinUser&email&exuserid&imageurl=http%3A%2F%2Fa1.twimg.com%2Fprofile_images%2F999%2Fmusterfrau_normal.jpg&imageurlstate=UNVERIFIED&profileurl=https%3A%2F%2Ftwitter.com%2FIchBinEinUser&provider=twitter&sluserid=123&timestamp=1323085619&uid=456&username=Maria%20M%C3%BCller&signature=%2BkbyXeuOhCrx9JsX%2BBw3%2F3JtJdk%3D
Zunächst müssen Sie ihn url decodieren und erhalten dann:
accountname=IchBinEinUser&email&exuserid&imageurl=http://a1.twimg.com/profile_images/999/musterfrau_normal.jpg&imageurlstate=UNVERIFIED&profileurl=https://twitter.com/IchBinEinUser&provider=twitter&sluserid=123&timestamp=1323085619&uid=456&username=Maria Müller&signature=+kbyXeuOhCrx9JsX+Bw3/3JtJdk=
Von diesem String “schneiden” Sie den &signature – Teil ab, dies ist Ihr benötigter Vergleichswert. Damit bleibt als Rest String:
accountname=IchBinEinUser&email&exuserid&imageurl=http://a1.twimg.com/profile_images/999/musterfrau_normal.jpg&imageurlstate=UNVERIFIED&profileurl=https://twitter.com/IchBinEinUser&provider=twitter&sluserid=123&timestamp=1323085619&uid=456&username=Maria Müller
Von diesen String bilden Sie zunächst mit Hilfe Ihres App-Secrets einen Hashwert (hier in PHP):
$step1 = hash_hmac(!sha1", $DER_REST_STRING, $IHR_APP_SECRET, true);
Dieser muss noch base64 encodiert werden:
$ihr_vergleichswert = base64_encode($step1);
Wenn jetzt gilt
$ihr_vergleichswert == $signature;
dann ist die Antwort in Ordnung.
Überprüfung der übermittelten Parameter
Neben der Überprüfung der Signatur bei Antworten der API sollten Sie auch überprüfen, ob die von Ihnen gewünschten Parameter in der API-Antwort enthalten sind. Bitte beachten sie beim Verarbeiten der Parameter, dass in späteren Implementationen der API neue Parameter hinzukommen können. Sie sollten die Daten so verarbeiten, dass neue Paramater nicht zu Problemen führen. Am einfachsten ist es, die Methoden zur Überprüfung aus unseren SDKs zu verwenden (parseLoginData bzw. parseContactImportLoginData), hier wird automatisch eine Überprüfung vorgenommen.
Sicherer und verantwortungsvoller Umgang mit Nutzerdaten
Bitte beachten Sie die deutschen Datenschutzgesetze und gehen Sie mit der erhaltenen Nutzerdaten verantwortungsvoll um. Sollten wir einen Missbrauch von Nutzerdaten feststellen, behalten wir uns vor Ihre Anwendung in der API zu sperren.
Für die sichere Webentwicklung hat das Frauenhofer Institut eine Richtlinie ausgegeben.
Zuletzt aktualisiert am 9. Mai 2012 von admin - Anmelden

