IPFS ohne Schmerzen (aber das ist nicht sicher)

IPFS ohne Schmerzen (aber das ist nicht sicher)

Obwohl es auf Habr bereits mehrere Artikel ĂŒber IPFS gibt.

möchte ich gleich klarstellen, dass ich kein Experte auf diesem Gebiet bin, ich aber mehrfach Interesse an dieser Technologie gezeigt habe. Meine Versuche damit zu experimentieren haben oft einige Probleme verursacht. Heute habe ich wieder mit Experimenten begonnen und einige Ergebnisse erzielt, die ich gerne teilen möchte. Kurz gesagt, ich werde den Installationsprozess von IPFS und einige Tipps beschreiben (alles wurde auf Ubuntu durchgefĂŒhrt, auf anderen Plattformen habe ich es nicht ausprobiert).

Wenn Sie verpasst haben, was IPFS eigentlich ist, wurde es hier ausfĂŒhrlich beschrieben: habr.com/ru/post/314768

Installation von

Um die Experimente sauber zu halten, schlage ich vor, direkt auf einem externen Server zu installieren, da wir einige Fallstricke im lokalen und im entfernten Modus betrachten werden. SpÀter kann man es bei Bedarf leicht entfernen, das ist nicht kompliziert.

Go installieren

Offizielle Dokumentation
Die aktuelle Version finden Sie auf golang.org/dl

Hinweis: Es ist besser, IPFS unter dem Benutzer zu installieren, der voraussichtlich am hĂ€ufigsten genutzt wird. Der Grund dafĂŒr ist, dass wir gleich eine Variante mit der Einbindung ĂŒber FUSE und dort gibt es einige Feinheiten.

cd ~
curl -O https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
tar xvf go1.12.9.linux-amd64.tar.gz
sudo chown -R root:root ./go
sudo mv go /usr/local
rm go1.12.9.linux-amd64.tar.gz

