Crypto API


Управление ключами EFS

Реализация EFS

Ключ алгоритма DESX

Алгоритм шифрования DESX

Алгоритм шифрования RSA

Хранение закрытого ключа пользователя

По умолчанию закрытый ключ пользователя хранится на жёстком диске. Это совсем не безопасно и является очевидным недостатком EFS.

Возможен экспорт ключа на съёмный носитель типа смарт-карты.

RSA (Rivest, Shamir, Adleman) – простеший алгоитм ассиметричного шифрования.

Зашифрование:

C = Mk1 mod N

Где:
M – блок шифруемых данных;
C – шифртекст;
k1 – открытый ключ;
N – модуль системы: N = PQ, где P и Q – секретные большие простые числа.

Расшифрование:

M = Ck2 mod N

Где:
k2 – секретный ключ.

Размерность определяется модулем системы. Должна быть не менее 2048 битов (значения меньше научились эффективно раскладывать на множители).

DESX – усиленный вариант алгоритма DES с увеличенным (184-битным) ключом:

C = k3 +(mod2) DESk1(K2+(mod2)M)

Где:

M – блок шифруемых данных;
k1, k2, k3 – фрагменты секретного ключа;
DESk – функция шифрования алгоритма DES на ключе k.

Состоит из трёх фрагментов k1, k2, k3, имеющих различное назначение:
k1 (56 битный) – ключ внутреннего алгоритма DES;
k2, k3 (по 64 бита) – ключи, соответственно, для входного и выходного отбеливания.

DESX полностью совместим с алгоритмом DES в случае, если k2=k3=0.

Windows использует усечённый вариант алгоритма DESX со 128 битным ключом, или с 56 битным ключом, в случае экспортных ограничений.

· EFS реализован в виде драйвера устройства, работающего в режиме ядра и тесно интегрированного с драйвером файловой системы.

· Когда NTFS встречает шифрованный файл, она вызывает функции EFS, зарегистрированные в NTFS при инициализации EFS.

· Шифрование файлов осуществляется по мере обращения к ним.

Все операции, связанные с управлением ключами EFS, выполняются подсистемой локальной аутентификации (LSASS – Local Security Authentication Subsystem).

Основное назначение подсистемы локальной аутентификации – управление сеансами пользователей.

LSASS используется криптофункциями Microsoft (Crypto API).

Crypto API состоит из компонентов доступа к криптографическим сервисам (CSP – Cryptographic Service Providers), которые обеспечивают приложениям доступ к различным криптографическим сервисам (шифрованию, хэшированию и т.п.).

В частности, CSP управляют получением ключей пользователя и FEK, что позволяет Lsass не заботиться о деталях криптоопераций.

Схема работы EFS