From 6ca598f8418a1ab12ff7353c534d610b4dbac943 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Wed, 29 Jul 2015 00:09:14 +0200 Subject: Windows: Implement Evil-Maid-Attack detection mechanism. Write the correct bootloader when changing the system encryption password: this enables to recover if an attack is detected. --- src/Mount/Mount.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/Mount') diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index 66941b15..bebb18d7 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -5769,6 +5769,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa try { + BootEncObj->SetParentWindow (hwndDlg); BootEncStatus = BootEncObj->GetStatus(); RecentBootEncStatus = BootEncStatus; } @@ -5808,13 +5809,19 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa { if (IsHiddenOSRunning()) { - if (BootEncObj->GetInstalledBootLoaderVersion() > VERSION_NUM) + if (BootEncObj->GetInstalledBootLoaderVersion() != VERSION_NUM) Warning ("UPDATE_TC_IN_HIDDEN_OS_TOO", hwndDlg); + if (!BootEncObj->CheckBootloaderFingerprint ()) + Warning ("BOOT_LOADER_FINGERPRINT_CHECK_FAILED", hwndDlg); } - else if (SysDriveOrPartitionFullyEncrypted (TRUE) - && BootEncObj->GetInstalledBootLoaderVersion() != VERSION_NUM) + else if (SysDriveOrPartitionFullyEncrypted (TRUE)) { - Warning ("BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION", hwndDlg); + if (BootEncObj->GetInstalledBootLoaderVersion() != VERSION_NUM) + { + Warning ("BOOT_LOADER_VERSION_DIFFERENT_FROM_DRIVER_VERSION", hwndDlg); + } + if (!BootEncObj->CheckBootloaderFingerprint ()) + Warning ("BOOT_LOADER_FINGERPRINT_CHECK_FAILED", hwndDlg); } } catch (...) { } -- cgit v1.2.3