Wpis z mikrobloga

#programowanie
#naukaprogramowania
#java
#javaee

Witam :) Powiedzcie mi, czy nic nie pomyliłem jeśli chodzi o budowę systemu. Poniżej znajduje się opis, i działanie:

Jest główna baza danych z którą łaczą się użytkownicy za pośrednictwem aplikacji klienckiej. Połączenie z serwerem obsługującym główną bazę danych jest zabezpieczone na dwóch poziomach. Pierwszy to REST zabezpieczony HTTPS. Drugi poziom to tunel SSH między klientem i serwerem co wymiany certyfikatów SSL/TLS.
W specyfikacji systemu użytkownik uwierzytelniając się w aplikacji, przechowuje aktualne zmiany wykonywane na głównej bazie danych. W sytuacji zerwania połączenia z główną bazą, ma możliwość pracy na lokalnej bazie przez określony czas. Gdy ten czas minie, użytkownik nie ma dostępu do lokalnej bazy, musi czekać na nawiązanie połączenia z główną bazą. Lokalna baza danych jest szyfrowana, inny użytkownik logujący się na ten samej instancji aplikacji nie może zobaczyć lokalnej bazy poprzedniego użytkownika.

Zależy mi na zabezpieczeniu, czy nic nie pomyliłem, czy nic się nie gryzie. Generalnie zabezpieczenie ma być niewidoczne dla użytkownika. Druga sprawa, to co byście polecali jeśli chodzi o stack technologiczny w Javie. Kiedyś w EE pisałem jeden projekt ale to pewien czas temu.

Z góry dzięki za sugestie i pomoc :)
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@that_ugly_dude: Klient też będzie apka w javie. Własnie chodzi o to, by cały mechanizm wymiany kluczy i certyfikatów odbywał się już w systemie, podczas łączenia się z bazą itp. No bo tak, certyfikację SSL/TLS bym robił po SSH, tylko wtedy co z kluczami/hasłami samego SSH :? Jeśli coś nie tak, to proszę o poprawienie mnie :-)
  • Odpowiedz
@mefisto_k: jak dla mnie na pewno baza główna nie powinna przyjmować jakichkolwiek write zdalnie, tj powinno stać rest api które zweryfikuje wszystko czy klient rzeczywiście może taki write wykonać czy nie i co chce tam wpisać itp itd
  • Odpowiedz