仕組み

自宅にゲートウェイ、ポケットにアプリ。

Loftは2つの部分でできています。NASのそばで動くゲートウェイと、デバイスで動くアプリです。アプリが通信する相手はゲートウェイだけで、ゲートウェイが通信する相手はNASだけです。

スマートフォンとパソコンは暗号化された接続で自宅のLoftゲートウェイにつながり、ゲートウェイがNAS上のファイルを読み書きします。

構成

NAS

SMBでフォルダを共有できるものなら何でも使えます。NAS機、Windowsサーバー、Sambaが動くLinuxマシンなど。Loftはそれに手を加えず、何もインストールしません。

Loftゲートウェイ

自宅のLinuxマシンで動く小さなサービスです。あなたのアカウントでNASにサインインするので、NAS自体のアクセス権がそのまま適用されます。アプリが接続するのはこのゲートウェイだけです。

アプリ

iPhone・iPad、Mac、Android、Windows、Linux向けのLoftです。共有フォルダをシステム標準のファイルアプリに表示し、ファイルを開いたときに取得します。

ペアリング

loft-gateway pairはQRコードとリンクを表示します。どちらにも、ゲートウェイの名前、アドレス、鍵のフィンガープリントが含まれています。アプリは接続のたびにこのフィンガープリントを確認するので、だまされて別のマシンと通信することはありません。「サーバーのアドレスを入力」する欄がないのもそのためです。手入力のアドレスは、偽のゲートウェイがパスワードを集める手口になります(それでも必要な場合は、アプリのペアリング画面に手動で設定があります)。

リンクはhttps://loft.incremental.no/pair#…のような形式です。#以降の部分はデバイスの外に出ません。ブラウザがその部分を私たちのウェブサイトに送ることはありません。

1台のデバイスがペアリングできるゲートウェイは、一度に1つだけです。

経路ごとに暗号化されるもの

自宅外出先(トンネル経由)外出先(直接接続)
アプリ ↔ ゲートウェイ暗号化、ゲートウェイの鍵に固定トンネル事業者までは暗号化(事業者は通信を読み取れます)。その先は事業者のトンネルを通ってゲートウェイへ暗号化、ゲートウェイの鍵に固定、エンドツーエンド
パスワードでのサインイン可不可。最初に自宅でサインイン可(接続は鍵に固定)
ゲートウェイ ↔ NASSMB 3、暗号化必須(古いNAS向けに緩和可能)同上同上

どちらを選ぶべき?トンネルは手軽な方法です。ルーターで何も開放する必要はありませんが、通信をトンネル事業者に預けることになります。直接接続では、ゲートウェイへのポート転送を設定します。途中の誰にも中身は読めませんが、ゲートウェイがインターネットから到達できるようになるため、ゲートウェイ側でサインインの試行回数を制限します。多くのNAS機はパスワードを何度間違えてもアカウントをロックしないので、ゲートウェイがその役目を担います。どちらも使わず、自宅でだけLoftを使うこともできます。

パスワード:パスワードは、ゲートウェイの鍵に固定された接続でのみ送信されます。ゲートウェイはパスワードを2つの鍵で暗号化して保存します。1つはゲートウェイが、もう1つはあなたのデバイスだけが持っているため、ゲートウェイのデータベースをコピーされてもパスワードは読めません。サインインしているデバイスはそれぞれ専用の暗号化されたコピーを持ち、ゲートウェイからそのデバイスを削除すると、そのコピーも削除されます。

防げないこと(率直に言います):ゲートウェイが動いていて、あなたが使っている間は、ゲートウェイはNASと通信するためにあなたのパスワードを使う必要があります。動作中のゲートウェイを乗っ取った人は、その時点で使っている人たちのパスワードを盗み取れる可能性があります。これは、あなたのアカウントでSMBにサインインするゲートウェイであれば、どれにも当てはまることです。ですから、ゲートウェイはほかの用途に使わないマシンで動かし、常に最新の状態に保ってください。

アップデート:ゲートウェイが自分でアップデートすることはありません。リリースノートを読んだうえで、新しい.debをインストールするか、新しいコンテナイメージをpullしてください。

→ セキュリティ上の問題を見つけたら:セキュリティ(hello@incremental.no)