Encryption Scheme.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <title>VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом</title>
  7. <meta name="description" content="VeraCrypt это бесплатное программное обеспечение для шифрования дисков с открытым исходным кодом для Windows, Mac OS X (macOS) и Linux. В случае, если злоумышленник вынуждает вас раскрыть пароль, VeraCrypt обеспечивает правдоподобное отрицание наличия шифрования. В отличие от пофайлового шифрования, VeraCrypt шифрует данные в реальном времени (на лету), автоматически, прозрачно, требует очень мало памяти и не использует временные незашифрованные файлы."/>
  8. <meta name="keywords" content="encryption, security, шифрование, безопасность"/>
  9. <link href="styles.css" rel="stylesheet" type="text/css" />
  10. </head>
  11. <body>
  12. <div>
  13. <a href="Documentation.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
  14. </div>
  15. <div id="menu">
  16. <ul>
  17. <li><a href="Home.html">Начало</a></li>
  18. <li><a href="/code/">Исходный код</a></li>
  19. <li><a href="Downloads.html">Загрузить</a></li>
  20. <li><a class="active" href="Documentation.html">Документация</a></li>
  21. <li><a href="Donation.html">Поддержать разработку</a></li>
  22. <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Форум</a></li>
  23. </ul>
  24. </div>
  25. <div>
  26. <p>
  27. <a href="Documentation.html">Документация</a>
  28. <img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
  29. <a href="Technical%20Details.html">Технические подробности</a>
  30. <img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
  31. <a href="Encryption%20Scheme.html">Схема шифрования</a>
  32. </p></div>
  33. <div class="wikidoc">
  34. <h1>Схема шифрования</h1>
  35. <p>При монтировании тома VeraCrypt (предполагаем, что нет кэшированных паролей/ключевых файлов) или при предзагрузочной аутентификации выполняются следующие операции:</p>
  36. <ol>
  37. <li>Считываются (помещаются) в ОЗУ первые 512 байт тома (то есть заголовок обычного тома), из которых первые 64 байта это соль (см.
  38. <a href="VeraCrypt%20Volume%20Format%20Specification.html">
  39. <em>Спецификация формата томов VeraCrypt</em></a>). Для шифрования системы (см. <a href="System%20Encryption.html"><em>Шифрование системы</em></a>)
  40. в ОЗУ считываются последние 512 байт первой дорожки логического диска (загрузчик VeraCrypt располагается в первой дорожке
  41. системного диска и/или Диска восстановления VeraCrypt). </li><li>Считываются (помещаются) в ОЗУ байты 65 536&ndash;66 047 тома (см.
  42. <a href="VeraCrypt%20Volume%20Format%20Specification.html">
  43. <em>Спецификация формата томов VeraCrypt</em></a>). Для шифрования системы считываются байты 65 536&ndash;66 047 раздела, расположенного сразу за активным разделом* (см.
  44. <a href="Hidden%20Operating%20System.html">
  45. Скрытая операционная система</a>). Если внутри этого тома имеется скрытый том (или внутри раздела, следующего за загрузочным разделом),
  46. то в этой точке мы прочитали его заголовок; в противном случае мы просто прочитали случайные данные (есть скрытый том внутри или его нет,
  47. определяется только попыткой расшифровать эти данные; подробности см. в разделе
  48. <a href="Hidden%20Volume.html"><em>Скрытый том</em></a>).
  49. </li><li>Сейчас VeraCrypt пытается расшифровать заголовок обычного тома, считанный на этапе 1. Все данные, использованные
  50. и сгенерированные в ходе дешифрования, хранятся в ОЗУ (VeraCrypt никогда не сохраняет их на диске). Указанные ниже параметры
  51. неизвестны и определяются методом проб и ошибок (то есть проверкой всех возможных комбинаций следующего):
  52. <ol type="a">
  53. <li>PRF (псевдослучайная функция), применяемая при формировании (деривации) ключа заголовка (как определено в PKCS #5 v2.0; см.
  54. <a href="Header%20Key%20Derivation.html">
  55. <em>Формирование ключа заголовка, соль и количество итераций</em></a>), которая может быть одной из следующих:
  56. <p>HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool.</p>
  57. <p>Если PRF указана пользователем явно, используется непосредственно она, без опробования других функций.</p>
  58. <p>Введённый пользователем пароль (который может сопровождаться одним или несколькими ключевыми файлами – см. раздел
  59. <a href="Keyfiles%20in%20VeraCrypt.html">
  60. <em>Ключевые файлы</em></a>), значение PIM (если указано) и соль, считанные на этапе 1, передаются в функцию формирования
  61. ключа заголовка, которая производит последовательность значений (см. <a href="Header%20Key%20Derivation.html">
  62. <em>Формирование ключа заголовка, соль и количество итераций</em></a>), из которых формируются ключ шифрования
  63. заголовка и вторичный ключ заголовка (режим XTS). (Эти ключи используются для дешифрования заголовка тома.)</p>
  64. </li><li>Алгоритм шифрования: AES-256, Serpent, Twofish, AES-Serpent, AES-Twofish-Serpent и т. д.
  65. </li><li>Режим работы: поддерживается только XTS</li><li>Размеры ключей</li></ol>
  66. </li><li>Дешифрование считается успешным, если первые четыре байта расшифрованных данных содержат ASCII-строку &ldquo;VERA&rdquo;
  67. и если контрольная сумма CRC-32 последних 256 байт расшифрованных данных (заголовок тома) совпадает со значением, находящимся в байте №8
  68. расшифрованных данных (неприятелю это значение неизвестно, поскольку оно зашифровано – см. раздел
  69. <a href="VeraCrypt%20Volume%20Format%20Specification.html">
  70. <em>Спецификация формата томов VeraCrypt</em></a>). Если эти условия не выполнены, процесс продолжается с этапа 3 снова,
  71. но на этот раз вместо данных, считанных на этапе 1, используются данные, считанные на этапе 2 (то есть возможный заголовок
  72. скрытого тома). Если условия снова не выполнены, монтирование прекращается (неверный пароль, повреждённый том, не том
  73. VeraCrypt).
  74. </li><li>Теперь мы знаем (или предполагаем с очень высокой вероятностью), что у нас правильный пароль, правильный алгоритм
  75. шифрования, режим, размер ключа и правильный алгоритм формирования ключа заголовка. Если мы успешно расшифровали данные,
  76. считанные на этапе 2, мы также знаем, что монтируется скрытый том, и знаем его размер, полученный из данных, считанных
  77. на этапе 2 и расшифрованных на этапе 3.
  78. </li><li>Подпрограмма шифрования переинициализируется с первичным мастер-ключом** и вторичным мастер-ключом (режим
  79. XTS &ndash; см. раздел <a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>), которые получены из расшифрованного заголовка
  80. тома (см. раздел <a href="VeraCrypt%20Volume%20Format%20Specification.html">
  81. <em>Спецификация формата томов VeraCrypt</em></a>). Эти ключи могут быть использованы для дешифрования любого сектора тома,
  82. за исключением области заголовка тома (или, в случае шифрования системы, области ключевых данных), зашифрованного с помощью
  83. ключей заголовка. Том смонтирован.
  84. </li></ol>
  85. <p>См. также разделы <a href="Modes%20of%20Operation.html">
  86. <em>Режимы работы</em></a> и <a href="Header%20Key%20Derivation.html">
  87. <em>Формирование ключа заголовка, соль и количество итераций</em></a>, а также главу
  88. <a href="Security%20Model.html"><em>Модель безопасности</em></a>.</p>
  89. <p>* Если размер активного раздела меньше 256 МБ, то данные считываются из <em>второго</em> раздела, идущего следом за активным
  90. (Windows 7 и более поздние версии по умолчанию не загружаются с раздела, на котором они установлены).</p>
  91. <p>&dagger; Эти параметры держатся в секрете <em>не</em> для того, чтобы усложнить атаку, а в первую очередь для того, чтобы
  92. сделать тома VeraCrypt не идентифицируемыми (неотличимыми от случайных данных), чего было бы трудно добиться, если бы эти
  93. параметры хранились в незашифрованном виде в заголовке тома. Также обратите внимание, что в случае устаревшего режима
  94. загрузки MBR, если для шифрования системы используется некаскадный алгоритм шифрования, алгоритм <em>известен</em>
  95. (его можно определить, проанализировав содержимое незашифрованного загрузчика VeraCrypt, хранящегося на первой дорожке
  96. логического диска или на Диске восстановления VeraCrypt).</p>
  97. <p>** Мастер-ключи генерируются во время создания тома и не могут быть изменены позже. Изменение пароля тома выполняется
  98. путём повторного шифрования заголовка тома с использованием нового ключа заголовка (сформированным из нового пароля).</p>
  99. <p>&nbsp;</p>
  100. <p><a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">Следующий раздел &gt;&gt;</a></p>
  101. </div><div class="ClearBoth"></div></body></html>