Merkezi veritabanı yok


31

Çok hassas verilerle ilgilenen bir web sitesi / mobil uygulamalar / masaüstü uygulamaları edinmek isteyen bir müşterim var (banka / kart detaylarından daha hassas). Verilerin hassas doğası nedeniyle, merkezi bir veritabanına kaydetmek istemiyorlar ancak yine de uygulamalarının senkronize edilmesini istiyorlar (diyelim ki mobil uygulamama bazı veriler ekledim, sonra benim masaüstü uygulaması ve aynı verileri görmek).

Bunu yapmanın güzel ve güvenilir bir yolunu düşünemiyorum ve bir tane olduğundan emin değilim. Bu yüzden buradayım. Bu verilerle nasıl başa çıkabileceğimi bilen var mı?

Düşündüğüm bir çözüm, her uygulamada bir şekilde uygulamalar arasında senkronize olacak bir istemci tarafı veri tabanına sahip olmaktı, bunun çok güvenilmez olduğunu ve yine de dağınık olduğunu görebiliyorum.


2
Verilerin senkronize edilmesini istiyorsanız, hala erişilebilir bir yerde olması gerekir, böylece veriler uygulamanıza aktarılabilir. Verileri daha fazla veritabanına bölebilirsiniz, böylece bir şekilde ihlal edilirse, tüm verilerinizi sızdırmazsınız. Bu müşteriyi tatmin ediyorsa, uygulamanıza daha fazla veritabanı bağlantısı ekleyin ve verilerinizi onlardan çekin.
Andy

2
Bu bir meslektaş problemi midir? ya da sadece bir masaüstü 1 akıllı telefonla konuşuyor (her veri alanı için)?
ebyrob

7
Sunucudaki verileri yalnızca kullanıcı tarafından bilinen bir anahtarla şifreleyerek veritabanındaki gizliliği sağlayabilirsiniz.
Philipp

26
Bu, güvenlik düşüncesini anlamayan birinin düşündüğü bir şemaya benziyor. Bu şartı yerine getiren kişi, Security.SE'de veri güvenliği ile ilgili bir soru formüle etmelidir .
jpmc26

4
@ user2424495: Verilerin bir web sitesi aracılığıyla erişilebilir olması gerekiyorsa, veriler web sitenizin sunulduğu yerde bulunmalıdır - bu genellikle merkezi bir sunucudur. Veya veriyi istemci tarafında sağlayan bir tarayıcı eklentisi yazmanız gerekir.
Bergi

Yanıtlar:


60

Çok sayıda hassas bilgi veritabanlarında depolanır. Aslında, merkezi bir veritabanı muhtemelen bu verileri depolamak için en güvenli yoldur. Büyük kurumsal veritabanları, hassas bilgileri şifrelemek, ona erişimi olanları denetlemek, DBA'lar dahil kişilerin verileri görüntülemesini engellemek veya engellemek gibi şeyleri yapmak için tonlarca işlevselliğe sahiptir. veri kaybetmediğini Neredeyse kesinlikle bazı rasgele kullanıcıların mobil cihazlarında veya dizüstü bilgisayarlarında depolanan verileri iyi tasarlanmış bir güvenlik altyapısına nüfuz etmekten ve uygun bir merkezi veritabanını tehlikeye atmaktan çok daha kolay olurdu.

Sistemi yalnızca şifreli verileri depolayan ve kullanıcının özel anahtarını kullanıcının cihazında depolayan merkezi bir veritabanı ile tasarlayabilirsiniz. Bu şekilde, merkezi veritabanı tamamen tehlikeye girse bile, veriler yalnızca kullanıcı tarafından kullanılabilir. Tabii ki bu, anahtarını kaybederse kullanıcının verilerini geri yükleyemeyeceğiniz anlamına gelir (tek kopyanın telefonunda olduğunu ve telefonlarının zarar gördüğünü söyleyin). Ve eğer birisi anahtarı tehlikeye sokarsa ve muhtemelen giriş bilgilerini kullanırsa, verileri görebilir.


24
@ user2424495 - Hedef gerçek güvenlik ise, verilerin merkezi olarak depolanması neredeyse kesinlikle kazanır. Bir pazarlama açısından, birisinin telefonu saldırıya uğradığında sizin suçunuz olmayabilir. Ancak, kelime kesmek nispeten kolay olduğu ortaya çıkarsa (çoğu insanın sistemleri çok kötü bir şekilde güvence altına alındığından) kesinlikle uygulamaya kötü yansıyacaktır. İnsanlara, zayıf güvenlikli telefonları saldırıya uğradığında beni suçlamadıklarını ummak yerine, verilerini askeri güvenlikle şifrelenmiş olarak saklamayı tercih ederim.
Justin Cave,

