•  

    Od jakiegoś czasu krąży mi po głowie jeden pomysł na fajny system informatyczny, a ma to związek z tymi wyszystkimi wyciekami danych typu morele i inne. Otóż chciałem stworzyć menadżer haseł, który będzie łatwy w obsłudze, a jednocześnie bezpieczny i open source. Zaraz wyskoczą ludzie związani z IT i powiedzą ,,Przecież masz KeePass i on jest najlepszy!'' i pewnie będą mieli racje, ale nie do końca. Z KeePass ja osobiście mam dwa problemy, po pierwsze przechowywanie bazy w chmurze jest dość upierdliwe, a poza tym obsługa go na telefonie jest niezbyt wygodna. Dla kogoś kto może przeklikać się przez kilka okien to nie problem, ale wytłumaczcie swoim rodzicom/wujkom/ciociom/teściom, aby korzystały z KeePass... Powodzenia! Ich nawet nie przekona mówienie o zagrożeniu, bo powiedzą "Co ja tam mam za dane?". Pomyślałem, aby stworzyć menadżer haseł oparty na aplikacji internetowej napisanej w Angularze (frontend), a backend w .Net Core, a dodatkowo uprościć proces uruchamiania serwera do minimum poprzez użycie Docker Compose. Dosłownie uruchomienie zajeło by 2-3 komendy w kosoli, które mogła by zrobić jedna ogarnięta osoba w rodzinie/firmie, a reszta mogłaby po prostu korzystać. Przewagą nad innymi systemami/aplikacjami tego typu była by prostota użytkowania przy jednoczesny zachowaniu bezpieczeństwa, czyli ładne, że chce się tego używać, a i na tyle proste, że to nie jest poświęcenie. Zarzucam tylko taki pomysł, gdyby był na tyle duży odzew, że warto coś takiego zrobić to chętnie rozpoczął bym development i dzielił się jego postępami na wykop, a kod udostępniał na github. Pewnie nikogo to nie zainteresuje i ten wpis zniknie w odmętach hejtu na uchodźców i wpisów o Kladiuszu, ale może się sam zaskocze i ktoś byłby zainteresowany takim menadżerem haseł, który byłby konsultuowany z mireczkami i mirabelkami.

    #security #bezpieczenstwo #it #programowanie #keepass #informatyka

    •  
      Potrzebuje_porad_kilku

      +1

      Komentarz usunięty przez autora

      +: dami423
    •  

      @bilek993: to nie ma sensu niestety

      +: dami423
    •  

      Przecież masz KeePass

      @bilek993: bo masz.

      Dosłownie uruchomienie zajeło by 2-3 komendy w kosoli

      @bilek993: jeśli ma to być apka sieciowa, to jak wyobrażasz sobie komunikację z nią? Po HTTPS? To powiedz mi jak 1-2 komendami masz zamiar rozwiązać rejestrację i konfigurację certyfikatu SSL. Nawet darmowy Lets Encrypt wymagana konfiguracji.

      uprościć proces uruchamiania serwera do minimum poprzez użycie Docker Compose

      @bilek993: czyli musisz mieć serwer (VPS-a) z Linuxem na którym to postawisz. Zainstalować Dockera, Docker-Compose, wgrać przez scp plik z docker-compose i dopiero wystartować.

      backend w .Net Core

      @bilek993: powierzyć wszystkie swoje hasła technologiom Microsoftu xD
      Słabo widzę projekt open source (i to związany z bezpieczeństwem) w tej technologii. Już lepiej Java albo Python.

    •  

      swoim rodzicom/wujkom/ciociom/teściom

      @bilek993: zapamiętywanie haseł w Google Chrome?

    •  

      to nie ma sensu niestety

      @Atariauke: jakiś sens ma. Taki KeePass tylko w wersji aplikacji webowej zamiast desktopowej.

      @bilek993: z drugiej strony aplikacja desktopowa umożliwia fajną integrację z systemem np. automatyczne wklejanie, skróty itd. W webowej musiałbyś zawsze wszystko ręcznie kopiować. Bardzo słabe.

      Z KeePass ja osobiście mam dwa problemy, po pierwsze przechowywanie bazy w chmurze jest dość upierdliwe

      @bilek993: jeśli naprawdę chcesz zrobić cos dobrego, to udziel się w projekcie KeePassa. Jest już open source. Zrób tak, żeby dało się łatwo zapisywać/wczytywać hasła z chmury (bez trudnego przeklikiwania) - tak jakbyś to zrobił w swojej apce.

      Wiem, że to trudniejsze pisać a aplikacji legacy w C++ niż nową w C#. Ale nikt nie mówił, że zrobienie wartościowych i solidnych rzeczy jest łatwe.

      Jeśli jesteś w stanie to zrobić, to masz mój miecz. A jeśli nie, to byś może nie jesteś odpowiednią osobą do tego.

    •  

      @Potrzebuje_porad_kilku: Szczrze mówiąc nie, ale teraz poszukałem i faktycznie spoko wygląda, ale po pierwsze jest płatne, a po drugie z tego co widzę nie ma wersji przeglądarkowej, a ja właśnie w to chciałem celować.

      @Atariauke: Dlaczego nie ma sensu? Chętnie to przedyskutuje.

    •  

      Komentarz usunięty przez autora

    •  

      @bilek993: jeśli ma to być apka sieciowa, to jak wyobrażasz sobie komunikację z nią? Po HTTPS? To powiedz mi jak 1-2 komendami masz zamiar rozwiązać rejestrację i konfigurację certyfikatu SSL. Nawet darmowy Lets Encrypt wymagana konfiguracji.

      @mk321: Dużo tłumaczenia, ale to możliwe. Ogólnie nie wchodzą zbyt głęboko w szczegóły, bo można by o tym godzinę pisać. Można stworzyć kontener dockerowy, który będzie się tym zajmował, a mianowicie będzie robił odnawianie certyfikatu Let's Encrypt co jakiś czas. Tak więc 2-3 komendy: instalacja dockera i jego narzędzi, zrobić git pulla i repo, docker-compose build, docker-compose start.

      Powierzyć wszystkie swoje hasła technologiom Microsoftu xD
      Słabo widzę projekt open source (i to związany z bezpieczeństwem) w tej technologii. Już lepiej Java albo Python.

      @mk321: Ogólnie nie backend by tylko przechowywał dane, czyli właśnie ten .net core. Nawet gdyby ten Microsoft jak mówisz chciał ukraść Twoje dane to spoko, bo i tak by były zaszyfrowane na serwerze. Całe szyforwanie-deszyfrowanie odbywało by się po stronie klienta (przeglądarki) i nigdy nie opuszczało by danych w postaci wrażliwej Twojego komputera, więc byłoby utra bezpiecznie bez względu na to kto ma dostęp do backendu. A i zapomniałem, ale .net core jest open source.

    •  

      zapamiętywanie haseł w Google Chrome?

      @mk321: Równie dobrze można trzymać w notatniku na pulpicie. Z tego co pamiętam Chrome przechowywał to w Plain Text kiedyś. Może coś się zmieniło, ale wątpię.

    •  

      z drugiej strony aplikacja desktopowa umożliwia fajną integrację z systemem np. automatyczne wklejanie, skróty itd. W webowej musiałbyś zawsze wszystko ręcznie kopiować. Bardzo słabe.

      @mk321: I tak i nie. Aplikacja webowa mogłaby też mieć zrobiony w technologii webowej widget do Chrome i Angulara, który byłby łatwy do utrzymania i jedno kliknięcie uzupełniało by dane w przeglądarce.

      jeśli naprawdę chcesz zrobić cos dobrego, to udziel się w projekcie KeePassa. Jest już open source. Zrób tak, żeby dało się łatwo zapisywać/wczytywać hasła z chmury (bez trudnego przeklikiwania) - tak jakbyś to zrobił w swojej apce. Wiem, że to trudniejsze pisać a aplikacji legacy w C++ niż nową w C#. Ale nikt nie mówił, że zrobienie wartościowych i solidnych rzeczy jest łatwe. Jeśli jesteś w stanie to zrobić, to masz mój miecz. A jeśli nie, to byś może nie jesteś odpowiednią osobą do tego.

      @mk321: Mogę i nie mogę. Z tego co pamiętam, a mogę się mylić (kiedyś coś robiłem chyba z jego kodem), a więc proszę jeżeli się pomylę mnie nie zlinczować, to KeePass 2 jest napisany w niczym inny jak w C#. Więc... no ( ͡º ͜ʖ͡º). Na pewno jego spora część odpowiedzialna za UI jest napisana w C#, a więc mógłbym pomagać w jego rozwoju, ale ja chciałbym obrać zupełnie inny kierunek, czyli webowy. Myślałem, aby zrobić webową jego wersje, a dokładnie możliwość pracy na plikach kdbx zamiast na bazie danych lub dodać możliwość importu-exportu tychże plików z mojego systemu. Tutaj kwestia jest otwarta i cieszę się z tego komentarza, bo jest bardzo wartościowy i cenny.

      +: mk321
    •  

      @interface: I tak i nie. Osoba techniczna mogłaby hostować to samemu dla X innych osób, gdzie X to może być i cała rodzna, a reszta pewnie nie widziała by tego jak to nawet ta osoba postawiła. Po prostu reszta by klikała w kolorowe przyciski i korzystała i tyle. Tak więc grupa odbiorców mogłaby być duża, bo menadżery haseł są potrzebne, ale albo są płatne, albo trudne w obsłudze.

    •  

      @mk321: Sprawdziłem kod źródłowy i całość jest napisana w C#, a więc argument o Microsoft jest trochę nie na miejscu, bo sam KeePass go używa, a więc na to samo wychodzi, a nawet powiem więcej, że lepiej, że tak jest, bo łatwo ten kod analizować, chociaż C++ też byłby spoko w analizie to czasem projekty na prawde stare w C++ są po prostu irytujące w analizie, bo ich kod nie był pisany wg. żadnych zasad, ani wzorców, a o testach nie wspominając nawet.

    •  

      @bilek993: jest juz cos takiego i nazywa sie BITWARDEN uzywam i polecam

    •  

      @villager: @Sadaharu: Faktycznie, a więc wychodzi na to, że wyszystko już zostało napisane i jedyne co warto pisać to CRUD.

    •  

      Chciałem jeszcze się przygotować, że mój serwis byłby lepszy, bo by działa tak i tak, ale w sumie... nie byłby. Dlaczego? Ten Bitwarden używa PBKDF2 SHA-256 do hasowania, a AES do szyfrowania i co tu można powiedzieć... no idealnie. Świetny sposób i sam bym prawdpodobonie wybrał te algorytmy, bo są to w sumie takie standardy w kryptografii. Miałem powiedzieć, że byłoby OTP, ale ten Bitwarden z tego co widzę też by to miał. Ogólnie ten Bitwarden pod względem technologii, kodu oraz wszystkiego jest po prostu bardzo dobry. Jedyne czym mógłbym konkurować to lepsze User Experience (łatwiejsza obsługa, mikrointeracje, itp.) oraz lepszy User Interface, który by po prostu był bardzo ładny i przyciągał ludzi. Pytanie tylko brzmi, czy ktośby z tego korzystał, jeżeli jedyny co by miało lepsze to UI oraz UX? To jest ważne pytanie (╯︵╰,)

    •  

      @bilek993: proponuje żebyś się zaangażował w projekt bitwardena żeby poprawić niedoróbki :) jest ich trochę które wkurzają

    •  

      Z tego co pamiętam, a mogę się mylić (kiedyś coś robiłem chyba z jego kodem), a więc proszę jeżeli się pomylę mnie nie zlinczować, to KeePass 2 jest napisany w niczym inny jak w C#. Więc... no ( ͡º ͜ʖ͡º). Na pewno jego spora część odpowiedzialna za UI jest napisana w C#, a więc mógłbym pomagać w jego rozwoju

      @bilek993: oryginalny KeePass może i tak. Ale ten nowszy i multiplatformowy KeePassX, którego chyba większość używa jest w C++.
      http://www.keepassx.org/downloads
      http://github.com/keepassx/keepassx

      Nie wiem jak z synchronizacją pomiędzy projektami (tzn. jak w oryginalnym KeePassie w C#) jest coś dopisane to czy ktoś przepisuje to do KeePassaX i odwrotnie (wydaje mi się, że w drugą stronę raczej rzadko).

      W ogóle to do tego KeePassa, to nawet nie widzę oficjalnego repozytorium z kodem (na Githubie są tylko jakieś nieoficjalne mirrory), więc chyba są średnio otwarci na społeczność open source.

      źródło: i.imgur.com

    •  

      Osoba techniczna mogłaby hostować to samemu dla X innych osób, gdzie X to może być i cała rodzna, a reszta pewnie nie widziała by tego jak to nawet ta osoba postawiła.

      @bilek993: nie każdy ma w rodzinie devopsa ;)
      Zresztą hasłami nie dzielimy się zazwyczaj z rodziną i partnerami, więc nie wiem czy bym chciał trzymać swoje hasła na serwerze jakiegoś wujka lub kuzyna. Pozostaje jeszcze kwestia technicznego bezpieczeństwa takich serwerów. Bardziej ufam w tej sprawie Amazonowi lub Googlowi niż nawet sobie. Oni szybciej łatają niż ja.

    •  

      @bilek993: za dużo takich usług, w Chrome nawet masz wbudowany generator bezpiecznych haseł, co jest wygodne dla zwykłych użytkowników - reszty rodziny

    •  

      @mk321: Może i tak, ale wiesz ile się odmian tych Keepassów na mnożyło? Moim zdaniem multum i to trochę jak z moim podeśjciem. Każdy ma trochę inne podejście do tego samego tematu i wiesz co? Moim zdaniem to się sprawdza, gdyby nie to, to ciągle używalibyśmy tego samego Keepassa, a tak to mamy kilkanaście jego odmian. Ma to wady i zalety. Tym bardziej utwierdziło mnie to w przykonaniu, że warto napisać takie narzędzie, a nuż ktoś się trafi kto skorzysta z niego. Jak się nie trafi to szkoda, ja przynajmniej ciekawie spędze czas i napiszę sobie jakiś fajny serwis, a taki Side-Project to zawsze plus w CV.

      @mk321: Co do dzielenia się hasłami to masz rację, ale to narzędzie nie przesyłałoby na serwer nigdy hasła, ani innych wrażliwych danych. Wykradnięcie danych z serwera przez kogokolwiek nie powodowało by zbyt dużego zagrożenia. Jedyny co by miało znaczenie, to czy Twój komputer nie jest skompromitowany (po angielsku brzmi to słowo lepiej).

      @Atariauke: Może i tak, ale jak już napisałem w tym moim komentarzu trochę wcześniej: Nawet jeżeli nikt z tego nie będzie korzystał to i tak będzie super, bo uda mi się pogłębić moją wiedze z wielu technologii co dla mnie będzie osiągnięciem. Natomiast, jeżeli trafi się ktoś komu to pomoże to byłoby na prawdę super, ale będę to traktował raczej jako Side-Project.