4

非常に貴重なデータを扱うアプリを開発しようとしています。ユーザーにとってこのデータが失われると非常にコストがかかるため、私たちのニーズに最適なアーキテクチャ設計についてもっと知りたいと思っています。

ユーザーは毎日このデータを iPhone に入力します。このアプリを使用する代わりに、機密情報が記載された紙を持ち歩くこともできます。そのため、紙よりも安全にできることはわかっていますが、「携帯電話をトイレに流した」や「息子がアプリを削除しましたが、私のデータはどこにあるのでしょうか?」などのユーザー ストーリーも確実にカバーしたいと考えています。

Dropbox のようなサービスが頭に浮かびますが、ユーザーに Dropbox アカウントを要求したくはありません。同期アーキテクチャは、ユーザーに対して透過的でなければなりません。ウェブと Android のバージョンが続く可能性があるため、iCloud は廃止されました。

このテーマに関する良い読み物、または見るべき良いフレームワークを提案できる人はいますか? 私は node.js バックエンドを使用することを期待しています。最初に iPhone をターゲットにしていますが、Android もそれに続きます。

データ自体は 2 つのテーブルで構成され、それぞれに少数のフィールドがあり、多対多の関係があります。ユーザーによって毎日いくつかの新しい行が作成されますが、データは小さく、高度に圧縮されます。

4

1 に答える 1

4

これは非常に難しい問題であることがわかります。データ保証 (これはまだセキュリティ タイプの状況ではありませんが、保証の側面から 1 つになる可能性があります) には、常に時間要素があります。簡単な例として、ユーザーがデータの一部をローカルで更新した場合に何が起こるかを示します。クラウドサービスなどにデータを完全にプッシュできるようになる直前に...彼/彼女はそれをトイレに捨てます。データを送信するための良好な信号があったとしても、転送に時間がかかり、クラウドサーバーがデータが正しくそこに到達したと応答するのに必要な時間があります.

一般に、データ保証では、できる限り最善を尽くす必要があります。データセンターやデータセンターへのリンクなどがないため、すべての問題を解決することは決してできません...完璧です。データ損失の可能性は常にあります。本当にできる最善のことは、データが変更されるのと同じくらい速く同期し、接続が失われた場合は、接続が再びアクティブになるとすぐに同期することです。

さて、安全のために。セキュリティだけでは、保証は作成されません。データ自体が顧客にとって失いたくないものであり、それが唯一の要件である場合、セキュリティは不要です。彼/彼女が自分のデータを他の人が手に入れることも心配している場合は、転送中のデータ (同期中のアップとダウンの両方) と、デバイス自体について心配する必要があります。潜在的なセキュリティを最大限に高めるには、クラウドにプッシュする前に、デバイスでローカルにデータを暗号化してください。SSL やその他のサービスを使用している場合でも、データを取得できる既知の攻撃が多数あります。必要に応じて、ファイルをローカルで暗号化してから、セキュリティを強化するために SSL を使用することもできます (この時点で、データは二重に暗号化されます)。また、転送中に操作される可能性がほとんどないように、データに署名する必要があります。またはクラウド サーバー自体によって (ハッカーがクラウド サーバーをハッキングした場合)。一般に、デバイス上でデータを保護する方法として、ユーザーにパスワードを入力させることを選択し、パスワードの形成方法と、30 分間ほど試行を禁止する前に許可する試行回数についてかなり厳格なルールを設定することができます。

データを暗号化された形式でローカルに保存することもできます。この方法では、誰かがデバイスを取得した場合でも、データを取得する前にパスワードを取得する必要があります (もちろん、パスワードから対称キーを生成するために使用するアルゴリズムをクラックできる場合を除きます)。

オンライン データ サービスに関しては、iCloud などを使用できます。実際、私はクラウドのファンではありません。私はそれがSOカウンター企業/専有データだと思います、それは面白くさえありません. これらの電話/デバイスメーカーの多くがすっごくクラウドベースになっているのは、実際にはほとんどばかげていると思います. 私が知っている大企業は、彼らが制御していないクラウドサーバーに独自のデータを置きたいと思っていないので、彼らは大企業を見捨てていると思います. いずれにせよ、データを送信する前に適切なローカル暗号化方式を使用している限り、問題はないと私は主張します。ただし、保証の観点から、サーバーがロケールのどこにあるかを確認します。その理由は、データの保証が最大の関心事である場合、ほとんどの大規模な IT セットアップは、国/世界の反対側にデータセンターを複製することを好むからです... この理由は、地震によって国の片側にあるデータセンターがダウンした場合、国の反対側にあるデータセンターが同時にダウンすることはほとんどないためです. iCloud などのデータ センターが基本的に 1 つのロケールにある場合は、西海岸にある 1 つのデータ センターと同期することを検討し、完全に別のデータ センター (この場合は会社) を選択して同期することを検討してください。東海岸で。

これはすべて非常に高レベルであり、具体的には iPhone でこれを実装する方法についてもお話しできますが、これが少なくとも道を開くのに役立つことを願っています.

于 2013-02-01T16:54:02.417 に答える