денис аникин

27

Transcript of денис аникин

Page 1: денис аникин
Page 3: денис аникин

TCP/IP

Не защищенныйпротокол!

Page 4: денис аникин

Для чего нужензащищенный протокол?

Airport Wi-Fi

Man In The

Middle

Local Internet Provider

Shopping Center Wi-Fi

Network at work

Page 5: денис аникин

Как работает защищенные соединение?

Browser Шифрование Server

Page 6: денис аникин

SOCKETSECURITYLAYER

Ассиметричное шифрование

Page 7: денис аникин

Как работает SSL

ServerClient

PublicKey

Page 8: денис аникин

ServerClient

RandomNumber

Как работает SSL

Page 9: денис аникин

ServerClient

КлючевыеДанные

Как работает SSL

Page 10: денис аникин

Сервер получает сертификат у Центра Сертификации (CA)

CASertificateServer

Page 11: денис аникин

Сертификат – это пара – открытый ключ и закрытый ключ

Sertificate

PublicKey

PrivateKey

Page 12: денис аникин

Сервер – тот,за кого себя выдает?

PublicKey

Client

RootSertificate

Page 13: денис аникин

Как настроить HTTPS?

- В браузерах он уже есть- В серверах оно тоже уже есть (в nginx, в частности)- У сервера должен быть сертификат

Page 14: денис аникин

Как настроить HTTPS?

Browser Server SertificateSSL

SSL

Page 15: денис аникин

Как настроить HTTPS?

CA Sertificate

$

Page 16: денис аникин

- Заказать сертификат- Разложить его на сервера- Включить опцию на nginx

- И это все???

Так просто?

Page 17: денис аникин

Если ваш проект – это страница HelloWorld, то да, это все

Page 19: денис аникин

Почему так? В чем отличие от HelloWorld?

В двух аспектах

1. Почта содержит много страниц (сотни), а HelloWorld всего одну2. Почта работает под гигантской нагрузкой – сотни тысяч HTTP RPS

Page 20: денис аникин

Как эти аспекты влияют?

1. Чтобы браузер не ругался, надо отдавать по HTTPS ВСЕ ДАННЫЕ2. SSL потребляет ресурсы процессора и память

Page 21: денис аникин

Что мы делали

1. Отдаем по HTTPS ВСЕ ДАННЫЕ- Дорабатывали баннерную систему (RB)- Поддержали SSL везде, где можем- Заменили все ссылки на протоколонезависимые в тоннах шаблонов- Разработали прокси картинок для SSL там, где мы не можем

2. Выдерживаем нагрузку- Оптимизация- Тьюнинг настроек SSL

Page 22: денис аникин

Баннерная система

- Поддержка SSL- Переговоры с партнерами, чтобы поставляли SSLные пиксели- Автозапрет на создание не SSL-контента в SSL-ready проектах

Page 23: денис аникин

Поддержка SSL везде, где можем

- Почтовые веб-сервера (фронты)- Сервера, отдающие почтовую статику- Сервера логирования клиентских ошибок и клиентскойДиагностики (радары)- Сервера веб-агента- Сервера фотохостинга Моего Мира (для аватарок)- Сервера, отдающие атачи и их превью- Умная поддержка SSL на мобильных устройствах- Замена ссылок на протоколонезависимые- Перевод всех счетчиков на SSL (li.ru, top, tns)

Page 24: денис аникин

Прокси картинок там, где не можем

- Очень быстрая (асинхронный ввод-вывод, один поток)- Асинхронный DNS-лукап- Хождение по редиректам- Защита от злоумышленников (шифрование параметров запроса)

Page 25: денис аникин

Оптимизация

- Оптимизация кода (отдаем больше процессора под терминацию SSL)- Новый nginx- Увеличили количество воркеров нашего сервера auth c 2 до 4

Page 26: денис аникин

Тьюнинг настроек SSL и nginx

- Keepalive- SSL-Cache (ускоряет SSL-Handshake)- Оптимизация random (чтобы было меньше iowait)- Увеличили proxy_buffers в nginx с 4К до 16К- Изменили SSL Cypher – на первое место поставили RC4- Увеличили количество воркеров nginx с 4 до 8

Page 27: денис аникин

Денис АникинТехнический Руководитель Почты@Mail.Ru

[email protected]

СПАСИБО!