Найти в Дзене
Журнал «Код»

SSL-сертификаты и безопасный интернет

Оглавление

Ваше соеди­не­ние надёж­но защи­ще­но. Или нет

Когда откры­ва­ешь неко­то­рые сай­ты, то бра­у­зер сооб­ща­ет нам про что-то: «Не защи­ще­но». Неко­то­рые дума­ют, что такие стра­ни­цы все в виру­сах и что оста­вать­ся на них опас­но. На самом деле всё не так страш­но — у сай­та про­сто нет SSL-сертификата. Рас­ска­зы­ва­ем, что это за тех­но­ло­гия и поче­му с ней не всё так про­сто.

Вот так бра­у­зер сооб­ща­ет нам, что у это­го сай­та нет сер­ти­фи­ка­та без­опас­но­сти.
Вот так бра­у­зер сооб­ща­ет нам, что у это­го сай­та нет сер­ти­фи­ка­та без­опас­но­сти.
А вот так — что сер­ти­фи­кат есть. Но не всё так про­сто.
А вот так — что сер­ти­фи­кат есть. Но не всё так про­сто.

Минутка технического объяснения про SSL и HTTPS

Стан­дарт­ный про­то­кол пере­да­чи дан­ных в вебе, кото­рый исполь­зу­ет­ся с 1992 года, — HTTP. Этот про­то­кол зада­ёт пра­ви­ла, по кото­рым поль­зо­ва­те­ли запра­ши­ва­ют сай­ты, а сер­ве­ры — отда­ют эти сай­ты. Про­то­ко­ла — это про­сто дого­во­рён­но­сти: «Заго­ло­вок стра­ни­цы пере­да­вай так-то, текст — так, пароль про­си так». Про­то­кол может быть любым внут­ри, глав­ное — что­бы все дого­во­ри­лись исполь­зо­вать имен­но его.

Минус про­то­ко­ла HTTP в том, что он пере­да­ёт дан­ные в откры­том виде. Если на сай­те с HTTP вве­сти дан­ные кар­точ­ки, то они поле­тят по кана­лам свя­зи неза­шиф­ро­ван­ны­ми. Зло­умыш­лен­ник может их пере­хва­тить и про­чи­тать — доста­точ­но, напри­мер, про­сто «про­слу­ши­вать» весь тра­фик в бес­про­вод­ной сети.

HTTP — это быст­рый, но небез­опас­ный про­то­кол. Его слож­но в этом винить: когда его созда­ва­ли, никто не думал, что на сай­тах будут вво­дить дан­ные кре­дит­ных карт. Дума­ли, будут обме­ни­вать­ся резуль­та­та­ми науч­ных иссле­до­ва­ний.

Что­бы решить про­бле­му неза­шиф­ро­ван­ных дан­ных, в 2000 году при­ду­ма­ли HTTPS — HyperText Transfer Protocol Secure, без­опас­ный про­то­кол пере­да­чи гипер­тек­ста. Внут­ри себя он рабо­та­ет как обыч­ный HTTP, но сна­ру­жи шиф­ру­ет весь свой тра­фик. Даже если кто-то вкли­нит­ся посе­ре­дине, он уви­дит толь­ко шифр, кото­рый не полу­чит­ся разо­брать.

За шиф­ро­ва­ние стра­ниц в HTTPS отве­ча­ет про­то­кол SSL — Secure Sockets Layer, уро­вень защи­щён­ных соке­тов. Соке­ты — это такие вир­ту­аль­ные соеди­не­ния меж­ду ком­пью­те­ра­ми. Защи­щён­ный сокет озна­ча­ет, что дан­ные, кото­рые идут внут­ри от одно­го ком­пью­те­ра к дру­го­му, — в без­опас­но­сти. Если бра­у­зер откры­ва­ет стра­ни­цу по тако­му про­то­ко­лу, то он перед отправ­кой на сер­вер шиф­ру­ет всё, что вы дела­е­те или вво­ди­те на сай­те. Самое то, если нуж­но отпра­вить дан­ные пла­тёж­ной кар­ты или логин с паро­лем от сер­ви­са.

На самом деле при­мер­но с 2014 года вме­сто про­то­ко­ла SSL исполь­зу­ют TLS, кото­рый заду­мы­вал­ся как обнов­ле­ние SSL 3.0. Дело в том, что в 2014 году обна­ру­жи­ли уяз­ви­мость в SSL-протоколе, кото­рая поз­во­ля­ет рас­шиф­ро­вы­вать все дан­ные. В TLS кон­крет­но этой уяз­ви­мо­сти нет (но навер­ня­ка есть дру­гие), поэто­му все плав­но пере­шли на него, но по ста­рой памя­ти и при­выч­ке назы­ва­ют всё SSL-соединением и SSL-сертификатами.

