Richtlinien basieren auf wissenschaftlichen Quellen.
Name | Benutzerfreundliche Kryptographie-APIs |
Quellen | (Green und Smith, 2016) |
Synonyme | Create usable and secure crypto APIs for developers |
Richtlinien | Erstelle benutzerfreundliche und sichere Kryptographie-APIs für Entwickler |
Kontext | Mittlerweile hat sich die Meinung durchgesetzt, dass Systeme für Endnutzer benutzerfreundlich und robust sein sollten. In Bezug auf Softwareentwickler herrscht bei den Designern kryptographischer Bibliotheken jedoch immmer noch die Meinung vor, dass die Entwickler Experten sind und sich daher gut auskennen. Die Folge davon ist, dass viele aktuelle Sicherheitszwischenfälle nicht von Endnutzern verursacht wurden, sondern von Softwareentwicklern, die Fehler machten. Daher sollten für die Entwicklung benutzbarer und sicherer Kryptographie-APIs folgende zehn Vorschläge in Betracht gezogen werden: 1. Integriere kryptographische Funktionalitäten in Standard-APIs, damit Entwickler sich gar nicht erst mit kryptographischen APIs befassen müssen. Integriere kryptographische APIs in nicht-sicherheitsrelevante APIs, so dass Entwickler, die keine Experten sind, sich nicht mit speziellen kryptographischen APIs befassen müssen. 2. Erfülle sicherheitsrelevante und nicht-sicherheitsrelevante Anforderungen. Die API muss sowohl sicherheitsrelevante, als auch nicht-sicherheitsrelevante Anforderungenen in ausreichendem Maße erfüllen. 3. Leicht erlernbar, auch ohne kryptographisches Fachwissen. Die API sollte so gestaltet sein, dass für ihre korrekte Anwendung kein spezielles Hintergrundwissen erforderlich ist. 4. Kein Bruch des Entwickler-Paradigmas. 5. Einfach nutzbar, auch ohne Dokumentation. Ist die API nicht selbsterklärend oder schlimmer noch, erweckt sie den fälschlichen Eindruck, dass sie es ist, werden Entwickler gefährliche Fehler machen. 6. Falsche Nutzung wird erschwert und führt zu sichtbaren Fehlern. Bei Security-APIs sollte besondere Aufmerksamkeit darauf gelegt werden, einer falschen Nutzung vorzubeugen und Fehler sichtbar machen. 7. Sichere und unzweideutige Standards. Eines der grundlegenden Prinzipien benutzerfreundlicher Sicherheit ist es, den Nutzer nicht mit einem Standardverhalten zu konfrontieren, das mehrdeutig oder unsicher ist [Path of Least Resistance]. 8. Test-Modus. Sicherheitsmechanismen sind oft komplex oder führen zu Performance-Einbußen. Dies lässt sich bei Anwendungen, die im Produktivbetrieb sind, nicht vermeiden. Dennoch ist es legitim und verständlich, dass Entwickler ihre Anwendungen mit reduzierten oder gänzlich ohne Sicherheitsmechanismen testen möchten, da dies für sie bequemer ist. 9. Einfach les- und wartbarer Code/Aktualisierbarkeit. Bloch (Bloch, 2006) empfiehlt API-Designern dafür zu sorgen, dass der verwendete Code möglichst einfach wartbar ist. Im Security-Kontext ist einfache Warbarkeit besonders wichtig, da sicherheitsrelevanter Code up-to-date gehalten werden sollte. 10. Hilfestellungen für Endnutzer-Interaktionen. Die meisten Entwickler, die eine Security-API nutzen, haben kein fundiertes Hintergrundwissen über Kryptographie und sicherheitsrelevante Maßnahmen. Daher fällt es ihnen schwer, dem Nutzer verständlich zu machen, was genau schief gelaufen ist. Aber selbst mit einem einem guten Verständnis davon, was schief gelaufen ist, ist die Gestaltung guter Warnhinweise eine Kunst für sich. |
Beispiele | Keine |
Verwandte Richtlinien | Keine |
Kategorie | Usable Security |
Tags | Usability, Kryptografie, Verschlüsselung, API, Entwickler |
Log history | [01/03/2017]: Translated to german |
Bloch, J., 2006. How to design a good aPI and why it matters, in: Companion to the 21st aCM sIGPLAN symposium on object-oriented programming systems, languages, and applications, OOPSLA ’06. ACM, New York, NY, USA, S. 506–507. doi:10.1145/1176617.1176622
Green, M., Smith, M., 2016. Developers are Not the Enemy!: The Need for Usable Security APIs. IEEE Security Privacy 14, 40–46. doi:10.1109/MSP.2016.111