Danach mĂŒssen Sie die Umgebung aktualisieren (mehr dazu hier: golang.org/doc/code.html#GOPATH).

echo 'export GOPATH=$HOME/work' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc

ÜberprĂŒfen wir, ob Go installiert wurde

go version

Installieren Sie IPFS

Mir hat die Installationsmethode ĂŒber ipfs-update.

Am besten installiert man es mit dem Befehl

go get -v -u github.com/ipfs/ipfs-update

Danach können Sie folgende Befehle ausfĂŒhren:

ipfs-update versions — um alle verfĂŒgbaren Versionen zum Herunterladen zu sehen.
ipfs-update version — um die aktuell installierte Version anzuzeigen (da IPFS noch nicht installiert ist, wird es none sein).
ipfs-update install latest — installieren Sie die neueste Version von IPFS. Statt latest können Sie auch eine beliebige gewĂŒnschte Version aus der Liste der verfĂŒgbaren Versionen angeben.

Installieren Sie ipfs

ipfs-update install latest

Wir ĂŒberprĂŒfen.

ipfs --version

Die Installation im Großen und Ganzen ist damit abgeschlossen.

Starten von IPFS

Initialisierung

Zuerst mĂŒssen Sie die Initialisierung durchfĂŒhren.

ipfs init

Als Antwort erhalten Sie etwas in der Art:

 ipfs init
initializing IPFS node at /home/USERNAME/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmeCWX1DD7HnXXXXXXXXXXXXXXXXXXXXXXXXxxx
to get started, enter:
	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Sie können den vorgeschlagenen Befehl ausfĂŒhren

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Ergebnis

Hallo und Willkommen bei IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

Wenn Sie das sehen, haben Sie IPFS erfolgreich installiert
und arbeiten nun mit dem IPFS Merkle-DAG!

 -------------------------------------------------------
| Warnung:                                             |
|   Dies ist Alpha-Software. Benutzung auf eigenes Risiko! |
|   Vieles fehlt oder ist noch nicht ausgereift. Es gibt Fehler.  |
|   Noch nicht sicher. Lesen Sie die Sicherheitshinweise fĂŒr mehr.  |
 -------------------------------------------------------

Schauen Sie sich einige der anderen Dateien in diesem Verzeichnis an:

  ./about
  ./help
  ./quick-start     <--- Nutzungshinweise
  ./readme          <--- diese Datei
  ./security-notes

Hier beginnt es meiner Meinung nach interessant zu werden. Die Entwickler nutzen bereits wĂ€hrend der Installation ihre eigenen Technologien. Der vorgeschlagene Hash QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv wurde nicht speziell fĂŒr Sie generiert, sondern ist in das Release eingebettet. Das bedeutet, sie haben den BegrĂŒĂŸungstext vor der Veröffentlichung vorbereitet, ihn in IPFS gepackt und die Adresse in den Installer eingefĂŒgt. Ich finde das wirklich großartig. Und diese Datei (besser gesagt, der ganze Ordner) kann jetzt nicht nur lokal, sondern auch ĂŒber das offizielle Gateway angezeigt werden. ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv. Dabei können Sie sich darauf verlassen, dass der Inhalt des Ordners unverĂ€ndert bleibt, denn wĂŒrde er sich Ă€ndern, wĂŒrde sich auch der Hash Ă€ndern.

Übrigens Ă€hnelt IPFS in diesem Fall einem Versionskontrollserver. Wenn Sie Änderungen an den Quelldateien des Ordners vornehmen und den Ordner erneut in IPFS hochladen, erhĂ€lt er eine neue Adresse. Der alte Ordner bleibt jedoch weiterhin unter seiner bisherigen Adresse verfĂŒgbar.

Direkt starten

ipfs daemon

Sie sollten eine Antwort in der Art erhalten:

ipfs daemon
Daemon wird initialisiert...
go-ipfs Version: 0.4.22-
Repo-Version: 7
Systemversion: amd64/linux
Golang-Version: go1.12.7
Swarm hört auf /ip4/x.x.x.x/tcp/4001
Swarm hört auf /ip4/127.0.0.1/tcp/4001
Swarm hört auf /ip6/::1/tcp/4001
Swarm hört auf /p2p-circuit
Swarm gibt bekannt /ip4/127.0.0.1/tcp/4001
Swarm gibt bekannt /ip6/::1/tcp/4001
API-Server hört auf /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (nur lesen) Server hört auf /ip4/127.0.0.1/tcp/8080
Daemon ist bereit

Öffnen Sie die TĂŒren zum Internet

Bitte beachten Sie diese beiden Zeilen:

WebUI: http://127.0.0.1:5001/webui
Gateway (nur lesen) Server hört auf /ip4/127.0.0.1/tcp/8080

Wenn Sie IPFS lokal installiert haben, werden Sie die IPFS-Schnittstellen ĂŒber lokale Adressen ansprechen können, und Ihnen wird alles zur VerfĂŒgung stehen (zum Beispiel, localhost:5001/webui/). Bei der Installation auf einem externen Server sind standardmĂ€ĂŸig die Gateways fĂŒr das Internet geschlossen. Es gibt zwei Gateways:

  1. Admin-OberflĂ€che webui (github) ĂŒber Port 5001.
  2. Externes API auf Port 8080 (readonly).

FĂŒr Experimente können beide Ports (5001 und 8080) geöffnet werden, jedoch sollte Port 5001 auf einem Produktionsserver unbedingt durch die Firewall geschlossen werden. Es gibt auch Port 4001, der benötigt wird, damit andere Peers Sie finden können. Dieser sollte fĂŒr externe Anfragen offen bleiben.

Öffnen Sie zur Bearbeitung ~/.ipfs/config und suchen Sie diese Zeilen:

"Addresses": {
  "Swarm": [
    "/ip4/0.0.0.0/tcp/4001",
    "/ip6/::/tcp/4001"
  ],
  "Announce": [],
  "NoAnnounce": [],
  "API": "/ip4/127.0.0.1/tcp/5001",
  "Gateway": "/ip4/127.0.0.1/tcp/8080"
}

Ändern Sie 127.0.0.1 in die IP Ihres Servers und speichern Sie die Datei. Starten Sie danach ipfs neu (beenden Sie den laufenden Befehl mit Ctrl+C und starten Sie erneut).

Sie sollten erhalten

...
WebUI: http://ip_ Ihres_ Servers:5001/webui
Gateway (readonly) Server hört auf /ip4/ip_ Ihres_ Servers/tcp/8080

Nun sollten die externen Schnittstellen verfĂŒgbar sein.

ÜberprĂŒfen Sie

http://domain_oder_ip_ des_ Servers:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

Die oben genannte README-Datei sollte geöffnet werden.

http://domain_oder_ip_ des_ Servers:5001/webui/

Das Webinterface sollte geöffnet werden.

Wenn Ihr Web-Interface funktioniert, können Sie die IPFS-Einstellungen direkt dort Ă€ndern und auch Statistiken einsehen. Im Folgenden werde ich jedoch die Konfigurationsmöglichkeiten direkt ĂŒber die Konfigurationsdatei behandeln, was insgesamt nicht kritisch ist. Es ist nur besser, sich zu merken, wo die Konfiguration abgelegt ist und was man damit machen kann. Wenn das Web-Interface nicht funktioniert, wird es schwieriger.

Wir richten die Web-OberflĂ€che fĂŒr die Arbeit mit Ihrem Server ein

Hier ist der erste Stolperstein, an dem wir etwa drei Stunden gearbeitet haben.

Wenn Sie IPFS auf einem externen Server installiert haben, aber IPFS nicht lokal installiert oder gestartet haben, sollten Sie beim Zugriff auf /webui im Web-Interface eine Verbindungsfehler-Meldung sehen:

IPFS ohne Schmerzen (aber das ist nicht sicher)

Die Sache ist die, dass webui meiner Meinung nach recht uneindeutig funktioniert. Zuerst versucht es, sich mit der API des Servers zu verbinden, auf dem das Interface geöffnet ist (basierend auf der Adresse im Browser). Und wenn das nicht funktioniert, wird versucht, sich mit dem lokalen Gateway zu verbinden. Wenn Sie IPFS lokal laufen haben, funktioniert webui zwar normal, aber Sie arbeiten mit dem lokalen IPFS und nicht mit dem externen, auch wenn Sie webui auf einem externen Server geöffnet haben. Dann laden Sie Dateien hoch, aber aus irgendeinem Grund sehen Sie sie nicht einfach so auf dem externen Server


Wenn auch lokal nichts lĂ€uft, erhalten wir einen Verbindungsfehler. In unserem Fall ist der Fehler wahrscheinlich auf CORS zurĂŒckzufĂŒhren, was auch webui anzeigt und empfiehlt, die Konfiguration hinzuzufĂŒgen.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_ihres_servers:5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'

Ich habe einfach ein Wildcard eingetragen.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

Die hinzugefĂŒgten Header finden Sie alle in der Datei ~/.ipfs/config. In meinem Fall ist das

  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        "*"
      ]
    }
  },

