🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.security
7 messages
7 total messages Started by Piotr J. Kolanok Thu, 03 Dec 2009 09:17
iv
#64044
Author: Piotr J. Kolanok
Date: Thu, 03 Dec 2009 09:17
21 lines
1806 bytes
Jak się generuje iv z hasła?
$echo -n "0123456789abcdef" | openssl enc -aes-256-cbc -nosalt -P
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
key=0CC175B9C0F1B6A831C399E269772661CEC520EA51EA0A47E87295FA3245A605
iv =4FA92C5873672E20FB163A0BCB2BB4A4

hasło 'a'
przy 128 bitach to jest chyba md5
$echo -n 'a' | openssl md5 
0cc175b9c0f1b6a831c399e269772661

-K ale dalej?
Może jakis inny tryb uzyć? A jak wygenerować iv? Szukałem w źródłach, ale 
nie znalazłem. To jest inne dla każdego trybu?

A salt jak sie generuje? to po prostu losowe? czy jednak zależne od czasu 
albo jakas funkcja unikalna?

-- 
^^
Re: iv
#64045
Author: Bartosz Małkowski
Date: Fri, 04 Dec 2009 08:21
13 lines
1937 bytes
On 3 Gru, 10:17, "Piotr J. Kolanok" <kolano0...@m0.mx.poczta.tlen.pl>
wrote:
> Jak się generuje iv z hasła?

Na przykład tak: http://juliusdavies.ca/commons-ssl/src/java/org/apache/commons/ssl/OpenSSL.java
szukaj metody deriveKey()

> A salt jak sie generuje? to po prostu losowe? czy jednak zależne od czasu
> albo jakas funkcja unikalna?

Po prostu losowe wartości. Oczywiście możesz użyć jakiegoś hashowanego
licznika to już zależy od implementacji. Jaka jest dokładnie
implementacja w openssl - nie wiem.
Re: iv
#64046
Author: Piotr J. Kolanok
Date: Fri, 04 Dec 2009 11:34
38 lines
2781 bytes
Bartosz Ma?kowski wrote:

> On 3 Gru, 10:17, "Piotr J. Kolanok" <kolano0...@m0.mx.poczta.tlen.pl>
> wrote:
>> Jak się generuje iv z hasła?
> 
> Na przykład tak:
> http://juliusdavies.ca/commons-
ssl/src/java/org/apache/commons/ssl/OpenSSL.java
> szukaj metody deriveKey()

Bardzo dziekuje. Znalazłem funkcję EVP_BytesToKey( ale niestety nie ma opisu 
jak to jest liczone. Nie ma też nigdzie opisu jak długi jest key i iv. 
Tu kod http://code.google.com/p/przyklad-open-ssl/source/browse/trunk/trzy.c
Jesli znajdziesz tam jakąś nieścisłość ew. wiesz czy cos mozna zrobic lepiej 
prosze napisz. Wydaje mi sie, ze nie uzywam nieaktualnych wywolan od 
0.97-1.0... ale mogę się mylić. 

>> A salt jak sie generuje? to po prostu losowe? czy jednak zależne od czasu
>> albo jakas funkcja unikalna?
> 
> Po prostu losowe wartości. Oczywiście możesz użyć jakiegoś hashowanego
> licznika to już zależy od implementacji. Jaka jest dokładnie
> implementacja w openssl - nie wiem.

Moze inaczej. czy losowosc musi byc bardzo losowa. Czy musze mieć pewność, 
że nie będzie dwóch komunikatów z takim samym salt/ziarenkiem w obrębie 
jednego hasła?


Przy okazji szukałem jakiejś ksiązki na polskim rynku o kryptografii dla 
praktyków z gotowymi kodami i nie znalazlem. jest bezpieczne programowanie, 
ale czesc kodu nie dziala, czesc to tylko kawałki bez wywołań. Bardziej jak 
czesc wiekszej calości, której nie ma. 


-- 
^^
Re: iv
#64047
Author: Bartosz Małkowski
Date: Sat, 05 Dec 2009 08:24
32 lines
3129 bytes
On 4 Gru, 12:34, "Piotr J. Kolanok" <kolano0...@m0.mx.poczta.tlen.pl>
wrote:
> >> A salt jak sie generuje? to po prostu losowe? czy jednak zależne od czasu
> >> albo jakas funkcja unikalna?

Zgodnie z zasadami, przy wielokrotnym użyciu tego samego klucza
szyfrującego, należy zagwarantować unikalność IV, a przynajmniej
bardzo się postarać ;). W praktyce chyba zwykła "kryptograficzna"
losowość powinna wystarczyć. W końcu nie tak łatwo wylosować  dwa
identyczne 128 bitowe ciągi ;) Ale to już Ty musisz oszacować, biorąc
pod uwagę ilość przesyłanych komunikatów szyfrowanych tym samym
kluczem.
Tutaj salt + passphrase jest używany do wygenerowania key oraz iv:
(key, iv) = keyDerive(salt, passphrase)

