Ким Дотком порадовал новостью о том, что он ещё жив и даже продолжает разработку новых сервисов, в дополнение к криптохостингу Mega. Его новая инициатива — защищённый чат MegaChat.
Сервис открыт для бета-тестирования сегодня утром. Ссылка на него появилась на основном портале Mega в главном меню, которое возникает после авторизации на сайте.
Со свойственной ему амбициозностью, Ким Дотком позиционирует MegaChat как конкурента Skype. Зашифрованные коммуникации работают в браузере. Первым начал работать видеочат, вскоре добавят передачу текстовых сообщений и аудиозвонки.
ХХХХХХХХХХХ
Пока что сервис работает с небольшими глюками, иногда невозможно установить соединение, не всплывают сообщения о входящих вызовах, пишет TechCrunch. Однако, если соединение всё-таки удалось установить, то качество видео и звука совершенно не уступают Skype. Существующие дефекты наверняка устранят в ближайшее время.
В чате есть встроенная функция обмена файлами. Она работает без сбоев. MegaChat применяет технологию под названием «контролируемое шифрование» (User Controlled Encryption, UCE), когда отправитель передаёт получателю ключ для дешифровки.
Преимущество MegaChat в том, что не требуется установка дополнительных программ, всё работает в браузере. Этот сервис нацелен на тех пользователей, которые опасаются прослушки их разговоров в Skype. Есть все основания опасаться этого, ведь опция прослушки Skype встроена во многие вредоносные программы, в том числе в те, которые используются правоохранительными органами.
Пароли по-прежнему остаются главным способом аутентификации пользователей. А учёные и инженеры по-прежнему пытаются найти простую и эффективную альтернативу. В последние годы разработано множество биометрических методов аутентификации, в том числе по отпечатку пальца, радужной оболочке глаза, звуку голоса и стуку сердца.
Уже сообщалось и об инновационных алгоритмах, позволяющих распознать пользователя по набору символов на клавиатуре. Например, в Курском государственного университете разработали программный продукт, который идентифицирует пользователя компьютера с точностью до 96% после набора 4-6 символов.
В том же направлении работает совместная группа учёных из технологического института Джорджии (США) и научно-исследовательской лаборатории в Китае. Они опубликовали научную работу с описанием клавиатуры IKB (Intelligent Keyboard) совершенно новой конструкции.
Многослойная немеханическая конструкция клавиатуры позволяет более точно замерять силу и время нажатия, после чего составляется профиль на каждого пользователя.
Более того, клавиатура автоматически генерирует ток при нажатии клавиш, так что не требует внешнего питания. Сгенерированного тока не хватит для зарядки каких-то больших гаджетов, но достаточно для подачи сигнала на компьютер по беспроводной связи, а также для зарядки «маленькой электроники» при скорости набора не меньше 100 символов в минуту.
На диаграмме показана зависимость электрического напряжения от скорости набора (символов в минуту).
Авторы научной работы уверяют, что более точное измерение силы и времени нажатия на клавиши обеспечивает более высокую точность измерений и, соответственно, более высокую точность идентификации пользователей, чем существующие программные методы.
Разработчики браузера Firefox хотят защитить конфиденциальную информацию пользователей, ограничив содержимое заголовков HTTP Referer. Об этом рассказал Сид Стамм (Sid Stamm), один из сотрудников отдела Mozilla Security and Privacy.
Сид Стамм верно пишет, что с развитием интернет-технологий количество информации в поле HTTP Referer слишком сильно увеличилось, так что возникли определённые проблемы с приватностью. Сайту, на который пришёл пользователь, не всегда нужно знать, откуда именно он пришёл. В определённом контексте эту информацию вообще нежелательно разглашать. Когда опция включена, всегда есть определённый риск: а вдруг в URL попало имя пользователя или пароль?
Другими словами, заголовок HTTP Referer начал приносить больше проблем, чем пользы, поэтому пришло время усовершенствовать систему.
Чтобы исправить ситуацию, последняя версия Firefox 36 Beta теперь поддерживает новую функцию “meta referrer”. Она позволяет с помощью специального метатега устанавливать в HTML-документах разные правила для информации, которую браузеру следует включать в поле HTTP Referer.
Например, такой мета-тег.
<meta name="referrer" content="origin">
Он означает, что все заголовки будут избавлены от указания полного адреса документа, запроса или другой информации. Только название сайта.
Есть и другие параметры для настройки и частичной очистки «реферера».
Вдобавок, теперь в самом Firefox стало проще настраивать и ограничивать содержимое поля HTTP Referer.
В конце декабря специалисты по безопасности из Google Security Team обнаружили ряд критических уязвимостей в реализации протокола NTP, который используется во многих промышленных системах управления для синхронизации времени на серверах.
Уязвимости, которым подвержены все NTP-сервера до версии 4.2.8, включают несколько вариантов переполнения буфера и позволяют атакующему удалённо выполнять произвольный код на сервере. Как отмечают исследователи, эксплоиты для данных уязвимостей уже существуют в публичном доступе.
По данным Positive Technologies, использование открытых источников позволяет легко выявить более 30 000 серверов в интернет, до сих пор подверженных данной уязвимости. Причём 4300 из них расположены в российском сегменте сети Интернет.
На скриншоте выше можно увидеть, как выглядит данная уязвимость NTP в одном из аудитов безопасности, который проводили с помощью системы контроля защищенности и соответствия стандартам MaxPatrol.
Рекомендации по устранению уязвимостей можно найти в уведомлении ICS-CERT, а также на сайте поддержки NTP. Основной совет — обновить NTP до версии 4.2.8 с официального сайта ntp.org. В случае невозможности обновления предлагается два способа блокировать атаки через настройки конфигурации.
Запретить Autokey Authentication путем удаления или комментирования всех тех строк файла ntp.conf, которые начинаются с директивы crypto.
Для всех недоверенных клиентов указать в файле /etc/ntp.conf директиву restrict … noquery, что не позволит недоверенным клиентам запрашивать информацию о статусе NTP-сервера.
Можно поступить и проще: отключить службу NTP на серверах и сетевых устройствах или отфильтровать ее на межсетевом экране, если внешний доступ к ней не требуется. Но если служба всё же используется внешними клиентами, можно ограничить доступ к порту 123 списком доверенных IP-адресов.
Судя по опыту прошлых багов NTP, можно прогнозировать, что блокирование новых уязвимостей вряд ли будет происходить быстро, считают специалисты Positive Technologies.
К примеру, в начале прошлого года по интернету прокатилась мощная волна DDoS-атак с усилением через NTP. Во время такой атаки злоумышленники отправляют на NTP-сервер специальный запрос, а в качестве отправителя подставляют IP-адрес жертвы; NTP-сервер посылает на этот адрес вполне легитимный ответ, который может быть в несколько сот раз длиннее запроса — таким образом, сервер точного времени становится невольным усилителем атаки. Рекомендации CERT по защите от таких атак были опубликованы в январе прошлого года. Однако даже спустя полгода, в июне, насчитывалось ещё 17 тыс. уязвимых NTP-северов, причём многие из них продолжали участвовать в DDoS-атаках, усиливая мусорный трафик в сотни раз.
Конечно, ты можешь купить GPS-приемник в Китае за несколько долларов. А можешь и не покупать — все равно он есть у тебя в телефоне, в навигаторе в машине… Но если ты хочешь быть настоящим хакером-инженером и разобраться в технологии GPS на низком уровне, то добро пожаловать в эту статью. Разберемся так, что мало не покажется!
История разработки глобальной системы позиционирования (Global Positioning System, GPS) уходит корнями в 50-е годы прошлого века, а первый спутник был запущен в 1974 году. Первоначально система использовалась лишь военными, но после трагедии с самолетом авиакомпании Korean Airlines, который был сбит над территорией СССР, гражданские службы также получили возможность работы с GPS. В 1993-м окончательно было решено предоставить GPS для использования гражданскими службами на безвозмездной основе, а после отключения намеренного округления положения точность возросла со ста метров до двадцати. В наши дни точность продолжает увеличиваться, а стоимость приемников — снижаться. Поэтому сделать GPS-логгер, ну или навигатор, может любой, кто родился с паяльником вместо…ладно-ладно, это шутка была. Одно другого не исключает :).
Матчасть
Итак, что же должно делать наше устройство?
Получить информацию о текущем положении от GPS-приемника.
Разобрать ее.
Показать на экране текущее положение приемника, а также видимые спутники.
Для этого придется узнать, что таится за терминами GPS, NMEA-0183 и алгоритм Брезенхема.
GPS
Конечно, детально разбираться в нюансах работы GPS не требуется, поскольку всю работу по вычислению координат, скорости, курса и других параметров за нас возьмет на себя GPS-приемник. Но базу знать надо.
В первую очередь надо понять, что GPS-приемник ничего и никогда не передает спутникам (если ты мне не веришь, то просто обрати внимание, что приемники могут быть размером с флешку, в то время как антенны спутниковых телефонов порой больше самого телефона). Задача спутниковой навигации заключается в определении приемником своих координат, если известны точные координаты передатчиков. Если мы знаем расстояние до спутников, то с помощью элементарных геометрических построений можно с некоторой точностью рассчитать свои координаты.
Для нахождения расстояния между приемником и передатчиком необходимо сначала синхронизировать их часы, а затем посчитать искомое расстояние, зная скорость распространения радиоволны, а также задержку между временем передачи и временем приема.
Как я уже писал выше, приемнику необходимо знать точные положения передатчиков. Подобная информация предоставляется передатчиком и называется «альманах». Естественно, эта информация устаревает, поэтому в зависимости от «свежести» альманаха можно выделить три типа задержки между включением приемника и определения его первых точных координат: «холодный старт», «теплый старт» и «горячий старт».
Существуют способы, которые позволяют уменьшить время старта: AGPS (получение альманаха альтернативными способами — через интернет или Почтой России), DGPS (исключение искажения сигнала атмосферой) и другие. Но я их рассматривать не буду, поскольку для выполнения поставленной задачи этого не нужно.
Теперь разберемся с тем, в каком же виде рассчитанные координаты появляются на выходе устройства. Для этого существует специальный стандарт.
NMEA-0183
NMEA — National Marine Electronics Association, а NMEA-0183 (согласно Википедии) — текстовый протокол связи морского (как правило, навигационного) оборудования (или оборудования, используемого в поездах) между собой. Вот строки, приходящие от моего приемника.
Сначала определим похожие части каждой строки. Легко видеть, что все они начинаются одинаково и более-менее одинаково заканчиваются. $GP — информация идет от приемника GPS (ты ведь понимаешь, что на корабле куча других датчиков: если бы у нас был аварийный маяк, то строка начиналась бы с $EP, а если эхолот, то с $SD, ну и так далее). Каждая строка обязательно заканчивается контрольной XOR-суммой всех байтов в строке начиная от $ и заканчивая * — это как раз те два символа в конце строки. И не забываем про символы <CR> и <LF> после контрольной суммы. Разберем каждую из строк подробнее.
GPRMC — GPS Recommended Minimum Navigation Information sentence C — рекомендуемый минимум навигационной информации, строка типа С.
hhmmss.ss — время по всемирному координированному времени UTC, когда была произведена фиксация положения.
A — флаг достоверности информации. Если V, то информации верить нельзя.
aaaa.aaaaa — величина широты. Первые две цифры — градусы, вторые две — целое значение количества угловых минут, после точки — дробная часть количества угловых минут (переменной длины).
N — северная широта. Если S, то южная.
bbbb.bbbbb — величина долготы. Первые две цифры — градусы, вторые две — целое значение количества угловых минут, после точки — дробная часть количества угловых минут (переменной длины).
E — восточная долгота. Если W, то западная.
c.c — горизонтальная скорость в узлах (умножить на 1,852 для получения скорости в километрах в час), целая и дробная части имеют переменную длину.
d.d — направление скорости (путевой угол, курс) в градусах, целая и дробная части имеют переменную длину.
DDMMYY — текущая дата.
z1 — отсутствующая у нас величина направления магнитного склонения.
z2 — также отсутствующее у нас направление магнитного склонения.
e — индикатор режима.
ff — контрольная сумма.
$GPVTG,a.a,T,b.b,M,c.c,N,d.d,K,A*e
$GPVTG — GPS Track Made Good and Ground Speed — строка с информацией о курсе и скорости.
a.a — курс в градусах.
T — True, флаг достоверности информации.
b.b — направление магнитного склонения (у нас его нет).
M — Magnetic, да, действительно магнитное.
c.c — горизонтальная скорость в узлах (умножить на 1,852 для получения скорости в километрах в час).
N — kNots, узлы.
d.d — горизонтальная скорость в километрах в час (и умножать ничего не надо).
$GPGSA — GPS DOP and Active satellites — строка с информацией о спутниках, использованных для определения местоположения и о факторах снижения точности.
A — автоматический режим выбора работы в 2D или 3D, M — ручной режим, когда жестко выбран, например, 2D.
x — режим работы приемника: 0 — координаты не определены, 1 — режим 2D, 2 — режим 3D.
y1..y12 — номера спутников, используемых для определения местоположения приемника.
z1..z2 — PDOP, HDOP, VDOP (факторы снижения точности по положению, в горизонтальной плоскости и в вертикальной плоскости соответственно).
GPGSV — GPS Satellites in View — строка содержит в себе информацию о номере, азимуте, высоте над горизонтом и соотношением сигнал/шум спутника. В строке максимально может быть четыре спутника.
a — общее количество строк GPGSV.
b — номер текущей строки.
c1..c4 — номер спутника.
d1..d4 — высота над горизонтом в градусах (0..90).
e1..e4 — азимут спутника в градусах (0..359).
f1..f4 — соотношение сигнал/шум в дБ (0..99).
$GPGLL,5541.23512,N,03749.12634,E,174214.00,A,A*6D — на этой строке нет смысла останавливаться подробно, поскольку она содержит в себе координаты и время, а это мы уже имеем в строках GPRMC и GPGGA.
Разумеется, производителям GPS-приемников не запрещается добавлять собственные строки. У моего приемника можно при запуске увидеть такие:
Этот алгоритм является одним из самых старых алгоритмов компьютерной графики — он был разработан Джеком Брезенхемом (IBM) аж в 1962 году. С его помощью происходит растеризация графического примитива, другими словами, этот алгоритм определяет координаты пикселей, которые необходимо зажечь на экране, чтобы полученный рисунок примитива совпадал с оригиналом.
Представим, что мы рисуем линию, идущую из точки (0; 0) в (100, 32), как ты помнишь, у нашего экрана разрешение 128 x 64 точки. Несложно посчитать, что угол между этой прямой и осью Х составляет менее 45 градусов. Работа алгоритма заключается в последовательном переборе всех координат по оси Х в диапазоне от 0 до 100 и расчете соответствующей координаты Y. Логично, что в большинстве случаев значение координаты Y будет дробным, а это значит, что надо каким-то образом выбрать целочисленное значение координаты. Это делается путем выбора ближайшего пикселя. Для других углов наклона прямой, а также для окружностей, эллипсов и прочего алгоритм имеет аналогичный вид (подробнее о нем можно почитать в Википедии).
Алгоритм Брезенхема использует только операции сложения и вычитания целых чисел: обычно использование арифметики дробных чисел замедляет работу контроллера. Обычно, но не в нашем случае, поскольку внутри контроллера STM32F303VC находится ядро ARM Cortex-M4 с FPU. FPU (Floating Point Unit) — устройство, ускоряющее работу с дробными числами (математический сопроцессор), поэтому нас ничто не ограничивает и мы можем использовать алгоритм DDA-линии. Интересную демонстрацию ускорения работы МК при рисовании фракталов можно посмотреть на YouTube.
Железо
Что же мы используем в проекте?
Отладочную плату STM32F3-Discovery;
модуль UART GPS NEO-6M от WaveShare на базе приемника u-blox NEO-6M;
ЖК-матрицу МТ-12864А.
Про ЖК-экран я рассказывал в сентябрьском номере (№ 188), кратко лишь скажу, что сделан он на базе контроллеров KS0108, а схема подключения к STM32F3-Discovery не изменилась: разъем для подключения экрана содержит в себе 20 пинов, описание представлено в списке по следующей маске: <номер> — <название из даташита> — <описание из даташита> — <куда подключается>.
1 — Ucc — питание — к 5V на Discovery.
2 — GND — земля — к GND на Discovery.
3 — Uo — вход питания ЖК-панели для управления контрастностью — к подстроечному резистору.
4..11 — DB0..DB7 — шина данных — к PD0..PD7 на Discovery.
12, 13 — E1, E2 — выбор контроллера — к PD8,PD9 на Discovery.
14 — RES — сброс — к PD10 на Discovery.
15 — R/W — выбор: чтение/запись — к PD11 на Discovery.
16 — A0 — выбор: команда/данные — к PD12 на Discovery.
17 — E — стробирование данных — к PD13 на Discovery.
18 — Uee — выход DC-DC преобразователя — к подстроечному резистору.
NEO-6M
Данный приемник производится швейцарской компанией u-blox, основанной в 1997 году. Линейка модулей Neo-6 представлена разновидностями G, Q, M, P, V и T, каждый из которых обладает своими характерными возможностями: например, Neo-6P имеет возможность очень точного (с ошибкой <1 м) определения положения за счет метода Precise Point Positioning (PPP).
Приемник Neo-6M обладает следующими свойствами:
время холодного или теплого старта — 27 с;
время горячего старта — 21 с;
максимальная частота выдачи информации — 1 Гц;
диапазон частот импульсов на пин PPS — 0,25 Гц — 1 кГц;
максимальная точность определения положения — 2,5 м;
максимальная точность определения скорости — 0,1 м/с;
максимальная точность определения курса — 0,5 градуса.
Neo-6M умеет использовать SBAS (Satellite Based Augmentation System) — спутниковые системы дифференциальной коррекции, что увеличивает точность определения положения до 2 м, а также AGPS (Assisted GPS) для снижения времени холодного старта. Получение данных AGPS происходит с сайта u-blox с помощью сервисов AssistNow Online и AssistNow Offline (долгосрочный альманах). Модуль обладает поддержкой протоколов NMEA, UBX и RTCM. UBX — проприетарный протокол от u-blox, а RTCM — протокол для передачи модулю данных о дифференциальной коррекции DGPS. Также для связи доступны интерфейсы UART, I2C, SPI и USB.
Для работы с приемниками существует оригинальная утилита u-center, имеющая на момент написания статьи версию 8.11 (рис. 1).
Рис. 1. Общий вид u-center
Видно, что Neo-6M обладает огромным потенциалом, но детально описать все его возможности не хватит места, поэтому ограничимся предлагаемыми из коробки: только UART на скорости 9600, только NMEA, частота импульсов — 1 Гц.
В плане подключения все предельно просто: линии VCC, GND, RX и TX на приемнике подключаем к +3.3V, GND, PA9 и PA10 на Discovery соответственно.
Программа
Она должна отображать текущее положение приемника, скорость, направление движения, факторы снижения точности, время, дату, а еще показывать в полярной системе координат используемые спутники. Вот примерно так, как это делает u-center на рис. 2.
Рис. 2. Ожидание того, что будет показано на экранчике 128 х 64
Как только строка line от Neo-6M принимается контроллером, происходит ее разбитие на токены (массив charTokens) — на подстроки, которые в исходной строке разделены запятыми.
char *token = malloc(strlen(line) + 1);
char *token2 = malloc(strlen(line) + 1);
int currentTokenNumber = 0;
int currentCharInTokenNumber = 0;
strcpy(token, line);
char *delimeter = ",";
while (token != NULL) {
token2 = strpbrk(token + 1, delimeter);
if (token2 == NULL) {
// В конце строки меняем разделитель на "*"
delimeter = "*";
token2 = strpbrk(token + 1, "*");
}
/* Копируем часть строки между разделителями */
currentCharInTokenNumber = 0;
/* Очищаем значение токена */
memset(charTokens[currentTokenNumber], '', MAX_TOKEN_LENGTH);
for (char *ch = token + 1; ch < token2; *(ch++)) {
charTokens[currentTokenNumber][currentCharInTokenNumber] = *ch;
currentCharInTokenNumber++;
}
currentTokenNumber++;
if (delimeter[0] == '*') {
token = NULL;
} else {
token = token2;
}
}
Казалось бы, вполне логично использовать функцию strtok, но я этого не делаю. Причину покажу на примере. Пусть имеется строка a,b,,,c. Результат разбития ее на токены с помощью strtok будет таким: 'a', 'b', 'c'. Для разбора NMEA это недопустимо, поскольку в этом протоколе значения токенов зависят от положения в строке. Результат работы описанного выше метода включает в себя пустые токены — 'a', 'b', '0', '0' 'c'.
Для удобного хранения информации о положении приемника, о точности определения положения, а также о параметрах спутников были написаны три структуры данных.
Положение и скорость приемника, а также дата и время:
struct _minimumNavigationInfo {
float latitude;
char latModificator; // East or West
float longitude;
char lonModificator; // North or South
float groundSpeed;
float speedAngle;
float height;
char heightModificator; // Metres or smth else
char time[9]; // "hh:mm:ss"
char date[9]; // "DD.MM.YY"
char isValid;
};
Структура о номере спутника, его положении и качестве сигнала:
struct _satelliteInfo {
int satelliteId;
float height;
float azimuth;
float SNR; //signal-to-noise ratio -- соотношение сигнал/шум
int isFull;
};
Если информация о спутнике не полная, например есть информация о высоте и азимуте, но нет о соотношении сигнал/шум, то в поле isFull записывается нулевое значение. Такие спутники при выводе на «радар» будут игнорироваться.
Заполнение структуры на основе массива токенов происходит очень просто: после разбора строки GPGSA в массиве charTokens значения факторов снижения точности *DOP находятся в элементах за номерами 15, 16 и 17.
А в качестве домашнего задания я поставлю перед тобой три задачи: 1. Добавить возможность записи трека. 2. Заменить монохромный экран на цветной. 3. Вместе с WizFi220 (из номера 188) снабдить устройство возможностью получения A-GPS. Если возникли какие-нибудь вопросы, пиши мне на email, который можно найти в начале статьи. Удачи!
SRC
Весь код ты можешь найти на https://github.com/argrento. Просто скопируй с заменой файлы в папку Template из Standard Peripheral Library.
В суде Нью-Йорка продолжается процесс над Россом Ульбрихтом, который уже признался, что придумал и создал сайт Silk Road (но не причастен к его последующей деятельности и нелегальным операциям).
22 января 2015 года дело дошло до одной из главных улик — ноутбука Samsung 700z. Упакованный в толстую пластиковую плёнку лаптоп агенты ФБР предъявили судье. Именно этот ноутбук был изъят у Росса Ульбрихта во время задержания в октябре 2013 года.
Важность улики была настолько велика, что для получения ноутбука пришлось разыграть целую сцену в библиотеке, где брали Ульбрихта. Агенты ФБР (мужчина и женщина) начали публичную ссору. Ульбрихт отвлёкся, чтобы посмотреть на них — и в этот момент другой агент быстро вытащил ноутбук у него из-под рук. Затем уже был произведён стандартный арест.
В последующие часы айтишники ФБР тщательно исследовали ноутбук и фотографировали экран, тщательно следя, чтобы ноут не ушёл в спящий режим (с шифрованием информации). Потом они сделали копию содержимого жёсткого диска.
Сейчас обвинение начало предъявлять многочисленные улики, полученные с жёсткого диска, в том числе личный дневник Росса Ульбрихта с подробной хронологией работы над Silk Road, деталями персональных финансов и подробностями личной жизни.
На компьютере найдены копии паспортов и водительских лицензий Ульбрихта, расчётные ведомости по выплате зарплаты сотрудникам Silk Road, логи активности персонала, сканы удостоверений личности админов Silk Road.
Личный дневник Ульбрихта ведёт начало с 2010 года, когда у Росса появилась идея создать сайт Silk Road и продавать там задёшево галлюциногенные грибы, которые он выращивал. Ульбрихт описывает всё, чем занимался ежедневно, включая личные цели, повседневную работу и выпивки с друзьями.
В первой части дневника Росс Ульбрихт выражает неудовлетворённость жизнью, что и привело к созданию Silk Road. В то время он работал в компании Good Wagon Books в Остине (Техас), которая перепродажей использованных книг. Затем устроился в American Journal Experts и редактировал научные статьи, написанные иностранными учёными. «Это было мрачно. Я ненавидел работать на кого-то ещё, продавая своё время за деньги без инвестиций в себя», — пишет он.
Затем Ульбрихт начал проект Silk Road, который первоначально назывался Underground Brokers. Идея была в том, чтобы открыть площадку, где люди могут анонимно продавать и покупать товары. Дешёвые галлюциногенные грибы с личной плантации должны были стать первым товаром, который привлечёт аудиторию.
Дневник за 2011 год описывает начало работы сайта, продажи грибов, попытки разобраться в PHP, MySQL, bitcoind, хостинг сайта, анонс на форумах BitcoinTalk, первые регистрации, первые заказы. Сложнее всего было в тот момент, когда пришлось переписывать код сайта, тем более что именно в этот период к Silk Road пришла известность. Когда Ульбрихт начал зарабатывать $20-25K в месяц, он решил нанять первых сотрудников.
Он описывает знакомство с некоей Джессикой: они понравились друг другу, но Росс не мог искренне говорить, потому что ему приходилось скрывать часть правды о себе. Выдумать полностью новую личность он не мог, так что частички правды выплывали наружу в разговорах: «Все знают слишком много. Чёрт побери», — ругался Ульбрихт в дневнике.
В папке TorChat на компьютере Ульбрихта найдены логи чатов за несколько лет (1100 страниц в распечатанном виде). В некоторых из них Ульбрихт представляется под ником DPR.
Следствие продолжается. По предварительным оценкам, процесс продлится не меньше месяца.
Вчера состоялось обновление самого популярного браузера в мире Google Chrome. Для пользователей на стабильном канале под Windows, Mac и Linux теперь происходит обновление до версии Chrome 40.0.2214.91.
Пожалуй, самым заметным изменением в новой версии стала давно анонсированная блокировка плагинов NPAPI. При открытии веб-страницы, которая требует загрузку плагина для отображения контента, пользователи видят такое сообщение в адресной строке.
Начиная с версии Chrome 40 полностью удалён «белый» список плагинов, разрешённых по умолчанию.
Интерфейс NPAPI (Netscape Plugin Application Programming Interface) традиционно используется апплетами Java, приложениями Silverlight, Unity и др. Интерфейс был разработан компанией Netscape в далёкие 90-е годы, а сегодня стал реальной брешью в безопасности браузеров.
Тем не менее, плагины NPAPI до сих пор широко применяются в интернете, хотя и постепенно вытесняются приложениями HTML5.
Нажав на уведомление, показанное выше, возникает окно с выбором: продолжать блокировку плагинов (по умолчанию) или разрешить их на этом сайте.
Но это тоже временная опция. С апреля 2015 года Google обещает полностью отключить плагины NPAPI в браузере Chrome. Это включает в себя и удаление всех соответствующих расширений из каталога Chrome Web Store. Отключить блокировку плагинов можно будет с помощью команды в адресной строке chrome://flags/#enable-npapi и активации соответствующей опции в списке настроек. Но с сентября 2015 года даже эту опцию собираются убрать из настроек, так что с плагинами NPAPI мы попрощаемся навсегда.
Кроме начала операции по отключению плагинов NPAPI, в новой версии браузера сделано несколько других изменений:
Поддержка программных интерфейсов Service Workers, с помощью которых можно перехватывать сетевые запросы и обеспечивать работу сайтов и веб-приложений при отсутствии подключения к интернету (видео).
Поддержка новых директив, представленных в Content Security Policy (CSP) Level 2.
Поддержка нового метода reportValidity, упрощающего разработку веб-форм (теперь не нужно вручную прописывать сообщения об ошибках валидации форм его в JavaScript).
Атрибут minlength, через который задаётся минимальное число символов, которые необходимо ввести в поле ввода.