Takie 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

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:


#bezpieczenstwo #linux #entropia #losowosc #komputery
Felonious_Gru

@felixd To chociaż postaw lawa lampę przed kamerą

felixd

@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

Felonious_Gru

@felixd potrzeby nie ma, ale zabawka fajna ( ͡° ͜ʖ ͡°)

felixd

@Felonious_Gru Równie dobrze można kamerę zasłonić, promieniowanie kosmiczne i tak zrobi swoje

felixd

@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ć.

Klopsztanga

@felixd rozumiem idę szyfrowania, sam jestem developerem.


Ale pytanie po co, po co mieć takie zaawansowany seed ? Dlaczego zwykły ci nie starcza?

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 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/

Klopsztanga

@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.

felixd

@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

Klopsztanga

@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 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

felixd

@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

@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

felixd

@Klopsztanga 14 minut na przesłanie 8 GB - słabo ale działa


2023/08/28 1157 Request to provide 8388608000 bytes

2023/08/28 1126 Request to provide 512 bytes

2023/08/28 1126 Bytes provided: 512

2023/08/28 1244 Bytes provided: 8388608000

Klopsztanga

@felixd dobra, teraz bangla Wczesniej nie chcialo sie sciagac 100gb plik. Ani też 10gb


No ale nie odpowiedziales na


no właśnie tego nie rozumiem  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.

32fab5fe-483e-443d-bff2-583ec1a5646e
535ba28f-a112-4402-ac0d-b395c9cfa1cf
felixd

@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

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


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 0722 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.

HugeMetalFan

@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...

felixd

@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

Zaloguj się aby komentować