Napisał
linux_aa
RSA rozumiem, wiem jak napisac kod, jak generowac klucze i ich uzywac. Teraz musze sie nauczyc jeszcze jakiegos symetryka, mysle ze blowfish albo 3des?
Nie obraz sie ale piszesz ze konfiguracja apache + php to koszmar. Jak dla mnie jest to przyjemne i szybkie zajecie, a powiem ci ze kupe lat mimo uzywania Slackware sam kompilowalem to + inne pakiety z zrodel aby dopasowac pod siebie. Teraz gentoo w wielu sprawach mnie wyrecza Dlaczego takie podejscie bo wlasnie nie lubie gotowych pakietow ktore dosc czesto robione sa aby byly uniwersalne.
Teraz wspominasz o RSA i mowisz o jego prostocie , a masz tutaj problem bigintow o ktorym wspomnialem. Myslisz o bezpieczenstwie, a wspominasz tak samo o 3DES... Inna sprawa ze nie ma sie co uczyc tych algorytmow odnosnie blowfisha i twofisha wszystko masz opisane na stronie Schneier on Security lacznie z przykladowa implementacja w roznych jezykach.
Tak jak wspomnial TQM naucz sie stosowac dobrze i w pelni gotowych rozwiazan, bo wymyslasz sam kolo i to w dodatku bardziej przypominajace wielokat
Naprawde aby samodzielnie implementowac takie rozwiazania trzeba miec spora wiedze i duzo praktyki. Do tego nigdy nie masz pojecia na ile to jest pewne, a zdziwic mozna sie bardzo szybko jak ktos to zlamie przez bledy w implementacji.
Sam implementowalem takie roziwazania ale byl to najczesciej dodatkowe zabezpieczenie lub brak mozliwosci uzycia gotowego rozwiazania (np. soft na mikrokontrolery jednoukladowe). Do tego do tej pory mam watpliwosci co do pewnosci tych rozwiazan, ale tutaj zakladam ze jest to lepsze niz plain, zreszta w kilu implementacjach po czasie sam znalazlem bledy i niedociagniecia po glebszej analizie. Co najgorsze w chwili projektu wydawalo nam sie to super bezpieczne, a nowe spojrzenie na problem po czais pokazuje ile sie zrobilo baboli i czlowiek sam z siebie sie smieje...
Naprawde kryptografia to cholernie trudny temat i nie wiele osob to tak naprawde potrafi ogarnac, jesli myslisz ze to ogarniasz to jestes w wielkim bledzie i za malo wiesz. Proponuje czytac i czytac w tym temacie i zawsze pozostanie niedosyt.
Tak jak wspomnialem skupiasz sie na nie tych problemach co trzeba jesli chodzi o bezpieczenstwo
Co do ssl, zalozmy taki hipotetyczny scenariusz, ze ktos przez pare lat bedzie lapal pakiety wymieniane miedzy serwerem a klientami. Zbierze terabajty danych
Widzisz tutaj dochodzimi do pewnej kwestji bezpieczenstwo to nie tylko algorytmy, ale najczesciej najslabsze ogniwo czyli czlowiek. Dlatego w bezpiecznych systemach sam uzyty algorytm kryptograficzny to jedynie kropla w morzu. Inna sprawa to na serwerach podbietych do sieci publicznej na ile jest to mozliwe nie trzyma sie istotnych danych.
Dlatego mowie ze pomijasz wiele bardzo istotnych kwestji jesli chodzi o bezpieczenstwo danych... Co z tego ze masz super bezpieczna wymiane danych, jak dobiora ci sie do nich inna droga i nikt nawet nie skupi sie nad lamaniu tego co leci szyfrowane.
Potem u kogos na kompie pojawi sie kod przypominajacy cos takiego (z zycia wziety przyklad ktory lamalem):
Kod:
unsigned int ecx = (unsigned int)PA[0] ^ *Word1;
unsigned int eax = (unsigned int)SB[0x100 + ((ecx & 0x00FF0000) >> 16)];
eax += (unsigned int)SB[(ecx & 0xFF000000) >> 24];
eax ^= (unsigned int)SB[0x200 + ((ecx & 0x0000FF00) >> 8)];
eax += (unsigned int)SB[0x300 + (ecx & 0x000000FF)];
eax ^= (unsigned int)PA[1];
eax ^= *Word2;
unsigned int ebp = eax;
unsigned int ebx = (unsigned int)SB[0x100 + ((ebp & 0x00FF0000) >> 16)];
ebx += (unsigned int)SB[(ebp & 0xFF000000) >> 24];
ebx ^= (unsigned int)SB[0x200 + ((ebp & 0x0000FF00) >> 8)];
ebx += (unsigned int)SB[0x300 + (ebp & 0x000000FF)];
ebx ^= (unsigned int)PA[2];
i na tym konczy sie wlasne wymyslanie bezpieczenstwa... tak a propo to u gory to "modyfikowany" przez "specjalistow" blowfish i po co to im bylo... jak implementacja calego systemu byla do dupy. I powiem ze to jest cos co dotyczy duzej i znanej w calej polsce firmy.