Рубрика «aes»

image

8 лет назад я написал статью про ускорение раздачи статического контента, некоторым хабрачитателям она приглянулась и долгое время оставалась актуальной.

И вот мы решили ускорять то, что и так работает быстро и, заодно, поделиться опытом того, что получилось в итоге. Конечно же я расскажу о граблях, о том где не надо HTTP/2, о том почему мы покупаем 7,6Tb NVMe SSD вместо 8x1Tb SATA SSD и много другой узкоспециализированной информации.

Давайте сразу договоримся что хранение и раздача контента это 2 разные задачи и говорить мы будем только про раздачу (продвинутый кеш)

Начнем с железа…
Читать полностью »

В литературе и самых сложных современных системах есть «лучшие» ответы на многие вопросы. Если вы разрабатываете встроенные приложения, то предлагают использовать STROBE и модный современный криптографический стек для аутентификации полностью из одиночных SHA-3-подобных функций губки. Советуют использовать NOISE для разработки безопасного транспортного протокола с формированием общего ключа аутентификации (AKE). Говоря об AKE, есть около 30 различных парольных AKE на выбор.

Но если вы разработчик, а не криптограф, то не должны делать ничего такого. Следует придерживаться простых и обычных решений, которые легко поддаются анализу — «скучных», как говорят люди из Google TLS.
Читать полностью »

У всех, кто когда-либо сталкивался с выбором звуковой аппаратуры возникал вопрос о мощности, а если точнее, о громкости, например, акустической системы или ресивера. Предположу, что многие слышали от “заботливых” продавцов или замечали в рекламных материалах информацию о мощности в 30, 50 или, например, 100 Вт. Когда такое доводится слышать (видеть) мне, я крепко задумываюсь, о какой именно мощности идёт речь. Системы из поднебесной, например, якобы “выдают” заоблачные тысячи Ватт, при этом звучат тише десятиваттных трактов от других производителей.

Ода об истинной мощности или громкие и тихие Ватты - 1

Из-за ориентирования на значения мощности усилительной техники и акустических систем возникает много неразберихи, которая мешает покупателям приобретать, а продавцам продавать звуковую аппаратуру. Под катом я расскажу о существующих стандартах мощности, а также о том, какие маркетинговые ухищрения помогают некоторым производителям заявить “высокую” формальную мощность, при достаточно скромных реальных характеристиках.
Читать полностью »

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

Постараюсь объяснить сложные и непонятные технологии простым и доступным языком, чтобы было понятно и новичку.
Читать полностью »

Такты для разработчиков - 1

Если у вас есть опыт создания ПО и вы хотите познакомиться с проектированием цифровых логических схем (digital design), то одна из первых вещей, которые вам нужно понять, — это концепция тактов. Она раздражает многих программных инженеров, начинающих HDL-проектирование. Без использования тактов они могут превратить HDL в язык программирования с $display, if и циклами for, как в любом другом языке. Но при этом такты, которые новички игнорируют, — зачастую один из основополагающих элементов при проектировании любых цифровых логических схем.

Ярче всего эта проблема проявляется именно при рассмотрении первых схем, созданных начинающими HDL-разработчиками. Я недавно общался с некоторыми из них. Новички опубликовали свои вопросы на форумах, которые я читаю. Когда я проанализировал то, что они делают, от увиденного волосы встали дыбом.

Читать полностью »

В наше время HTTPS обязателен для каждого веб-сайта: пользователи ищут замочек в адресной строке, когда передают личные данные; Chrome и Firefox недвусмысленно помечают как небезопасные веб-сайты с формами на страницах без HTTPS; это влияет на позиции в поисковой выдаче и оказывает серьёзное влияние на приватность в целом. Кроме того, сейчас имеется несколько вариантов получить бесплатный сертификат, так что переход на HTTPS — всего лишь вопрос желания.

Установка HTTPS может немного пугать неподготовленного пользователя — она требует многих шагов с участием различных сторон, а также специфических знаний криптографии и серверных конфигураций, да и вообще в целом кажется сложной.