Wir starten ipfs neu und sehen, dass sich die webui erfolgreich verbunden hat (zumindest sollte sie das, wenn Sie die Gateways fĂŒr externe Anfragen geöffnet haben, wie oben beschrieben).

Jetzt können Sie direkt ĂŒber die Webschnittstelle Ordner und Dateien hochladen sowie Ihre eigenen Ordner erstellen.

Montierung des FUSE-Dateisystems

Das ist eine ziemlich interessante Funktion.

Dateien (wie auch Ordner) können nicht nur ĂŒber die Webschnittstelle, sondern auch direkt im Terminal hinzugefĂŒgt werden, zum Beispiel

ipfs add test -r
hinzugefĂŒgt QmfYuz2gegRZNkDUDVLNa5DXzKmxxxxxxxxxx test/test.txt
hinzugefĂŒgt QmbnzgRVAP4fL814h5mQttyqk1aURxxxxxxxxxxxx test

Der letzte Hash ist der Hash des Stammordners.

Über diesen Hash können wir den Ordner auf jedem ipfs-Knoten öffnen (der unsere Node finden und den Inhalt abrufen kann), entweder im Webinterface an Port 5001 oder 8080 oder lokal ĂŒber ipfs.

ipfs ls QmbnzgRVAP4fL814h5mQttyqk1aUxxxxxxxxxxxxx
QmfYuz2gegRZNkDUDVLNa5DXzKmKVxxxxxxxxxxxxxx 10 test.txt

Aber man kann ihn auch wie einen normalen Ordner öffnen.

Lassen Sie uns im Stammverzeichnis zwei Ordner erstellen und die Berechtigungen fĂŒr diese unserem Benutzer geben.

