SSL
| Ýòà ñòàòüÿ äîëæíà áûòü ïîëíîñòüþ ïåðåïèñàíà.
Íà ñòðàíèöå îáñóæäåíèÿ ìîãóò áûòü ïîÿñíåíèÿ.
|
SSL (àíãë. Secure Sockets Layer â óðîâåíü çàùèù¸ííûõ ñîêåòîâ) â êðèïòîãðàôè÷åñêèé ïðîòîêîë, êîòîðûé îáåñïå÷èâàåò óñòàíîâëåíèå áåçîïàñíîãî ñîåäèíåíèÿ ìåæäó êëèåíòîì è ñåðâåðîì. SSL èçíà÷àëüíî ðàçðàáîòàí êîìïàíèåé Netscape Communications. Âïîñëåäñòâèè íà îñíîâàíèè ïðîòîêîëà SSL 3.0 áûë ðàçðàáîòàí è ïðèíÿò ñòàíäàðò RFC, ïîëó÷èâøèé èìÿ TLS.
Ïðîòîêîë îáåñïå÷èâàåò êîíôèäåíöèàëüíîñòü îáìåíà äàííûìè ìåæäó êëèåíòîì è ñåðâåðîì, èñïîëüçóþùèìè TCP/IP, ïðè÷¸ì äëÿ øèôðîâàíèÿ èñïîëüçóåòñÿ àñèììåòðè÷íûé àëãîðèòì ñ îòêðûòûì êëþ÷îì. Ïðè øèôðîâàíèè ñ îòêðûòûì êëþ÷îì èñïîëüçóþòñÿ äâà êëþ÷à, ïðè÷åì ëþáîé èç íèõ ìîæåò èñïîëüçîâàòüñÿ äëÿ øèôðîâàíèÿ ñîîáùåíèÿ. Òåì ñàìûì, åñëè èñïîëüçóåòñÿ îäèí êëþ÷ äëÿ øèôðîâàíèÿ, òî ñîîòâåòñòâåííî äëÿ ðàñøèôðîâêè íóæíî èñïîëüçîâàòü äðóãîé êëþ÷.  òàêîé ñèòóàöèè ìîæíî ïîëó÷àòü çàùèù¸ííûå ñîîáùåíèÿ, ïóáëèêóÿ îòêðûòûé êëþ÷, è õðàíÿ â òàéíå ñåêðåòíûé êëþ÷.
Ñîäåðæàíèå |
[ïðàâèòü] Îïèñàíèå
Ïðîòîêîë SSL ñîñòîèò èç äâóõ ïîäïðîòîêîëîâ: ïðîòîêîë SSL çàïèñè è ðóêîïîæàòèÿ. Ïðîòîêîë SSL çàïèñè îïðåäåëÿåò ôîðìàò, èñïîëüçóåìûé äëÿ ïåðåäà÷è äàííûõ. Ïðîòîêîë SSL âêëþ÷àåò ðóêîïîæàòèå ñ èñïîëüçîâàíèåì ïðîòîêîëà SSL çàïèñè äëÿ îáìåíà ñåðèÿìè ñîîáùåíèé ìåæäó ñåðâåðîì è êëèåíòîì âî âðåìÿ óñòàíîâëåíèÿ ïåðâîãî ñîåäèíåíèÿ. Äëÿ ðàáîòû SSL òðåáóåòñÿ, ÷òîáû íà ñåðâåðå èìåëñÿ SSL-ñåðòèôèêàò.
SSL ïðåäîñòàâëÿåò êàíàë, èìåþùèé 3 îñíîâíûõ ñâîéñòâà:
- Àóòåíòèôèêàöèÿ. Ñåðâåð âñåãäà àóòåíòèôèöèðóåòñÿ, â òî âðåìÿ êàê êëèåíò àóòåíòèôèöèðóåòñÿ â çàâèñèìîñòè îò àëãîðèòìà.
- Öåëîñòíîñòü. Îáìåí ñîîáùåíèÿìè âêëþ÷àåò â ñåáÿ ïðîâåðêó öåëîñòíîñòè.
- ×àñòíîñòü êàíàëà. Øèôðîâàíèå èñïîëüçóåòñÿ ïîñëå óñòàíîâëåíèÿ ñîåäèíåíèÿ è èñïîëüçóåòñÿ äëÿ âñåõ ïîñëåäóþùèõ ñîîáùåíèé.
 ïðîòîêîëå SSL âñå äàííûå ïåðåäàþòñÿ â âèäå çàïèñåé-îáúåêòîâ, ñîñòîÿùèõ èç çàãîëîâêà è ïåðåäàâàåìûõ äàííûõ. Ïåðåäà÷à íà÷èíàåòñÿ ñ çàãîëîâêà. Çàãîëîâîê ñîäåðæèò ëèáî äâà, ëèáî òðè áàéòà êîäà äëèíû. Ïðè÷¸ì, åñëè ñòàðøèé áèò â ïåðâîì áàéòå êîäà ðàâåí åäèíèöå, òî çàïèñü íå èìååò çàïîëíèòåëÿ è ïîëíàÿ äëèíà çàãîëîâêà ðàâíà äâóì áàéòàì, èíà÷å çàïèñü ñîäåðæèò çàïîëíèòåëü è ïîëíàÿ äëèíà çàãîëîâêà ðàâíà òð¸ì áàéòàì. Êîä äëèíû çàïèñè íå âêëþ÷àåò â ñåáÿ ÷èñëî áàéò çàãîëîâêà. Äëèíà çàïèñè 2-áàéòîâîãî çàãîëîâêà:
RecLength = ((byte[ 0 ] & 0x7F) << 8) | byte[ 1 ];
Çäåñü byte[0] è byte[1] â ïåðâûé è âòîðîé ïîëó÷åííûå áàéòû. Äëèíà çàïèñè 3-áàéòîâîãî çàãîëîâêà:
RecLength = ((byte[ 0 ] & 0x3F) << 8) | byte[ 1 ];
Escape = (byte[ 0 ] & 0x40) != 0;
Padding = byte[ 2 ];
Çäåñü Padding îïðåäåëÿåò ÷èñëî áàéòîâ, äîáàâëåííûõ îòïðàâèòåëåì ê èñõîäíîìó òåêñòó, äëÿ òîãî, ÷òîáû ñäåëàòü äëèíó çàïèñè êðàòíîé ðàçìåðó áëîêà øèôðà, ïðè èñïîëüçîâàíèè áëî÷íîãî øèôðà.
Òåïåðü îòïðàâèòåëü «çàïîëíåííîé» çàïèñè äîáàâëÿåò çàïîëíèòåëü ïîñëå èìåþùèõñÿ äàííûõ è øèôðóåò âñ¸ ýòî. Ïðè÷åì, ñîäåðæèìîå çàïîëíèòåëÿ íèêàêîé ðîëè íå èãðàåò. Èç-çà òîãî, ÷òî èçâåñòåí îáú¸ì ïåðåäàâàåìûõ äàííûõ, çàãîëîâîê ìîæåò áûòü ñôîðìèðîâàí ñ ó÷åòîì Padding.
 ñâîþ î÷åðåäü ïîëó÷àòåëü çàïèñè äåøèôðóåò âñ¸ ïîëå äàííûõ è ïîëó÷àåò ïîëíóþ èñõîäíóþ èíôîðìàöèþ. Çàòåì ïðîèçâîäèòñÿ âû÷èñëåíèå çíà÷åíèÿ RecLength ïî èçâåñòíîìó Padding, è çàïîëíèòåëü èç ïîëÿ äàííûõ óäàëÿåòñÿ. Äàííûå çàïèñè SSL ñîñòîÿò èç 3 êîìïîíåíò:
