Quelloffener Code im Einsatz bei Verschlüsselungssoftware

hannes.huber2.uni-linz, 11. April 2017, 17:30

 

Beschreibung

Neben Einleitung und der Definitionen liegt der Hauptteil der Arbeit auf dem Einsatz von quelloffenem Code bei Verschlüsselungssoftware. Hier werden sowohl die Merkmale als auch Risiken und Chancen erläutert. Am Ende folgen Fallbeispiele zur Illustration.

 

Gliederung

  • Definition Quelloffener Code
  • Anwendungsgebiete
  • Definition Verschlüsselung
  • Beispiel zur Verschlüsselung
  • Sicherheit von Verschlüsselung
  • Merkmale offenen Codes bei Verschlüsselung
  • Alternativen zu offenem Code bei Verschlüsselung
  • Risiken und Chancen von offenem Code bei Verschlüsselung
    • Risiken durch Erweiterungen (dritter) Autoren/Distributoren
    • Chance offenen Codes durch Fehlersuche Dritter
  • Fallbeispiele

 

Inhalt


Bildquelle: https://pixabay.com Lizenz: CC0 Public Domain

 

Definition quelloffener Code/Open Source(Q1)


Quelle: Open Source Initiative official SVG - Simon Phipps, former president of OSI, Creative Commons Attribution 2.5 License

Grudsätlich ist quelloffener Code und Open Source nicht das selbe. Vielmehr hat die Open Source Initiative regeln festgelegt, unter denen sich eine Software als Open Source bezeichnen darf. Auch wenn die Definition von Open Source seitens der Open Source Initiative aufgestellt wurde, besteht kein Markenschutz. Daher kann Jeder Open Source Definieren und Anwenden wie er will.(Q5) Unter quelloffenem Code hingegen wird lediglich verstanden, dass der Code einsehbar ist.

Neben der Eigenschaft, welche der Name bereits besagt, dass Zugriff auf den Code gewährleistet sein muss, müssen weitere Kriterien erfüllt sein, damit der Code als Open Source im Sinne der Open Source Initiative gilt:

Unbeschränkte Weitergabe

Die Lizenz darf nicht verhindern, dass die Software oder Teile daraus verkauft oder  weitergegeben werden. Weiters dürfen keine Abgaben oder sonstige Leistungen bei Weitergabe entstehen.

Quellcode

Das Programm muss in Form von Quellcode vorliegen, welcher sowohl als solcher, als auch im kompilierter Form weitergegeben werden darf. Zwischenformen oder verschleierter Quellcode ist nicht zulässig.

Abgeleitete Werke

Die Lizenz muss die Veränderung, sowie die Weitergabe dieser unter gleichen Lizenzbedingungen erlauben.

Integrität des ursprünglcihen Codes

Eine Weitergabe des Veränderten Codes darf nur dann verboten werden, wenn sie die Weitrergabe von Patch-Dateien (=Korrekturauslieferung) samt Quellcode erlaubt.

Keine Diskriminierung von Personen oder Gruppen

Die Lizenz darf keine Personen oder Gruppen diskriminieren.

Keine Diskriminierung von Einsatzbereichen

Die Lizenz darf keien Einschränkungen zum Einsatzbereich (z.B. nur geschäftlich) geben. 

Weitergabe der Lizenz

Die mit dem Programm verbundenen Rechte müssen unabhängig von eionem Lizenzerwerb für jeden gelten.

Produktunabhängige Lizenz

Die mit dem Programm verbundenen Rechte dürfen nicht davon abhängen, ob das Programm Teil einer Softwareverteilung ist.

Keine Auswirkungen auf andere Software

Die Lizenz darf keine Einschränkungen enthalten, welche auf andere Software auswirken haben.

Technologieneutrale Lizenz

Die Lizenz mut sowohl Technologie- als auch Schnittstellenneutral sein.

 

 

Anwendungsgebiete Open Source(Q2)

Open Source basiert letztlich auf dem Prinzip des "Community-Prozesses". Sie ist auf einen großen Nutzerkreis ausgerichtet. Daher kommt Offener Code in spezialisierte Software weniger oft vor, als in Bereichen die von einer vielzahl von Anwendern verwendet werden.

 

Open Source findet vorallem bei Webservern, Programmiersprachen und Datenbanken.(Q10) Die von Open Source am meisten bestroffene Branche ist die Informatik und Telekommunikationsbranche.(Q10)

Alternative für herkömmliche Software(Q3)

Open Source findet Anwendung in unzähligen Bereichen, so gibt es Alternativsoftware im Bereich von open Source Software unter anderem für

  • Acrobat
  • AutoCAD
  • Gmail
  • MATLAB
  • Minecraft
  • Picasa
  • Publisher
  • Slack
  • Trello
  • ...