sudo mkdir /ipfs /ipns
sudo chown USERNAME /ipfs /ipns

und wir starten ipfs mit dem Flag —mount neu

ipfs daemon --mount

Sie können auch Ordner an anderen Stellen erstellen und den Pfad zu ihnen ĂŒber die Parameter ipfs daemon —mount —mount-ipfs /ipfs_path —mount-ipns /ipns_path angeben.

Das Lesen aus diesem Verzeichnis ist etwas ungewöhnlich.

ls -la /ipfs
ls: Verzeichnis '/ipfs' kann nicht gelesen werden: Operation nicht erlaubt
total 0

Das heißt, es gibt keinen direkten Zugriff auf den Wurzelordner dieses Verzeichnisses. Aber man kann den Inhalt erhalten, wenn man den Hash kennt.

ls -la /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx
total 0
-r--r--r-- 1 root root 10 31. Aug 07:03 test.txt

cat /ipfs/QmbnzgRVAP4fL814h5mQttyqxxxxxxxxxxxxxxxxx/test.txt 
test
test

Dabei funktioniert sogar die AutovervollstÀndigung innerhalb des Verzeichnisses, wenn der Pfad angegeben wird.

Wie ich oben erwĂ€hnt habe, gibt es bei dieser Montage einige Feinheiten: standardmĂ€ĂŸig sind die gemounteten FUSE-Verzeichnisse nur fĂŒr den aktuellen Benutzer zugĂ€nglich (selbst root kann nicht aus einem solchen Verzeichnis lesen, ganz zu schweigen von anderen Benutzern im System). Wenn Sie wollen, dass diese Verzeichnisse fĂŒr andere Benutzer zugĂ€nglich sind, mĂŒssen Sie in der Konfiguration 'FuseAllowOther': false auf 'FuseAllowOther': true Ă€ndern. Aber das ist noch nicht alles. Wenn Sie IPFS als root ausfĂŒhren, ist alles in Ordnung. Wenn Sie es jedoch unter einem normalen Benutzer (auch mit sudo) ausfĂŒhren, erhalten Sie einen Fehler.

mount helper error: fusermount: Option allow_other ist nur erlaubt, wenn 'user_allow_other' in /etc/fuse.conf gesetzt ist.

In diesem Fall mĂŒssen Sie /etc/fuse.conf anpassen, indem Sie die Zeile #user_allow_other entkommentieren.

Nachdem wir das getan haben, starten wir ipfs neu.

Bekannte Probleme mit FUSE

Es wurde hÀufig beobachtet, dass nach einem Neustart von ipfs mit der Montage (oder möglicherweise auch in anderen FÀllen) die EinhÀngepunkte /ipfs und /ipns nicht mehr zugÀnglich sind. Der Zugriff auf sie ist völlig unmöglich, und ein ls -la /ipfs zeigt ???? in der Berechtigungsliste an.

Ich habe folgende Lösung gefunden:

fusermount -z -u /ipfs
fusermount -z -u /ipns

Danach starten wir ipfs neu.

Dienst hinzufĂŒgen

SelbstverstĂ€ndlich eignet sich der Start im Terminal nur fĂŒr erste Tests. Im Produktionsmodus sollte der Dienst automatisch beim Systemstart gestartet werden.

Im Namen von sudo erstellen wir die Datei /etc/systemd/system/ipfs.service und schreiben Folgendes hinein:

[Unit]
Description=IPFS-Daemon
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/home/USERNAME/work/bin/ipfs daemon --mount
User=USERNAME
Restart=always

[Install]
WantedBy=multi-user.target

USERNAME muss natĂŒrlich durch deinen Benutzernamen ersetzt werden (und möglicherweise ist der vollstĂ€ndige Pfad zum Programm ipfs bei dir anders, der vollstĂ€ndige Pfad muss genau angegeben werden).

Aktivieren Sie den Dienst.

sudo systemctl enable ipfs.service

Starten Sie den Dienst.

sudo service ipfs start

ÜberprĂŒfen Sie den Dienststatus.

sudo service ipfs status

Zur Klarheit des Experiments kann der Server spÀter neu gestartet werden, um zu testen, ob ipfs automatisch erfolgreich gestartet wird.