MAC_Data[Mac_Size] â (Message Authentication Code) â êîä àóòåíòèôèêàöèè ñîîáùåíèÿ Padding_Data[Padding] â äàííûå çàïîëíèòåëÿ Actual_Data[N] â ðåàëüíûå äàííûå
Êîãäà çàïèñè ïîñûëàþòñÿ îòêðûòûì òåêñòîì, î÷åâèäíî, ÷òî íèêàêèå øèôðû íå èñïîëüçóþòñÿ. Òîãäà äëèíà Padding_Data è MAC_Data ðàâíû íóëþ. Ïðè èñïîëüçîâàíèè øèôðîâàíèÿ Padding_Data çàâèñèò îò ðàçìåðà áëîêà øèôðà, à MAC_Data çàâèñèò îò âûáîðà øèôðà. Ïðèìåð âû÷èñëåíèÿ MAC_Data:
MacData = Hash(Secret, Actual_Data, Padding_Data, Sequence_Number);
Çíà÷åíèå Secret çàâèñèò îò òîãî, êòî (êëèåíò èëè ñåðâåð) ïîñûëàåò ñîîáùåíèå. Sequence_Number â ñ÷¸ò÷èê, êîòîðûé èíêðåìåíòèðóåòñÿ êàê ñåðâåðîì, òàê è êëèåíòîì. Çäåñü Sequence_Number ïðåäñòàâëÿåò ñîáîé 32-áèòîâûé êîä, ïåðåäàâàåìûé õýø-ôóíêöèè â âèäå 4 áàéò, ïðè÷¸ì, ïåðâûì ïåðåäà¸òñÿ ñòàðøèé áàéò. Äëÿ MD2, MD5 MAC_Size ðàâåí 16 áàéòàì (128 áèòàì). Äëÿ 2-áàéòîâîãî çàãîëîâêà ìàêñèìàëüíàÿ äëèíà çàïèñè ðàâíà 32767 áàéòîâ, à äëÿ 3-áàéòíîãî çàãîëîâêà â 16383 áàéòîâ.
[ïðàâèòü] Èñòîðèÿ è ðàçâèòèå
Ïðîòîêîë SSL áûë èçíà÷àëüíî ðàçðàáîòàí êîìïàíèåé Netscape. Âåðñèÿ ïðîòîêîëà 1.0 ïóáëè÷íî íå âûïóñêàëàñü. Âåðñèÿ 2.0 áûëà âûïóùåíà â ôåâðàëå 1995 ãîäà, íî «ñîäåðæàëà ìíîãî íåäîñòàòêîâ ïî áåçîïàñíîñòè, êîòîðûå, â êîíå÷íîì ñ÷¸òå, ïðèâåëè ê ñîçäàíèþ âåðñèè 3.0», êîòîðàÿ áûëà âûïóùåíà â 1996 ãîäó. Òåì ñàìûì âåðñèÿ SSL 3.0 ïîñëóæèëà îñíîâîé äëÿ ñîçäàíèÿ ïðîòîêîëà TLS 1.0, ñòàíäàðò ïðîòîêîëà Internet Engineering Task Force (IETF) âïåðâûå áûë îïðåäåëåí â RFC 2246 â ÿíâàðå 1999 ãîäà. Visa, Master Card, American Express è ìíîãèå äðóãèå îðãàíèçàöèè, ðàáîòàþùèå ñ èíòåðíåò äåíüãàìè, èìåþò ëèöåíçèþ íà èñïîëüçîâàíèå ïðîòîêîëà SSL äëÿ êîììåð÷åñêèõ öåëåé â ñåòè Èíòåðíåò.
SSL ðàáîòàåò ìîäóëüíûì ñïîñîáîì. Òåì ñàìûì SSL ðàñøèðÿåìî â ñîîòâåòñòâèè ñ ïðîåêòîì î ïîääåðæêå ïåðåäíåé è îáðàòíîé ñîâìåñòèìîñòè è ïåðåãîâîðàì ìåæäó ñîåäèíåíèÿìè â îäíîðàíãîâîé ñåòè.
[ïðàâèòü] Ïðèìåíåíèå
Çíà÷èòåëüíîå èñïîëüçîâàíèå ïðîòîêîëà SSL ïðèâåëî ê ôîðìèðîâàíèþ ïðîòîêîëà HTTPS (Hypertext Transfer Protocol Secure), ïîääåðæèâàþùåãî øèôðîâàíèå. Äàííûå, êîòîðûå ïåðåäàþòñÿ ïî ïðîòîêîëó HTTPS, «óïàêîâûâàþòñÿ» â êðèïòîãðàôè÷åñêèé ïðîòîêîë SSL èëè TLS, òåì ñàìûì îáåñïå÷èâàÿ çàùèòó ýòèõ äàííûõ. Òàêîé ñïîñîá çàùèòû øèðîêî èñïîëüçóåòñÿ â ìèðå Âåá äëÿ ïðèëîæåíèé, â êîòîðûõ âàæíà áåçîïàñíîñòü ñîåäèíåíèÿ, íàïðèìåð â ïëàò¸æíûõ ñèñòåìàõ. HTTPS ïîääåðæèâàåòñÿ âñåìè áðàóçåðàìè.  îòëè÷èå îò HTTP, äëÿ HTTPS ïî óìîë÷àíèþ èñïîëüçóåòñÿ TCP-ïîðò 443.
Èçíà÷àëüíî âèðòóàëüíûå ÷àñòíûå ñåòè (VPN) íà îñíîâå SSL ðàçðàáàòûâàëèñü êàê äîïîëíèòåëüíàÿ è àëüòåðíàòèâíàÿ òåõíîëîãèÿ óäàë¸ííîãî äîñòóïà íà îñíîâå IPsec VPN. Îäíàêî, òàêèå ôàêòîðû, êàê äîñòàòî÷íàÿ íà䏿íîñòü è äåøåâèçíà ñäåëàëè ýòó òåõíîëîãèþ ïðèâëåêàòåëüíîé äëÿ îðãàíèçàöèè VPN. Òàêæå SSL ïîëó÷èë øèðîêîå ïðèìåíåíèå â ýëåêòðîííîé ïî÷òå.
[ïðàâèòü] Îñíîâíûå öåëè ïðîòîêîëà â ïîðÿäêå ïðèîðèòåòíîñòè
- Êðèïòîãðàôè÷åñêàÿ áåçîïàñíîñòü: SSL óñòàíàâëèâàåò áåçîïàñíîå ñîåäèíåíèå ìåæäó äâóìÿ ñòîðîíàìè.
- Ñîâìåñòèìîñòü: Ïðîãðàììèñòû, íåçàâèñèìî äðóã îò äðóãà ìîãóò ñîçäàâàòü ïðèëîæåíèÿ, èñïîëüçóþùèå SSL, êîòîðûå âïîñëåäñòâèè áóäóò ñïîñîáíû óñïåøíî îáìåíèâàòüñÿ êðèïòîãðàôè÷åñêèìè ïàðàìåòðàìè áåç âñÿêîãî çíàíèÿ êîäà ÷óæèõ ïðîãðàìì.
- Ðàñøèðÿåìîñòü: SSL ñòðåìèòñÿ îáåñïå÷èòü ðàáî÷åå ïðîñòðàíñòâî, â êîòîðîì íîâûå îòêðûòûå êëþ÷è è òðóäîåìêèå ìåòîäû øèôðîâàíèÿ ìîãóò áûòü âêëþ÷åíû ïî ìåðå íåîáõîäèìîñòè.
- Îòíîñèòåëüíàÿ ýôôåêòèâíîñòü: ðàáîòà ïðîòîêîëà íà îñíîâå SSL òðåáóåò áîëüøèõ ïàëëåòíûõ ñêîðîñòåé îò CPU, â ÷àñòíîñòè äëÿ ðàáîòû ñ îòêðûòûìè êëþ÷àìè. Ïî ýòîé ïðè÷èíå SSL ïðîòîêîë áûë âêëþ÷åí â íåîáÿçàòåëüíóþ ñåññèþ ñõåìû êåøèðîâàíèÿ äëÿ óìåíüøåíèÿ ÷èñëà ñîåäèíåíèé, êîòîðûå íåîáõîäèìî óñòàíàâëèâàòü ñ íóëÿ. Êðîìå òîãî, áîëüøîå âíèìàíèå óäåëÿåòñÿ òîìó, ÷òîáû óìåíüøèòü ñåòåâóþ àêòèâíîñòü.
[ïðàâèòü] Àóòåíòèôèêàöèÿ è îáìåí êëþ÷àìè
SSL ïîääåðæèâàåò 3 òèïà àóòåíòèôèêàöèè:
- àóòåíòèôèêàöèÿ îáåèõ ñòîðîí (êëèåíò â ñåðâåð),
- àóòåíòèôèêàöèÿ ñåðâåðà ñ íåàóòåíòèôèöèðîâàííûì êëèåíòîì
- ïîëíàÿ àíîíèìíîñòü.
Âñÿêèé ðàç, êîãäà ñåðâåð àóòåíòèôèöèðóåòñÿ, êàíàë áåçîïàñåí ïðîòèâ ïîïûòêè ïåðåõâàòà äàííûõ ìåæäó âåá-ñåðâåðîì è áðàóçåðîì, íî ïîëíîñòüþ àíîíèìíàÿ ñåññèÿ ïî ñâîåé ñóòè óÿçâèìà ê òàêîé àòàêå. Àíîíèìíûé ñåðâåð íå ìîæåò àóòåíòèôèöèðîâàòü êëèåíòà. Åñëè ñåðâåð àóòåíòèôèöèðîâàí, òî åãî ñîîáùåíèå ñåðòèôèêàöèè äîëæíî îáåñïå÷èòü âåðíóþ ñåðòèôèêàöèîííóþ öåïî÷êó, âåäóùóþ ê ïðèåìëåìîìó öåíòðó ñåðòèôèêàöèè. Ïðîùå ãîâîðÿ, àóòåíòèôèöèðîâàííûé êëèåíò äîëæåí ïðåäîñòàâèòü äîïóñòèìûé ñåðòèôèêàò ñåðâåðó. Êàæäàÿ ñòîðîíà îòâå÷àåò çà ïðîâåðêó òîãî, ÷òî ñåðòèôèêàò äðóãîé ñòîðîíû åùå íå èñòåê è íå áûë îòìåíåí. Ãëàâíàÿ öåëü ïðîöåññà îáìåíà êëþ÷àìè â ýòî ñîçäàíèå ñåêðåòà êëèåíòà (pre_master_secret), èçâåñòíîãî òîëüêî êëèåíòó è ñåðâåðó. Ñåêðåò (pre_master_secret) èñïîëüçóåòñÿ äëÿ ñîçäàíèÿ îáùåãî ñåêðåòà (master_secret). Îáùèé ñåêðåò íåîáõîäèì äëÿ òîãî ÷òîáû ñîçäàòü ñîîáùåíèå äëÿ ïðîâåðêè ñåðòèôèêàòà, êëþ÷åé øèôðîâàíèÿ, ñåêðåòà MAC (message authentication code) è ñîîáùåíèÿ «finished». Ïðè ïîñûëêå âåðíîãî ñîîáùåíèÿ «finished», òåì ñàìûì ñòîðîíû äîêàæóò ÷òî îíè çíàþò âåðíûé ñåêðåò (pre_master_secret).
[ïðàâèòü] Àíîíèìíûé îáìåí êëþ÷àìè
Ïîëíîñòüþ àíîíèìíàÿ ñåññèÿ ìîæåò áûòü óñòàíîâëåíà ïðè èñïîëüçîâàíèè àëãîðèòìà RSA èëè Äèôôè-Õåëëìàíà äëÿ ñîçäàíèÿ êëþ÷åé îáìåíà.  ñëó÷àå èñïîëüçîâàíèÿ RSA êëèåíò øèôðóåò ñåêðåò (pre_master_secret) ñ ïîìîùüþ îòêðûòîãî êëþ÷à íåñåðòèôèöèðîâàííîãî ñåðâåðà. Îòêðûòûé êëþ÷ êëèåíò óçíàåò èç ñîîáùåíèÿ îáìåíà êëþ÷àìè îò ñåðâåðà. Ðåçóëüòàò ïîñûëàåòñÿ â ñîîáùåíèè îáìåíà êëþ÷àìè îò êëèåíòà. Ïîñêîëüêó ïåðåõâàò÷èê íå çíàåò çàêðûòîãî êëþ÷à ñåðâåðà, òî åìó áóäåò íåâîçìîæíî ðàñøèôðîâàòü ñåêðåò (pre_master_secret). Ïðè èñïîëüçîâàíèè àëãîðèòìà Äèôôè-Õåëëìàíà îòêðûòûå ïàðàìåòðû ñåðâåðà ñîäåðæàòñÿ â ñîîáùåíèè îáìåíà êëþ÷àìè îò ñåðâåðà, è êëèåíòó ïîñûëàþò â ñîîáùåíèè îáìåíà êëþ÷àìè. Ïåðåõâàò÷èê, êîòîðûé íå çíàåò ïðèâàòíûõ çíà÷åíèé, íå ñìîæåò íàéòè ñåêðåò (pre_master_secret).
[ïðàâèòü] Îáìåí êëþ÷àìè ïðè èñïîëüçîâàíèè RSA è àóòåíòèôèêàöèÿ
 ýòîì ñëó÷àå îáìåí êëþ÷àìè è àóòåíòèôèêàöèÿ ñåðâåðà ìîæåò áûòü ñêîìáèíèðîâàíà. Îòêðûòûé êëþ÷ òàêæå ìîæåò ñîäåðæàòüñÿ â ñåðòèôèêàòå ñåðâåðà èëè ìîæåò áûòü èñïîëüçîâàí âðåìåííûé êëþ÷ RSA, êîòîðûé ïîñûëàåòñÿ â ñîîáùåíèè îáìåíà êëþ÷àìè îò ñåðâåðà. Êîãäà èñïîëüçóåòñÿ âðåìåííûé êëþ÷ RSA, ñîîáùåíèÿ îáìåíà ïîäïèñûâàþòñÿ serverâ™s RSA èëè ñåðòèôèêàò DSS. Ñèãíàòóðà âêëþ÷àåò òåêóùåå çíà÷åíèå ñîîáùåíèÿ Client_Hello.random, òàêèì îáðàçîì ñòàðûå ñèãíàòóðû è ñòàðûå âðåìåííûå êëþ÷è íå ìîãóò ïîâòîðÿòüñÿ. Ñåðâåð ìîæåò èñïîëüçîâàòü âðåìåííûé êëþ÷ RSA òîëüêî îäíàæäû äëÿ ñîçäàíèÿ ñåññèè. Ïîñëå ïðîâåðêè ñåðòèôèêàòà ñåðâåðà êëèåíò øèôðóåò ñåêðåò (pre_master_secret) ïðè ïîìîùè îòêðûòîãî êëþ÷à ñåðâåðà. Ïîñëå óñïåøíîãî äåêîäèðîâàíèÿ ñåêðåòà (pre_master_secret) ñîçäàåòñÿ ñîîáùåíèå «finished», òåì ñàìûì ñåðâåð äåìîíñòðèðóåò, ÷òî îí çíàåò ÷àñòíûé êëþ÷ ñîîòâåòñòâóþùèé ñåðòèôèêàòó ñåðâåðà.
