Content

Scroll back

Kryptographie und JavaScript

Projektinhalt

Web basierende Applikationen, bei denen ein Teil der Funktionalität direkt im Webbrowser ausgeführt wird, erfreuen sich immer größerer Beliebtheit. Hierbei stellt sich JavaScript immer mehr als die Programmiersprache heraus, welche für komplexe Anwendungen, die direkt im Browser laufen sollen, verwendet wird. Bei sicherheitsrelevanten Anwendungen stellt sich jedoch die Frage, wie kryptographische Algorithmen integriert und etwaige Schlüssel sicher abgelegt werden können.
Ziel dieses Projekts war es einen Überblick über den funktionalen Umfang von Krypto-Bibliotheken in JavaScript zu bekommen. Im Weiteren wurde ein Prototyp entwickelt welcher es ermöglicht Daten mit einem Server verschlüsselt auszutauschen, wobei die Nutzdaten jedoch bereits clientseitig im Browser verschlüsselt werden. Zusätzlich bietet dieses Projekt die Möglichkeit zur Analyse in wie weit JavaScript für kryptografische Anwendungen einsetzbar ist.

Resultate

Im Zuge dieses Projekts wurde ein Prototyp entwickelt, der Daten clientseitig mittels JavaScript verschlüsselt und im Anschluss auf einem Server ablegt. Die Daten werden in einem zweistufigen Verschlüsselungsverfahren geschützt, wobei die Schlüssel für die asymmetrische Verschlüsselung in einem Schlüsselspeicher im Browser abgelegt werden. Folgende Punkte wurden im Detail behandelt:

  • Analyse von bestehenden JavaScript Bibliotheken für kryptografische Anwendungen.
  • Implementierung eines Demonstrators.
    • Lokale Verschlüsselung von Daten im Browser mit JavaScript
    • Lokale Verwaltung der Schlüssel im Browser
  • Analyse von Sicherheitsproblemen bei Kryptografie mit JavaScript.

Es konnte gezeigt werden dass die clientseitige Verschlüsselung mit JavaScript und die Schlüsselverwaltung mittels HTML5 Features funktioniert. Von Seiten der Sicherheit gibt es jedoch Bedenken, da es in einem realen Anwendungszenario, mit diesen Mitteln, eigentlich nicht möglich ist die Daten vor dem Web-Service Betreiber zu schützen. Von Seiten W3C ist jedoch eine Kryptografie API für den Web Browser angedacht und diese würde einen Großteil der Sicherheitsbedenken lösen.

Deliverables

Im Projekt wurden folgende Deliverables erstellt:

  • Konzept und Dokumentation
  • Implementierung eines Demonstrators

Downloads

Demonstrator

Aktuell unterstützen nicht alle Browser die im Demonstrator verwendeten HTML5 Features.

 

Firefox

Safari

Chrome

Opera

IE

unterstütze Versionen

                  >13.0

                     >6.0

                     >20.0

                     >12.50

                     10

Scroll forward