денис аникин

Post on 22-Jun-2015

804 views 4 download

Tags:

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

TCP/IP

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

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

Airport Wi-Fi

Man In The

Middle

Local Internet Provider

Shopping Center Wi-Fi

Network at work

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

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

SOCKETSECURITYLAYER

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

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

ServerClient

PublicKey

ServerClient

RandomNumber

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

ServerClient

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

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

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

CASertificateServer

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

Sertificate

PublicKey

PrivateKey

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

PublicKey

Client

RootSertificate

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

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

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

Browser Server SertificateSSL

SSL

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

CA Sertificate

$

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

- И это все???

Так просто?

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

А если это Почта@Mail.Ru, то не все!

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

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

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

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

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

Что мы делали

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

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

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

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

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

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

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

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

Оптимизация

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

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

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

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

anikin@corp.mail.ru

СПАСИБО!