Êîãäà RSA èñïîëüçóåòñÿ äëÿ îáìåíà êëþ÷àìè, äëÿ àóòåíòèôèêàöèè êëèåíòà èñïîëüçóåòñÿ ñîîáùåíèå ïðîâåðêè ñåðòèôèêàòà êëèåíòà. Êëèåíò ïîäïèñûâàåòñÿ çíà÷åíèåì, âû÷èñëåííûì èç master_secret è âñåõ ïðåäøåñòâóþùèõ ñîîáùåíèé ïðîòîêîëà ðóêîïîæàòèÿ. Ýòè ñîîáùåíèÿ ðóêîïîæàòèÿ âêëþ÷àþò ñåðòèôèêàò ñåðâåðà, êîòîðûé ñòàâèò â ñîîòâåòñòâèå ñèãíàòóðå ñåðâåðà, ñîîáùåíèå Server_Hello.random, êîòîðîìó ñòàâèò â ñîîòâåòñòâèå ñèãíàòóðó òåêóùåìó ñîîáùåíèþ ðóêîïîæàòèÿ.
[ïðàâèòü] Îáìåí êëþ÷àìè ïðè èñïîëüçîâàíèè Diffie-Hellman è àóòåíòèôèêàöèÿ
 ýòîì ñëó÷àå ñåðâåð ìîæåò òàêæå ïîääåðæèâàòü ñîäåðæàùèé êîíêðåòíûå ïàðàìåòðû àëãîðèòì Äèôôè-Õåëëìàíà èëè ìîæåò èñïîëüçîâàòü ñîîáùåíèÿ îáìåíà êëþ÷àìè îò ñåðâåðà äëÿ ïîñûëêè íàáîðà âðåìåííûõ ïàðàìåòðîâ ïîäïèñàííûõ ñåðòèôèêàòàìè DSS èëè RSA. Âðåìåííûå ïàðàìåòðû õýøèðóþòñÿ ñ ñîîáùåíèåì hello.random ïåðåä ïîäïèñàíèåì, äëÿ òîãî ÷òîáû çëîóìûøëåííèê íå ñìîã ñîâåðøèòü ïîâòîð ñòàðûõ ïàðàìåòðîâ.  ëþáîì ñëó÷àå êëèåíò ìîæåò ïðîâåðèòü ñåðòèôèêàò èëè ñèãíàòóðó, äëÿ óâåðåííîñòè, ÷òî ïàðàìåòðû ïðèíàäëåæàò ñåðâåðó.
