<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>App Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/app/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/app/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 09:00:41 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>App Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/app/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Angular &#8211; Entfaltung des vollen Potenzials von Webanwendungen</title>
		<link>https://ceosbay.com/2023/03/21/erklaerung-angular/</link>
					<comments>https://ceosbay.com/2023/03/21/erklaerung-angular/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 21 Mar 2023 18:57:09 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Angular]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Databinding]]></category>
		<category><![CDATA[Dynamisch]]></category>
		<category><![CDATA[Eager]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[ES6]]></category>
		<category><![CDATA[First]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frequenz]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Komplexität]]></category>
		<category><![CDATA[Lade]]></category>
		<category><![CDATA[Ladetechnik]]></category>
		<category><![CDATA[Ladetechniken]]></category>
		<category><![CDATA[LTS]]></category>
		<category><![CDATA[Major]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[Preloading]]></category>
		<category><![CDATA[Releae]]></category>
		<category><![CDATA[Rest]]></category>
		<category><![CDATA[scopes]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Statisch]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1210</guid>

					<description><![CDATA[<p>AngularJS, als Vorgängerversion von Angular, ist ein JavaScript Framework für Web- und Softwareentwicklung, entwickelt von Goole. Anfangs für die Entwicklung von Single-Page-Apps gedacht und im Nachgang millionenfach für die Web-Anwendungsentwicklung genutzt. Google entwickelte damit das &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/21/erklaerung-angular/">Angular &#8211; Entfaltung des vollen Potenzials von Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">AngularJS, als Vorgängerversion von Angular, ist ein <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a> <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für Web- und Softwareentwicklung, entwickelt von Goole. Anfangs für die Entwicklung von Single-Page-Apps gedacht und im Nachgang millionenfach für die Web-Anwendungsentwicklung genutzt. Google entwickelte damit das erste geeignete <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für große Enterprise-Anwendungen. Durch Methoden wie Dependency Injection (Ein Entwurfsmuster, bei dem ein Objekt oder eine Funktion andere Objekte oder Funktionen empfängt, von denen es/sie abhängt) und ein ausgereiftes Tooling, ermöglichen eine effiziente und wartbare Softwareentwicklung auf Basis von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>.</p>



<p class="wp-block-paragraph">Seit 2009 ist es ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>-Projekt, dass auf gute Testbarkeit ausgelegt ist (An dieser Stelle möchte ich auf den <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">Test Driven Development</a> Beitrag verweisen 😉 ). Dies bietet ein MVC/MVVM-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>, welches bidirektionales Databinding unterstützt.</p>



<h3 class="wp-block-heading">MVC/MVVM?</h3>



<p class="wp-block-paragraph">MVVM teilt die verschiedenen Komponenten des Entwicklungsprozesses in drei Kategorien auf. Model, View und ViewModel. In der Regel handelt es sich dabei um Code-Markup oder grafische Benutzeroberflächen (GUI). MVC (Model-View-Control) ist eine Methode, mit der Entwickler Programme in diese drei Komponenten aufteilen. Auf diese Weise lassen sich geschäftliche Anforderungen und Regeln von der Art und Weise unterscheiden, wie Benutzer mit der Anwendung arbeiten. Gerne gehe ich in einem zukünftigen Beitrag näher darauf ein.</p>



<h3 class="wp-block-heading">Unterschiede zwischen Angular und AngularJS</h3>



<p class="wp-block-paragraph">Angular ist wie bereits erwähnt der Nachfolger von AngularJS. Von Grund auf neu geschrieben, unterscheiden die beiden sich grundsätzlich und in vielerlei Hinsicht.</p>



<ul class="wp-block-list">
<li>Angular kennt keine „scopes“ oder Controller, sondern verwendet eine Hierarchie von Komponenten als zentrales Architekturkonzept.</li>



<li>Angular hat eine einfachere Syntax für Ausdrücke: Mit „[ ]“ werden Bindings für Eigenschaften und mit „( )“ werden Bindings für Events erzeugt.</li>



<li>Mobile-First-Ansatz: Die Anforderungen von mobilen Plattformen haben besondere Priorität.</li>



<li>Modularität: Module können Funktionalitäten auslagern, sodass Code leichtgewichtiger und schneller sein kann.</li>



<li>Es liegt lediglich die Unterstützung moderner Browser vor, wodurch man weniger Workarounds wegen Browser-Kompatibilitätsproblemen benötigt.</li>



<li>Angular empfiehlt die Verwendung von TypeScript. Es bietet Klassenbasierte objektorientierte Programmierung, Statische Typisierung und Generics.</li>



<li>TypeScript ist eine Obermenge von ECMAScript 6 (ES6) und ist rückwärts kompatibel mit ECMAScript 5, damit JavaScript. Angular bietet somit auch die Vorzüge von ES6: (Lambdas, Iteratoren, for…of-Schleifen, Generatoren im Stil von <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>, Reflexion)</li>



<li>Verbesserte Dependency Injection: Bindings ermöglichen die Benennung von Abhängigkeiten.</li>



<li>Directives dienen dem Zweck, dass Aussehen und Verhalten eines Tags dynamisch zu verändern.</li>



<li>Dynamisches Laden ist möglich</li>



<li>Asynchrone Kompilierung von Templates</li>



<li>Einfacheres Routing</li>



<li>Kontroller und $scope sind durch Komponenten und Directives ersetzt. Eine Komponente ist eine Directive mit einem Template.</li>



<li>Reaktive Programmierung mit RxJS</li>
</ul>



<h3 class="wp-block-heading">Angular für konventionelle Websites?</h3>



<p class="wp-block-paragraph">Angular ist ideal für Websites mit dynamischem Inhalt, jedoch nicht für kleine Seiten mit statischem Inhalt geeignet. Die Implementierung von Angular erhöht in diesem Fall lediglich die Gesamtgröße des Projekts und folglich auch die Ladezeiten. Dies ist eines der Hauptgründe, warum man Angular nicht für Landing Pages und Websites mit statischem Inhalt verwenden sollte. Davon abgesehen ist Angular weit davon entfernt, <a href="https://ceosbay.com/2022/11/23/erklaerung-seo/" target="_blank" rel="noreferrer noopener">SEO</a>-freundlich zu sein. Und im Zeitalter von <a href="https://ceosbay.com/2022/11/23/erklaerung-seo/" target="_blank" rel="noreferrer noopener">Search-Engine-Optimization</a> gibt es weitaus bessere Alternativen, um dieses Ziel zu erreichen. Auch ist Angular keine gute Lösung für kurzfristige Projekte oder Start-ups mit begrenzten Ressourcen. Die Komplexität des Front-Ends kann in relativ kurzer Zeit immense Ausmaße annehmen und später schwer zu bändigen sein.</p>



<p class="wp-block-paragraph">Das Hauptanwendungsgebiet von Angular bestand darin, Einzelseiten-Webanwendungen zu erstellen. Aus diesem Grund verfügt es über eine breite Palette von Werkzeugen für die SPA-Entwicklung. Darüber hinaus ist es eine ideale Technologie für Websites, bei denen sich der Inhalt auf der Grundlage des Nutzerverhaltens und der Präferenzen der Benutzer dynamisch anpasst. Dependency Injections stellen sicher, dass im Falle der Änderung einer Komponente andere Komponenten, die mit ihr in Zusammenhang stehen, automatisch mitgeändert werden.</p>



<h3 class="wp-block-heading">Die 3 verschiedenen Ladetechniken</h3>



<p class="wp-block-paragraph">Bei der Arbeit mit Angular bieten sich 3 verschiedene Ladetechniken an. Diese sind das Eager Loading, Lazy Loading und Preloading, auf die ich nachfolgend eingehe.</p>



<p class="wp-block-paragraph"><strong>Eager Loading (Eifriges Laden)</strong></p>



<p class="wp-block-paragraph">Der Abruf aller benötigten Daten möglichst wirksam und umgehend bzw. sofort. Hierzu gibt es im Grunde genommen nicht viel anzumerken. Die Technik ist zwar effizient, doch die Tatsache, dass man eventuell nur einen bestimmten Teil der Daten benötigt aber dennoch alle Daten lädt, kann sich schnell zu einem Nachteil entwickeln, wenn es sich um große Datenmengen handelt.</p>



<p class="wp-block-paragraph"><strong>Lazy Loading (Langsames Laden)</strong></p>



<p class="wp-block-paragraph">Die am wenigsten eifrige bzw. nicht eifrige Ladetechnik. Wenn man faul ist, tut man so lange nichts, bis man es wirklich muss oder dazu gezwungen wird. Man stelle sich vor, dass die Anwendung drei Bereiche hat. Home, Admin und das Dashboard. Auf den Home-Bereich wird ständig zugegriffen, auf den Dashboard-Bereich die meiste Zeit. Der Admin-Bereich wird jedoch nur von einigen wenigen Nutzern verwendet. Folglich kann man die Admin-Route nach und nach laden. So lange niemand auf die Idee kommt, auf den Verwaltungsbereich der Anwendung zu klicken, wird der damit verbundene Code auch nicht ausgeführt bzw. nicht geladen.</p>



<p class="wp-block-paragraph">Die Mehrheit der Nutzer lädt den Code für den Verwaltungsbereich schlichtweg nie. Wenn man also Lazy Loading verwendet, kann man grundsätzlich schneller auf die Anwendung zugreifen, da man nicht so viel Code vom Server laden muss. Dies hängt damit zusammen, dass das ORM-Werkzeug (Objekt-Relationales Mapping-Werkzeug) jeglichen Zugriff auf alle Objektreferenzen »abfangen« muss, um hier bei Bedarf die verbundenen Objekte nachladen zu können. Dieses Abfangen erfolgt durch die Verwendung bestimmter Klassen für Einzelreferenzen und Mengenklassen. Der Unterschied zwischen den ORM-Werkzeugen liegt darin, ob der Entwickler diese Klassen explizit im Code verwenden muss oder ob das ORM-Werkzeug diese beim Kompilieren oder zur Laufzeit austauscht.</p>



<p class="wp-block-paragraph"><strong>Preloading (Vorladen)</strong></p>



<p class="wp-block-paragraph">Die „somewhere-in-between“ (Irgendwie Zwischendrin) Ladetechnik. Beim Preloading macht man im Grunde genommen dasselbe wie beim Lazy Loading, nur ein bisschen anders.</p>



<p class="wp-block-paragraph">Anhand des Home, Dashboard und Admin Beispiels lässt sich dies folgendermaßen darstellen. Die Startseite braucht man immer. Also lädt man diese schnell bzw. eifrig. Der Admin-Bereich wird nur selten und nur von wenigen Benutzern benötigt, also kann man diesen erst einmal etwas vernachlässigen bzw. &#8222;lazy&#8220; laden. Aber das Dashboard ist nicht das Erste, was ein Benutzer sieht, also kann es grundsätzlich erst einmal warten. Doch das Dashboard ist gleichzeitig etwas, dass die meisten der Benutzer irgendwann sehen möchten. Also sollte es zumindest dann zur Verfügung stehen, wenn das Laden des Home-Bereichs fertiggestellt ist. Nach jeder erfolgreichen Navigation sucht der Router in seiner Konfiguration nach einem nicht geladenen Modul, das er vorladen kann.</p>



<p class="wp-block-paragraph">Der Home-Bereich wird erfolgreich geladen und unmittelbar danach wird der Dashboard-Bereich im Hintergrund geladen.</p>



<h3 class="wp-block-heading">Welche Ladetechnik kann/soll ich nun verwenden?</h3>



<p class="wp-block-paragraph">Wie bei vielen Angelegenheiten in der IT kommt es hier auf den spezifischen Anwendungsfall und den zur Verfügung stehenden Ressourcen an. Wenn man nicht genau weiß, ob man die zusätzlichen Daten benötigt oder nicht, dann kann es ungünstig sein, sie direkt zu laden. Es kann aber auch ungünstig sein, sie später nachladen zu müssen. Entscheidend bei der Entscheidung ist die Wahrscheinlichkeit, ob und wann man die jeweiligen Daten für wen benötigt, um welche Datenmenge es sich handelt und ob man die Daten später einfach nachladen kann. Zu beachten ist, dass man ein automatisches Nachladen, nach einer Serialisierung, in der Regel nicht mehr initiieren kann.</p>



<h3 class="wp-block-heading">Release-Frequenz</h3>



<p class="wp-block-paragraph">Angular Releases folgen dem Konzept des Semantic Versionings. Man unterscheidet zwischen Major-, Minor- und Bugfix-Releases. Alle 6 Monate gibt es eine neue Major Release. Major Releases enthalten signifikante neue Features, sind aber nicht abwärtskompatibel. Der Umstieg auf eine neuere Major Release benötigt daher oft Update-Scripts, Refactorings des bestehenden Codes, weitere Tests und das Erlernen neuer APIs. Zu jeder Major Release gibt es ein bis drei Minor Releases. Patch Releases und Pre-Releases gibt es fast jede Woche.</p>



<h3 class="wp-block-heading">Support</h3>



<p class="wp-block-paragraph">Der Support von Major Releases beträgt typischerweise 18 Monate lang nach Release. Davon 6 Monate aktiv. Aus diesem Grund gibt es in regelmäßigen Abständen Minor Releases und Patch Releases. Es folgt ein 12-monatiger Long Term Support (LTS) in Form von Patch-Releases, ausschließlich zur Behebung kritischer und sicherheitsrelevanter Fehler.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p class="wp-block-paragraph">Bei der Verwendung von Angular sollte von vornherein klar sein, dass die Realisierung eines Projekts mit der Abnahme vieler Entscheidungen über Architektur und des Renderings verbunden ist. Dies hat den Vorteil, dass sich das Projektteam zu 100% auf die Umsetzung von Features konzentrieren kann und nicht die grundlegende Architektur eigenständig aufbauen muss.</p>



<p class="wp-block-paragraph">Durch die sehr einheitliche Struktur von Angular Anwendungen lassen sich gute Entwickler sehr schnell in das Projekt integrieren, da Angular Anwendungen stets einer gewissen Struktur folgen. Dies vereinfacht die Skalierbarkeit des Teams als auch des Projektes selbst als vergleichsweise bei Individuallösungen der Architektur in anderen <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a>.</p>



<p class="wp-block-paragraph">Generell ist es für Enterprise Projekte sicherlich eine gute Wahl. Dennoch sollte man andere <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a> wie <a href="https://ceosbay.com/2022/12/21/erklaerung-react/" target="_blank" rel="noreferrer noopener">React</a> und VueJS nicht außer Acht lassen, über die ich in den kommenden Tagen schreibe.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/21/erklaerung-angular/">Angular &#8211; Entfaltung des vollen Potenzials von Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/21/erklaerung-angular/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1210</post-id>	</item>
		<item>
		<title>Signal &#8211; Vertrauliche Kommunikation und Datenschutz?</title>
		<link>https://ceosbay.com/2022/11/21/erklaerung-signal/</link>
					<comments>https://ceosbay.com/2022/11/21/erklaerung-signal/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 21 Nov 2022 17:22:48 +0000</pubDate>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[E2EE]]></category>
		<category><![CDATA[Facenook]]></category>
		<category><![CDATA[FBI]]></category>
		<category><![CDATA[Freedom of Information]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Kommunikation]]></category>
		<category><![CDATA[Messenger]]></category>
		<category><![CDATA[MiTM]]></category>
		<category><![CDATA[Nachrichten]]></category>
		<category><![CDATA[Nachrichten-App]]></category>
		<category><![CDATA[Perfect Forward Secrecy]]></category>
		<category><![CDATA[PIN]]></category>
		<category><![CDATA[Signal]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[SQLCipher]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WhatsApp]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=644</guid>

					<description><![CDATA[<p>Signal &#8211; Nachdem ich bereits ein paar Instant Messenger unter die Lupe genommen habe, darf eines der &#8222;sichereren&#8220; Messenger nicht fehlen.&#160;Signal ist ein „freier“ bzw. „Open Source“ Messenger für verschlüsselte Kommunikation der US-amerikanischen, gemeinnützigen Signal-Stiftung. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/21/erklaerung-signal/">Signal &#8211; Vertrauliche Kommunikation und Datenschutz?</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Signal &#8211; Nachdem ich bereits ein paar Instant Messenger unter die Lupe genommen habe, darf eines der &#8222;sichereren&#8220; Messenger nicht fehlen.&nbsp;Signal ist ein „freier“ bzw. „<a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>“ Messenger für verschlüsselte Kommunikation der US-amerikanischen, gemeinnützigen Signal-Stiftung. Warum ich dies in Anführungszeichen gesetzt habe, wird in den nächsten Zeilen erklärt. Der Messenger ist vor allem für die Datensparsamkeit bzw. E2EE (Ende-zu-Ende-Verschlüsselung) bekannt und wurde daher häufig von Sicherheitsexperten und Datenschutzorganisationen gelobt bzw. empfohlen.</p>



<h3 class="wp-block-heading">Zero-Knowledge-Prinzip </h3>



<p class="wp-block-paragraph">Für die Datensparsamkeit wird das „Zero-Knowledge-Prinzip“ genutzt, bei dem der Betreiber keinerlei Zugriff auf Nutzerdaten hat, was unter anderem auch eine FOIA-Anfrage (FOIA &#8211;&nbsp;Der Freedom of Information Act ist ein, seit 1967, in den USA, in Kraft getretenes Gesetz, zur Informationsfreiheit und gibt jedem das Recht, Zugang zu Dokumenten von staatlichen Behörden zu verlangen) an das FBI bestätigte.</p>



<h3 class="wp-block-heading">Auf welchen Geräten kann Signal genutzt werden?</h3>



<p class="wp-block-paragraph">Signal ist als App für Android und iOS sowie als Desktop-Version für Windows, macOS und Linux verfügbar. Auf eine Web-Version wurde aus Sicherheitsgründen verzichtet. Die Desktop-Version setzt allerdings voraus, dass die App bereits auf einem Smartphone installiert ist und durch dieses verifiziert wird. Eine anonyme oder pseudonyme Nutzung ohne Offenlegung der Rufnummer gegenüber Gesprächsteilnehmern ist weder mit der Smartphone-App noch mit der Desktop-Version möglich. Für die Verschlüsselung von Nachrichten, Anrufe und Videotelefonie kommt das „freie“ (Achtung – Auch hier sind Anführungszeichen 😉 ) Signal-Protokoll zum Einsatz.</p>



<h3 class="wp-block-heading">Erst einmal zu den Anführungszeichen bzgl. Signal</h3>



<p class="wp-block-paragraph">Ab dem 22. April 2020, wurde der Source-Code, den man sonst immer auf GitHub „frei“ und aktualisiert vorgefunden hatte, für fast ein Jahr nicht aktualisiert und veröffentlicht. Die <a href="https://github.com/signalapp" target="_blank" rel="noreferrer noopener">Repo</a> (Siehe Erklärung in meinem Beitrag <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git</a> bzw. <a href="https://ceosbay.com/2022/11/19/erklaerung-github/">GitHub</a>), war voll von Beschwerden aus der <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Gemeinde. Eine Erklärung seitens Entwickler blieb bis heute aus. Sicherlich kann man jetzt versuchen, Gründe dafür zu finden, doch dies erachte ich als Nonsens. </p>



<p class="wp-block-paragraph">Während die Kommunikation, durch die in den <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Client-Apps und dem Signal-Protokoll implementierte E2EE (Ende-zu-Ende-Verschlüsselung) sicher zu sein schien, verhinderte eine Closed-Source-Server-App, Forks und hinderte weiter jeden daran, die neuesten Versionen des Sourcecodes einzusehen, zu prüfen oder eigene aktuelle Signal-Server zu erstellen. Auf der Website des Unternehmens war in der Zwischenzeit immer noch ein Zitat von Twitter-CEO Jack Dorsey vorzufinden, der den Dienst lobte, weil dieser quelloffen bzw. <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> und von Fachleuten geprüft sei. Die fast einjährige Verzögerung bei der Freigabe des Server-Quellcodes, als auch die Funkstille über die Verzögerung sind beunruhigend, wenn man bedenkt, dass sie sich mit der Sicherheit und Anonymität im Internet rühmen bzw. man sich als Nutzer genau auf diese beiden Eigenschaften verlässt.</p>



<h3 class="wp-block-heading">Wie funktioniert Signal?</h3>



<p class="wp-block-paragraph">Im Grunde genommen werden alle Nachrichten, die zwischen registrierten Benutzern ausgetauscht werden, automatisch verschlüsselt. Signal ermöglicht das verschlüsselte Versenden von Textnachrichten, Dokumenten, Fotos und das Teilen von Kontaktinformationen in Einzel- oder Gruppenchats. Darüber hinaus werden auch Gruppentelefonate mit zuschaltbarer Videofunktion mit bis zu 40 Teilnehmern verschlüsselt übertragen.</p>



<h3 class="wp-block-heading">E2EE und PFS gegen MiTM</h3>



<p class="wp-block-paragraph">Neben der Ende-zu-Ende-Verschlüsselung, wird auch Perfect Forward Secrecy genutzt, welches auch bei der Kompromittierung bzw. beim Bekanntwerden des geheimen persönlichen Schlüssels des Benutzers, Nachrichtenhistorien nur schwer entschlüsselt werden können. Dies hängt damit zusammen, dass für jede Nachricht aus dem Langzeitschlüssel ein eigener temporärer Schlüssel erzeugt wird, der nach Übermittlung vernichtet wird. Die Authentifizierung mit Gesprächspartnern erfolgt mittels QR-Codes, mit denen sich die Benutzer gegenseitig verifizieren. Auf diese Weise wird sichergestellt, dass wirklich mit der wahren Person kommuniziert wird und nicht mit einem Dritten. MiTM (Man-in-the-Middle-Angriffe) können dadurch minimiert werden. </p>



<p class="wp-block-paragraph">Die Glaubhafte Abstreitbarkeit schützt Nutzer davor, dass eine bestimmte Nachricht, einer bestimmten Person zugewiesen werden kann. Da die Urheberschaft von Nachrichten nicht nachvollziehbar ist, bleibt der Quellenschutz größtenteils gewahrt. Verschlüsselte Benutzerprofile erlauben es, Benutzerfotos und Namen zwischen den Benutzern zu übertragen, ohne dass der Betreiber diese einsehen kann.</p>



<h3 class="wp-block-heading">View-Once-Funktion</h3>



<p class="wp-block-paragraph">Einmalig präsentierte Medien bzw. Einmalansicht (View-Once &#8211; Sobald ein Foto oder Video mit einmaliger Ansicht gesendet wird, kann es lediglich 1x angesehen werden. Fotos oder Videos, die mit aktivierter Einmalansicht gesendet oder empfangen wurden, können nicht weitergeleitet oder gespeichert, mit Emojis versehen oder freigegeben werden. Ob ein Empfänger ein Foto oder Video mit Einmalansicht geöffnet hat, kann nur in Erfahrung gebracht werden, wenn die Gegenseite die Lesebestätigungen aktiviert hat) erlaubt es Mediendateien zu versenden, die nach einmaligem Ansehen aus der Unterhaltung entfernt werden. Diese Funktion wurde in der Betaversion aus 2019 in Signal implementiert. Es ist aber auf jeden Fall zu bedenken, dass derartige Inhalte durch weitere Geräte aufgezeichnet werden können. </p>



<p class="wp-block-paragraph">Neben diesen Maßnahmen zur Übertragungsverschlüsselung werden von Signal sowohl in der iOS- als auch in der Android-Variante die auf dem Smartphone abgelegten Daten durch SQLCipher (SQLCipher ist eine Open-Source-SQLite-Erweiterung, die eine transparente, vollständige 256-Bit-AES-Datenbankverschlüsselung bietet – Darüber werde ich in einem zukünftigen Beitrag schreiben) verschlüsselt. Auf den Servern des Betreibers werden Kontoeinstellungen, Kontakte und blockierte Kontakte nicht im Klartext gespeichert, sondern mit einer PIN verschlüsselt, die nur dem Nutzer bekannt ist. Bei Gruppenchats sind die Mitgliederliste und der Admin-Status der Mitglieder sowie andere Gruppendetails als verschlüsselte Liste auf den Servern gespeichert. Aber diese sind auf einem Server gespeichert. Auch sind die Metadaten, zwar verschlüsselt, aber auf einem Server gespeichert 😀</p>



<h3 class="wp-block-heading">Dezentralisierung</h3>



<p class="wp-block-paragraph">Der dezentralisierte Gedanke greift bei Signal nicht, da es eine Servergebundene Lösung ist. Nichtsdestotrotz kann man durch die Nutzung des Open-Source Codes eigene Server aufsetzen &#8211; Vorausgesetzt Signal beschließt nicht mal wieder die Schranken zu schließen. Aus diesem Grund kann sowohl die Sicherstellung der Anonymität, als auch die Sicherheit in Frage gestellt werden 😉</p>



<h3 class="wp-block-heading">Fazit</h3>



<p class="wp-block-paragraph">Die Aktualisierung bzw. Veröffentlichung des Sourcecodes hat fast für ein Jahr nicht stattgefunden. Dies ist kein gutes Zeichen. Mag sein, dass sie die Updates wieder aktuell halten. Aber wer weiß, wann sie sich mal wieder Umentscheiden (lassen?). </p>



<p class="wp-block-paragraph">Fakt ist auch, dass Signal ohne persönliche Zustimmung Kalendertermine hinzufügen oder ändern und E-Mails an eingeladene Gäste verschicken kann, die dem Anschein nach von einem selbst stammen. Signal kann auf alle auf dem Smartphone gespeicherten Kalendertermine zugreifen. Jederzeit und ohne Bestätigung kann die Kamera des Smartphones aktiviert werden und es können Bild- sowie Videoaufnahmen stattfinden. </p>



<p class="wp-block-paragraph">Konventionelle SMS können durch die App gelesen, gesendet und gelöscht werden. Auf die Mikrofone des Smartphones kann die App auch zugreifen und zu jedem Zeitpunkt den Ton aufzeichnen. Die permanente Kommunikation mit einem Server ermöglicht der App und gegebenenfalls Dritten, wann und mit wem telefoniert wurde. Der Messenger kann ohne persönlichen Eingriff Telefonnummern wählen, was zu unerwarteten Kosten und Anrufen führen kann. Alles in allem läuft die App über einen amerikanischen Server und ist somit eine zentralisierte Lösung. Es mag sein, dass es viele Sicherheitsexperten gibt, die Signal für eine gute und „sicherere“ Alternative als Instant Messenger sehen. Nun, ich bin kein Sicherheitsexperte. Daher ist es jedem selbst überlassen, was man von der App hält.</p>



<p class="wp-block-paragraph">Heute etwas später dran… Ein paar Zimmer benötigten einen neuen Anstrich 😀</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/21/erklaerung-signal/">Signal &#8211; Vertrauliche Kommunikation und Datenschutz?</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/21/erklaerung-signal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">644</post-id>	</item>
		<item>
		<title>Delta Chat &#8211; E-Mail neu erfunden</title>
		<link>https://ceosbay.com/2022/11/20/erklaerung-delta-chat/</link>
					<comments>https://ceosbay.com/2022/11/20/erklaerung-delta-chat/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 20 Nov 2022 07:23:34 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Dezentralisierung]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[7435]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[CC]]></category>
		<category><![CDATA[Chat]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[E2EE]]></category>
		<category><![CDATA[Forward]]></category>
		<category><![CDATA[Instant Messenger]]></category>
		<category><![CDATA[Kommunikation]]></category>
		<category><![CDATA[Konten]]></category>
		<category><![CDATA[Man in the Middle]]></category>
		<category><![CDATA[Nutzer]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[PFS]]></category>
		<category><![CDATA[Postfach]]></category>
		<category><![CDATA[Protokoll]]></category>
		<category><![CDATA[Provider]]></category>
		<category><![CDATA[QR]]></category>
		<category><![CDATA[RFC]]></category>
		<category><![CDATA[Secrecy]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sichere]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Verschlüsselung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=371</guid>

					<description><![CDATA[<p>Delta Chat ist ein Open Source Instant-Messaging-Client für Smartphones (iOS / Android) und PC (Windows/macOS/Linux). Der Messenger hat seinen Ursprung in Freiburg (Baden-Württemberg) und wird von der Merlinux GmbH entwickelt. Es verfolgt einen dezentralisierten Ansatz, &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/20/erklaerung-delta-chat/">Delta Chat &#8211; E-Mail neu erfunden</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Delta Chat ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Instant-Messaging-Client für Smartphones (iOS / Android) und PC (Windows/macOS/Linux). Der Messenger hat seinen Ursprung in Freiburg (Baden-Württemberg) und wird von der Merlinux GmbH entwickelt. </p>



<p class="wp-block-paragraph">Es verfolgt einen dezentralisierten Ansatz, basiert auf den IMAP bzw. SMTP Protokollen und ist, meiner Erfahrung nach, eines der „sichereren“ Messenger Apps, die man heutzutage nutzen kann.</p>



<h3 class="wp-block-heading">Was ist IMAP?</h3>



<p class="wp-block-paragraph">Das Internet Message Access Protocol (IMAP), ursprünglich Interactive Mail Access Protocol, ist ein Netzwerkprotokoll, dass ein Netzwerkdateisystem für E-Mails bereitstellt.</p>



<h3 class="wp-block-heading">Was ist SMTP?</h3>



<p class="wp-block-paragraph">Das Simple Mail Transfer Protocol (Einfaches E-Mail-Transportprotokoll), gehört zu der Internetprotokollfamilie, dass zum Austausch von E-Mails in Computernetzen dient)</p>



<p class="wp-block-paragraph"> Durch den Einsatz der E-Mail-Protokolle IMAP und SMTP ist Delta Chat mit jedem herkömmlichen E-Mail-Client kompatibel. Seit Veröffentlichung im Februar 2019 verzeichnet die App im Google Play Store über 100.000+ Downloads. Auch ist die App im Apple App Store verfügbar aber auf die Zahlen haben wir leider keinen Zugriff. Nachdem ein Freund mich darum gebeten hat, heute ein bisschen was über Delta Chat 😉</p>



<h3 class="wp-block-heading">Wie funktioniert Delta Chat?</h3>



<p class="wp-block-paragraph">Wie anfangs angesprochen, werden die IMAP- und SMTP-Protokolle benutzt. Daher kommt das System ohne Registrierung bzw. Erstellung eines Kontos innerhalb des Messengers selbst und ohne eigene Server aus. Auch wird keine Telefonnummer oder der Zugriff auf das Adressbuch benötigt. Man ist bei der Verwendung nicht auf Nutzer beschränkt, die denselben Dienst verwenden. Folglich kann man damit Nutzer erreichen, die andere Chat-Clients verwenden, da das zugrundeliegende Messaging-Protokoll der offene E-Mail-Standard ist. Alles in allem sehr viel versprechend. Doch zu Beginn habe ich „sichereren“ in Anführungszeichen geschrieben. Bewusst 😉</p>



<p class="wp-block-paragraph">Dies liegt aber weniger an Messenger selbst, sondern an der E-Mail-Infrastruktur bzw. den zugrundeliegenden Protokollen IMAP und SMTP. Darüber aber nachfolgend mehr.</p>



<h3 class="wp-block-heading">Verschlüsselung</h3>



<p class="wp-block-paragraph">Bei Nachrichteninhalten wird auf Ende-zu-Ende-Verschlüsselung (E2EE) zur „sichereren“ Kommunikation gesetzt. Unter „E2EE“, versteht man die Verschlüsselung übertragener Daten, über alle Übertragungsstationen hinweg. Nur die Kommunikationspartner (Die jeweiligen Endpunkte der Kommunikation) können die Nachrichten entschlüsseln. Dazu nutzt der Messenger OpenPGP (Ein standardisiertes Datenformat für verschlüsselte und digital signierte Daten). Zertifikate definieren das Format, die als „Schlüssel“ bezeichnet werden. Autocrypt stellt eine weitere Schutzebene dar. Diese Verschlüsselung baut auf dem OpenPGP-Standard auf und ist damit kompatibel. Autocrypt ist ebenfalls eine standardisierte Richtlinie, die eine nutzerfreundliche Verschlüsselung von E-Mails und automatisierten, aber ungesicherten Austausch kryptografischer Schlüssel ermöglicht.</p>



<p class="wp-block-paragraph">Bei der Verknüpfung eines E-Mail-Kontos generiert Delta Chat bei der Ersteinrichtung automatisch ein Schlüsselpaar. Auch der Import von bereits bestehenden Schlüsseln ist möglich. Mittels Autocrypt werden die öffentlichen Schlüssel anschließend zwischen den Teilnehmern ausgetauscht und ermöglichen damit eine E2EE-Kommunikation. Bei Autocrypt kann theoretisch ein nichtwohlgesonnener E-Mail-Provider diese Verschlüsselung kompromittieren, da Autocrypt grundsätzlich jeden Schlüssel akzeptiert. Dies erfolgt über &#8222;Opportunistic Security (<a href="https://www.rfc-editor.org/rfc/rfc7435" target="_blank" rel="noreferrer noopener">RFC 7435</a>)&#8220;. Dies werde ich zu einem späteren Zeitpunkt thematisieren, da es den Rahmen sprengen würde. Es ist 06:10 Uhr, Sonntag morgen 😀 &#8211; Wen es aber interessiert, kann dennoch auf den Link klicken 😉</p>



<h3 class="wp-block-heading">MiTM</h3>



<p class="wp-block-paragraph">Auf jeden Fall können wir festhalten, dass das Potential erfolgreicher Man-in-the-Middle-Attacken minimiert wird. Bei einem Man-in-the-Middle-Angriff platziert sich der Angreifer logisch oder physisch zwischen dem Opfer und den verwendeten Ressourcen. Der Angreifer ist dadurch in der Lage, die Kommunikation abzufangen, mitzulesen oder zu manipulieren. Delta Chat erweitert den Autocrypt-Standard daher um countermitm – dadurch wird die Wahrscheinlichkeit einer erfolgreichen Man-in-the-Middle-Attacke auf verifizierte Schlüssel bzw. Kontakte minimiert. </p>



<p class="wp-block-paragraph">Neben dieser „Schwäche“ kommt hinzu, dass OpenPGP keine Perfect Forward Secrecy beherrscht. (PFS &#8211; Perfect Forward Secrecy ist eine Methode für den Schlüsselaustausch kryptografischer Verfahren. Es bewerkstelligt, dass eine nachträgliche Entschlüsselung durch Bekanntwerden des Hauptschlüssels erschwert bzw. ausgeschlossen wird. Die Sitzungsschlüssel werden nicht ausgetauscht und sind nicht mehr rekonstruierbar). Die Schutzziele der „glaubhaften“ Abstreitbarkeit und Folgenlosigkeit sind daher nicht umsetzbar. Um sicher zu stellen, dass man mit seinem wahren Gegenüber kommuniziert, stellt Delta Chat eine Authentifizierung via QR-Code zur Verfügung. Dadurch wird gewährleistet, dass sich kein Dritter zwischenschaltet. Nach der Durchführung des gegenseitigen Scans des QR-Codes, werden die Nutzer als „Verifiziert“ markiert.</p>



<p class="wp-block-paragraph">Wenn die Empfänger einer Nachricht auch Delta Chat nutzen, werden die Nachrichten automatisch Ende-zu-Ende-verschlüsselt und als Chatnachricht dargestellt. Allerdings erlaubt Delta Chat das Versenden von Nachrichten auch an E-Mail-Postfächer bzw. Kontakte, die kein Delta Chat verwenden. Wenn der Empfänger einen E-Mail-Client verwendet, der nicht Autocrypt-kompatibel ist, werden Nachrichten unverschlüsselt bzw. nur transportverschlüsselt gesendet bzw. empfangen. Das hat den Nachteil, dass ein E-Mail-Provider die so empfangenen / versendeten Nachrichten unter Umständen einsehen kann. Diesen Umstand sollte man unbedingt berücksichtigen bzw. bei der Nutzung von Delta Chat im Hinterkopf behalten. Welche Transportverschlüsselung zum Einsatz kommt, kann in der App eingesehen werden bzw. wird dies im Nachrichtenverlauf mit einem Schloss symbolisiert.</p>



<h3 class="wp-block-heading">Dezentralisierung</h3>



<p class="wp-block-paragraph">Wie bereits angesprochen, verfolgt Delta Chat den Ansatz der dezentralisierten Kommunikation, da der Nachrichtenaustausch nicht über zentrale Server läuft. Delta Chat setzt auf die bestehende E-Mail-Infrastruktur auf und kann dadurch auf eigene Server verzichten. Die Nutzung von Delta Chat setzt demnach lediglich ein bestehendes E-Mail-Postfach voraus, das mit Delta Chat verknüpft werden muss. Der Nutzer ist also vollkommen frei in seiner Entscheidung, bei welchem E-Mail-Anbieter er ein Konto eröffnet. Die einzige Voraussetzung ist das IMAP-Protokoll.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p class="wp-block-paragraph">Ist man im Besitz einer E-Mail-Adresse, kann man Delta Chat ohne eine Registrierung und vor allem Serverunabhängig nutzen. Wird Delta Chat von der Gegenseite nicht genutzt, werden Nachrichten an die konventionelle E-Mail-Adresse des Empfängers gesendet. Wenn der Empfänger auch Delta Chat nutzt, bekommt man die Nachricht innerhalb der App angezeigt. Durch diesen Ansatz ist es nicht notwendig, denselben Messenger zu nutzen. Man kann Delta Chat daher auch als interoperablen Messenger nutzen. </p>



<p class="wp-block-paragraph">Im Grunde genommen eignet sich Delta Chat für Personen, die ihre Telefonnummer nicht teilen wollen. Gleichzeitig kann man sich die Möglichkeit offen halten, über einen Messenger erreichbar zu sein. </p>



<p class="wp-block-paragraph">Leider ist nicht sichergestellt, dass Nachrichten E2EE verschlüsselt zugestellt werden und damit für einen Angreifer einsehbar sind. Über die Metadaten können die An- und CC-Felder des E-Mail-Headers eingesehen werden. So lässt es sich relativ einfach herausfinden, wer mit wem, zu welchem Zeitpunkt kommuniziert hat. Die Interoperabilität hat durchaus seine Vorteile. Ob die Vorteile dabei die Nachteile überwiegen, darf jeder für sich selbst entscheiden. Alles in allem stellt Delta Chat eine gute Alternative als Instant Messenger dar. Selbst für meinen Geschmack, wird eine gute Portion an Mehrwert für den Dezentralisierungsgedanken leistet.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/20/erklaerung-delta-chat/">Delta Chat &#8211; E-Mail neu erfunden</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/20/erklaerung-delta-chat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">371</post-id>	</item>
	</channel>
</rss>
