GNUnet

提供: tezos-wiki
移動先: 案内検索

2013年8月1日に[http:// youbroketheinternet。]でBerlinにGNUnetの管理人、ext_38dKJsdjh_Christian Grothoff - 2013年8月 - Berlin、Germany.png | [[Christian Grothoff] org /#august2013 #youbroketheinternet。私たちは自分自身をGNUにしようとしています。] "イベント。]] GNUnetは、[地方分権化|分散化]、[ピアツーピア] ネットワーキング、公式の GNU パッケージ。このフレームワークは、リンク暗号化ピア発見リソース割り当て、多数のトランスポート( TCP、[[ユーザデータグラムプロトコル| UDP HTTPHTTPSWLANBluetooth)とルーティングマルチキャストネットワークサイズの推定

GNUnetの基本的なネットワークトポロジーは、メッシュネットワークのものです。 GNUnetには、small world networkで効率的に経路指定できるKademliarandomizedバリアントであるdistributed hash table(DHT)が含まれています。 GNUnetは、ユーザーの信頼できる友人だけに接続を制限するための F2Fトポロジオプションを提供しています。ユーザーの友人の友人などは、間接的にIPアドレスを直接使用することはなく、ユーザーのコンピュータとファイルを間接的にやりとりすることができます。

GNUnetは、Uniform resource identifier(アプリケーションが作成されているにもかかわらず、[[Internet Assigned Numbers Authority | IANA]によって承認されていない)]を使用します。 GNUnetのURIは、モジュールとモジュール固有の識別子の2つの主要な部分で構成されています。 GNUnet URIの形式は gnunet:// module / identifier です。 module はモジュール名で、 identifier はモジュール固有の文字列です。

主なコードベースは Cで書かれていますが、gnunet-javaでは[[Java(プログラミング言語)| Java] 。 GNUnetはGNUプロジェクトの一部です。 PRISMの啓示の後で、ハッカーコミュニティに興味を持っています。

GNUnetは、いくつかのサブシステムで構成されています。そのうちの重要なサブシステムは、トランスポートサブシステムとコアサブシステムです。トランスポートサブシステムは安全でないリンクレイヤ通信を提供し、コアはピア発見と暗号化を提供します。コアサブシステムの上には、さまざまなアプリケーションが構築されています。

GNUnetには、ファイル共有、チャット、VPNなど、フレームワークの主要な配布物にさまざまなP2Pアプリケーションが含まれています。さらに、いくつかの外部プロジェクト([secushare]など)もGNUnetインフラストラクチャを拡張しています。

GNUnetは古いGnutella P2Pプロトコルとは無関係です。 GNUnetは公式のGNUプロジェクトではありません。

トランスポート[編集]

もともと、GNUnetは基になるトランスポートのために UDPを使っていました。現在、GNUnetトランスポートサブシステムは、TCPやSMTPなどの複数のオプションを提供します。

[IANA]に正式に登録されている通信ポートは2086([Transmission Control Protocol | tcp] + [[User Datagram Protocol | udp]))です。

信頼システム[編集]

GNUnetは、超過ベースの経済モデルに基づく信頼システムを提供します。経済システムを採用するという考え方はMojoNationネットワークから取られている。

GNUnetネットワークは信頼できるエンティティを持っていないので、グローバルな「評判」を維持することは不可能です。代わりに、各ピアは、ローカルリンクのそれぞれに対して独自の「信頼」を維持します。

帯域幅やCPU時間などのリソースが過剰になると、ピアは信頼を低下させることなく、またはそれを課金せずに、要求しているすべてのネイバーにそれらを提供します。ノードに負荷がかかっている場合、ノードは内部信頼値の低い隣接ノードからの要求をドロップします。しかし、ピアが全員の要求を満たすのに必要なリソースよりも少ないリソースを持っている場合、ピアツーピアは、信頼できる人が少ないと拒否し、信頼を下げることによって他の人に料金を請求することを拒否します。

ファイル共有[編集]

この時点での主なアプリケーションは、 anonymous、[[Internet censorship | censorship] - 耐性ファイル共有であり、ユーザーはあらゆる種類の情報を匿名で公開または取得できます。匿名性を提供するGNUnetプロトコルはGAP(GNUnet匿名プロトコル)と呼ばれます。 GNUnetはGNU libextractorを使って自動的に共用ファイルにmetadataで注釈を付ける。

ファイルのエンコーディング[編集]

GNUnetと共有されるファイルは、ECRS(検閲 - 耐性共有のためのエンコーディング)コードです。

すべてのコンテンツはGBlockとして表されます。各GBlockには1024バイトが含まれています。 GBlockにはいくつかの種類があり、それぞれ特定の目的に使用されます。任意のGBlock <数学> B <数学>その[[RIPEMD#RIPEMD-160ハッシュ] | RIPEMD-160ハッシュ]] H(B)によって一意に識別される。

DBlocksは実際のファイルの内容を格納します。ファイルは1024バイトの境界で分割され、結果のチャンクはDBロックに格納されます。 DBlockは、DBlock識別子を格納するIBlockによって、[Merkle tree]にリンクされます。

ブロックは、以下の式から導かれる対称鍵を用いて暗号化される:H(B)math&gt;それらがネットワークに格納されているとき

質問と回答[編集]

GNUnet匿名プロトコルは、クエリと応答で構成されています。転送ノードの負荷に応じて、メッセージはゼロ以上のノードに転送されます。

クエリは、コンテンツの検索とデータブロックの要求に使用されます。

クエリには、リソース識別子、返信先アドレス、優先度、TTL(Time-to-Live)が含まれます。

データのリソース識別子<math> Q </ math>は、3重ハッシュ関数H(H(H)(Q)))である。クエリに応答するピアは、それが実際に要求されたリソースを有することを証明するために、H(Q)/ mathを提供せずに、H(H(Q)中間ノードは中間ノードに復号することができないため、中間ノードは<math> Q </ math>を解読することができない。

返信アドレスは、Freenetプロトコルと比較して大きな違いです。 Freenetの返信では常にクエリと同じパスを使って返信されますが、GNUnetではパスが短くなる可能性があります。クエリを受け取ったピアは、それを落としたり、返信アドレスを書き換えたり、間接的に返信アドレスをそのアドレスに置き換えたりすることなく、それを「転送」することができます。間接問合せによって、peerは自身の問合せに対してcover trafficを提供し、ピアを転送することによって、応答伝搬におけるリンクであることを回避し、その帯域幅を維持する。この機能により、ユーザーは効率のために匿名性を交換できます。ユーザーは、パブリッシュ、検索、およびダウンロード操作ごとに匿名レベルを指定できます。非ゼロのファイル共有を選択するには、「ゼロ」の匿名レベルを使用できます。 GNUnetのDHTインフラストラクチャは、非匿名のファイル共有が指定されている場合にのみ使用されます。匿名レベルは、ピアがユーザ自身の行動を隠す必要のあるカバートラフィックの量を決定します。

優先順位は、リソースの不足の場合に、その信頼ユーザーが費やしたいと思っている金額を指定します。

TTLは、クエリがネットワークに長く滞留しないようにするために使用されます。

ファイル共有URI[編集]

モジュール 識別子 は、 chk sks ksk または loc の後にスラッシュとカテゴリ固有の値が続きます。ほとんどのURIは base32hexにエンコードされたハッシュを含んでいます。

&lt; code&gt;&lt; nowiki&gt; gnunet:// fs / chk / [ファイルハッシュ]。[クエリハッシュ]。[ファイルサイズ(バイト)]&lt; / nowiki&gt; / code&gt; :ファイルハッシュはプレーンテキストファイルのハッシュで、ダウンロードされると解読できます。クエリハッシュは、暗号化されたファイルを含むGBlocksのツリー全体をダウンロードできる最上位のGBlockのハッシュです。ツリーの形状を決定するにはファイルサイズが必要です。 &lt; code&gt;&lt; nowiki&gt; gnunet:// fs / sks / NAMESPACE / IDENTIFIER&lt; / nowiki&gt;&lt; / code&gt; &lt; code&gt;&lt; nowiki&gt; gnunet:// fs / ksk / KEYWORD [+ KEYWORD] *&nowiki&gt;&lt; / code&gt; &lt; code&gt;&lt; nowiki&gt; gnunet://fs/loc/PEER/QUERY.TYPE.KEY.SIZE&lt; / nowiki&gt;&lt; / code&gt;

[編集]

GNU GPLライセンステキストの特定のコピーを指し示すGNUnetファイル共有型の一種: &lt; code style = "word-wrap:break-word"&gt; GNUnetの://fs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992< /コード&GT。

別のタイプのGNUnetファイル共有URI、 "gpl"というキーワードの検索結果を指す: &lt; code style = "word-wrap:break-word"&gt; gnunet:// fs / ksk / gpl &lt; / code&gt;

GNUネームシステム[編集]

GNUnetにはGNUネームシステム(GNS)の実装が含まれています.GNSは、[[Domain Name System | DNS]の代わりとなる、分散型で検閲に抵抗するものです。 GNSでは、各ユーザが ".gnu" トップレベルドメインの下のDNS名前空間にマップされている自分の "マスター" ゾーンを管理しています。ユーザーは、他のユーザーが管理するゾーンにサブドメインを委任できます。他のユーザによって定義されたレコードの参照は、GNUnetのDHTを使用して実行されます。

プロトコル変換[編集]

GNUnetは、ピアツーピアネットワーク上でIPトラフィックをトンネリングできます。必要に応じて、GNUnetはIPv4-IPv6 プロトコル変換を実行することができます。 GNUnetは、 DNSアプリケーションレベルゲートウェイをプロキシDNS要求に提供し、必要に応じてアドレスを目的のアドレスファミリにマッピングします。このように、GNUnetは、 IPv6移行を促進するための可能な技術を提供します。さらに、GNSと組み合わせることで、GNUnetのプロトコル変換システムを使用して隠れたサービスにアクセスすることができます.IPベースのサービスは、ネットワーク内の一部のピアでローカルに実行され、GNS名を解決することによってのみアクセスできます。

ソーシャルAPI[編集]

Gabor X tothは、スケーラビリティ、拡張性、エンドツーエンドの暗号化通信を提供するGNUnetピアツーピアフレームワークのためのsocial messagingサービスの設計を発表する論文を2013年9月上旬に発表した。スケーラビリティプロパティは、マルチキャストメッセージ配信によって実現されますが、拡張可能なPSYC(SYNC)プロトコルを使用することで拡張性が実現され、拡張可能な[リモートプロシージャコール| RPC](リモートプロシージャコール)ネットワーク内のすべてのノードでソフトウェアをアップグレードすることなく、時間の経過とともに進化します。 PSYC層によって提供される別の重要な特徴は、ステートフルマルチキャストチャネルである。ユーザープロファイル。エンドツーエンド暗号化通信は、マルチキャストチャネルが構築されるGNUnetのメッシュサービスによって提供される。システムの匿名ユーザと社会的場所には、公開鍵で識別される暗号のアイデンティティがあります。これらは、GNS([[GNU Name System])を使用して人間の記憶に残る名前にマッピングされます。

これは、GNUnetフレームワークを完全にピアツーピアソーシャルネットワーキングプラットフォームに変えるために必要なビルディングブロックです。

チャット[編集]

簡単なチャットモジュールは、深刻なアプリケーションよりも多くのテストとして実装されていますが、使用可能です。

関連項目[編集]

Notes[編集]

ソース[編集]

http://wikipedia.org/