Åñëè êëèåíò èìååò ñåðòèôèêàò, ñîäåðæàùèé ïàðàìåòðû àëãîðèòìà Diffie-Hellman, òî ñåðòèôèêàò òàêæå ñîäåðæèò èíôîðìàöèþ òðåáóåìóþ äëÿ òîãî ÷òîáû çàâåðøèòü îáìåí êëþ÷àìè. Çàìåòèì, ÷òî â ýòîì ñëó÷àå êëèåíò è ñåðâåð äîëæíû áóäóò ñãåíåðèðîâàòü òå æå Diffie-Hellman ðåçóëüòàòû (pre_master_secret), êàæäûé ðàç êîãäà îíè óñòàíàâëèâàþò ñîåäèíåíèå. Äëÿ òîãî ÷òîáû ïðåäîòâðàòèòü îñòàíîâêó ñåêðåòà (pre_master_secret) â ïàìÿòè êîìïüþòåðà íà âðåìÿ äîëüøå, ÷åì íåîáõîäèìî, ñåêðåò äîëæåí áûòü ïåðåâåäåí â îáùèé ñåêðåò (master_secret) íàñòîëüêî áûñòðî, íà ñêîëüêî ýòî âîçìîæíî. Ïàðàìåòðû êëèåíòà äîëæíû áûòü ñîâìåñòèìû ñ òåìè, êîòîðûå ïîääåðæèâàåò ñåðâåð äëÿ òîãî, ÷òîáû ðàáîòàë îáìåí êëþ÷àìè.
[ïðàâèòü] Ïðîòîêîë çàïèñè (Record Layer)
Ïðîòîêîë çàïèñè â ýòî óðîâíåâûé ïðîòîêîë. Íà êàæäîì óðîâíå ñîîáùåíèÿ âêëþ÷àþò ïîëÿ äëÿ äëèíû, îïèñàíèÿ è ïðîâåðêè. Ïðîòîêîë çàïèñè ïðèíèìàåò ñîîáùåíèÿ, êîòîðûå íóæíî ïåðåäàòü, ôðàãìåíòèðóåò äàííûå â óïðàâëÿåìûå áëîêè, ðàçóìíî ñæèìàåò äàííûå, ïðèìåíÿÿ MAC (message authentication code), øèôðóåò è ïåðåäà¸ò ðåçóëüòàò. Ïîëó÷åííûå äàííûå îí ðàñøèôðîâûâàåò, ïðîâåðÿåò, ðàñïàêîâûâàåò, ñîáèðàåò è äîñòàâëÿåò ê áîëåå âåðõíèì óðîâíÿì êëèåíòà.
Ñóùåñòâóåò ÷åòûðå ïðîòîêîëà çàïèñè: ïðîòîêîë ðóêîïîæàòèÿ (handshake protocol), ïðîòîêîë òðåâîãè (alert protocol), ïðîòîêîë èçìåíåíèÿ øèôðà (the change cipher spec protocol), ïðîòîêîë ïðèëîæåíèÿ (application data protocol). Åñëè SSL ðåàëèçàöèÿ ïîëó÷àåò òèï çàïèñè, êîòîðûé åé íåèçâåñòåí, òî ýòà çàïèñü ïðîñòî èãíîðèðóåòñÿ. Ëþáîé ïðîòîêîë ñîçäàííûé äëÿ èñïîëüçîâàíèÿ ñîâìåñòíî ñ SSL äîëæåí áûòü õîðîøî ïðîäóìàí, òàê êàê áóäåò èìåòü äåëî ñ àòàêàìè íà íåãî. Çàìåòèì, ÷òî èç-çà òèïà è äëèíû çàïèñè, ïðîòîêîë íå çàùèùåí øèôðîâàíèåì. Âíèìàíèå ñëåäóåò óäåëèòü òîìó, ÷òîáû ìèíèìèçèðîâàòü òðàôèê.
[ïðàâèòü] Ïðîòîêîë ðóêîïîæàòèÿ (handshake)
SSL êëèåíò è ñåðâåð äîãîâàðèâàþòñÿ îá óñòàíîâëåíèè ñâÿçè ñ ïîìîùüþ ïðîöåäóðû ðóêîïîæàòèÿ. Âî âðåìÿ ðóêîïîæàòèÿ êëèåíò è ñåðâåð äîãîâàðèâàþòñÿ î ðàçëè÷íûõ ïàðàìåòðàõ, êîòîðûå áóäóò èñïîëüçîâàíû, ÷òîáû îáåñïå÷èòü áåçîïàñíîñòü ñîåäèíåíèÿ.
- Ðóêîïîæàòèå íà÷èíàåòñÿ òîãäà, êîãäà êëèåíò ïîäêëþ÷àåòñÿ ê SSL ñåðâåðó. Çàïðîñ áåçîïàñíîãî ñîåäèíåíèÿ ïðåäñòàâëÿåò ñîáîé ñïèñîê ïîääåðæèâàåìûõ øèôðîâ è õýø-ôóíêöèé.
- Èç ýòîãî ñïèñêà ñåðâåð âûáèðàåò ñàìûé ñèëüíûé øèôð è õýø-ôóíêöèþ, êîòîðóþ îí òàêæå ïîääåðæèâàåò, è óâåäîìëÿåò êëèåíòîâ î ïðèíÿòîì ðåøåíèè.
- Ñåðâåð îòñûëàåò ýòî ðåøåíèå â âèäå öèôðîâîãî ñåðòèôèêàòà. Ñåðòèôèêàò, îáû÷íî, ñîäåðæèò èìÿ ñåðâåðà, äîâåðåííûé Öåíòð Ñåðòèôèêàöèè, è îòêðûòûé êëþ÷ øèôðîâàíèÿ ñåðâåðà. Êëèåíò ìîæåò ñâÿçàòüñÿ ñ ñåðâåðîì, êîòîðûé âûäàë ñåðòèôèêàò (äîâåðåííîãî öåíòðà ñåðòèôèêàöèè, âûøå) è óáåäèòüñÿ, ÷òî ñåðòèôèêàò ÿâëÿåòñÿ ïîäëèííûì ïðåæäå ÷åì ïðîäîëæèòü.
- Äëÿ òîãî, ÷òîáû ñãåíåðèðîâàòü êëþ÷è ñåàíñà, èñïîëüçóåòñÿ áåçîïàñíîå ñîåäèíåíèå. Êëèåíò øèôðóåò ñëó÷àéíîå ÷èñëî ñ ïîìîùüþ îòêðûòîãî êëþ÷à (ÎÊ) ñåðâåðà è îòïðàâëÿåò ðåçóëüòàò íà ñåðâåð. Òîëüêî ñåðâåð â ñîñòîÿíèè ðàñøèôðîâàòü åãî (ñ åãî çàêðûòûì êëþ÷îì (ÇÊ)), è òîëüêî ýòîò ôàêò äåëàåò êëþ÷è ñêðûòûìè îò òðåòüåé ñòîðîíû, òàê êàê òîëüêî ñåðâåð è êëèåíò èìåëè äîñòóï ê ýòèì äàííûì. Êëèåíò çíàåò îòêðûòûé êëþ÷ è ñëó÷àéíîå ÷èñëî, à ñåðâåð çíàåò çàêðûòûé êëþ÷ è (ïîñëå ðàñøèôðîâêè ñîîáùåíèÿ êëèåíòà) ñëó÷àéíîå ÷èñëî. Òðåòüÿ ñòîðîíà, âîçìîæíî, çíàåò òîëüêî îòêðûòûé êëþ÷, åñëè çàêðûòûé êëþ÷ íå áûë âçëîìàí.
- Èç ñëó÷àéíîãî ÷èñëà îáå ñòîðîíû ñîçäàþò êëþ÷åâûå äàííûå äëÿ øèôðîâàíèÿ è ðàñøèôðîâûâàíèÿ.
Íà ýòîì ðóêîïîæàòèå çàâåðøàåòñÿ, è íà÷èíàåòñÿ çàùèùåííîå ñîåäèíåíèå, êîòîðîå çàøèôðîâûâàåòñÿ è ðàñøèôðîâûâàåòñÿ ñ ïîìîùüþ êëþ÷åâûõ äàííûõ. Åñëè ëþáîå èç ïåðå÷èñëåííûõ âûøå äåéñòâèé íå óäàåòñÿ, òî ðóêîïîæàòèå SSL íå óäàëîñü, è ñîåäèíåíèå íå ñîçäàåòñÿ.
[ïðàâèòü] Ïðîòîêîë èçìåíåíèÿ ïàðàìåòðîâ øèôðîâàíèÿ (The Change Cipher Spec Protocol)
Îí ñóùåñòâóåò äëÿ ñèãíàëèçàöèè ïåðåõîäà â ðåæèì øèôðîâàíèÿ. Ïðîòîêîë ñîäåðæèò åäèíñòâåííîå ñîîáùåíèå, êîòîðîå çàøèôðîâàíî è ñæàòî ïðè òåêóùåì óñòàíîâëåííîì ñîåäèíåíèè. Ñîîáùåíèå ñîñòîèò òîëüêî èç îäíîãî áèòà ñî çíà÷åíèåì 1.
struct { enum { change_cipher_spec(1), (255) } type; } ChangeCipherSpec;
Ñîîáùåíèå èçìåíåíèÿ øèôðà ïîñûëàåòñÿ è êëèåíòîì è ñåðâåðîì äëÿ èçâåùåíèÿ ïðèíèìàþùåé ñòîðîíû, ÷òî ïîñëåäóþùèå çàïèñè áóäóò çàùèùåíû â ñîîòâåòñòâèè ñ íîâûì äîãîâîðåííûì CipherSpec è êëþ÷àìè. Ïðèíÿòèå ýòîãî ñîîáùåíèÿ çàñòàâëÿåò ïîëó÷àòåëÿ îòäàòü ïðèêàç óðîâíþ çàïèñè íåçàìåäëèòåëüíî êîïèðîâàòü ñîñòîÿíèå îòëîæåííîãî ÷òåíèÿ â ñîñòîÿíèå òåêóùåãî ÷òåíèÿ. Ñðàçó ïîñëå ïîñëàíèÿ ýòîãî ñîîáùåíèÿ, òîò êòî ïîñëàë äîëæåí îòäàòü ïðèêàç óðîâíþ çàïèñè ïåðåâåñòè ðåæèì îòëîæåííîé çàïèñè â ðåæèì òåêóùåé çàïèñè. Ñîîáùåíèå èçìåíåíèÿ øèôðà ïîñûëàåòñÿ âî âðåìÿ ðóêîïîæàòèÿ, ïîñëå òîãî êàê ïàðàìåòðû çàùèòû áûëè ïåðåäàíû, íî ïåðåä òåì êàê áóäåò ïîñëàíî ñîîáùåíèå â˜finishedâ™.
[ïðàâèòü] Ïðîòîêîë òðåâîãè (Alert Protocol)
Îäèí èç òèïîâ ïðîâåðêè, ïîääåðæèâàåìûõ â ïðîòîêîëå SSL çàïèñè, â ýòî ïðîòîêîë òðåâîãè. Ñîîáùåíèå òðåâîãè ïåðåäà¸ò òðóäíîñòè, âîçíèêøèå â ñîîáùåíèè, è îïèñàíèå òðåâîãè. Ñîîáùåíèå òðåâîãè ñ êðèòè÷åñêèì óðîâíåì íåçàìåäëèòåëüíî ïðåðûâàåò ñîåäèíåíèå.  ýòîì ñëó÷àå äðóãèå ñîåäèíåíèÿ, ñîîòâåòñòâóþùèå ñåññèè, ìîãóò áûòü ïðîäîëæåíû, íî èäåíòèôèêàòîð ñåññèè äîëæåí áûòü ïðèçíàí íåäåéñòâèòåëüíûì. Êàê è äðóãèå ñîîáùåíèÿ, ñîîáùåíèå òðåâîãè çàøèôðîâàíî è ñæàòî, êàê òîëüêî óêàçàíî òåêóùåå ñîñòîÿíèå ñîåäèíåíèÿ.
[ïðàâèòü] Ïðîòîêîë ïðèëîæåíèÿ (Application Data Protocol)
Ñîîáùåíèå ïðèëîæåíèÿ äàííûõ ðàáîòàåò íà óðîâíå çàïèñè. Îí ôðàãìåíòèðóåòñÿ, ñæèìàåòñÿ è øèôðóåòñÿ íà îñíîâå òåêóùåãî ñîñòîÿíèÿ ñîåäèíåíèÿ. Ñîîáùåíèÿ ñ÷èòàþòñÿ ïðîçðà÷íûìè äëÿ óðîâíÿ çàïèñè.
[ïðàâèòü] Îøèáêè â ïðîòîêîëå SSL
 ïðîòîêîëå SSL îáðàáîòêà îøèáîê î÷åíü ïðîñòà. Êîãäà îøèáêà îáíàðóæåíà, òîò, êòî å¸ îáíàðóæèë, ïîñûëàåò îá ýòîì ñîîáùåíèå ñâîåìó ïàðòí¸ðó. Íåóñòðàíèìûå îøèáêè òðåáóþò îò ñåðâåðà è êëèåíòà ðàçðûâà ñîåäèíåíèÿ. Ïðîòîêîë SSL îïðåäåëÿåò ñëåäóþùèå îøèáêè:
- Unsupported_Certificate_Type_Error: òàêàÿ îøèáêà âîçíèêàåò, êîãäà êëèåíò/ñåðâåð ïîëó÷àåò òèï ñåðòèôèêàòà, êîòîðûé íå ïîääåðæèâàåòñÿ. Îøèáêà óñòðàíèìà (òîëüêî äëÿ àóòåíòèôèêàöèè êëèåíòà).
- No_Cipher_Error: îøèáêà âîçíèêàåò, êîãäà ñåðâåð íå ìîæåò íàéòè ðàçìåð êëþ÷à èëè øèôð, êîòîðûé ïîääåðæèâàåòñÿ òàêæå è êëèåíòîì. Îøèáêà íåóñòðàíèìà.
- Bad_Certificate_Error: òàêàÿ îøèáêà âîçíèêàåò, êîãäà ñåðòèôèêàò ñ÷èòàåòñÿ ïðèíèìàþùåé ñòîðîíîé ïëîõèì. Ýòî îçíà÷àåò, ÷òî èëè íåêîððåêòíà ïîäïèñü ñåðòèôèêàòà, èëè åãî çíà÷åíèå íåêîððåêòíî. Îøèáêà óñòðàíèìà (òîëüêî äëÿ àóòåíòèôèêàöèè êëèåíòà).
- No_Certificate_Error: åñëè ïîñëàíî ñîîáùåíèå Request_Certificate, òî ýòà îøèáêà ìîæåò áûòü ïðèñëàíà ïî ïðè÷èíå òîãî, ÷òî êëèåíò íå èìååò ñåðòèôèêàòà. Îøèáêà óñòðàíèìà.
[ïðàâèòü] Àòàêè
Îïèøåì ðÿä àòàê, êîòîðûå ìîãóò áûòü ïðåäïðèíÿòû ïðîòèâ ïðîòîêîëà SSL. Îäíàêî SSL óñòîé÷èâ ê ýòèì àòàêàì.
[ïðàâèòü] Ðàñêðûòèå øèôðîâ
Êàê èçâåñòíî, SSL çàâèñèò îò ðàçëè÷íûõ êðèïòîãðàôè÷åñêèõ ïàðàìåòðîâ. Øèôðîâàíèå ñ îòêðûòûì êëþ÷îì RSA íåîáõîäèìî äëÿ ïåðåñûëêè êëþ÷åé è àóòåíòèôèêàöèè ñåðâåðà/êëèåíòà. Îäíàêî â êà÷åñòâå øèôðà èñïîëüçóþòñÿ ðàçëè÷íûå êðèïòîãðàôè÷åñêèå àëãîðèòìû. Òàêèì îáðàçîì, åñëè îñóùåñòâèòü óñïåøíóþ àòàêó íà ýòè àëãîðèòìû, òî SSL íå ìîæåò óæå ñ÷èòàòüñÿ áåçîïàñíûì. Àòàêà íà îïðåäåëåííûå êîììóíèêàöèîííûå ñåññèè ïðîèçâîäèòñÿ çàïèñüþ ñåññèè, è ïîòîì, â òå÷åíèå äîëãîãî âðåìåíè ïîäáèðàåòñÿ êëþ÷ ñåññèè èëè êëþ÷ RSA. SSL æå äåëàåò òàêóþ àòàêó íåâûãîäíîé, òàê êàê òðàòèòñÿ áîëüøîå êîëè÷åñòâî âðåìåíè è äåíåã.
[ïðàâèòü] Çëîóìûøëåííèê ïîñåðåäèíå
Òàêæå èçâåñòíà êàê MitM (Man-in-the-Middle) àòàêà. Ïðåäïîëàãàåò ó÷àñòèå òðåõ ñòîðîí: ñåðâåðà, êëèåíòà è çëîóìûøëåííèêà, íàõîäÿùåãîñÿ ìåæäó íèìè.  äàííîé ñèòóàöèè çëîóìûøëåííèê ìîæåò ïåðåõâàòûâàòü âñå ñîîáùåíèÿ, êîòîðûå ñëåäóþò â îáîèõ íàïðàâëåíèÿõ, è ïîäìåíÿòü èõ. Çëîóìûøëåííèê ïðåäñòàâëÿåòñÿ ñåðâåðîì äëÿ êëèåíòà è êëèåíòîì äëÿ ñåðâåðà.  ñëó÷àå îáìåíà êëþ÷àìè ïî àëãîðèòìó Äèôôè-Õåëìàíà äàííàÿ àòàêà ÿâëÿåòñÿ ýôôåêòèâíîé, òàê êàê öåëîñòíîñòü ïðèíèìàåìîé èíôîðìàöèè è åå èñòî÷íèê ïðîâåðèòü íåâîçìîæíî. Îäíàêî òàêàÿ àòàêà íåâîçìîæíà ïðè èñïîëüçîâàíèè ïðîòîêîëà SSL, òàê êàê äëÿ ïðîâåðêè ïîäëèííîñòè èñòî÷íèêà (îáû÷íî ñåðâåðà) èñïîëüçóþòñÿ ñåðòèôèêàòû, çàâåðåííûå öåíòðîì ñåðòèôèêàöèè.
Àòàêà áóäåò óñïåøíîé, åñëè:
- Ñåðâåð íå èìååò ïîäïèñàííîãî ñåðòèôèêàòà.
- Êëèåíò íå ïðîâåðÿåò ñåðòèôèêàò ñåðâåðà.
- Ïîëüçîâàòåëü èãíîðèðóåò ñîîáùåíèå îá îòñóòñòâèè ïîäïèñè ñåðòèôèêàòà öåíòðîì ñåðòèôèêàöèè èëè î íåñîâïàäåíèè ñåðòèôèêàòà ñ êýøèðîâàííûì.
Äàííûé âèä àòàêè ìîæíî âñòðåòèòü â êðóïíûõ îðãàíèçàöèÿõ, èñïîëüçóþùèõ ìåæñåòåâîé ýêðàí Forefront TMG êîìïàíèè Microsoft.  äàííîì ñëó÷àå "çëîóìûøëåííèê" íàõîäèòñÿ íà ãðàíèöå ñåòè îðãàíèçàöèè è ïðîèçâîäèò ïîäìåíó îðèãèíàëüíîãî ñåðòèôèêàòà ñâîèì. Äàííàÿ àòàêà ñòàíîâèòñÿ âîçìîæíîé áëàãîäàðÿ âîçìîæíîñòè óêàçàòü â êà÷åñòâå äîâåðåííîãî êîðíåâîãî öåíòðà ñåðòèôèêàöèè ñàì Forefront TMG. Îáû÷íî ïîäîáíàÿ ïðîöåäóðà âíåäðåíèÿ ïðîõîäèò ïðîçðà÷íî äëÿ ïîëüçîâàòåëÿ çà ñ÷åò ðàáîòû êîðïîðàòèâíûõ ïîëüçîâàòåëåé â ñðåäå Active Directory. Äàííîå ñðåäñòâî ìîæåò èñïîëüçîâàòüñÿ êàê äëÿ êîíòðîëÿ çà ïåðåäàâàåìîé èíôîðìàöèåé, òàê è â öåëÿõ ïîõèùåíèÿ ëè÷íûõ äàííûõ, ïåðåäàâàåìûõ ñ ïîìîùüþ çàùèùåííîãî ñîåäèíåíèÿ HTTPS.
Íàèáîëåå ñïîðíûì ñòàíîâèòñÿ âîïðîñ èíôîðìèðîâàííîñòè ïîëüçîâàòåëÿ î âîçìîæíîñòè ïåðåõâàòà äàííûõ, ò.ê. â ñëó÷àå ïîäìåíû êîðíåâîãî ñåðòèôèêàòà íèêàêèõ ñîîáùåíèé áåçîïàñíîñòè âûâîäèòüñÿ íå áóäåò è ïîëüçîâàòåëü áóäåò îæèäàòü êîíôèäåíöèàëüíîñòè ïåðåäàâàåìûõ äàííûõ. Êðîìå òîãî, ïðè èñïîëüçîâàíèè Forefront TMG â êà÷åñòâå SSL-ïðîêñè âîçíèêàåò âîçìîæíîñòü ïðîâåäåíèÿ âòîðîé MitM-àòàêè íà ñòîðîíå èíòåðíåòà, ò.ê. îðèãèíàëüíûé ñåðòèôèêàò íå áóäåò ïåðåäàí ïîëüçîâàòåëþ, à Forefront TMG ìîæåò áûòü íàñòðîåí íà ïðèåì è ïîñëåäóþùóþ ïîäìåíó ñàìîïîäïèñàííûõ èëè îòîçâàííûõ ñåðòèôèêàòîâ. Äëÿ çàùèòû îò ïîäîáíîé àòàêè íåîáõîäèìî ïîëíîñòüþ çàïðåòèòü ðàáîòó ñ âåá-ñåðâåðàìè, ÷üè ñåðòèôèêàòû ñîäåðæàò êàêèå-ëèáî îøèáêè, ÷òî áåçóñëîâíî ïðèâåäåò ê íåâîçìîæíîñòè ðàáîòû ïî ïðîòîêîëó HTTPS ñî ìíîæåñòâîì ñàéòîâ.
[ïðàâèòü] Àòàêà îòêëèêà
Çëîóìûøëåííèê çàïèñûâàåò êîììóíèêàöèîííóþ ñåññèþ ìåæäó ñåðâåðîì è êëèåíòîì. Ïîçäíåå, îí ïûòàåòñÿ óñòàíîâèòü ñîåäèíåíèå ñ ñåðâåðîì, âîñïðîèçâîäÿ çàïèñàííûå ñîîáùåíèÿ êëèåíòà. Íî SSL îòáèâàåò ýòó àòàêó ïðè ïîìîùè îñîáîãî óíèêàëüíîãî èäåíòèôèêàòîðà ñîåäèíåíèÿ (ÈÑ). Êîíå÷íî, òåîðåòè÷åñêè òðåòüÿ ñòîðîíà íå â ñèëàõ ïðåäñêàçàòü ÈÑ, ïîòîìó ÷òî îí îñíîâàí íà íàáîðå ñëó÷àéíûõ ñîáûòèé. Îäíàêî, çëîóìûøëåííèê ñ áîëüøèìè ðåñóðñàìè ìîæåò çàïèñàòü áîëüøîå êîëè÷åñòâî ñåññèé è ïîïûòàòüñÿ ïîäîáðàòü «âåðíóþ» ñåññèþ, îñíîâûâàÿñü íà êîäå nonce, êîòîðûé ïîñëàë ñåðâåð â ñîîáùåíèå Server_Hello. Íî êîäû nonce SSL èìåþò, ïî ìåíüøåé ìåðå, äëèíó 128 áèò, à çíà÷èò, çëîóìûøëåííèêó íåîáõîäèìî çàïèñàòü
êîäîâ nonce, ÷òîáû ïîëó÷èòü âåðîÿòíîñòü óãàäûâàíèÿ 50 %. Íî
äîñòàòî÷íî áîëüøîå ÷èñëî, ÷òîáû ñäåëàòü ýòè àòàêè áåññìûñëåííûìè.
[ïðàâèòü] Àòàêà ïðîòèâ ïðîòîêîëà ðóêîïîæàòèÿ
Çëîóìûøëåííèê ìîæåò ïîïûòàòüñÿ ïîâëèÿòü íà îáìåí ðóêîïîæàòèÿìè äëÿ òîãî, ÷òîáû ñòîðîíû âûáðàëè ðàçíûå àëãîðèòìû øèôðîâàíèÿ, à íå òå, ÷òî îíè âûáèðàþò îáû÷íî. Èç-çà òîãî, ÷òî ìíîãèå ðåàëèçàöèè ïîääåðæèâàþò 40-áèòíîå ýêñïîðòèðîâàííîå øèôðîâàíèå, à íåêîòîðûå äàæå 0-øèôðîâàíèå èëè MAC-àëãîðèòì, ýòè àòàêè ïðåäñòàâëÿþò áîëüøîé ïàëëåòíûé èíòåðåñ.
Äëÿ òàêîé àòàêè çëîóìûøëåííèêó íåîáõîäèìî áûñòðî ïîäìåíèòü îäíî èëè áîëåå ñîîáùåíèé ðóêîïîæàòèÿ. Åñëè ýòî ïðîèñõîäèò, òî êëèåíò è ñåðâåð âû÷èñëÿò ðàçëè÷íûå çíà÷åíèÿ õýøåé ñîîáùåíèÿ ðóêîïîæàòèÿ.  ðåçóëüòàòå ÷åãî ñòîðîíû íå ïðèìóò äðóã îò äðóãà ñîîáùåíèÿ Finished. Áåç çíàíèÿ ñåêðåòà çëîóìûøëåííèê íå ñìîæåò èñïðàâèòü ñîîáùåíèå Finished, ïîýòîìó àòàêà ìîæåò áûòü îáíàðóæåíà.
[ïðàâèòü] Àëãîðèòìû, èñïîëüçóþùèåñÿ â SSL
- Äëÿ îáìåíà êëþ÷àìè è ïðîâåðêè èõ ïîäëèííîñòè ïðèìåíÿþòñÿ: RSA, Diffie-Hellman, ECDH, SRP, PSK.
- Äëÿ àóòåíòèôèêàöèè: RSA, DSA, ECDSA.
- Äëÿ ñèììåòðè÷íîãî øèôðîâàíèÿ: RC2, RC4, IDEA, DES, Triple DES èëè AES, Camellia.
- Äëÿ õåø-ôóíêöèé: SHA, MD5, MD4 è MD2.
[ïðàâèòü] Ñì. òàêæå
| Çàùèòà êîíôèäåíöèàëüíûõ äàííûõ è àíîíèìíîñòü â èíòåðíåòå â Ýíöèêëîó÷åáíèêå? |
[ïðàâèòü] Ññûëêè
- Mozilla.org â ââåäåíèå â SSL ïðîòîêîë
- inSSL â ðåñóðñ ïðî SSL
| Ýòó ñòàòüþ ñëåäóåò Ýíöèêëîôèöèðîâàòü.
Ïîæàëóéñòà, îôîðìèòå å¸ ñîãëàñíî ïðàâèëàì îôîðìëåíèÿ ñòàòåé.
|
| Îñíîâíûå ïðîòîêîëû TCP/IP ïî óðîâíÿì ìîäåëè OSI (Ñïèñîê ïîðòîâ TCP è UDP) | |
|---|---|
| Ôèçè÷åñêèé | |
| Êàíàëüíûé | |
| Ñåòåâîé | |
| Òðàíñïîðòíûé | |
| Ñåàíñîâûé | |
| Ïðåäñòàâëåíèÿ | |
| Ïðèêëàäíîé | |
| Äðóãèå ïðèêëàäíûå | |
| Ìåõàíèçìû áåçîïàñíîñòè â Èíòåðíåòå | |
|---|---|
| IPSec Secure routing DNSSEC SSL TLS |