Hierbei handelt es sich um eine lediglich um eine Beispielhafte und keinesfalls abschließende Aufzählung.

 

Definition Verschlüsselung (Q4)

"Unter Verschlüsselung versteht man Verfahren und Algorithmen, die Daten mittels digitaler bzw. elektronischer Codes oder Schlüssel inhaltlich in eine nicht lesbare Form umwandeln."(Q4)

 
Quelle: Eigene Darstellung

Das Verschlüsseln als Verfahren besteht aus der Verschlüsselung (links im Bild) und der Entschlüsselung (rechts im Bild). Es wird zwischen symmetrischer und unsymmetrischem Verschlüsselungsverfahren unterschieden. Bei der symmetrischen Verschlüsselung wird für den Ver-  und Entschlüsselungsvorgang ein identer Schlüssel verwendet, welcher den Originaltext mit Hilfe des Schlüssels in verschlüsselten Text und wieder zurück verwandelt. Asymmentrische Verschlüsselungsverfahren verwenden unterschiedliche Schlüssel für die Ver- und Entschlüsselung. Der Schlüssel zum Verschlüsseln wird hier als Private Key und der Entschlüsselungsschlüssel Public-Key bezeichnet.

 

Beispiel zur Verschlüsselung(PGP Verschlüsselung, erstellt mit https://www.igolder.com):

Private Key:

-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: BCPG C# v1.6.1.0

lQOsBFjk9ykBCACPutsECMYSeXstKMaZz1fD+uffyKRZI6HyG0XXDjO6KpGu44V0
ytl6OmR9XnesjqqQg6eNvtK1VZoYmkMpHe9O1Fd6BiV2JxcHu7WCYfC+K2h7uKaF
BXsC/0af1kqH6G391UXYarKir+3AisU1NDd4wifBkQ9g0fxwiOgxzIL22sWEO8g2
W9Zb382YTabThrCthXpz0Ib4WoVxVK4l34A2SBC0ngNFe2xZjFjBG/iNjpd/jcWc
b3M2ZTJ2e1gb3dfwjWVpHSDfLN684fZEb/x4yVyyScdvAPftFwH3PPq7SnXuizhN
kB809mV5AwaCzjmj4dfuDPD7vZm2ii1Sxu55ABEBAAH/AwMCpq+iWKDQa7hg59SO
nh38gCWlPELqhBA06rItXKjmawLnKtFKve/LHvqOr8A9QQvhsJq83ac+T5ycr2wb
nrgTGBYxP3+O5JKUWEqw3apf+MstYMva/Zt5LtHg3v8TlI6MrGYEGfM6ncOOzQl1
wMK2joBSK4FGt064O0GxK9eS06rtx0RLYNy4HNMAuqg1a10rTjqA98nkB1ZPNYz0
/yyMmv7J9+ELTf/sBz7Ma5kCxGOlanh82GujyZXI30V1FhDvfoqcUwMAqmY36mB+
Jobqv/1jLOMvIjFah/x+16DAr7BQoXLIkpYdBmxSyOOio/dIUCHYCNsPrHSuiv79
h9e6XJ3ga4UM3yMvIN/8v57Q647SIKPlEbQwLqBXIMcEmlFePs+u8VPnQLUV4eBq
zzSY/Xhd6MgtooVF7EyWvq+Ba4ogjCdO/Tg8PKpfItQ+6D2iVz3tka8XK4Y60a2r
0sgzpQrlopUWCHdCydVkJAOqmAJi9+xAAt1e8iLQlEcZBrwdCdkQTRrqIx9cbbqc
wrKTWHi2QtB37jWkOmxMz73whCJdicZdd1h41i/FeTg3WD5066YuPpg9GDZbhOpi
5gHsRDGwe+otSqrcvhztqF2pzjsdf+G/w0BEz4YTThYengSwBtVQu7vYG83k9NQs
nB2VJFMYI7sdsCDZ9gUOZTP5Iz5iXQVGNoe7L+kfk51Ut1zAUvsuyiQrcyUTKHAw
J964+3nvwACoc8By4LyCKvNQDmDqFACzDBd1LLNIiqtKBwTEiGK8oHRJvnJ0EqJE
U3jZUIbrjr4Q/0LIdNFeD4skkCFqXOerKZAx3jPCHnpxV5s6mkVvNaRN9xrI6W33
iIw49fBsPBB58AdVPcoI5t1aNc0Nw+IQLxqF36hXsrQTaGFubmVzaHViZXIxQGdt
eC5hdIkBHAQQAQIABgUCWOT3KQAKCRAQsRzfJAGVmyD/CACOm7ro8gbU4Kb/SNcT
MyzU/3tasp66i6FLylrVH4YuFowJCKr219czSnuyw/mh4hAPQL40p5+YmTPYWOw7
7YTtTA30U1zJVlE4dEvIWAVjWnqJBoI/Cc2mZw6HbgoFsMO7Y/XzH4QkFaD5R1i9
lO36DQLJ6TVfYcvl8GIXZCOvsznkcoD+zH4wM/CaZt8nVKp+fs4ly0r9PLqLNYCo
dAZeKRoxeFopJ0Onj7KAjrvy+jQJFTwubLetuYjIUBLBUgLvwf7M49heYYH+4hF9
yM0pvoS+OAXhxSeeqvxPr9T7aEVV8tJEGhCjeiy76kwv13KlMFv+0JD63zYzXIii
yu81
=6LXH
-----END PGP PRIVATE KEY BLOCK-----

Public Key:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# v1.6.1.0

mQENBFjk9ykBCACPutsECMYSeXstKMaZz1fD+uffyKRZI6HyG0XXDjO6KpGu44V0
ytl6OmR9XnesjqqQg6eNvtK1VZoYmkMpHe9O1Fd6BiV2JxcHu7WCYfC+K2h7uKaF
BXsC/0af1kqH6G391UXYarKir+3AisU1NDd4wifBkQ9g0fxwiOgxzIL22sWEO8g2
W9Zb382YTabThrCthXpz0Ib4WoVxVK4l34A2SBC0ngNFe2xZjFjBG/iNjpd/jcWc
b3M2ZTJ2e1gb3dfwjWVpHSDfLN684fZEb/x4yVyyScdvAPftFwH3PPq7SnXuizhN
kB809mV5AwaCzjmj4dfuDPD7vZm2ii1Sxu55ABEBAAG0E2hhbm5lc2h1YmVyMUBn
bXguYXSJARwEEAECAAYFAljk9ykACgkQELEc3yQBlZsg/wgAjpu66PIG1OCm/0jX
EzMs1P97WrKeuouhS8pa1R+GLhaMCQiq9tfXM0p7ssP5oeIQD0C+NKefmJkz2Fjs
O+2E7UwN9FNcyVZROHRLyFgFY1p6iQaCPwnNpmcOh24KBbDDu2P18x+EJBWg+UdY
vZTt+g0Cyek1X2HL5fBiF2Qjr7M55HKA/sx+MDPwmmbfJ1Sqfn7OJctK/Ty6izWA
qHQGXikaMXhaKSdDp4+ygI678vo0CRU8Lmy3rbmIyFASwVIC78H+zOPYXmGB/uIR
fcjNKb6EvjgF4cUnnqr8T6/U+2hFVfLSRBoQo3osu+pML9dypTBb/tCQ+t82M1yI
osrvNQ==
=3rIa
-----END PGP PUBLIC KEY BLOCK-----

Verschlüsselter Text:

-----BEGIN PGP MESSAGE-----
Version: BCPG C# v1.6.1.0

hQEMAxCxHN8kAZWbAQgAhKXIxm4dHve18e5SXTvm35YcHhs9QUDDJT9xkgeNkat0
/cL0LWkOFJYhKQyuWIez4/+sQVWIds2S5DtB44tjo+Be0uOfR93A09kI1uHaOvtr
KDqexpDD/kLILAy+zqzUJyOH7n/VLcYliXAldUG6u+NgwArjXLRrm+I2vaUU0Nlr
gYYy7diRapCYG+GNVhGoUuTx203LIEeoGzfaJxRj5SoGR0PUtNB1WUvxoEaTem1l
4ebVgmU3xw9zU/CgandOYI6p7nN+kcMOSGaHOd/B/q83SMSJZAxhq4zgxcqufS6l
HK0ZS0Q5wX4dHHINWpbb/fRuX32Q8Xp+RYTx6ZDaTskvj4oMliB1FjYNtJFZeae9
6o0rG+ZOstndd5t7s4rpMWsZeYR3foZRJg9NI00Gxws=
=S3a7
-----END PGP MESSAGE-----

PGP-Key Password:

verschluesselung

Klartext:

Webwissenschaften

 

Sicherheit von Verschlüsselung(Q4)

Als Qualtiätskriterium für das Verschlüsselungsverfahren wird die Anzahl möglicher Schlüssel herangezogen. Ein absolut Sicheres Verschlüsselungsverfahren gibt es nicht. Verschlüsselung setzt auf den Faktor Zeit, den jemand braucht um an die verschlüsselte Originalnachricht zu gelangen.

Doch selbst wenn die Verschlüsselung der Daten einwandfrei funtkioniert, gibt es weitere Probleme, so Beispielsweise das Man in the Middle Problem und das Problem der Metadaten.

 

In den lettzten Jahren gab es vermehrt Bedrohungen für Open Source Software. Bei Open Source wird auch auf Entwicklerseite vermehrt darauf gebaut, dass Fehler gefunden werden, weil die Anzahl der Entwickler höher ist als in geschlossenene Entwicklerumgebungen. Dadurch kommt es dazu, dass der Sicherheitsaspekt einer Software oft erst in fortgeschrittenem Stadium der Softwareentwicklung vermehrt eingang findet. (Q7)

 

Merkmale offenen Codes bei Verschlüsselung

Die Vorteile offenen Codes bei Verschlüsselugn liegen auf der Hand. Eingesetzer Quellcode der für Jeden zugänglich ist, kann auch überprüft werden. Für die prüfung von Quellcode ist jedoch Expertenwissen notwendig. Daher hat sich in der Praxis gezeigt, dass offener Code zwar von unzähligen Usern angewendet wird, der Quellcode aber kaum einer Prüfung unterzogen wird.(Q4) Ein weiterer Vorteil von quelloffener Software im Vergleich zu proprietärem Code ist, dass er im Regelfall weit verbreitet ist, es daher für die Entschlüsselung der Daten keine große Rolle spielt, ob das Projekt bzw. die Firma dahinter noch existiert. Denn was geschieht mit verschlüsselten Daten, wenn das hinter proprietäre Software zur Entschlüsselung steckende UNternehmen oder die Personen das Projekt einstellen?  

 

Seit den Enthüllungen von Edward Snowden steht mit an Sicherheit grenzender Wahrscheinlichkeit fest, dass sich in kommerziellen Produkten wie Bitlocker und Co. Hintertüren befinden. Dahinter verbirgt sich wohl der nächste Nachteil proprietärer Software.

 

Alternativen zu offenem Code bei Verschlüsselung (Q4)

Bei offenem Code kann icht nur der redliceh Benutrzwer den Code einsehen, sondern auch der potentielle Angreifer. Für diesen ist ein system, dessen Code er frei einsehen kann unter Umständen leichter zu knacken als eine Software mit nicht zugänglcihem System. Als Alternative könnte hier proprietärer Code, der einem unabhängigem Audit unterzogen wurde eingesetzt werden.

 

Fallbeispiele

Volksverschlüsselung(Q12)

Das Frauenhofer SIT hat sich zum Ziel gesetzt, eine Verschlüsselungslösung zu entwickeln, die dank der geringen komplexität für den Alltag einer breiten Bevölkerung anwendbar ist. Wie das Ganze funktioniert, soll nachfolgendes Video erläutern.

 

WhatsApp(Q9)

Über eine Milliarde Benutzer verwenden/vertrauen Whattsapp. Da drängt sich natürlcih die Frage auf ob dieses Vertrauen berechtigt ist. Whatsapp verswchlüsselt Ende zu Ende, soweit so gut. Dei Verschlüsseulng stammt von Signal, einem Open Source Messenger, der allgemein als Vorbildlich angesehen wird. Da Whattsapp jedoch nicht Open Source ist, können sich Anwender jedoch nie ganz sicher sein, und werden dem Anbieter wohl vertrauen müssen.

 

Pretty Good Privacy(PGP/OpenPGP/GnuPG)(Q13)

Die erste Version von PGP wurde 1991 von Paul Zimmermann geschrieben um Bürger, insbesondere Bürgerrechtsbewegungen eine kommunikation geschützt vor Geheimdiensten zu ermöglichen. Unter anderem durch die Große intransparenz von PGP nach dem Verkauf an McAfee wurde 1998 der Standard OpenPGP geschaffen. Hauptanwendungsfall ist die Signierung und Verschlüsselung von E-Mails. Das Open PGP Format hat auch die Open Soeurce Software GnuGP implementiert.

 

Cryptomator(Q11)

Cryptomator bietet eine auf dem eigenen Gerät stattfindende Verschlüsselung für die Cloud. Für diese plattformunabhängige, auch für Anwender einfach zu bedienende Lösung wurde Cryptomator mit dem CeBIT Innovation Award 2016 ausgezeichnet. Eine der Besonderheiten dieser Software ist der Anwendungskomfort bei der Verschlüsselung von Daten. So wird ein virtuelles Laufwerk erstellt, in dem der Benutzer die zu verschlüsselnden Dokumente speichert. Cryptomonitor verschlüsselt die Daten vor der Übertragung, so gelangen nur verschlüsselte Daten in die Cloud. Die Software ermöglicht es dem Anwender mit dem einfachen setzen eines Passwortes auszukommne. Es sind keien Accounts, Schlüsselverwaltung, Zugriffsrechte oder Verschlüsselungseinstellungen notwendig. Es handelt sich um eien quelloffene Software lizeniert unter der MIT / X Consortium Lizenz.

 

Zusammenfassung

Zu den wichtigsten Erkenntsnissen zählt wohl, dass quelloffener Code zur Sicherheit einer verschlüsselung beiträgt, aber das Vertrauen in den Entwickler hier ebenso gegeben sein muss. In der Praxis zeigt sich, dass Quelloffener Code zwar überprüfbar ist, aber kaum überprüft wird. Auch wenn quelloffener Code Angriffsfläche für Hacker bietet, da der Quellcode auch für sie einsehbar sit, überiwegen dei Vorteile quelloffenen Codes bei der Verschlüsselung.

 

Quellen(Qn):

  1. https://opensource.org/osd
  2. Saleck, Chefsache Open Source - Kostenvorteile und Unabhängigkeit durch Open Source S87
  3. https://opensource.com/
  4. http://www.elektronik-kompendium.de/sites/net/1907041.htm
  5. https://www.heise.de/ct/artikel/Die-Woche-Was-ist-Open-Source-222121.html
  6. https://datenschmutz.net/truecrypt-am-ende-die-zukunft-der-open-source-verschluesselung/
  7. Reichenberger, Security Development in Open Source Projekten, 2015
  8. Spitz/Pramateftakis/Swoboda, Kryptographie und IT-Sicherheit, 2. Auflage 2011
  9. https://www.heise.de/security/artikel/Test-Hinter-den-Kulissen-der-WhatsApp-Verschluesselung-3165567.html
  10. http://www.ossdirectory.com/fileadmin/OSSStudieSchweiz2015.pdf
  11. https://cryptomator.org/de/
  12. https://www.volksverschluesselung.de/
  13. https://de.wikipedia.org/wiki/Pretty_Good_Privacy

2 comments :: Kommentieren

Zum Thema Sicherheit & WhatsApp

edith.forstinger.uni-linz, 29. Juni 2017, 19:42

Zum Thema Sicherheit und Verschlüsselung bei WhatsApp habe ich zwei interessante Artikel auf tagesschau.de und derStandard.at entdeckt. Der Informatiker Tobias Boelter ging Anfang dieses Jahres mit einer bedenklichen Entdeckung an die Öffentlichkeit: Aufgrund einer Sicherheitslücke (oder einem von WhatsApp bewusst eingebauten Feature) sei es WhatsApp möglich, "Transit-Nachrichten", welche von WhatsApp erneut gesendet werden, weil sie "stecken geblieben" sind (beispielsweise weil der User ein neues Gerät verwendet), einen neuen Schlüssel zum Entschlüsseln zuzuordnen. WhatsApp könne so unter Umständen Nachrichten, die sich noch im Transit befinden, abfangen, entschlüsseln und lesen. Diese Entdeckung von Tobias Boelter blieb nicht folgenlos und führte WhatsApp-Usern zu großer Unsicherheit.

 

Nun wurde diese Sicherheitslücke bzw. dieses Feature versucht zu relativieren - Es handle sich um einen "angemessenen Kompromiss" zwischen Sicherheit und Usability, WhatsApp habe "ziemlich gute Absicherung gegen Massenüberwachung", sei "sicher für die Mehrheit der Menschen" usw.  

 

Diese Relativierungsversuche tragen nichts zur Klärung der Sicherheitsfrage bei - ganz im Gegenteil, solche Aussagen stiften meines Erachtens nur noch mehr Unsicherheit. Wie du in deinem Beitrag richtig ausführst, wird den Usern wohl tatsächlich nichts anderes übrig bleiben, als WhatsApp in dieser Hinsicht zu vertrauen...

 

Verlinken :: Kommentieren

Wetere Infos zum Thema

hannes.huber2.uni-linz, 30. Juni 2017, 21:54

Für weitere interessante Informationen zum Thema "Vorteile quelloffener Codes am Beispiel von Content Management Systemen" darf ich auf den Beitrag meiner Kollegin Jasmin Weismann verweisen.

Verlinken :: Kommentieren


To prevent spam abuse referrers and backlinks are displayed using client-side JavaScript code. Thus, you should enable the option to execute JavaScript code in your browser. Otherwise you will only see this information.