|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Жил да был вот такой код (AddLog -это я сейчас добавил) Спер я его откуда-то "как есть", уже не помню, подозрений что что-то может быть не так не вызывал. Нормально так жил, года 2 как с .Net-ом связался, проверял md5 файла загружаемой dll (в моем случае той, кот. отвечает за лицензии) ну и если md5 неправильный, то пользователь идет лесом, то бишь ничего у него не работает, типа доп. защита. Но стали у некоторых клиентов возникать проблемы (оч. редко), грешил сначала на LoadLibrary и на глючность VM. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Первого кастомера я послал с его виртуалкой 3 месяца назад, второго послать не удалось This is a physical machine, not virtual (Dell Precision T5810). ...The Windows 10 install is an OEM install from Dell with all Windows updates through June 2017.Короче сделал тест-проект с усиленным debug (типа того что в коде выше), послал кастомеру с проблемным компом. Получил результат: Код: vbnet 1. 2. 3.
Если по русски (воспроизвел уже на своем компе): Код: vbnet 1.
В общем "решение" я в итоге нагуглил довольно быстро. Help to FIX: Error message ('This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.') авторThe solution is: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy Should be Enabled = 0 (REG_DWORD) If have Enabled = 1 then does not work. Perhaps we should investigate the problem deeper and find another solution. But currently Enabled = 0 should help. ( have reproduced the problem ) И че делать? Фиксить как-то надо. Можно конечно в инсталлятор запихнуть правку реестра, но правка политик чужого компа это как-то ну очень грубо и неправильно. Есть старое доброе API решение на VB6, но я его на .Net не переводил, не знаю даже вляпается оно в ту же проблему или нет. Можно конечно попробовать, будет ли оно работать при воспроизведении проблемной ситуации с .Net кодом. Но эту простыню на .Net переписывать еще задолбаешься: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 05:58 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Дмитрий77Можно конечно в инсталлятор запихнуть правку реестра, но правка политик чужого компа это как-то ну очень грубо и неправильно. Еще как неправильно - скорее всего, у клиента на компьютере стоит какой-то крипто-софт, который требует этой политики/настройки реестра, без нее этот софт просто не будет работать. У нас такое было на компах с аутентификацией по е-токенам - аналогичная ошибка вылетала при попытке использовать RijndaelManaged, который не сертифицирован по FIPS - пришлось его менять на AesManaged. И да, при отключении FIPS-политики аутентификация работать перестала. А в вашем случае я бы попробовал перекрыть FIPS-политику в конфиге программы: https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 06:20 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныА в вашем случае я бы попробовал перекрыть FIPS-политику в конфиге программы: https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element Спасибо. Ну вот смотри. Вот так вот Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Да, проблема решается, да вариант. Но, я пока не отказался от поддержки XP и Win2003, поэтому у меня поддерживается параллельная конфигурация под .Net 2.0 (дублированные exe-шники, устанавливаемые только на эти OS). И вот такая конфигурация Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
к желаемому эффекту не приводит, т.е. не считает он md5. Чисто теоретически, на XP такого ключа наверно нету, а вот на 2003-м сервере думаю быть может. Конечно вероятность что 2003 сейчас, + включена политика (если она вообще там есть) крайне низка, но все же. В доке на которую ты указал, в принципе ответ есть: докаThis element was introduced in the .NET Framework 2.0 Service Pack 1. У меня для всей проги на XP/2003 тоже требование именно .NET Framework 2.0 Service Pack 1 . (Service Pack 1 мне там нужен для поддержки C++ рантайма) Но VS2013 мне 2.0 SP1 не предлагает, только чистый 2.0, поэтому .Net файлы для "xp/2003" у меня идут как Net 2.0 без SP Естественно чего-то мудрить с этой устойчивой кухней за ради официально сдохшего XP/2003 (типа там требовать .Net 3.5 или .Net 4.0, или пытаться впихивать .Net2.0 SP1 в 13-ю студию на моем develop-компе Win10) я не буду и не хочу за ради этого. Т.е. так понимаю вариант либо забить на это для файлов .Net2.0-версии (которые идут только на xp/2003), либо полностью менять код. Какие с этим варианты? Счас кстати скомпилирую VB6 (API), и посмотрю вляпывается ли он в эту проблему при включенном FipsAlgorithmPolicy. (спойлер в первом посте) Если не вляпывается, то можно конечно переписать этот код на .Net (очевидно более устойчивое решение). Но задолбаюсь с этими VB6 конструкциями типа Get #intFile, , bytBlock ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 13:28 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Дмитрий77Но, я пока не отказался от поддержки XP и Win2003, поэтому у меня поддерживается параллельная конфигурация под .Net 2.0 (дублированные exe-шники, устанавливаемые только на эти OS). И вот такая конфигурация Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
к желаемому эффекту не приводит, т.е. не считает он md5. Все, сам дурак. У меня ошибка в XML-е для .Net 2.0. Вот так заработало: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Тем более 2.0.50727, это кажется и есть SP1, "50727" - до боли знакомое любимое число по опыту борьбы с C++ рантаймами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 13:45 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Дмитрий77Счас кстати скомпилирую VB6 (API), и посмотрю вляпывается ли он в эту проблему при включенном FipsAlgorithmPolicy. (спойлер в первом посте) Если не вляпывается, то можно конечно переписать этот код на .Net (очевидно более устойчивое решение). Но задолбаюсь с этими VB6 конструкциями типа Get #intFile, , bytBlock А вот не вляпывается. Чхать ему на эти "политики". Так что даже не знаю, м.б. лучше и переписать на API от греха. Формальной работы мне и так хватит, чтоб эту дрянь фиксить в двух прогах, даже через App.Config. "Новая версия" как минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 14:19 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Дмитрий77Так что даже не знаю, м.б. лучше и переписать на API от греха. Посмотри в нугете, может там есть готовая библиотека расчета MD5. MD5 достаточно простой алгоритм, исходников в инете полно. Поищи готовый. Может даже на VB.Net найдешь, в крайнем случае с другого ЯП перевести. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 14:42 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
"Надежный" API-код использует Код: vbnet 1. 2.
"Ненадежный" .Net-код использует Код: vbnet 1.
Мож какой другой "провайдер" нужен? Что в .Net инкапсулирует "Microsoft Base Cryptographic Provider v1.0"? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 14:42 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Dima TMD5 достаточно простой алгоритм, исходников в инете полно. Поищи готовый. Может даже на VB.Net найдешь Ну вот нашел 2 года назад (код вверху первого поста). Терерь огребаю, хорошо хоть не по полной. Америкос задолбал 3 месяца назад. Лицензию купил, а воспользоваться не может, потому что я по MD5 отрубаю, а MD5 по найденной ныне причине не считается. До сих пор переписываемся (пока установил "старую версию"). А счас второй "звоночек". Ну, думаю, надо решать проблему. Dima T в крайнем случае с другого ЯП перевести. 100% рабочий код под спойлером внизу первого поста, но он VB6+API и труднопереводимый, там очень много чисто "VB6" конструкций. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 14:56 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Dima TMD5 достаточно простой алгоритм И поэтому не особенно надежный. CLR для верифкации strong-named сборок использует SHA1 - имеет смысл попробовать его. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 19:01 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныDima TMD5 достаточно простой алгоритм И поэтому не особенно надежный. CLR для верифкации strong-named сборок использует SHA1 - имеет смысл попробовать его. Это у меня не защита программы, это защита от дурака. Ну подменят dll, ну пусть даже подтасуют md5, воспроизведут API кот. она экспортирует (скоко работы то!). Ну напишет GUI что есть лицензия, начинка то C-шная не заработает, она напрямую защищена. Это в .Net приходится с dll-ми извращаться, протектор .Net-файлы не берет. Смысла нет на что-то менять, итак имеем на практике "лучшее враг хорошего". Dima T в крайнем случае с другого ЯП перевести. 100% рабочий код под спойлером внизу первого поста, но он VB6+API и труднопереводимый, там очень много чисто "VB6" конструкций. Короче перевел я свой этот VB6 ->.Net, хоть навыки какие-то вспомнил. Работает без нареканий, от политик и App.config не зависит, наверно этот вариант оставлю. Гляньте бегло, нет там подводных камней? В принципе в случае ошибки (Return False, пустой md5), м.б. имеет смысл считать что dll прошла проверку. В этом коде, не в том который через реестр вышибается. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165.
Хотя сдается мне, что и через System.Security.Cryptography сделать можно (без запретов в App.config). "Провайдера" только какого-то другого надо, не MD5CryptoServiceProvider, со словом RSA чего-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 19:28 |
|
md5 файла Err:This implementation is not part of the Windows Platform FIPS validated...
|
|||
---|---|---|---|
#18+
Дмитрий77Гляньте бегло, нет там подводных камней? Понятия не имею. VB не знаю. C WinAPI тоже так глубоко не дружу. Я другое имел ввиду: Чистый расчет MD5 , т.е. берем байты и считаем их MD5, без всяких API и т.д. и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 20:43 |
|
|
start [/forum/search_topic.php?author=%D0%9F%D1%80%D0%B5%D0%BC%D0%B8%D1%8F+%D0%B4%D0%B0%D1%80%D0%B2%D0%B8%D0%BD%D0%B0%2C+%D0%BE%D0%B4%D0%BD%D0%BE%D0%B7%D0%BD%D0%B0%D1%87%D0%BD%D0%BE&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 445ms |
total: | 598ms |
0 / 0 |