В этом руководстве я объясню отдельные компоненты и шаги и ясно изложу каждый этап установки. У вас должно всё пройти гладко, особенно если ваш хостер сам предоставляет сертификаты HTTPS — тогда высока вероятность, что вы быстро и просто всё сделаете не выходя из панели управления.

Сюда включены детальные инструкции для владельцев виртуального хостинга на cPanel, администраторов серверов Apache HTTP и nginx под Linux и Unix, а также Internet Information Server под Windows.
Читать полностью »

Однажды, лежа на диване, попивая чай, я понял, что мне необходимо создать сервис для безопасного обмена текстовой информацией. Осознавая всю значимость этого дела, я подошел к нему основательно. Диван, осознав, всю важность данного действа решил мне в этом помочь. Вместе, сосредоточившись и превозмогая сон, мы создали чудесный сайт с открытым исходным кодом. Исходники можно посмотреть тут, и шоукейс тут (все на Github).

Основные фичи, которых я добился:

  • Высокая скорость загрузки
  • Если указать пароль, то информация шифруется прямо в браузере и на сервер сохраняется только ничего. Для просмотра данных нужно ввести пароль, чтобы расшифровать в браузере данные, полученные не с сервера.
  • Высокая загрузка центрального процессора
  • Поисковым системам не запрещено индексировать содержимое сайта, потому что нет сайта
  • HTTPS везде

Читать полностью »

Как мы на FPGA AES ускоряли: разработка драйвера - 1 Недавно мы применили плату Ethond в качестве мини-роутера и запустили на нём OpenVPN.

Но обнаружилось, что процессор часто нагружается на 100%, а скорость не поднимается выше 15-16 Мбит/с. На канале связи 100 мегабит это очень мало, поэтому мы решили ускорить процесс аппаратно.

Ребята из группы FPGA-разработчиков сделали прошивку на базе открытого IP-core для Altera CycloneV с реализацией шифра AES-128, которая умеет шифровать 8 Гбит/сек и дешифровать 700 Мбит/сек. Для сравнения, программа openssl на CPU (ARM Cortex A9) того же CycloneV может обрабатывать лишь около 160 Мбит/сек.

Эта статья посвящена нашему исследованию по применению аппаратного шифрования AES. Мы сжато представим описание криптографической инфраструктуры в Linux и опишем драйвер (исходный код открыт и доступен на github), который осуществляет обмен между FPGA и ядром. Реализация шифрования на FPGA не является темой статьи — мы описываем лишь интерфейс, с которым происходит взаимодействие c акселератором со стороны процессора.

Читать полностью »

Чтобы сходу понимать материалы об инфраструктуре открытых ключей, сетевой безопасности и HTTPS, нужно знать основы криптографической теории. Один из самых быстрых способов изучить их — посмотреть или прочитать лекцию Владимира ivlad Иванова. Владимир — известный специалист по сетям и системам их защиты. Он долгое время работал в Яндексе, был одним из руководителей нашего департамента эксплуатации.

Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.

Читать полностью »

Это будет история об открытом ПО, доверии и ответственности.

Задача и её решение

Как-то раз мне понадобилось добавить в своё приложение на Ruby симметричное шифрование. Алгоритм AES показался мне хорошим выбором и я решил найти библиотеку шифрования с поддержкой этого алгоритма. Поскольку я писал на Ruby, то сделал то же самое, что сделал бы на моём месте практически каждый программист на Ruby — пошел в Google и написал запрос «ruby gem aes». Конечно же, Google первой строкой предложил мне gem, называющийся (вот неожиданность!) — «aes». Он был очень прост в использовании:

require 'aes'

message = "Super secret message"
key = "password"

encrypted = AES.encrypt(message, key)    # RZhMg/RzyTXK4QKOJDhGJg==$BYAvRONIsfKjX+uYiZ8TCsW7C2Ug9fH7cfRG9mbvx9o=
decrypted = AES.decrypt(encrypted, key)  # Super secret message

Если вы при расшифровке использовали неверный пароль, gem выбрасывал ошибку:

decrypted = AES.decrypt(encrypted, "Some other password") #=> aes.rb:76:in `final': bad decrypt (OpenSSL::Cipher::CipherError)

Ну, отлично. Что же могло пойти не так?
Читать полностью »