The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Использование TRESOR для хранения к..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Использование TRESOR для хранения к..."  +/
Сообщение от auto_tips (??) on 04-Сен-11, 15:54 
При использовании зашифрованного раздела с конфиденциальной информацией, злоумышленник, имеющий физический доступ к компьютеру, может воспользоваться методом холодной перезагрузки (http://www.opennet.me/opennews/art.shtml?num=17035) для получения ключей шифрования. Метод основан на способности оперативной памяти (DRAM) какое-то время сохранять информацию после отключения питания и отсутствия импульсов регенерации ее содержимого (при температуре -50 градусов данные сохраняются более 10 минут). После холодной перезагрузки или переключении чипа памяти на другое устройство память не обнуляется и данные старой рабочей сессии можно проанализировать. Особенно актуальная проблема для ноутбуков, которые часто не выключаются и лишь переводятся в ждущий режим, при котором ОЗУ не обесточивается. В простейшем случае, восстановить ключ из памяти можно используя утилиту msramdmp (http://www.mcgrewsecurity.com/tools/msramdmp/), перезагрузившись в LiveCD (например, можно использовать [[http://www.mcgrewsecurity.com/projects/msramdmp/msramdmp_cd.iso msramdmp_cd.iso]]).

В рамках проекта TRESOR (http://www1.informatik.uni-erlangen.de/tresor) подготовлены патчи для ядра Linux с реализацией модуля шифрования AES, который сохраняет ключи в отладочных регистрах процессора и обрабатывает все операции шифрования непосредственно в CPU, без копирования ключей в ОЗУ. TRESOR  может использоваться на любых процессорах с поддержкой SSE2. При использовании 64-разрядных CPU с поддержкой набора инструкций AES-NI,  например, Intel Core i5 или Core-i7, поддерживается работа с ключами AES 128, 192 и 256 без потери производительности. При запуске на 32-разрядных CPU с поддержкой инструкций SSE2, скорость выполнения шифрования примерно в 6 раз ниже, чем базовая реализация AES для ядра Linux. При этом можно использовать только ключи длиной 128 бит.

++ Собираем ядро с патчем TRESOR.

Загружаем ядро 2.6.36 с http://kernel.org и распаковываем его в директорию /usr/src/linux-2.6.36.

Применяем патч (http://www1.informatik.uni-erlangen.de/tresor):

   cd /usr/src/
   patch --directory /usr/src/linux-2.6.36 -p1 < tresor-patch-2.6.36

Запускаем menuconfig и настраиваем параметры ядра, не забыв включить TRESOR (Cryptographic API -> AES cipher algorithms (TRESOR)).

Собираем ядро. Ниже пример сборки и установки пакета для Debian GNU/Linux:

   cd /usr/src/linux-2.6.36
   make-kpkg kernel_image --initrd --revision tresor1
   cd /usr/src
   dpkg -i linux-image-2.6.36-tresor1.deb
   update-initramfs -c -k 2.6.36


++ Запускаем систему

Перезагружаемся, выбрав ядро с патчами TRESOR.

В ответ на приглашение TRESOR "Enter password" вводим пароль и подтверждаем валидность хэша:

   Enter password > ********
   Confirm key hash > 51 b7 fd ... 58 ac Correct (yes/no) > yes

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

После того как система загрузится можно попытаться перевести её в ждущий режим и проверить работу TRESOR:

   echo mem > /sys/power/state

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


++ Настройка шифрования

Устанавливаем утилиты для работы с dm-crypt:

   apt-get install cryptsetup

Если ядро собрано с поддержкой LKM, убедимся, что загружен модуль ядра dm_mod:

   modprobe dm_mod

В качестве демонстрации настроим два варианта шифрования: отдельного раздела на USB-накопителе и виртуального шифрованного раздела внутри файла.


++ Настройка зашифрованного дискового раздела

Зашифруем раздел /dev/sdb1:

   cryptsetup create tresor /dev/sdb1 --cipher tresor --key-size 128

   > Enter passphrase: указываем произвольный пароль

Размер ключа для 64-разрядных процессоров с поддержкой AES-NI может быть 128, 192 и 256. Для остальных CPU - только 128.

Форматируем созданный шифрованный раздел:

   mkfs.ext2 /dev/mapper/tresor

Монтируем раздел:

   mount /dev/mapper/tresor /media/tresor

все операции записи и чтения в /media/tresor производятся с использованием шифрования.

Отмонтируем раздел и выгружаем шифрованное устройство:

   umount /media/tresor
   cryptsetup remove tresor

++ Настройка зашифрованного контейнера (шифрованный раздел внутри файла)

Создаем пустой файл-контейнер container.img, размером 1 Гб:

   dd if=/dev/zero bs=1M count=1024 of=container.img

Прикрепляем контейнер к псевдоустройству через loop-интерфейс:

   losetup /dev/loop0 container.img

Повторяем действия, описанные выше для шифрованных дисковых разделов, но используя в качестве имени устройства /dev/loop0

При отмонтировании, для отсоединения контейнера от loop-устройства дополнительно выполняем:

   losetup -d /dev/loop0


URL: http://www1.informatik.uni-erlangen.de/tresor?q=content/readme
Обсуждается: http://www.opennet.me/tips/info/2617.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от ss (??) on 04-Сен-11, 15:54 
vostorg!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Урсадон on 04-Сен-11, 20:05 
... специально для параноиков 70го уровня.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от funt email on 04-Сен-11, 20:43 
не ниже 85лвл)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от AHAHAC (ok) on 05-Сен-11, 03:14 
Патч похож на троян :)

Что за цифры, хрен знает...  (отписался автору, пущай рассказывает.)


/***************************************************************************
*                  DATA SEGMENT
***************************************************************************/

.data
gfbd9e:
    .long    0x00000000, 0x0b0d090e, 0x161a121c, 0x1d171b12
    .long    0x2c342438, 0x27392d36, 0x3a2e3624, 0x31233f2a
    .long    0x58684870, 0x5365417e, 0x4e725a6c, 0x457f5362
    .long    0x745c6c48, 0x7f516546, 0x62467e54, 0x694b775a
    .long    0xb0d090e0, 0xbbdd99ee, 0xa6ca82fc, 0xadc78bf2
    .long    0x9ce4b4d8, 0x97e9bdd6, 0x8afea6c4, 0x81f3afca
    .long    0xe8b8d890, 0xe3b5d19e, 0xfea2ca8c, 0xf5afc382
    .long    0xc48cfca8, 0xcf81f5a6, 0xd296eeb4, 0xd99be7ba
...
...
...

/* common code for inv_mix_column */
.macro inv_mix_helper r l reg init
    psrldq        $\r,rhelp          
    movd        rhelp,eax    
    andl        $0x000000ff,eax
    movl        gfbd9e(,eax,4),eax
    rol        $\l,eax          
    .if \init
        movl    eax,\reg
    .else
        xorl    eax,\reg
    .endif
.endm

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от x0r (??) on 05-Сен-11, 13:02 
не доверяю я этому AES...
blowfish лично проверял.
еще "одноразовый блокнот" хорошая штука,
для этого надо завести аппаратный ГСЧ и хранить 8Гиговые ключи, например на флешках или DVD...
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от AHAHAC (ok) on 05-Сен-11, 13:43 
>  Что за цифры, хрен знает...  (отписался автору, пущай рассказывает.)
> gfbd9e:
> ...

Ответил

- What mean this digits?


- This table is only part of the tresor-2.6.36_i686 patch, not of the 2.6.36_aesni
patch, because it is part of the actual AES implementation. With AESNI support,
the AES implementation is directly integrated into hardware; without AES we have
to do it by hand.

This weird "gfbd9e" thing is a more efficient way to implement AES -- based on
lookups rather than on algorithmic computations. For a more detailed explanation
of the principle of using lookup tables in AES, please refer to Brian Gladman:

    http://www.gladman.me.uk/

The original AES code inside the Linux kernel is based on his ideas as well.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Аноним (??) on 05-Сен-11, 15:22 
> не доверяю я этому AES...

Особенно аппаратной реализации от интела.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от AdVv (ok) on 05-Сен-11, 17:20 
Вы бы уже создали закрытый форум, и там бы сидели и никому не доверяли все вместе.
Могу даже подкинуть идейку как назвать - "Клуб Неуловимого Джо".
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Андрей (??) on 05-Сен-11, 20:07 
Ещё месяц-другой подождать и с амд'шным бульдозером можно будет попробовать. Или вы исключительно собственноручно сVHDLенным ПЛИС доверяете?
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Щекн Итрч (ok) on 05-Сен-11, 21:36 
В общеи, ЧТО ЭТО, он не раскрыл.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от AHAHAC (ok) on 06-Сен-11, 04:49 
Это вот это - http://en.wikipedia.org/wiki/Rijndael_S-box#Inverse_S-box

Только тут не чистый S-box, а уже дальнейшие преобразования, промежуточные константы.
В процах с поддержкой AESNI используют команду aeskeygenassist rcon,r1,rhelp
Без - обратный S-Box и 4 команды сложения по модулю.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Px on 07-Сен-11, 01:07 
Если у вас паранойя, то это совсем не значит, что за вами не следят...
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

13. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от fuufuu on 08-Сен-11, 09:57 
> В общеи, ЧТО ЭТО, он не раскрыл.

это опенсорц. пиши свое или ешь что дают. и да, отладочные р-ры используются довольно часто


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от AHAHAC (ok) on 09-Сен-11, 02:44 
Теперь давай объясняй смысл сего высера?!
А то, чёй-то моск крушиться в попытке связать ассемблерный код и отладочные регистры.


Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Щекн Итрч (ok) on 12-Сен-11, 09:46 
>> В общеи, ЧТО ЭТО, он не раскрыл.
> это опенсорц. пиши свое или ешь что дают.

Сначала сырцы анализатором прогоню?


Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от Щекн Итрч (ok) on 12-Сен-11, 09:47 
> Это вот это - http://en.wikipedia.org/wiki/Rijndael_S-box#Inverse_S-box
> Только тут не чистый S-box, а уже дальнейшие преобразования, промежуточные константы.
> В процах с поддержкой AESNI используют команду aeskeygenassist rcon,r1,rhelp
> Без - обратный S-Box и 4 команды сложения по модулю.

Пусть аффтар поднапряжётся и предоставит сырец в более удобочитаемом виде.


Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

17. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от nagual email(ok) on 16-Сен-11, 23:11 
Когда процес юзает эти долбанные возможности процессора (AES) ядро видит что процес делает AES а когда процес колдует свой самописный алгоритм шифрования то поди догадайся что то шифрование или просто кто то забыл мысор в исходниках подчистить :-)) так что эти встроенные аглоритмы это минимум идентификация ... даже если оно все действительно без бэкдоров ;-)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от учицца нада on 16-Сен-11, 23:47 
> Когда процес юзает эти долбанные возможности процессора (AES) ядро видит что процес
> делает AES а когда процес колдует свой самописный алгоритм шифрования то
> поди догадайся что то шифрование или просто кто то забыл мысор
> в исходниках подчистить :-)) так что эти встроенные аглоритмы это минимум
> идентификация ... даже если оно все действительно без бэкдоров ;-)

у 90% в процах нет аппаратного AES пока - поэтому нужно как-то выкручиваться. И лет 10-15 этот код ещё будет актуален. Посмотри вокруг себя - и 100% где-то найдешь используемый ПК 10-летней давности. А с учетом избыточности сегодняшних мощностей - наверняка лет через 10-15 ещё будут живы коре2...

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

22. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от asdf on 21-Сен-11, 12:18 
Может и будут живые коре 2 у единиц. Но большинство будет использовать компьютер которые в 10-20 раз занимает меньше места.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

23. "Использование TRESOR для хранения ключей шифрования AES не в..."  +/
Сообщение от funny_falcon on 22-Сен-11, 12:32 
Проблема в том, что при переключении контекста (т.е. на другое приложение) все регистры сохраняются в памяти, так что это полная туфта (как мне кажется).
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру