Tworze pewnego rodzaju API i chcę zastosować uwierzytelnianie na podstawie klucz prywatnych/publicznych. Przewiduje w przyszłości apke na androida i chce zapewnić bezpieczną komunikacje z serwerem. Jeszcze tego nie robiłem i czytam o tym od pewnego czasu i rodzą się dla mnie pytania na które nie mogę odnaleźć jednoznacznej odpowiedzi. Pozwolę sobie zadać każde pytanie które mnie nurtuje, nawet te które wydają mi się oczywiste. Chcę być po prostu pewny. Korzystam z : http://phpseclib.sourceforge.net/rsa/intro.html
1) Gdzie gromadzić klucze ? Każdy użytkownik będzie mieć swój klucz prywatny i publiczny. Baza danych - jak zresztą gdzieś wyczytałem, jest chyba najgłupszym do tego miejscem, choć dla mnie pod względem wygody byłoby to idelane. Jesli jednak baza nie jest zła, to jaki typ kolumny byłby najlepszy ?
2) wielkość kluczy publicznych. Wiem, ze jest to uzależnione od siły tworzenia klucza prywatnego. Ale nawet dla 128 bitów klucz prywatny zajmuje aż 64 znaki ! Nie wyobrażam sobie jako użytkownik takiej apki przepisywanie na androida tak długiego ciągu. Nie da rady tego skrócić nie obniżając siły klucza?
4) jest w necie sporo przykładów gdzie klucze tworzy się z linii komend i zapisuje do pliku... ale za cholerę tego nie rozumiem. wolałbym zostać przy samym php'ie...
albo może inaczej... to może ja źle rozumuje. Jak powinna wyglądać taka szyfrowana komuunikacja ? Chcę zrobić tak: uzytkownik zakłada sobie konto na mojej stronie, po rejestracji dostaje na maila/lub w panelu swojego konta, klucz publiczny. Klucz prywatny zas zapisywany jest gdzieś na serwerze( baza? ). Uzytkownik który wysyła jakieś żadanie z apki na androida do serwera , wysyła mi zakodowaną wiadomość kluczem publicznym - np przez jakąś implementacją RSA dla javy... Odbieram wiadomość, sprawdzam kluczem prywatnym, jeśli gitara to gitara. czy jednak wygląda to zupełnie inaczej w praktyce?