Как работает SSL-протокол

  • После вво­да адре­са бра­у­зер отправ­ля­ет­ся к нуж­но­му сер­ве­ру и запра­ши­ва­ет у него стра­ни­цу по про­то­ко­лу HTTPS. Если стра­ни­цы рабо­та­ют с HTTPS, то всё отлич­но, пере­хо­дим к шагу 2. Если на сер­ве­ре исполь­зу­ет­ся ещё ста­рый про­то­кол HTTP, то он отдаст бра­у­зе­ру стра­ни­цу по это­му неза­щи­щён­но­му про­то­ко­лу и ника­ко­го шиф­ро­ва­ния даль­ше не будет.
  • Сер­вер отправ­ля­ет бра­у­зе­ру копию сво­е­го SSL-сертификата, что­бы бра­у­зер убе­дил­ся, что всё в поряд­ке. В таком сер­ти­фи­ка­те напи­са­но, что это за домен, кто выдал сер­ти­фи­кат и инфор­ма­ция о вла­дель­це.
  • Бра­у­зер про­ве­ря­ет под­лин­ность сер­ти­фи­ка­та и, если всё хоро­шо, — отправ­ля­ет в ответ свой пуб­лич­ный ключ для шиф­ро­ва­ния. Если пока непо­нят­но, что такое пуб­лич­ный ключ, — немно­го тер­пе­ния, мате­ри­ал уже гото­вим.
  • Сер­вер шиф­ру­ет стра­ни­цу полу­чен­ным клю­чом и отправ­ля­ет её бра­у­зе­ру.
  • Бра­у­зер рас­шиф­ро­вы­ва­ет стра­ни­цу, пока­зы­ва­ет её поль­зо­ва­те­лю, а сер­ве­ру сооб­ща­ет, что всё в поряд­ке, рабо­та­ем даль­ше. С это­го момен­та все дан­ные шиф­ру­ют­ся и мож­но отправ­лять на сер­вер что угод­но.

А как быть с обычными сайтами без сертификатов?

Если у сай­та нет сер­ти­фи­ка­та, это не зна­чит, что сайт пло­хой. Это зна­чит, что дан­ные, кото­рые вы там буде­те вво­дить, пере­да­ют­ся в откры­том виде. Зна­чит, их про­ще пере­хва­тить. Если вы на сай­те ниче­го не запол­ня­е­те или остав­ля­е­те ком­мен­та­рий без реги­стра­ции — страш­но­го ниче­го не про­изой­дёт.

Есть мно­го сай­тов, кото­рые не исполь­зу­ют сер­ти­фи­ка­ты и ниче­го не про­сят от поль­зо­ва­те­лей — сайты-визитки, кор­по­ра­тив­ные стра­ни­цы и инфор­ма­ци­он­ные пор­та­лы.

Неко­то­рые счи­та­ют, что если без­опас­но­го соеди­не­ния нет, то вас сра­зу ата­ку­ют хаке­ры или зара­зят виру­сы, но это не так. Вирус мож­но под­це­пить даже на сай­те с SSL-сертификатом, если вла­де­лец доме­на его туда поло­жит.

Получить SSL-сертификат — это сложно?

Нет. Это не толь­ко дело деся­ти минут, но и в неко­то­рых слу­ча­ях бес­плат­ная опе­ра­ция. Про­гресс дошёл до того, что вы може­те полу­чить сер­ти­фи­кат на любой новый сайт в авто­ма­ти­че­ском режи­ме, даже если у вас мошен­ни­че­ский сайт. Доста­точ­но лишь иметь админ­ский доступ к сво­е­му сай­ту.

Что не так с безопасным соединением

Зна­чок зам­ка и над­пись «Защи­ще­но» озна­ча­ет лишь то, что бра­у­зер уста­но­вил с сер­ве­ром защи­щён­ное соеди­не­ние. Если кто-то попы­та­ет­ся пере­хва­тить тра­фик, то он всё рав­но не смо­жет его рас­шиф­ро­вать. Но если зло­умыш­лен­ник поста­вит себе на сайт SSL-сертификат и будет при­ни­мать инфор­ма­цию о пла­тёж­ных кар­тах, то они попа­дут к нему в руки.

Никто не может поме­шать пре­ступ­ни­ку полу­чить сер­ти­фи­кат, уста­но­вить на свой сайт и сде­лать вид, что это без­опас­ная стра­ни­ца. SSL-сертификат гаран­ти­ру­ет без­опас­ную пере­да­чу дан­ных, но не отве­ча­ет за то, куда они отправ­ля­ют­ся. Поэто­му перед тем как вво­дить на сай­те сек­рет­ную инфор­ма­цию, убе­ди­тесь в том, что сайт при­над­ле­жит нуж­ной ком­па­нии. Ино­гда быва­ет так: зло­умыш­лен­ни­ки меня­ют в адре­се сай­та одну бук­ву, полу­ча­ют сер­ти­фи­кат и дела­ют точ­но такой же дизайн, как в ори­ги­на­ле. Кто-то захо­дит на такой сайт за покуп­ка­ми, вво­дит рек­ви­зи­ты кар­ты и... вы пони­ма­е­те. Будь­те вни­ма­тель­ны.

Подписывайтесь на наш канал, чтобы быть в безопасности!