FĂŒgen Sie bekannte Peers hinzu.

Stellen wir uns eine Situation vor, in der wir IPFS-Knoten sowohl auf einem externen Server als auch lokal installiert haben. Auf dem externen Server fĂŒgen wir eine Datei hinzu und versuchen, sie lokal ĂŒber IPFS anhand der CID abzurufen. Was passiert? NatĂŒrlich weiß unser lokaler Server höchstwahrscheinlich nichts ĂŒber unseren externen Server und wird einfach versuchen, die Datei anhand der CID zu finden, indem er alle verfĂŒgbaren IPFS-Peens, mit denen er bereits "bekannt" ist, befragt. Diese werden wiederum bei anderen nachfragen. Und so weiter, bis die Datei gefunden wird. Das Gleiche passiert, wenn wir versuchen, die Datei ĂŒber das offizielle Gateway zu erhalten. ipfs.io. Wenn wir GlĂŒck haben, wird die Datei in wenigen Sekunden gefunden. Wenn nicht, wird sie auch in einigen Minuten nicht gefunden, was den Arbeitskomfort stark beeintrĂ€chtigt. Aber wir wissen, wo diese Datei zuerst erscheinen wird. Warum sollten wir unserem lokalen Server nicht gleich sagen: "Suchen Sie zuerst dort"? Anscheinend ist das möglich.

1. Melden Sie sich am Remote-Server an und suchen Sie in der Konfiguration ~/.ipfs/config nach

"Identity": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuxxxxxxxxxxxxxxxx",

2. FĂŒhren Sie sudo service ipfs status aus und suchen Sie darin nach EintrĂ€gen zu Swarm, zum Beispiel:

Swarm announcing /ip4/ip_ihres_servers/tcp/4001

3. Wir erstellen daraus eine allgemeine Adresse im Format „/ip4/ip_ihres_servers/tcp/4001/ipfs/$PeerID“.

4. Um die ZuverlĂ€ssigkeit zu gewĂ€hrleisten, versuchen wir, diese Adresse ĂŒber unser lokales Web-Interface zu den Peers hinzuzufĂŒgen.

IPFS ohne Schmerzen (aber das ist nicht sicher)

5. Wenn alles in Ordnung ist, öffnen wir die lokale Konfiguration ~/.ipfs/config, suchen darin nach „Bootstrap“: [

und fĂŒgen die erhaltene Adresse als erstes im Array hinzu.

Wir starten IPFS neu.

Jetzt fĂŒgen wir eine Datei auf dem externen Server hinzu und versuchen, sie lokal anzufordern. Sie sollte schnell ĂŒbertragen werden.

Dieser Funktionsumfang ist jedoch derzeit instabil. Soweit ich verstehe, Ă€ndert ipfs wĂ€hrend der Nutzung selbst dann, wenn wir die Adresse des Peers im Bootstrap angeben, die Liste der aktiven Verbindungen zu den Peers. In jedem Fall wird ĂŒber dieses Thema diskutiert und es gibt WĂŒnsche zur Möglichkeit, feste Peers anzugeben, hier und es scheint, dass angenommen irgendeine FunktionalitĂ€t in ipfs@5.0+ hinzugefĂŒgt wird.

Die Liste der aktuellen Peers kann sowohl im Web-Interface als auch im Terminal eingesehen werden.

ipfs swarm peers

Sowohl dort als auch dort kann man manuell seinen Peer hinzufĂŒgen.

ipfs swarm connect "/ip4/ip_ihres_servers/tcp/4001/ipfs/$PeerID"

Solange dieser Funktionsumfang nicht verbessert wurde, kann man ein Tool schreiben, das ĂŒberprĂŒft, ob eine Verbindung zum gewĂŒnschten Peer besteht, und wenn nicht, die Verbindung hinzufĂŒgt.

Überlegungen

Unter denjenigen, die bereits mit IPFS vertraut sind, gibt es sowohl Argumente dafĂŒr als auch dagegen. Im Grunde genommen hat mich das Thema erneut dazu gebracht, IPFS nĂ€her zu betrachten. Diskussion ĂŒber Was die erwĂ€hnte Diskussion betrifft: Ich kann nicht sagen, dass ich gegen irgendein vorgebrachtes Argument bin (ich stimme nur nicht zu, dass eineinhalb Programmierer IPFS nutzen). Insgesamt haben beide Seiten auf ihre Weise recht, insbesondere. der Kommentar zu den Checks. macht nachdenklich). Aber wenn wir die moralische und rechtliche Bewertung beiseite lassen, wer wird dann eine technische EinschĂ€tzung dieser Technologie abgeben? Ich habe persönlich das GefĂŒhl, dass "das unbedingt notwendig ist, es hat bestimmte Perspektiven". Aber warum genau, gibt es keine klare Formulierung. Wenn man sich die bestehenden zentralisierten Mittel ansieht, sind sie in vielen Aspekten weit ĂŒberlegen (ZuverlĂ€ssigkeit, Geschwindigkeit, Handhabbarkeit usw.). Dennoch habe ich einen Gedanken, der Sinn zu machen scheint und der wahrscheinlich ohne solche dezentralisierten Systeme nicht umgesetzt werden kann. NatĂŒrlich wage ich viel, aber ich wĂŒrde es so formulieren: Das Prinzip der Verbreitung von Informationen im Internet muss geĂ€ndert werden.