Więc zasady dotyczące salta są identyczne jak w przypadku IV. Różnica
polega na tym, że w przypadku stałego passphrase i zmieniającego się
salta, zmieniać się będzie zarówno IV jak i key.

> Przy okazji szukałem jakiejś ksiązki na polskim rynku o kryptografii dla
> praktyków z gotowymi kodami i nie znalazlem. jest bezpieczne programowanie,
> ale czesc kodu nie dziala, czesc to tylko kawałki bez wywołań. Bardziej jak
> czesc wiekszej calości, której nie ma.

Jak bardzo "z gotowymi kodami"? Schneier to za mało ("Kryptografia dla
praktyków" i "Kryptografia w praktyce")?
Kryptografia to dziwna dziedzina wiedzy: algorytmy są względnie
proste, zasady logiczne i wielokrotnie opisane. Jednak złożenie tego
wszystkiego do kupy może wcale nie być łatwe a rezultat składania może
dawać złudne bezpieczeństwo.
Jak nie czujesz się "mocny w temacie" to lepiej bardzo uważaj, bo o
błąd naprawdę nietrudno.
Re: iv
#64048
Author: Piotr J. Kolanok
Date: Sat, 05 Dec 2009 12:50
46 lines
3403 bytes
Bartosz Ma?kowski wrote:

>> >> A salt jak sie generuje? to po prostu losowe? czy jednak zależne od
>> >> czasu albo jakas funkcja unikalna?
> 
> Zgodnie z zasadami

dziekuje

>> Przy okazji szukałem jakiejś ksiązki na polskim rynku o kryptografii dla
>> praktyków z gotowymi kodami i nie znalazlem. jest bezpieczne
>> programowanie, ale czesc kodu nie dziala, czesc to tylko kawałki bez
>> wywołań. Bardziej jak czesc wiekszej calości, której nie ma.
> 
> Jak bardzo "z gotowymi kodami"? Schneier to za mało ("Kryptografia dla
> praktyków" i "Kryptografia w praktyce")?

Z fragmentow dostepnych w sieci wynika, ze jest tam tylko ogolnie opisana 
metoda. Nie ma gotowych kodow. Jak zaszyfrowac, jak zakodowac np. base64 
(ktore mi nie dziala i nie wiem nawet gdzie tkwi blad) itd...

A chodzi o to by takie przykłady były na tyle proste by dało sie to prosto 
uzyc. Ot ktos ma gotowy program i szuka sposobu na dodanie szyfrowania np. 
plikow na dysku, albo w jakis sposob przeslanie hasla przez sieć.

> Kryptografia to dziwna dziedzina wiedzy: algorytmy są względnie
> proste, zasady logiczne i wielokrotnie opisane. Jednak złożenie tego
> wszystkiego do kupy może wcale nie być łatwe a rezultat składania może
> dawać złudne bezpieczeństwo.

Tu sie zgadzam, ale chce uzyc po prostu gotowej biblioteki. Nie chce łaczyc 
jakis roznych rzeczy, ani robic specyficznych spraw. Po prostu chce zrobić 
kopie tego co jest pod konsola openssl na windows z ładnym gui itp. Nic 
wiecej. A przy okazji sie czegos nauczyć.

> Jak nie czujesz się "mocny w temacie" to lepiej bardzo uważaj, bo o
> błąd naprawdę nietrudno.

No dlatego staram sie pisać jawnie licząc na to, ze jesli jest to złe to po 
prostu ktoś poprawi. Nie czuje sie dobrze w temacie choc teoretycznie cos 
tam czytalem, ale praktycznie jestem pewninie na poziomie pierwszaka  
znajacego podstawy C ;(


-- 
^^
Re: iv
#64049
Author: Stachu 'Dozzie' K.
Date: Sat, 05 Dec 2009 15:06
45 lines
3688 bytes
On 05.12.2009, Piotr J. Kolanok wrote:
>>> Przy okazji szukałem jakiejś ksiązki na polskim rynku o kryptografii dla
>>> praktyków z gotowymi kodami i nie znalazlem. jest bezpieczne
>>> programowanie, ale czesc kodu nie dziala, czesc to tylko kawałki bez
>>> wywołań. Bardziej jak czesc wiekszej calości, której nie ma.
>> 
>> Jak bardzo "z gotowymi kodami"? Schneier to za mało ("Kryptografia dla
>> praktyków" i "Kryptografia w praktyce")?
>
> Z fragmentow dostepnych w sieci wynika, ze jest tam tylko ogolnie opisana 
> metoda. Nie ma gotowych kodow. Jak zaszyfrowac, jak zakodowac np. base64 
> (ktore mi nie dziala i nie wiem nawet gdzie tkwi blad) itd...
>
> A chodzi o to by takie przykłady były na tyle proste by dało sie to prosto 
> uzyc. Ot ktos ma gotowy program i szuka sposobu na dodanie szyfrowania np. 
> plikow na dysku, albo w jakis sposob przeslanie hasla przez sieć.

Jeśli ktoś ma gotowy program i szuka sposobu na zaszyfrowanie plików na
dysku, to prawie na pewno to z**bie. Bo brak mu przygotowania
kryptograficznego i nie będzie zdawał sobie sprawy z możliwych ataków.

>> Kryptografia to dziwna dziedzina wiedzy: algorytmy są względnie
>> proste, zasady logiczne i wielokrotnie opisane. Jednak złożenie tego
>> wszystkiego do kupy może wcale nie być łatwe a rezultat składania może
>> dawać złudne bezpieczeństwo.
>
> Tu sie zgadzam, ale chce uzyc po prostu gotowej biblioteki. Nie chce łaczyc 
> jakis roznych rzeczy, ani robic specyficznych spraw.

Tylko ty właśnie chcesz to zrobić: łączyć różne rzeczy i robić
specyficzne sprawy (mimo że ktoś już dawno takie coś wykonał). Dla
ciebie klockiem nie jest szyfr, tylko cały protokół SSL/TLS albo cała
operacja szyfrowania do formatu GnuPG/OpenPGP.

> Po prostu chce zrobić 
> kopie tego co jest pod konsola openssl na windows z ładnym gui itp. Nic 
> wiecej. A przy okazji sie czegos nauczyć.

Ale ty się nic nie nauczysz w ten sposób. Co najwyżej jak używać takiej
czy owakiej biblioteki i nijak nie będziesz umiał przenieść tej wiedzy
na, przykładowo, biblioteki javowe. Dlaczego? Bo nie znasz podstaw na
których zbudowano takiego OpenSSL-a.

-- 
Stanislaw Klekot
Re: iv
#64050
Author: Bartosz Małkowski
Date: Sun, 06 Dec 2009 09:02
17 lines
2473 bytes
On 5 Gru, 16:06, "Stachu 'Dozzie' K."
<doz...@dynamit.im.pwr.wroc.pl.nospam> wrote:
> Ale ty się nic nie nauczysz w ten sposób. Co najwyżej jak używać takiej
> czy owakiej biblioteki i nijak nie będziesz umiał przenieść tej wiedzy
> na, przykładowo, biblioteki javowe. Dlaczego? Bo nie znasz podstaw na
> których zbudowano takiego OpenSSL-a.

Sprecyzuję: podstaw teoretycznych, które są częściowo zawarte w
literaturze, a częściowo w głowach specjalistów ;)
Dla przykładu: jakie będą konsekwencje powtórzenia IV dla tego samego
klucza? Jakie w trybie CBC a jakie w CTR?

Dopóki tego nie będziesz widział, lepiej używaj wysokopoziomowych
bibliotek udostępniających API do "przesłania hasła przez sieć".
A jeśli chcesz się czegoś nauczyć, to czytaj, czytaj, czytaj, czytaj i
jeszcze dwa razy: czytaj! I wtedy dopiero zamieniaj zdobytą wiedzą w
wykonywalny kod.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads