-
Data: 2016-03-29 22:32:12
Temat: Re: SSL - ktoś będzie tak miły i przełoży na chłopski rozum?
Od: janek z pola <a...@e...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Piotr Gałka wrote:
> Zażarta dyskusja pod tematem "Ciekawe orzeczenie - bank ma oddać kasę" o
> bezpieczeństwie transakcji skłoniła mnie do zapytania o prawdopodobnie coś
> podstawowego.
> Przyznam, że liczę na odpowiedź od Sebastiana.
>
> Chciałbym ogarnąć ogólnie SSL. Jak szukam to są opisy albo za proste - nie
> dające mi odpowiedzi na moje wątpliwości, albo tak zawikłane, że
> odstraszają od próby przebrnięcia (przy notorycznym braku czasu na to).
>
> Ja to rozumiem tak. Chcę (mój komputer chce) ustanowić sesję z bankiem.
OK.
> Bank przysyła certyfikat który zawiera: Dane banku i jego klucz publiczny,
> wszystko podpisane kluczem prywatnym przez jakąś organizację. Zawiera
> jeszcze coś istotnego?
Teraz ogólnie się spotyka często łańcuch certyfikatów - tzn. masz certyfikat
danego serwera (jego klucz publiczny) oraz klucze publiczne centrów
certfikacji, które podpisały ten klucz publiczny.
Możesz sobie taki program openssl pobrać i czarnym okienku zrobić polecenie:
openssl s_client -connect mbank.pl:443
Dostaniesz tenże łańcuch:
Certificate chain
0 s:/1.3.6.1.4.1.311.60.2.1.3=PL/businessCategory=Priv
ate
Organization/serialNumber=0000025237/C=PL/postalCode
=00-950/ST=mazowieckie/L=Warszawa/street=Senatorska
18/O=mBank S.A./OU=mBank/CN=www.mbank.pl
i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec
Class 3 EV SSL CA - G3
1 s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec
Class 3 EV SSL CA - G3
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign,
Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary
Certification Authority - G5
W outpucie będziesz miał też certyfikat tego serwera - zapisz sobie do
jakiegoś pliku - np. ja sobie zapisałem do mbank.crt, potem takie polecenie:
openssl x509 -in mbank.crt -noout -text
Tam dostaniesz pełne dane certyfikatu:
* CN - na jaką domenę jest ważny - oraz ogólnie nazwa tego certyfikatu
* SAN - na jakie ewentualnie dodatkowe domeny jest ważny
* Serial - numer seryjny certyfikatu w ramach danego klucza podpisującego
* Issuer - kto podpisał - to jest ciąg znaków - nazwa klucza podpisującego
* Validity - nie ważny przed data, nie ważny po dacie (dwie daty)
* skrót klucza podpisującego - wiadomo kilka klucze może mieć tą samą nazwę
* Public-Key - klucz publiczny będący esencją tego certyfikatu
* Signature - podpis klucza podpisującego - czyli to, co uwiarygadnia cert
* dodatkowo info o adresie listy odwołanych certyfikatów i ew. inne dane
> Chcę zweryfikować podpis - potrzebuję klucza publicznego tej organizacji.
Ogólnie tak :D
> Dostaje od niej certyfikat, który zawiera jej dane i jej klucz publiczny,
> wszystko podpisane przez kogoś innego jego kluczem prywatnym.
> Aby to zweryfikować potrzebuję klucza publicznego tego kogoś innego. itd.
Dostajesz w zasadzie taką samą strukturę jak powyżej, tylko że jako CN nie
jest podana już domena banku, tylko w cercie podpisującym cert banku jako CN
jest podane to, co w cercie banku jest podane w polu "Issuer". Dodatkowo
odcisk klucz publicznego (skrót) musi być taki sam - czyli to co w cercie
banku jest podane jako "skrót klucza podpisującego" to w cercie podpisującym
musi być rzeczywiście skrótem jego klucza publicznego.
>
> Kiedy i jak ten proces się kończy?
Idziesz tą "drabinką" tak wysoko aż trafisz na taki certyfikat (dokładnie o
takiej samej strukturze jak powyżej), któremu bezwarunkowo ufasz. Tak jak
ktoś już tutaj napisał, te certy - znane jako RootCA - są zwykle zaszyte w
sofcie komputera.
Z tym są związane różne śmieszne historie: np. Lenovo dodawało do wszystkich
sprzedawanych kompów jakieś swoje RootCA jako zaufane i serwowało reklamy po
https w przeglądarce, deszyfrując pod spodem ruch https. Czyli po naszemu:
robiło dokładnie to, co by robił złodziej bankowy, tylko że oni wstrzykiwali
tam reklamy. Złodziej by wstrzykiwał jakiś komunikat typu "teraz podaj nam
numer telefonu".
Jak trafisz na zaufany cert w tym łańcuszku, to po pierwsze zwykle to będzie
RootCA jakiegoś centrum certyfikacji, a po drugie to będzie jednocześnie
prawie koniec drogi. Dodatkowo jest sprawdzana lista odwołanych certów -
czyli CRL (trudno jasno ocenić czy nie można się pod to podszyć). Natomiast
współczesne przeglądarki mają w sobie zaszyte skróty kluczy publicznych tych
najbardziej popularnych witryn. Czyli nawet jak ktoś wstrzyknie Tobie trefne
RootCA, to i tak przeglądarka się powinna zorientować w przypadku niektórych
stron, że jest coś nie tak.
Dodam tylko, że RootCA zwykle jest podpisane samo przez siebie, ale w sumie
te czasy już minęły. Teraz jest tak, że RootCA jakie masz w systemie podane
to jest tak naprawdę jakiś certyfikat podpisany jeszcze przez jakiś inny
cert w danej firmie wystawcy - tzn. taki np. GeoTrust ma jakiś swój główny
klucz prywatny, podpisuje tym swoje CA i odciski tego CA przesyła do firm,
które produkują soft, żeby wrzuciły do przeglądarek.
>
> Opis na Wiki "Zasada działania SSL" jest tak napisany, jakby problem
> weryfikacji dostarczonego klucza publicznego nie istniał.
> Czego nie wiem?
Któremuś kluczowi publicznemu ufasz - tzn. w zasadzie któremuś certyfikatowi
ufasz.
>
> Jak już załóżmy mam klucz publiczny banku i wiem, że nie jest to jakaś
> podróba to dalej z opisu na Wiki wynika, że do ustalenia klucza sesji
> brane są dwie liczby losowe przesłane wcześniej przez mój komputer i
> serwer banku oraz jakiś ustalony przez mój komputer klucz, który jest
> podpisywany kluczem publicznym banku i wysyłany do banku.
Tak.
> Wcześniej przesłane liczby losowe - a więc jawne (bo przed ustaleniem
> sesji). Czyli jedyną tajną rzeczą na tym etapie jest ten wylosowany przez
> komputer klucz.
Kluczem sesji jest sekretna liczba. Powiedzmy wartość. Taka, żeby było ją
trudno odgadnąć. Jak już wiesz, że ufasz danemu certowi, to wyciągasz z
niego klucz publiczny i tą sekretną liczbę szyfrujesz tym kluczem. Serwer
banku sobie odszyfrowuje i od tego momentu macie współdzieloną sekretną
liczbę. Ona jest używana do symetrycznego szyfrowania (czyli szyfrowanie
oraz deszyfrowanie za pomocą tego samego klucza)
> Wiadomo, że generator jest wystarczająco dobry?
Nie wiadomo :D
> P.G.
--
Wysłane z pola.
Następne wpisy z tego wątku
- 29.03.16 22:55 witek
- 29.03.16 23:25 J.F.
- 30.03.16 00:20 Marek
- 30.03.16 00:23 Marek
- 30.03.16 01:09 J.F.
- 30.03.16 01:14 J.F.
- 30.03.16 09:45 Marek
- 30.03.16 09:46 Marek
- 30.03.16 10:32 J.F.
- 30.03.16 10:43 Piotr Gałka
- 30.03.16 10:49 Piotr Gałka
- 30.03.16 11:25 Marek
- 30.03.16 14:59 witek
- 30.03.16 15:04 witek
- 30.03.16 16:08 Marek
Najnowsze wątki z tej grupy
- w Polsce jest kryzys
- mBank mKsiegowosc
- gotówkowe zjeby
- Mamy WZROST! O 50% wzrosła ilość kredytów gotówkowych
- Jutro to dziś...
- leć gołombeczku
- PUE ZUS -- administracyjna nuda...
- Prawdziwy/fałszywy bank
- Velo dał mi bezpłatny debet...
- Karta MasterCard z ALIOR za granicą.
- Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- Re: Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- Re: Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- zloto
- Velo częściowo ugiął się...
Najnowsze wątki
- 2024-11-13 w Polsce jest kryzys
- 2024-11-12 mBank mKsiegowosc
- 2024-11-06 gotówkowe zjeby
- 2024-11-01 Mamy WZROST! O 50% wzrosła ilość kredytów gotówkowych
- 2024-11-01 Jutro to dziś...
- 2024-10-22 leć gołombeczku
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-15 Prawdziwy/fałszywy bank
- 2024-10-13 Velo dał mi bezpłatny debet...
- 2024-10-07 Karta MasterCard z ALIOR za granicą.
- 2024-10-05 Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- 2024-10-05 Re: Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- 2024-10-05 Re: Z cyklu oszuści w akcji. ja się nie złapię ale może komuś pomoże
- 2024-10-03 zloto
- 2024-09-23 Velo częściowo ugiął się...