Как узнать поддерживает ли процессор aes
В настоящее время я пытаюсь выяснить, будет ли хорошей идеей обновить мой слегка устаревший ноутбук (Windows 7, 64-разрядная версия) до Windows 10. Проблема заключается в том, что Microsoft заявляет в своих спецификациях Windows 10, что использовать Требуется 64-разрядная версия Windows 10, процессор с поддержкой CMPXCHG16b, PrefetchW и LAHF / SAHF. Я знаю, что мой процессор 64-разрядный (Intel Core i5-2430M @ 2,40 ГГц), но я не знаю, как выяснить, поддерживает ли он CMPXCHG16b, PrefetchW и LAHF / SAHF, и я понятия не имею, что они означают.
Я попытался использовать Google и не получил никаких результатов, которые имели бы для меня смысл, только сравнение моего i5 и аналогичного процессора AMD. Я также проверил веб-сайт Intel ARK. Если бы кто-то мог указать мне, где я могу получить больше информации, я был бы очень благодарен.
Я думаю, что вы слишком беспокоитесь. I5 относительно недавно и будет в порядке. Тем не менее, общее правило - не запускать 64-битную версию, если у вас не более 4 ГБ ОЗУ, из-за накладных расходов работа может выполняться медленнее, чем быстрее. Windows 32bit может иметь прямой доступ только чуть меньше, чем 4 ГБ, поэтому, только если вы перешли, стоит 64bit
Если вы можете обновить до Windows 8.1, вы можете обновить до Windows 10. Вы также можете запустить проверку совместимости для обоих, если хотите.
Запустите инструмент под Windows 7, который отображает данные CPUID, который сообщает вам, поддерживает ли CPU фьючерсы. Я использую I5-3xxxM, и здесь работает Windows 8.1, поэтому она имеет 3 функции. Вы отстаете только на 1 поколение, поэтому оно также должно поддерживать все функции.
@JulianKnight Я бы посоветовал 64бит любому, у кого есть 2 или 3 Гб и выделенная графическая карта, так как память видеокарты также должна вписываться в адресное пространство. Если у вас 4 ГБ ОЗУ и видеокарта 2 ГБ, то вы просто потратили 2 ГБ ОЗУ и оказались в худшем положении, чем если бы вы установили 64-разрядную версию.
Не беспокойся об этом. За исключением некоторых ранних процессоров Atom или x86_64, все процессоры Intel (чуть больше, чем) десятилетие назад могут без проблем запускать windows 10
Итоги
Биометрическая идентификация пользователей отличается от традиционной схемы, использующей имя и пароль. Биометрические данные человека практически невозможно изменить. Как результат, этот подход к аутентификации требует повышенного уровня безопасности систем.
Intel предлагает различные аппаратные технологии, доступные как в настольных компьютерах, оснащённых процессорами Intel, так и на мобильных устройствах. Эти технологии могут помочь разработчикам биометрических решений в создании более защищённых систем аутентификации без необходимости задействовать дополнительное аппаратное обеспечение.
Действительно ли CHACHA20 со своим верным спутником POLY1305 позволяют не слишком греться мобильным клиентам и стоит ли его поддерживать на веб-сервере? Давайте это обсудим!
CHACHA20 был создан известным специалистом по криптографии Дэниэлом Бернштейном, которого мы любим, в частности, за Curve25519, а также за правозащитную деятельность, благодаря которой только олдфаги помнят, что означало _EXPORT_ в имени шифронабора. Алгоритм неплохо изучен, работает в AEAD-режиме, не имеет известных слабостей и уязвимостей, и является одним из двух алгоритмов шифрования, одобренных IETF для использования в TLS 1.3 (второй – бессмертный AES).
Его теоретическая криптостойкость при использовании в TLS оценивается по-разному, в интервале между AES-128 и AES-256 в режиме GCM, что считается достаточным по сегодняшним меркам и на обозримую перспективу. При этом отмечается, что CHACHA20 «быстрее» AES, т.е. «потребляет меньше процессорных ресурсов на обеспечение того же уровня криптостойкости». Эта формулировка не только отдает душком телемаркетинга (при всем уважении к ее автору), но и упускает важную деталь: на процессорах без аппаратной поддержки AES.
И тут мы наконец возвращаемся к «бюджетным мобильным процессорам», которые перегреваются под AES, начинают троттлить и требовать жидкого азота (сарказм). Производители процессоров в курсе проблемы и решили ее добавлением соответствующего набора инструкций. В x86-совместимых процессорах это AES-NI, в других – свои названия (и свой набор). И тут мы переходим к самому интересному: поддержке AES процессорами.
Intel представил поддержку AES-NI в 2010 году в процессорах архитектуры Westmere, причем далеко не во всех: Atom, Celeron, Pentium и Core i3 она еще долго не полагалась. В поддержке AES-NI без копания в спецификациях можно быть уверенным только начиная с архитектуры Goldmont (Apollo Lake и Denverton), а это уже 2016 год.
Проще говоря, встретить процессор без аппаратной поддержки AES не так уж и сложно. Получается, CHACHA20, действительно, отличная альтернатива AES? Давайте взглянем, например, на результаты этого исследования. На процессорах без поддержки AES CHACHA20 заметно опережает его в производительности, зачастую в разы. К сожалению, замеров температуры нам не показали, но если речь идет о серверном процессоре, очевидно, что разница в потребляемых процессорных ресурсах значима.
Ситуация меняется на прямо противоположную, когда речь заходит о процессорах с поддержкой AES. Вряд ли стоит винить в этом CHACHA20, которому никто не предложил персональный набор инструкций в процессоре, а что бывает, когда оба участника играют по одним правилам, мы видели на старых процессорах (напоминаю: AES сливает).
Так что, дружно включаем поддержку CHACHA20 на веб-серверах? Почему бы и нет, хотя бы из того соображения, что все яйца в одну корзину не кладут, и если вдруг завтра в самом AES или его реализации в конкретной криптобиблиотеке найдут дыру, мы легким движением руки сможем отключить его «до выяснения», оставшись на CHACHA20, а не судорожно искать, чем заменить AES, да как это включается.
Куда менее однозначен вопрос о месте CHACHA20 в нашей жизни списке шифронаборов, предлагаемых веб-сервером для согласования, то есть о его приоритетности.
И тут в эту стройную картину мира влезает шифронабор на базе CHACHA20, который мы добавляем из соображений снижения нагрузки на «слабых» с аппаратной точки зрения клиентов, ничего не зная о том, являются ли они одновременно «устаревшими» или нет (т.е. флагманом этого года от третьеразрядной китайской компании или середнячком пятилетней давности от первостатейного бренда). Клиент сообщает, что поддерживает TLS 1.3 и полный комплект соответствующих шифронаборов, как на базе AES, так и на базе CHACHA20. Ваше решение, админ, какой шифронабор согласовываем клиенту? Вот и я о том же…
Аппаратное ускорение шифрования является очень важной функцией на серверах NAS и на наших ПК, благодаря этой функции процесс шифрования и дешифрования с помощью алгоритма симметричного шифрования AES выполняется с помощью инструкций в процессоре, обеспечивая более высокую производительность, чем если бы вы делали это непосредственно на уровень программного обеспечения операционной системы. AES (Расширенный Шифрование Standard) в настоящее время является наиболее широко используемым симметричным шифрованием, по этой причине все процессоры включают это ускорение шифрования. Сегодня в этой статье мы собираемся подробно объяснить, что такое аппаратное ускорение шифрования, как оно работает и как оно улучшает производительность нашего NAS-сервера.
Обзор технологий
Вот краткий обзор технологий Intel, которые могут поднять безопасность биометрических систем на новый уровень.
Жёлтыми значками показаны области применения технологий Intel для повышения безопасности биометрических приложений.
- Intel SGX
- Защита кода и данных во время выполнения приложений.
- Организация защищённого локального хранения информации.
- Организация безопасного обмена важными данными по сети.
- Защита памяти приложений, работающих с уровнем привилегий Ring-3
- Защита памяти драйверов, работающих с уровнем привилегий Ring-0
- Защита данных, хранимых на различных носителях информации, в оперативной памяти, передаваемых по сети.
- Значительное ускорение процедур шифрования и дешифрования
- Организация многофакторной аутентификации
- Защита информации, выводимой на дисплей, и данных, которые вводит пользователь
- Организация испытаний на живучесть.
Intel Secure Key
Если нужно сгенерировать ключевую пару или создать случайное адресное пространство, генератор настоящих случайных чисел лучше, чем генератор псевдослучайных чисел. Технология Intel Secure Key предоставляет x86-инструкцию RDRAND, которую можно использовать для создания высококачественного генератора случайных чисел.
Инструкция RDRAND воплощает инновационный подход к созданию высококачественного, высокопроизводительного генератора случайных чисел, основанного на аппаратном источнике энтропии. Генератор построен по каскадной модели, он задействует встроенный в процессор источник энтропии для периодической инициализации аппаратного криптографически безопасного генератора псевдослучайных чисел. В результате инструкция RDRAND может генерировать случайные числа, соответствующие стандарту NIST SP 800-90A. Для наиболее распространённых вариантов использования её можно считать генератором подлинно случайных чисел.
Инструкция RDRAND получает данные из внутреннего аппаратного генератора случайных чисел
Существует много способов использования RDRAND.
1. Вызов RDRAND напрямую в коде на ассемблере или на встроенном ассемблере в C++.
2. Использование библиотеки от Intel (librdrand). Она написана на C/C++. Существуют версии для Windows, и для Linux и OS X.3. Использование библиотек сторонних поставщиков.
FTPES: протокол FTP с шифрованием данных
Безопасный протокол FTP, также известный как FTPES, также явно выигрывает от этой очень важной функции серверов NAS. FTPES использует протоколы TLS 1.2 или TLS 1.3 для канала управления, однако для канала данных, по которому мы собираемся передавать всю информацию, он обычно использует AES-GCM, хотя в зависимости от конфигурации сервера FTPES это может измениться. . Настройка на сервере NAS QNAP так же проста, как щелчок «FTP с SSL / TLD (явный)», чтобы активировать эту важную функцию.
В FileZilla в правом нижнем углу появится замок, указывающий на то, что соединение зашифровано и безопасно.
VPN-сервер с высочайшей производительностью
Большинство серверов NAS имеют VPN серверы для безопасного и удаленного подключения нас к локальной сети. Если наш NAS включает AES-NI, и мы используем такие протоколы, как OpenVPN, основанный на TLS, мы можем добиться большей пропускной способности для загрузки или выгрузки файлов. В наших тестах мы подтвердили, что NAS с аппаратным ускорением шифрования, такой как QNAP TS-1277, способен обеспечивать симметричную скорость до 500 Мбит / с, однако, если бы у него не было аппаратного ускорения шифрования, производительность была бы примерно 100 Мбит / с, т. как в настоящее время имеет место с маршрутизаторами, которые интегрируют VPN и не имеют аппаратного ускорения шифрования. Если ваш NAS-сервер не поддерживает AES-NI, хорошей альтернативой может быть использование WireGuard, этот безопасный протокол VPN намного быстрее, чем OpenVPN или IPsec IKEv2, поэтому его настоятельно рекомендуется использовать.
Как видите, сегодня важно, чтобы сервер NAS имел аппаратное ускорение шифрования, кроме того, также настоятельно рекомендуется, чтобы наши ПК включали эту важную функцию, чтобы в полной мере использовать скорость локальных сетей, которой они являются сегодня. уже мультигигабитный (2.5G и далее).
Расширение ключа/ExpandKey
Алгоритм расширения ключа в псевдокоде выглядит так:
Для аппаратной поддержки надо использовать инструкцию AESKEYGENASSIST, которая выполнит:
Как легко заметить, инструкция не выполняет:
Эти операции придется выполнить самим, используя MMX инструкции
Что такое AES и что означает AES-NI?
AES (Advanced Encryption Standard) - это схема блочного шифрования, которая в настоящее время является стандартом шифрования во всем мире, с 2006 года она зарекомендовала себя как наиболее широко используемый алгоритм симметричного шифрования в мире. Этот алгоритм симметричного шифрования имеет фиксированный размер блока 128 бит и длину ключа 128, 192 и 256 бит. В настоящее время AES считается безопасным симметричным алгоритмом шифрования, хотя есть режимы шифрования AES, которые более безопасны, чем другие, в дополнение к обеспечению дополнительных характеристик конфиденциальности, таких как аутентичность (целостность), если мы уже используем GCM (режим счетчика Галуа), который это AEAD (аутентифицированное шифрование со связанными данными). Кроме того, режим шифрования GCM в AES обеспечивает более высокую производительность, позволяя управлять данными параллельно.
Производители процессоров, такие как Intel, AMD or ARM интегрировали набор инструкций AES в свои процессоры с целью значительного повышения производительности при шифровании и дешифровании данных, благодаря чему скорость чтения и записи явно очень высока по сравнению с другим процессором, который не имеет этой функции. Этот набор инструкций AES обычно называется AES-NI (Advanced Encryption Standard New Instructions) или просто аппаратным ускорением шифрования, чтобы указать, что конкретный процессор поддерживает эту технологию.
Ваш процессор поддерживает эти функции. Фактически, те же функции необходимы для запуска 64-битной Windows 8.1. Это требование выполняется всеми современными процессорами и, как правило, является проблемой только для некоторых Core 2 и более ранних процессоров.
Каковы эти инструкции?
- CMPXCHG16B Инструкция выполняет атомное сравнение-и-обмен на значениях 16 байт. Он поддерживается на всех современных процессорах x86-64 , хотя некоторые ранние процессоры AMD64 его не поддерживали. Эта инструкция также может упоминаться как CompareExchange128 . См. Также: Насколько распространены в старых процессорах x64 инструкции cmpxchg16b?
- В ранних процессорах AMD64 отсутствовала CMPXCHG16B инструкция, которая является расширением CMPXCHG8B инструкции, присутствующей на большинстве процессоров после 80486. Аналогично CMPXCHG8B , CMPXCHG16B допускает атомарные операции над восьмеричными словами. Это полезно для параллельных алгоритмов, которые используют сравнение и обмен данными, размер которых превышает размер указателя, что часто встречается в алгоритмах без блокировки и без ожидания. Без этого CMPXCHG16B нужно использовать обходные пути, такие как критический раздел или альтернативные подходы без блокировки. Его отсутствие также не позволяет 64-битной Windows до Windows 8.1 иметь адресное пространство пользовательского режима больше 8 терабайт. 64-битная версия Windows 8.1 требует инструкции.
Эта PREFETCHW инструкция является подсказкой процессору для предварительной загрузки данных из памяти в кэш в ожидании записи ( Справочник по инструкциям Intel , PDF, страница 888). Эта инструкция была введена в 3DNow от AMD ! набор инструкций, который осуждается за исключением PREFETCH и PREFETCHW инструкций. Все процессоры AMD начиная с Athlon 64 поддерживают эту инструкцию. Однако эта инструкция может не поддерживаться в некоторых старых 64-разрядных процессорах Intel, выпущенных до Nehalem .
LAHF И SAHF нагрузки и сохранять содержимое AH регистра в регистре флагов, соответственно (Intel Instruction Set Reference, PDF страницы 530 и 1025). Некоторые старые процессоры Intel без аппаратной виртуализации (VT-x) не поддерживают эту инструкцию при работе в длинном 64-битном режиме ; они в основном ограничены некоторыми младшими процессорами, предшествующими Nehalem . Некоторые очень старые процессоры AMD64 также не имеют этой функции.
- В ранних процессорах AMD64 и Intel 64 отсутствовали инструкции LAHF и SAHF в 64-битном режиме. AMD представила эти инструкции (также в 64-битном режиме) со своими процессорами Athlon 64, Opteron и Turion 64 ревизии D в марте 2005 года, в то время как Intel представила инструкции со степпингом Pentium 4 G1 в декабре 2005 года. 64-битная версия Windows 8.1 требует этой функции.
Что это значит для меня?
Все процессоры Intel Core i7, i5 или i3, а также все процессоры Pentium или Celeron на основе Clarkdale , Arrandale , Sandy Bridge или более новых микроархитектур поддерживают эти функции, а также процессоры Intel Atom и Celeron Silvermont . Для AMD все, кроме самых старых 64-битных процессоров, имеют эти функции.
Как правило, эти инструкции необходимо учитывать только в том случае, если у вас есть процессор, предшествующий описанному выше. Приложение Get Windows 10 сообщит вам, можно ли выполнить обновление до Windows 10. Если процессор не соответствует требованиям, вы получите « CPU не поддерживается ».
Следует отметить, что хотя эти конкретные функции и требуются для запуска Windows 8.1, не все функции ЦП, необходимые для запуска Windows 10, необходимы для запуска Windows 8.1. В частности, PAE и NX не требуются по 8.1, но обязательны для 10
Может быть, вы думали об инструкциях SSE PREFETCHh, которые существовали, по крайней мере, с PentiumIII.
@bwDraco: да. Его 0F 0D r/m8 кодирование машинного кода декодируется как многобайтовая NOP на процессорах, которые не поддерживают PREFETCHW, поэтому, очевидно, нет проблем с совместимостью. (Поведение инструкций предварительной выборки не влияет на правильность, только на производительность.) Я попробовал это на своем процессоре Core2Duo, в asm-программе, которая запускается prefetchw [rsp] , и инструкция выполняется без сбоев. Но я на 99% уверен, что это не имеет никакого эффекта.
Хорошо, здесь есть два значения для «поддержки»: Win8.1, очевидно, требует, чтобы PREFETCHW ( 0F 0D m8 ) не выдавал ошибку как недопустимую инструкцию, как в случае с процессорами Intel после P4, по крайней мере, как обсуждалось здесь . Они запускают его как бездействие (до Broadwell), и, конечно, этого достаточно для Win8.1 (потому что предварительные выборки в любом случае являются спекулятивными подсказками, которые не влияют на правильность). Я не осознавал поведение NOP или то, что оно было другим на старых процессорах.
Для начало, необходимо убедится что расширение AES-NI присутствует в нашем процессоре. Для этого существует специальная команда CPUID, которая при значение eax=0x00000001, должна выставить в регистрах биты относительно присутствующих расширений. Для расширения AES это 25 бит регистра ECX:
код проверки AES-NI:Если бит установлен в 1, значит мы можем переходить к шифрованию.
SMB 3.0 - зашифрованные передачи по локальной сети
Последний протокол SMB 3.0 не только позволяет нам выполнять безопасную аутентификацию с использованием шифрования, но и вся передача данных от источника к месту назначения может быть зашифрована с использованием симметричного алгоритма шифрования AES. Если сервер NAS поддерживает функцию ускорения аппаратного шифрования, мы можем видеть, что производительность, которую мы получим, такая же или почти такая же, как если бы мы использовали SMB 2.0, который не использует шифрование данных.
Благодаря включению AES-NI мы сможем защитить все наши коммуникации в локальной сети с целью, чтобы, если кто-то сможет перехватить информацию, он не сможет ее расшифровать, сохраняя нашу конфиденциальность.
Intel AES-NI
Intel Advanced Encryption Standard New Instructions (Intel AES-NI) – это набор инструкций, разработанный для ускорения приложений, использующих один из самых популярных симметричных алгоритмов шифрования AES. AES широко используют для шифрования данных, хранящихся в оперативной памяти и на жёстких дисках, для защиты информации, передаваемой по сети. Делается это для того, чтобы защитить конфиденциальные данные даже в том случае, если злоумышленнику удастся их скопировать с некоего носителя или перехватить при передаче.
Шифрование канала передачи данных с использованием AES
Для того, чтобы повысить запас надёжности, рекомендуется выполнять шифрование с использованием нескольких раундов AES, что эквивалентно увеличению длины криптографического ключа. В 2010 году Intel представила новый набор инструкций (Intel AES-NI), который предлагает полную аппаратную поддержку шифрования и дешифровки AES. Это позволяет увеличить производительность и снизить потребление памяти. В наши дни практически все настольные и мобильные процессоры Intel поддерживают AES-NI. Вот, какого прироста производительности удаётся достичь при использовании AES-NI в сравнении с полностью программной реализацией алгоритма, не использующей эти команды.
Тестируемое устройство построено на базе Intel Atom Z3770 (Bay Trail) FFRD8 PR1, оно работало под управлением Android 4.4, использовалось OpenSSL native C API.
Режим (CBC/256) Размер файла, Мб. С AES-NI, сек. Без AES-NI, сек. Шифрование 351 2,89 14,59 56 0,48 2,63 Дешифровка 351 1,76 19,78 56 0,29 3,16
Как видно из данных, приведённых в таблице, при шифровании использование инструкций Intel AES-NI дало 5-кратный рост производительности. При дешифровке – 11-кратный рост. Нужно отметить, что использование AES-NI позволяет снизить энергопотребление примерно на 40%.В настоящее время большинство популярных операционных систем содержат встроенную поддержку Intel AES-NI. Когда некое приложение обращается к криптографическому API, которое предоставляет система, например, к Windows CNG API или к классу Javax.crypto в Android, низкоуровневый драйвер автоматически задействует инструкции AES-NI для повышения производительности. Кроме того, многие библиотеки, например, OpenSSL 1.0.1, Intel Integrated Performance Primitives, Crypto++, оптимизированы с целью максимально эффективного использования AES-NI.
Как узнать, поддерживает ли мой NAS-сервер аппаратное ускорение шифрования?
Когда мы покупаем NAS-сервер, обычно на официальном сайте производителя указывается, поддерживает ли он аппаратное ускорение шифрования или нет, однако всегда было бы целесообразно посмотреть, какой процессор у этого NAS-сервера, и зайти на официальный сайт производителя процессора и надежно проверьте, действительно ли он поддерживает AES-NI или аппаратное ускорение шифрования, чтобы устранить любые сомнения по этому поводу. Мы собираемся предоставить вам два наглядных примера серверов NAS, поддерживающих аппаратное ускорение шифрования, один с процессором Intel, а другой с процессором AMD.
Если мы зайдем на официальный сайт модели QNAP TVS-h1288X, мы увидим, что этот NAS-сервер действительно включает механизм шифрования AES-NI, следовательно, у нас есть аппаратное ускорение шифрования.
Этот NAS-сервер включает в себя процессор Intel Xeon W-1250, если мы зайдем на официальный веб-сайт Intel, мы сможем убедиться, что он эффективно поддерживает «Новые инструкции от AES Intel», поэтому мы можем подтвердить, что этот процессор поддерживает аппаратное ускорение шифрования.
В случае NAS-сервера QNAP TS-473A, который является более дешевым, чем предыдущий, он включает в себя процессор AMD Ryzen V1500B, согласно официальному веб-сайту QNAP, у нас также будет аппаратное ускорение шифрования AES-NI, поэтому мы обеспечит отличную производительность при шифровании и дешифровании информации.
Если мы зайдем на официальный сайт семейства процессоров AMD Ryzen V1500, мы увидим в разделе безопасности, что у него есть различные функции, связанные с шифрованием данных и безопасностью, однако это явно не указывает на то, что у него есть AES-NI.
Если мы зайдем на любой сайт сравнения процессоров, мы увидим, что он поддерживает AES-NI, как вы можете видеть ниже:
Сегодня все процессоры Intel и AMD, которые появляются на рынке, даже если они начального уровня, имеют аппаратное ускорение шифрования AES-NI, потому что сегодня это очень необходимая функция, поэтому мы объясним ниже.
Шифрование томов и папок
Серверы NAS через их операционные системы позволяют настраивать шифрование томов, а также папок Например, в случае QNAP мы можем зашифровать (зашифровать) весь том, чтобы максимально защитить информацию в случае удаления жесткого диска или физического кражи NAS. Таким образом, все данные, которые мы копируем на этот том, будут зашифрованы и расшифрованы на лету, а процессор позаботится об этой задаче. Если у нас есть процессор с AES-NI, мы заметим, что все идет отлично, и у нас нет каких-либо узких мест, кроме того, мы сможем увидеть, что использование процессора не достигает значений 90% или 100% при передаче файлов. Если бы у нас не было этой функции, мы бы увидели, что основной процессор сервера NAS взорвется при 100% использовании, а производительность чтения и записи будет явно ниже, потому что у нас будет узкое место из-за этого шифрования / дешифрования данных.
В любой момент мы можем заблокировать доступ к этому зашифрованному тому, изменить пароль и другие параметры управления зашифрованным томом:
Еще одна интересная особенность заключается в том, что мы можем зашифровать только папку, нет необходимости шифровать весь том. В этом случае мы также будем использовать популярный алгоритм симметричного шифрования AES для задачи шифрования и дешифрования данных. Если у нас есть процессор с AES-NI, мы можем иметь такую же производительность, как если бы папка не была зашифрована, таким образом, всегда рекомендуется зашифровать все содержимое.
Как видите, у нас есть возможность зашифровать только одну папку, однако мы рекомендуем использовать шифрование тома напрямую.
Ваш процессор поддерживает эти функции. Фактически, те же функции необходимы для запуска 64-битной Windows 8.1. Это требование выполняется всеми современными процессорами и, как правило, является проблемой только для некоторых Core 2 и более ранних процессоров.
Каковы эти инструкции?
- CMPXCHG16B Инструкция выполняет атомное сравнение-и-обмен на значениях 16 байт. Он поддерживается на всех современных процессорах x86-64 , хотя некоторые ранние процессоры AMD64 его не поддерживали. Эта инструкция также может упоминаться как CompareExchange128 . См. Также: Насколько распространены в старых процессорах x64 инструкции cmpxchg16b?
- В ранних процессорах AMD64 отсутствовала CMPXCHG16B инструкция, которая является расширением CMPXCHG8B инструкции, присутствующей на большинстве процессоров после 80486. Аналогично CMPXCHG8B , CMPXCHG16B допускает атомарные операции над восьмеричными словами. Это полезно для параллельных алгоритмов, которые используют сравнение и обмен данными, размер которых превышает размер указателя, что часто встречается в алгоритмах без блокировки и без ожидания. Без этого CMPXCHG16B нужно использовать обходные пути, такие как критический раздел или альтернативные подходы без блокировки. Его отсутствие также не позволяет 64-битной Windows до Windows 8.1 иметь адресное пространство пользовательского режима больше 8 терабайт. 64-битная версия Windows 8.1 требует инструкции.
Эта PREFETCHW инструкция является подсказкой процессору для предварительной загрузки данных из памяти в кэш в ожидании записи ( Справочник по инструкциям Intel , PDF, страница 888). Эта инструкция была введена в 3DNow от AMD ! набор инструкций, который осуждается за исключением PREFETCH и PREFETCHW инструкций. Все процессоры AMD начиная с Athlon 64 поддерживают эту инструкцию. Однако эта инструкция может не поддерживаться в некоторых старых 64-разрядных процессорах Intel, выпущенных до Nehalem .
LAHF И SAHF нагрузки и сохранять содержимое AH регистра в регистре флагов, соответственно (Intel Instruction Set Reference, PDF страницы 530 и 1025). Некоторые старые процессоры Intel без аппаратной виртуализации (VT-x) не поддерживают эту инструкцию при работе в длинном 64-битном режиме ; они в основном ограничены некоторыми младшими процессорами, предшествующими Nehalem . Некоторые очень старые процессоры AMD64 также не имеют этой функции.
- В ранних процессорах AMD64 и Intel 64 отсутствовали инструкции LAHF и SAHF в 64-битном режиме. AMD представила эти инструкции (также в 64-битном режиме) со своими процессорами Athlon 64, Opteron и Turion 64 ревизии D в марте 2005 года, в то время как Intel представила инструкции со степпингом Pentium 4 G1 в декабре 2005 года. 64-битная версия Windows 8.1 требует этой функции.
Что это значит для меня?
Все процессоры Intel Core i7, i5 или i3, а также все процессоры Pentium или Celeron на основе Clarkdale , Arrandale , Sandy Bridge или более новых микроархитектур поддерживают эти функции, а также процессоры Intel Atom и Celeron Silvermont . Для AMD все, кроме самых старых 64-битных процессоров, имеют эти функции.
Как правило, эти инструкции необходимо учитывать только в том случае, если у вас есть процессор, предшествующий описанному выше. Приложение Get Windows 10 сообщит вам, можно ли выполнить обновление до Windows 10. Если процессор не соответствует требованиям, вы получите « CPU не поддерживается ».
Следует отметить, что хотя эти конкретные функции и требуются для запуска Windows 8.1, не все функции ЦП, необходимые для запуска Windows 10, необходимы для запуска Windows 8.1. В частности, PAE и NX не требуются по 8.1, но обязательны для 10
Может быть, вы думали об инструкциях SSE PREFETCHh, которые существовали, по крайней мере, с PentiumIII.
@bwDraco: да. Его 0F 0D r/m8 кодирование машинного кода декодируется как многобайтовая NOP на процессорах, которые не поддерживают PREFETCHW, поэтому, очевидно, нет проблем с совместимостью. (Поведение инструкций предварительной выборки не влияет на правильность, только на производительность.) Я попробовал это на своем процессоре Core2Duo, в asm-программе, которая запускается prefetchw [rsp] , и инструкция выполняется без сбоев. Но я на 99% уверен, что это не имеет никакого эффекта.
Хорошо, здесь есть два значения для «поддержки»: Win8.1, очевидно, требует, чтобы PREFETCHW ( 0F 0D m8 ) не выдавал ошибку как недопустимую инструкцию, как в случае с процессорами Intel после P4, по крайней мере, как обсуждалось здесь . Они запускают его как бездействие (до Broadwell), и, конечно, этого достаточно для Win8.1 (потому что предварительные выборки в любом случае являются спекулятивными подсказками, которые не влияют на правильность). Я не осознавал поведение NOP или то, что оно было другим на старых процессорах.
Для начало, необходимо убедится что расширение AES-NI присутствует в нашем процессоре. Для этого существует специальная команда CPUID, которая при значение eax=0x00000001, должна выставить в регистрах биты относительно присутствующих расширений. Для расширения AES это 25 бит регистра ECX:
код проверки AES-NI:Если бит установлен в 1, значит мы можем переходить к шифрованию.
Процессоры Intel и AMD, совместимые с AES-NI
AES-NI - это расширение набора инструкций в архитектурах X86, которое позволяет нам значительно увеличить скорость шифрования и дешифрования данных. В большинстве случаев эта функция включена по умолчанию в BIOS компьютера, однако рекомендуется проверить, включена ли эта функция в BIOS. В некоторых случаях со старыми компьютерами BIOS не поддерживает эту опцию, поэтому рекомендуется проверить нашу версию и обновить ее, когда это возможно.
В настоящее время все новые процессоры, которые появляются на рынке, за исключением самых дешевых процессоров на базе ARM, совместимы с AES-NI, однако всегда рекомендуется посетить официальные веб-сайты различных производителей, чтобы узнать из первых рук, если Процессор в частности поддерживает аппаратное ускорение шифрования. Например, уже много лет все процессоры Intel и AMD имеют эту технологию, которая так важна сегодня, и она заключается в том, что мы можем значительно повысить производительность при чтении и записи, когда мы имеем дело с данными, зашифрованными с помощью AES, кроме того, груз ЦП для выполнения этой операции действительно мало по сравнению с процессором, который не поддерживает эту функцию.
Испытания на живучесть и датчик глубины камеры Intel RealSense
Биометрическое распознавание пользователя, основанное на анализе лица, широко используется в повседневной жизни многих людей. Например – для разблокировки Android-устройств и персональных компьютеров. Так как для распознавания лица используется традиционная оптическая камера, умеющая захватывать плоские изображения, система не может отличить реального человека от фотографии. В результате взломщик может пройти процедуру авторизации, воспользовавшись распечатанным фотоснимком лица пользователя.
Камера Intel RealSense умеет захватывать информацию о глубине пространства. Это открывает очень интересные перспективы. Одна из её функций заключается в построении трёхмерных моделей людей и объектов, попадающих в объектив. Данная возможность позволяет задействовать Intel RealSense как инструмент испытания на живучесть в некоторых сценариях захвата биометрических данных, и, как результат, повысить безопасность биометрических систем. Обычная камера, входящая в состав RealSense, фотографирует лицо пользователя, а модуль трёхмерного сканирования пространства одновременно строит объёмную картину того, что находится перед камерой. Сведения о пространственных характеристиках лицевой области легко могут быть использованы для того, чтобы определить, человек ли смотрит в камеру, или, там, где должно находиться объёмное лицо, размещён плоский лист бумаги.
Трёхмерная модель лица с камеры глубины Intel RealSense F200. Очевидно, перед камерой настоящий человек.
Лист бумаги, пусть и с напечатанным фото пользователя, остаётся плоским для камеры глубины Intel RealSense F200. Очевидно, что это – подделка.
Расшифровывание/decryption
Для реализации процедуры расшифрования используется инструкция AESDEC:
Для получения InvKey надо выполнить операцию InvMixClomuns для ключа. Инструкция, которая это делает — AESIMC xmm1.xmm2
И для последнего раунда расшифрования используется Инструкция AESDECLAST:Итак, аппаратное поддержка должна нам дать приличный прирост к скорости шифрования. В качестве завершения поста приведу класс на C++, реализующий операции шифрования и расшифрования в режиме ECB. После прогона теста была достигнута скорость шифрования на одном ядре i5-3740 (3.2GHz), равная 320MB/sec
В первой части мы обсудили проблемы современных биометрических приложений распознавания пользователей и рассказали о том, как Intel SGX, Intel VMX и Intel IPT способны повысить уровень их защиты. Сегодня продолжим разговор о безопасности биометрии, рассмотрим технологии Intel AES-NI, Intel Secure Key и Intel RealSense.
Для того, чтобы защитить важные данные или программный код во время исполнения, широко используются криптографические алгоритмы и рандомизация адресного пространства (Address Space Layout Randomization, ASLR). Подобные технологии применяются как на уровне обычных приложений, так и на уровне операционной системы. Важной их частью являются случайные числа.Зачем мне нужен NAS-сервер с аппаратным ускорением шифрования?
Серверы NAS позволяют нам хранить в них всю информацию, если мы хотим принять меры безопасности для обеспечения конфиденциальности, важно зашифровать все данные, либо зашифрованные, когда они находятся на жестком диске, либо зашифрованные при обмене данными с сервером NAS. . Таким образом, мы можем быть уверены, что наши данные не могут быть прочитаны без главного пароля, который их расшифровывает.
Шифрование/Encryption
Для реализации одного раунда шифрования используется инструкция AESENC, которая выполняет следующие действия:
Последний раунд шифрования реализуется при помощи инструкции AESENCLAST:Отличие этой инструкции от AESENC состоит в том, что операция MixColums на последнем шаге не выполняется:
SFTP - протокол на основе SSH с шифрованием
Протокол SFTP основан на SSH, он позволит нам обмениваться файлами для безопасной аутентификации на сервере с использованием всех криптографических протоколов SSH. Этот протокол широко используется, потому что необходимо открыть только один порт, через который протекает вся связь. В этом случае конфигурация SFTP-сервера должна выполняться через раздел SSH, как вы можете видеть ниже:
Подключившись к этому SFTP-серверу с помощью такой программы, как FileZilla, он расскажет нам о различных алгоритмах, которые он использовал. Например, обмен ключами был выполнен с ECDH с Curve25519 с использованием хэша SHA-256. Ключ сервера составляет 3072 бита RSA, а шифрование данных выполняется с помощью AES-256-GCM, что позволяет передавать данные с очень высокой скоростью.
В правом нижнем углу FileZilla вы также можете увидеть замок, указывающий на то, что обмен данными безопасен.
Читайте также: