![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Klucze generuje użytkownik na swojej maszynie np. APK na andka lub na PC.
Zakłada sobie konto w Twoim serwisie dodając swój klucz publiczny. Na mejla dostaje Twój klucz publiczny... Zapisujesz sobie w postaci plików nazwanych jakimś hashem mp. sha1 lub coś w ten deseń. Nawet UUID wystarczy. W bazie trzymasz tylko powiązanie plik-user. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
Cytat Klucze generuje użytkownik na swojej maszynie np. APK na andka lub na PC. Zakłada sobie konto w Twoim serwisie dodając swój klucz publiczny. Na mejla dostaje Twój klucz publiczny... Nie czaje... i jak wygląda wtedy taka komunikacja ? skoro to użytkownik generuje sobie klucze , to jak serwer ma odszyfrować wiadomość ? Być może jest to prostrze niż myśle, ale chyba za szybko to napisałeś ; ) Cytat Zapisujesz sobie w postaci plików nazwanych jakimś hashem mp. sha1 lub coś w ten deseń. Nawet UUID wystarczy. W bazie trzymasz tylko powiązanie plik-user. to jest dla mnie jasne ale w połączeniu z tym co napisałeś wcześniej coś mi nie gra... Cały czas wydaje mi się ze istotą szyfrowania RSA jest wygenerowanie 2 kluczy, publicznego i prywatnego, z czego prywatny zostaje na serwerze i nikt nie ma do niego dostępu, a publiczny wędruje dla użytkownika - a wszystko to odbywa się na serwerze docelowym. dlatego nie rozumiem jak użytkownik może generować te klucze na zewnętrznej aplikacji? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
No to dam akademicki przykład
Alicja i Bob chcą sobie przesyłać wiadomości szyfrowane. Aby tego dokonać muszą wpierw wykonać kilka czynności: 1. Alicja i Bob generują u siebie klucze (pub i priv) 2. Wymieniają się kluczami pub. Alicja wysyła wiadomość szyfrowaną kluczem pub Boba. Ten dostaje wiadomość i rozszyfrowuje ją swoim kluczem priv W drugą stroną tak samo. Edited. Poprawiłem bo lekką głupotę napisałem ad. szyfrowania (IMG:style_emoticons/default/smile.gif) Ten post edytował Pyton_000 17.02.2014, 13:55:30 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
W dużym skrócie klucz publiczny służy do szyfrowania wiadomości i jak nazwa mówi jest on publiczny ( czyli lepiej, aby nikt go nie poznał, ale wielkiej tragedii nie ma jak wycieknie). Klucz prywatny należy do tego który wygenerował ten klucz. Ani użytkownik nie będzie znał Twojego klucza prywatnego, ani Ty jego. Swoje wiadomości szyfrujesz jego publicznym i on je deszyfruje swoim kluczem prywatnym i analogicznie w drugą stronę.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ghost publiczny właśnie udostępnia sie wszędzie. Nic ci po pubblicznym kluczu jak nie masz prywatnego. Nawet jak zaszyfrujesz wiadomość czyimś publicznym to i tak tylko osoba mająca doń prywatny klucz odczyta wiadomosc (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
super : ) już wszystko rozumiem : ) Jeszcze tylko jedno... co z tą długością klucza publicznego ? jest na to jakiś sposób?
EDIT: dla 128 bitowego szyfrowania -----BEGIN RSA PRIVATE KEY----- MGMCAQACEQDWuOOFZ1u3BmYZuO9aKYOXAgMBAAECEA+eKW0McbHUAwnhpgDe2ukC CQDv51+E8Q2mnwIJAOUg/iIfmFgJAgh93KaJaaoewwIJAMYP1f4TR7JZAgkAg27c ng9pfzU= -----END RSA PRIVATE KEY -----BEGIN PUBLIC KEY----- MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAKLGOmJyyaqxpeSGbhsfUSUCAwEAAQ== -----END PUBLIC KEY----- nie wspominajac ze raczej nikt nie używa szyfrowania ponizej 512 bitów (ba daje sie zazwyczaj 2k - 4k), to nie wyobrażam sobie abym miał przepisywać TAKI klucz publiczny do androida, czy może jednak tak musi być ? ;/ Ten post edytował gitbejbe 17.02.2014, 14:52:07 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Możesz ładować plik, w którym będzie podany klucz (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ghost publiczny właśnie udostępnia sie wszędzie. Nic ci po pubblicznym kluczu jak nie masz prywatnego. Nawet jak zaszyfrujesz wiadomość czyimś publicznym to i tak tylko osoba mająca doń prywatny klucz odczyta wiadomosc (IMG:style_emoticons/default/smile.gif) Nigdzie nie napisałem, że mając klucz publiczny możesz odczytać wiadomość. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A ja nigdzie nie negowałem Twojej wypowiedzi (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jak już o tym mowa to to co chcesz uzyskać to przecież SSL http://muflon.photosite.pl/doc/progzesp/ssl.html Mieszacie koledze w głowie ...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:40 |