27
Bu, şu ana kadar soruyu gerçekten ele alan ve mümkün olan en iyi güvenlik sonucunu sağlayan tek cevaptır. OP’nin verdiği şartlar gülünçtür. Veriler o kadar hassassa, verilerin halka açık bir ağ üzerinden bile erişilebilir olması fikri kullanıcılar için rahatsız edici ise, uygulama fikri gerçekçi değildir. Tam dur. İstemci cihazları güvenli değildir ve güvenilir olamaz.
maple_shaft

2
Eğer veritabanı sadece şifreli veri depolarsa (cihazı terk etmeden önce şifreli), mahkeme emrinin ne dediği önemli değil, yalnızca kullanıcının sahip olduğu şifreleme anahtarları olmadan fiziksel olarak şifresi çözülemez.
Richard Tingle,

9
@RichardTingle <tinfoil> Hükümet kurumu zaten şifrelemeyi kırmadıkça, </tinfoil>
Bob

3
Sorunun "ilginç" olmadığını asla söylemedim, soruyu ve cevapları şu ana kadar merak uyandırıcı ve düşündürücü buluyorum. Bu tam olarak bu siteyi harika yapan bir tür soru. Gereksinimleri ve muhtemelen verilerle ilgili yapılmış varsayımların bazılarını sorguluyorum. Benim örümcek anlamda sadece verilerin önemi hakkında bu gereklilikler ve varsayımlar beğenileri kendisi gerçeklik cont içinde ... bilgili ve anlayışlı ama bu bloviated ve kendini tapan şirketin derin düşünceler olduğunu bana bağırır
maple_shaft

38

Birkaç adım atmanız ve müşterinize danışarak bir tehdit modeli geliştirmeniz gerekir . (Evet, bu 600 sayfalık bir kitabın bağlantısıdır; evet, her şeyi okumanızı şiddetle tavsiye ediyorum.)

Bir tehdit modeli gibi sorular sorarak başlar

  • Uygulamanın neden bu hassas verileri ilk önce kaydetmesi gerekiyor?
    • Saklamaktan kaçınabilir misin?
    • Kısa bir süre sonra atılabilir mi?
    • Gerçekten birden fazla cihaz için erişilebilir olması gerekli mi?
    • Birden fazla cihazda erişilebilir olması gerekiyorsa , birden fazla cihazda depolanması mı gerekiyor ?
  • Her kullanıcının hassas verilerini görmesine izin verilen kişiler kimlerdir?
    • Bu liste daha kısa yapılabilir mi?
  • İşlerini yapmaya çalışırken her kullanıcının hassas verileriyle iletişim kurabilen, ancak bunu bilmesine gerek olmayan insanlar kimlerdir?
    • Can bu liste daha kısa yapılabilir?
    • Verileri, işlerini yapma yeteneklerine zarar vermeden erişilemez hale getirebilir mi?
    • Erişilemez ise, en azından anlaşılmaz hale getirilebilir mi? (Özet, şifrelemenin yaptığı şeydir: verileri anlaşılmaz kılar.)
  • Hassas verileri görmek isteyen ancak izin verilmeyen insanlar kimlerdir ?
    • Verilere ulaşmak için hangi fırsatları kullanmak zorundalar?
    • Verilere sahip olduktan sonra ne yapmak isterler?
    • İstediklerini alamazlarsa ne kadar kızacaklar?
    • Ne kadar para, zaman, CPU döngüsü ve insani çaba harcamak istiyorlar?
    • Herkes umurlarında mı bilir onlar verileri gördük?
    • Belirli kullanıcıların hassas verilerine erişmek istiyorlar mı , yoksa herkes yapacak mı?
    • Ne biliyorlar ki?
    • Zaten erişebilecekleri neler var?

Bu soruların cevaplarını öğrendikten sonra ne yapmanız gerektiğini anlamak için çok daha iyi bir yerdesiniz.

Her saldırıda birden fazla cevap olabileceğini, özellikle saldırganlarla ilgilenenlerin (hassas verileri isteyen ancak sahip olmalarına izin verilmeyen insanlar) akılda tutulduğunu unutmayın. En az yarım düzine farklı arketip saldırganı düşünemiyorsanız, farklı motivasyonlara, hedeflere ve kaynaklara sahipseniz, muhtemelen bir şeyleri özlemişsinizdir.