Lassen Sie es mich erklĂ€ren. Wenn man darĂŒber nachdenkt, verbreitet sich Informationen momentan nach dem Prinzip: "Ich hoffe, dass derjenige, dem ich sie ĂŒbergeben habe, sie schĂŒtzt und dass sie nicht verloren geht oder von jemandem erhalten wird, fĂŒr den sie nicht bestimmt ist." Ein einfaches Beispiel sind verschiedene E-Mail-Dienste, Cloud-Speicher usw. Und was haben wir am Ende? Auf HabrĂ©-Hub Informationssicherheit ist an erster Stelle und praktisch jeden Tag erhalten wir Nachrichten ĂŒber die nĂ€chste globale Datenpanne. Im Grunde sind alle interessanten Aspekte in der wunderbaren Artikel aufgelistet. Der Sommer ist fast vorbei. Fast keine Datenlecks mehr ĂŒbrig.Das heißt, die großen Internetkonzerne werden immer grĂ¶ĂŸer, sammeln immer mehr Informationen, und solche Datenpannen sind eine Art Informations-Atomexplosion. So etwas gab es noch nie, und jetzt ist es wieder passiert. WĂ€hrend viele das Risiko erkennen, werden sie weiterhin bereitwillig ihre Daten Drittanbietern anvertrauen. Erstens gibt es kaum Alternativen, und zweitens versichern diese, dass sie alle SicherheitslĂŒcken geschlossen haben und so etwas nie wieder passieren wird.

Wie könnte die Lösung aussehen? Meiner Meinung nach sollten Daten von Anfang an offen verbreitet werden. Doch Offenheit bedeutet in diesem Fall nicht, dass alles leicht lesbar sein muss. Ich spreche von der Transparenz in der Speicherung und Verbreitung, nicht von einer absoluten Lesbarkeit. Ich gehe davon aus, dass Informationen mit öffentlichen SchlĂŒsseln verbreitet werden sollten. Das Prinzip der offenen/geschlossenen SchlĂŒssel ist schließlich so alt wie das Internet selbst. Wenn Informationen nicht vertraulich sind und fĂŒr ein breites Publikum gedacht sind, werden sie sofort mit einem öffentlichen SchlĂŒssel veröffentlicht (aber immer noch verschlĂŒsselt, sodass jeder mit dem verfĂŒgbaren SchlĂŒssel sie entschlĂŒsseln kann). Wenn dies nicht der Fall ist, wird die Information ohne öffentlichen SchlĂŒssel veröffentlicht, und der SchlĂŒssel wird an die Person ĂŒbergeben, die Zugang zu dieser Information haben sollte. Dabei sollte die Person, die sie lesen möchte, nur den SchlĂŒssel haben, und es sollte sie nicht allzu sehr kĂŒmmern, woher sie die Information bezieht – sie zieht sie einfach aus dem Netz (das ist das neue Prinzip der Verbreitung nach Inhalt und nicht nach Adresse).

