Wpis użytkownika felixd w Bezpieczeństwo
felixdSum
7piorunówTakie tam, gdyby ktoś jeszcze nie wiedział. Stary news ale od jądra 5.18 rozwiązany został problem z brakiem entropii oraz blokowaniem /dev/random
/dev/random == /dev/urandom
$ cat /proc/sys/kernel/random/entropy_avail
256
No i git. Co minutę przerobię kilkadziesiąt klatek z CCTV na szum i tym zasilę entropię i będzie gites.
Bądź jak Johnny Mnemonic, tylko w tym przypadku delfin nie pomoże :grinning:
Czekam jeszcze za sprzętowym generatorem szumu, właśnie jedzie. "Wolny" (100 000 bitów / s) ale .... to jest zdecydowanie, zdecydowanie więcej niż potrzeba.
Do poczytania:
* https://lore.kernel.org/lkml/20220522214457.37108-1-Jason@zx2c4.com/T/#u
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ac2ab99072cce553c78f326ea22d72856f570d88
* https://www.theregister.com/2022/03/21/new_linux_kernel_has_improved/
* https://kernelnewbies.org/Linux_5.18#Security
Komentarze (20)
Update. Nie od 5.18 a od 5.6 /dev/random przestał być blokowany i zrównał się z /dev/urandom
Commit: https://github.com/torvalds/linux/commit/30c08efec8884fb106b8e57094baa51bb4c44e32
@felixd mmm entropia, moja ulubiona! ile razy w robocie okazywało się że po aktualizacji bezpieczeństwa apka albo wstaje godzinę albo przetwarza coś dwa dni...
@HugeMetalFan https://random.flameit.io - masz rozwiązanie dla darmowych randomowych bitów w nieograniczonej ilości 😉
Właśnie dojechał sprzętowy generator entropii który zaraz podłączę do serwisu.
Wszystko stoi na RPi. W tej chwili entropię dostarcza kamera CCTV + HWRNG wbudowany w RPi + randomowe bity kwantowe (zewnętrzny serwis, uniwerek w EU). Wszystko ładnie się miesza i jest szum :smiley:
FlameIT - Immersion Cooling - Random Bits Providing ServiceFlameitNo a po co ci to ?
@Klopsztanga Ale jaki level zabezpieczenia? Normalny właśnie, bez zbędnych problemów z tym czy na starcie seed był dobry czy nie. Na starcie pobieram 512 bajtów, wrzucam w /dev/random i wiem że mam dobry seed bez martwienia głowy 😉
A co generuję... no serwer generuje VPN'y i obsługuje ruch po HTTPS :smiley:
Generuję też czasami klucze OpenPGP.
Update: Właśnie dojechały generatory sprzętowe (2 sztuki zamówiłem). Bomba! Zaraz podłączam do RPi :smiley:
BTW, te zmiany w Kernelu robił twórca Wireguarda.
Wrzuciłem 8GB właśnie żeby wizualnie też zobaczyć jak wypadają dane z RPi. Proszę.
https://servertest.online/entropy/20230828-142930-3f30
Inne dane:
* Webcam/CCTV Random Number Generator results ~100 MB: https://servertest.online/entropy/20230825-185423-3cdd
* /dev/urandom 4GB (Linux vpn-s 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux) https://servertest.online/entropy/20230825-134528-9c3c
* macOS https://servertest.online/entropy/20230825-132329-7d78
* Quantum Device (1GB file: https://servertest.online/entropy/20230827-115443-4324
Ogarnę zaraz 8GB bitów kwantowych. Znalazłem fajne źródło o dużej przepustowości.
Entropy and Randomness Test Results - raspberrypi-random_flameit_io.binServertest@felixd dobra, teraz bangla :smiley: Wczesniej nie chcialo sie sciagac 100gb plik. Ani też 10gb
No ale nie odpowiedziales na
no właśnie tego nie rozumiem :grinning: co generujesz aby był taki level zabezpieczenia ? Jak dla mnie ten serwis się przyda w momencie pierwszego uruchomienia maszyny, by pobrać seed i go zapisać w systemie. A później wszystko inne leci z kernela.
@Klopsztanga 14 minut na przesłanie 8 GB - słabo ale działa :grinning:
2023/08/28 11:50:57 Request to provide 8388608000 bytes
2023/08/28 11:58:26 Request to provide 512 bytes
2023/08/28 11:58:26 Bytes provided: 512
2023/08/28 12:04:44 Bytes provided: 8388608000
@Klopsztanga A co do babola.
100 GB to 107374182400 bajtów a to jest 104857600 kilobajtów - no chyba że coś źle policzyłem
https://random.flameit.io/get/ - default amount of bytes (521 bytes -> 4096 bits)
https://random.flameit.io/get/?bytes=107374182400 (Maxium 100 GB = 107374182400 bytes)
If bigger value is provided, default amount of bytes is returned (512 bytes).
1 KB = 1024 bytes = 8192 bits
10 KB = 10240 bytes = 81920 bits
100 KB = 102400 bytes = 819200 bits
1 MB = 1048576 bytes = 8388608 bits
10 MB = 10485760 bytes = 83886080 bits
100 MB = 104857600 bytes = 838860800 bits
1 GB = 1073741824 bytes = 8589934592 bits
10 GB = 10737418240 bytes = 85899345920 bits
100 GB = 107374182400 bytes = 858993459200 bits
@Klopsztanga Tak z naciskiem na odzysk ciepła i jego wykorzystanie. Dogrzewamy już domy i baseny 😉
I nie olejem mineralnym/wazelinowym o porządną syntetyczną cieczą.
@felixd babola tam masz
> Maxium 100 GB = 107374182400 bytes)
A tak naprawdę to 1gb max.
> jest szybko dobry, mały seed.
no właśnie tego nie rozumiem :grinning: co generujesz aby był taki level zabezpieczenia ? Jak dla mnie ten serwis się przyda w momencie pierwszego uruchomienia maszyny, by pobrać seed i go zapisać w systemie. A później wszystko inne leci z kernela.
Btw. FlameIT -> nie rozumiem, jaki produkt tam oferujecie? Ot zalanie komputera olejem jak to kiedyś dla funu się robiło?
https://www.youtube.com/watch?v=KKYqEROazOA
KOMPUTER CHŁODZONY OLEJEM 💧💧💧 | Tek Testers i Fanboy PART 2👍 Subskrybuj moreleTV ➡️ https://morele.tv/subskrybujLink do koszyka z inspiracją ➡️ https://morele.tv/Komp-w-oleju-koszykZastosowane podzespoły:Gigabyte Ge...YouTube@Klopsztanga Chyba się nie zrozumieliśmy chociaż podałeś po części odpowiedzi.
Powstał jeden serwer, na RPim który jako źródła entropii ma:
* Wbudowany HWRNG
* Obraz z CCTV
* Jutro dojedzie jeszcze zewnętrzny, sprzętowy generator entropii (ten o którym wspomniałem w pierwszym wpisie)
* + kilka źródeł z bitami generowanymi przez efekty kwantowe
Kernel Linuxa w tej chwili całkiem przyzwoicie generuje losowe bity z randomowych rzeczy (przerwania, zegary, odczyt z dysku itd) ale czasami potrzebny jest szybko dobry, mały seed.
Et Voilà -> https://random.flameit.io
FlameIT - Immersion Cooling - Random Bits Providing ServiceFlameit@felixd
>@Klopsztanga Odpalasz 1000 identycznych VM'ów. Każdy ma identyczny seed. Każda instancja musi np wygenerować na początku parę kluczy SSH dla serwera. Wszystkie instancje generują identyczne klucze.
to wtedy jako seed korzystasz adres mac, numer seryjny urządzenia, liczysz ilość przerwań, micro-Time, ilość ticków procesora od uruchomienia, jak masz internet - możesz wygenerować seed'a online lub inne unikalne atrybuty urządzenia.
Po prostu robisz to naukowo w homelab albo też dla korpo? Bo dla małych projektów to bez sensu, stąd te pytanie.
I też nie ogarniam jak CCTV ma ci pomóc w opisanej przez ciebie sytuacji. Aby to zadziałało, to 1 serwer musi być serwisem pseudo-randomowości , bo jak wszystkie serwery analizuja w tym samym czasie ten sam obraz, to wyniki będzie taki sam jak bez cctv.
@Klopsztanga Odpalasz 1000 identycznych VM'ów. Każdy ma identyczny seed. Każda instancja musi np wygenerować na początku parę kluczy SSH dla serwera. Wszystkie instancje generują identyczne klucze.
To nie jest 'zaawansowany' seed tylko prawdziwie losowy 😉 I tak na prawdę to spokojnie wystarczy dobre 256 bitów na początku i masz spokój do końca życia. Resztę już robi CSPRNG (Cryptographically secure pseudorandom number generator). Kwestią jest po prostu mieć te 256 bit z dobrego źródła na starcie.
Problemy w przypadku braku dobrego seeda
RaspberryPi (2015 rok): https://forums.raspberrypi.com//viewtopic.php?f=66&t=126892
>Raspbian (2015-11-21-raspbian-jessie.zip SHA1: ce1654f4b0492b3bcc93b233f431539b3df2f813) doesn't enable hardware random number generator by default. This causes generation of predictable SSH host keys on the first boot.
I jeszcze ciekawsza rzecz: https://factorable.net/paper.html
DUHK (Don't Use Hard-coded Keys) is a vulnerability that affects devices using the ANSI X9.31 Random Number Generator (RNG) in conjunction with a hard-coded seed key.
https://duhkattack.com/
@felixd rozumiem idę szyfrowania, sam jestem developerem.
Ale pytanie po co, po co mieć takie zaawansowany seed ? Dlaczego zwykły ci nie starcza?
@Klopsztanga Entropia -> Losowe liczby -> security (bezpieczeństwo) -> kryptografia - CAŁY WSPÓŁCZESNY Internet
Łącząc się ze stroną https://hejto.pl połączenie jest szyfrowane [HTTPS] . Serwer musi wygenerować klucze na czas trwania połączenia (wymiany danych). I to wygenerowanie kluczy musi być bezpieczne. Do tego potrzebne są losowe bity, każdy sewer, każde urządzenie generujące coś losowego musi mieć swoje własne, losowe bity.
Cała rzecz polega na tym, że komputer nie umie w tworzenie losowych rzeczy i trzeba mu w tym pomagać.
Najlepsze wpisy - Hejto.plHejto.pl to społeczność, która dzieli się historiami, artykułami i linkami z sieci. Treść portalu tworzą jego użytkownicy.Hejto.pl@felixd To chociaż postaw lawa lampę przed kamerą
@Felonious_Gru Równie dobrze można kamerę zasłonić, promieniowanie kosmiczne i tak zrobi swoje 😉
@felixd potrzeby nie ma, ale zabawka fajna ( ͡° ͜ʖ ͡°)
@Felonious_Gru Nie ma takiej potrzeby.
100 MB entropii wygenerowane przy użyciu CCTV (Generowało się to przez 24h).
Tak to wygląda.
https://servertest.online/entropy/20230825-185423-3cdd
Entropy and Randomness Test Results - webcam-cctv-rand.binServertest