Ayrıca, size (ve / veya müşteriye) en fazla sıkıntı veren, saldırıları başarılı olursa ya da en büyük toplam zararı verenlerin medyada dev bir sıçrama yapması en muhtemel olduğunu unutmayın. saldırıları başarılı olursa bireysel kullanıcılara en büyük zararı verebilecek saldırganlar değil . Müşterinizin şirketi rasyonel olarak toplam hasarı önemser, ancak kullanıcılar rasyonel olarak kendilerine zarar vermeyi önemser.


4
Bu gerçekten soruyu cevaplamaya ya da onu ispatlamaya çalışmaz, ancak bu gerçekten sorulmamış bir soruna harika bir cevaptır.
maple_shaft

11
@maple_shaft: OP'nin sorması gereken soruyu yanıtlar. Sorunun XY probleminden muzdarip olduğu görülebildiğinden , bu iyi bir cevap gibi görünüyor.
sleske

8

Eşitleme yapmak için bir seçenek eşler arası yapmaktır. Bu hala merkezi bir sunucuya ihtiyaç duyacak, fakat o sunucu hiçbir veriyi işlemeyecek.

Bir cihaz çevrimiçi olduğunda, merkezi bir sunucu kullanıcı kimliği ile ilgili bir bildirim alır. Aynı kullanıcının ikinci bir cihazı çevrimiçi olduğunda, sunucu her iki cihaza diğerinin IP adreslerini gönderir. Cihazlar daha sonra doğrudan veri alışverişinde bulunabilir. Uyarı: Bir cihazın sunucu olarak çalışması gerekir, bu yüzden en az biri NAT yönlendiricisinin arkasında olamaz.

Hem bildirim mekanizması hem de eşler arası değişim için güçlü bir kimlik doğrulama ve şifreleme gereksinimi duyacağınızı unutmayın.


1
İki cihaz arasında her zaman tüm verileri ileri ve geri göndermekten kaçınmak için bir versiyonlama şeması gibi geliyor olacak ...
ebyrob 20:15

P2p değişimi, son kullanıcılara zorla gerekli kurulum gerekmediği için olmasaydı, bence uygulamanın kullanımını daha az kullanıcı dostu yapacaktır. Ardından, müşterinin uygulamayı kurarken veri güvenlik açığı ile bir miktar sıkıntı arasında seçim yapmak isteyip istemediği, verilerin ne kadar hassas olduğuna ve kullanıcıların ne kadar duyarlı olduğuna bağlı.
Andy

1
@DavidPacker, ilk sunucuyu kurduğunuzu ve bakımını yaptığınızı varsayar, ek kurulum adımları nelerdir?
ebyrob

@ böylelikle yanlış anlaşılmış olabilirim, ancak uygulama yaratıcısı tarafından sağlanan sunucunun p2p senkronizasyonu prosedüründen başka bir şey içermediğini biliyorum. Ancak verilerin bu sunucu üzerinden müşterilerin cihazlarından birinin üzerinden alınması gerekiyor - ve müşterinin kendisi veya onun verilerini erişilebilir kılması gerekiyor - bu konuştuğum kurulum.
Andy

1
@David, Philipp, hassas verilerin eşler arası değiş tokuşunu önermektedir, bu nedenle merkezi sunucuya hiçbir şey göndermez. Merkezi sunucu sadece bir arkadaşın başka bir arkadaş bulmasını kolaylaştırmak için var; sonra yoldan çekiliyor.
Erik Eidt

5

Başka birinin problemini yap.

Verileri her uygulamada yerel olarak depolayın, ardından kullanıcılara üçüncü taraf bir hizmetle (Dropbox, Google Drive, vb.) Kendi hesaplarını kullanarak senkronizasyonu etkinleştirme seçeneği verin. Ayrıca, üçüncü taraf hizmete yüklenen tüm verileri şifrelemeyi düşünün (bunu yapmanın artıları ve eksileri vardır).

Bu verir görünümünü onlar için veri senkronizasyonu opt-in beri, kullanıcılar kendi verilerini ait olduğunu. Uygulamaları paylaşmak istemeyen kişiler için faydalı kılar. Ve paylaşılan verileri güvende tutmak için devam eden baş ağrılarından başkasını sorumlu (teknik ve potansiyel olarak yasal olarak) yapar.


1

Müşterinizin endişesi bu verilerin görünürlüğü ile ilgili görünüyor. Müşterinize sormanız gereken ilk soru, verilerin şifrelenip şifrelenmediği, nerede saklanabilir? Ardından müşterinize, verilerin şifresi çözülmeden ve işlenmeden önce ne tür erişim kontrolleri yapmasını istediğini sorun - şifre çözme anahtarı nerede saklanabilir? kullanıcı başına ayrı bir anahtar nedir? vb...

Müşteriniz verilerin bir yerde saklanmasını istemiyorsa, kullanıcının her defasında elime girmesini istiyor mu?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.