In diesem Zusammenhang mĂŒssen Angreifer eine enorme Anzahl von privaten SchlĂŒsseln erwerben, um einen Massenvorstoß durchzufĂŒhren, und es ist kaum wahrscheinlich, dass sie dies an einem einzigen Punkt erreichen können. Diese Aufgabe scheint mir komplizierter zu sein, als eine spezifische Dienstleistung zu hacken.

Und hier stellt sich ein weiteres Problem: die BestÀtigung der Urheberschaft. Momentan finden wir im Internet viele Zitate, die von unseren Bekannten stammen könnten. Aber wo ist die Garantie, dass genau sie diese verfasst haben? Wenn jede dieser Aufzeichnungen mit einer digitalen Signatur versehen wÀre, wÀre das erheblich einfacher. Und es spielt keine Rolle, wo diese Informationen gespeichert sind, das Hauptkriterium ist die Signatur, die bewusst schwer zu fÀlschen ist.

Das Interessante an dieser Technologie ist, dass IPFS bereits VerschlĂŒsselungsmittel enthĂ€lt (da es auf der Blockchain-Technologie basiert). In der Konfiguration ist sofort der private SchlĂŒssel angegeben.

  "IdentitÀt": {
    "PeerID": "QmeCWX1DD7HnPSuMHZSh6tFuMxxxxxxxxxxxxxx",
    "PrivKey": "CAASqAkwggSkAgEAAoIBAQClZedVmj8JkPvT92sGrNIQmofVF3ne8xSWZIGqkm+t9IHNN+/NDI51jA0MRzpBviM3o/c/Nuz30wo95vWToNyWzJlyAISXnUHxnVhvpeJAbaeggQRcFxO9ujO9DH61aqgN1m+JoEplHjtc4KS5
pUEDqamve+xAJO8BWt/LgeRKA70JN4hlsRSghRqNFFwjeuBkT1kB6tZsG3YmvAXJ0o2uye+y+7LMS7jKpwJNJBiFAa/Kuyu3W6PrdOe7SqrXfjOLHQ0uX1oYfcqFIKQsBNj/Fb+GJMiciJUZaAjgHoaZrrf2b/Eii3z0i+QIVG7OypXT3Z9JUS60
KKLfjtJ0nVLjAgMBAAECggEAZqSR5sbdffNSxN2TtsXDa3hq+WwjPp/908M10QQleH/3mcKv98FmGz65zjfZyHjV5C7GPp24e6elgHr3RhGbM55vT5dQscJu7SGng0of2bnzQCEw8nGD18dZWmYJsE4rUsMT3wXxhUU4s8/Zijgq27oLyxKNr9T7
2gxqPCI06VTfMiCL1wBBUP1wHdFmD/YLJwOjV/sVzbsl9HxqzgzlDtfMn/bJodcURFI1sf1e6WO+MyTc3.................

Ich bin kein Sicherheitsexperte und kann nicht genau sagen, wie man das richtig verwendet, aber ich denke, dass diese SchlĂŒssel auf der Ebene des Austauschs zwischen IPFS-Knoten verwendet werden. Außerdem js-ipfs und Projekte wie orbit-db, auf der orbit.chatbetrieben wird. Theoretisch kann also jedes GerĂ€t (mobil oder nicht) leicht mit seinen eigenen VerschlĂŒsselungs- und EntschlĂŒsselungsmaschinen ausgestattet werden. In diesem Fall muss jeder nur dafĂŒr sorgen, seine privaten SchlĂŒssel zu bewahren, und jeder ist dann selbst fĂŒr seine Sicherheit verantwortlich, anstatt Opfer des menschlichen Faktors bei einem ĂŒbermĂ€ĂŸig populĂ€ren Internet-Giganten zu werden.

Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte melden Sie sich an.Sind Sie an Contour interessiert?

Haben Sie schon einmal von IPFS gehört?

  • Ich habe noch nie von IPFS gehört, aber es scheint interessant zu sein.

  • Ich habe nichts gehört und möchte nichts hören

  • Ich habe davon gehört, aber es hat mich nicht interessiert

  • Ich habe davon gehört, aber nicht verstanden. Jetzt scheint es interessant zu sein

  • Ich nutze IPFS schon seit lĂ€ngerem aktiv

69 Nutzer haben abgestimmt. 13 Nutzer haben sich enthalten.

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster