為什麼在某些Windows系統上登錄時需要 Ctrl kbd> + Alt kbd> + Del kbd>(我在其他地方沒有看到它,但是如果我錯了)才能輸入密碼?從可用性的角度來看,這是一個壞主意,因為它增加了獲取訪問權限的額外步驟。
它會以任何方式提高安全性嗎?
為什麼在某些Windows系統上登錄時需要 Ctrl kbd> + Alt kbd> + Del kbd>(我在其他地方沒有看到它,但是如果我錯了)才能輸入密碼?從可用性的角度來看,這是一個壞主意,因為它增加了獲取訪問權限的額外步驟。
它會以任何方式提高安全性嗎?
此組合稱為安全注意鍵。 Windows內核通過“有線” 來通知 Winlogon,並且沒有其他人知道此組合。這樣,當您按 Ctrl kbd> + Alt kbd> + Del kbd>時,可以確定† sup>在真實的登錄表單中輸入您的密碼,而不是嘗試盜取密碼的其他偽造過程。例如,看起來像Windows登錄的應用程序。
在Linux中,有一個鬆散定義的等效項,它是 Ctrl kbd> + Alt kbd> + 暫停 kbd>。但是,它並不完全相同。它會殺死所有東西,除了您試圖輸入密碼的地方。到目前為止,運行 X時沒有實際的等效項。
† sup>這意味著對系統本身完整性的信任,仍然可以修補內核並覆蓋此行為以用於其他目的(惡意或完全合法)
Ctrl-Alt-Del是Windows上的安全注意鍵。操作系統對此組合鍵實施了嚴格的非攔截策略。
您可以製作一個全屏顯示,抓住鍵盤並顯示類似於正常登錄屏幕的應用程序,直到最後一個像素。然後,您登錄計算機,啟動應用程序,然後走開,直到一些毫不懷疑的受害者找到計算機,嘗試登錄,並將其用戶名和密碼提供給您的應用程序。然後,您的應用程序只需模擬死亡的藍屏,或者實際上是使用戶登錄,以完成幻覺。
此攻擊已被SAK擊敗。您的應用程序可以抓住鍵盤並將所有按鍵重定向到自身,而無需管理權限, Ctrl-Alt-Del除外,操作系統不允許將其重定向。按下Ctrl-Alt-Del鍵可確保您獲得的是真正的登錄屏幕,而不是模仿屏幕。
答案實際上可以在我們的姊妹網站ServerFault上找到。 CTRL-ALT-DEL如何使Windows登錄更加安全?
要引用Oskar Duveborn接受的答案,
Windows (NT)內核旨在將此組合鍵的通知保留給單個進程:Winlogon。因此,只要Windows安裝本身能夠正常工作-第三方應用程序都無法響應此組合鍵(如果可以,它將顯示一個偽造的登錄窗口並記錄您的密碼;)
有人提出了有關Windows 8 SAS支持的其他問題,後來還發布了一個由所有者刪除的單獨問題。由於我已經開始編寫該問題的答案,並且該線程中也提到了Windows 8,因此將其發佈在這裡。如果該刪除的問題再次出現,我將把答案移到那裡。希望它將對那些想知道SAS在Windows 8手機和平板電腦上運行的地方有所幫助。 sub>
根據 Windows 8硬件認證要求按照Microsoft的要求:
對於Windows 8,當按下Windows按鍵和電源按鈕的組合時,將發送SAS信號。
因此,這不是安全注意鍵完全消失(在無鍵盤設備上,其他仍然可以像以前一樣使用 SAS)和兩個標準硬件按鈕組合的情況 Win kbd> + Pwr kbd>添加到仍然存在的 Ctrl kbd> + Alt kbd> + Del kbd>組合中為了更好地支持沒有硬件鍵盤的設備,這也是Windows 8的設計目標。
當然,因為它不僅是沒有物理鍵盤的便攜式設備的操作系統,而且台式機也可以沒有這些 Win kbd> + Pwr kbd>物理按鈕(但它們確實有鍵盤),仍然保留了舊的 SAS方法。如果出於某種原因想要禁用/重新啟用此支持,則此博客(或 this)說明瞭如何通過幾個簡單的步驟來實現
@Iszi在本週的問題博客文章討論中提出了另一個相關的問題(或實際上是一個請求的更多內容)在 IT安全元:上,“我發現發現Windows & Linux不一定使用相同的安全注意密鑰特別有趣。如果有人可以對此稍加擴展,那就太好了。 。” 。由於我已經是這個問題的晚間聚會了,所以沒人能指責我劫持 rep火車 [ 1] [ 2] sup> ,結果變成了-嗯,就這樣: sub>
我發現這兩種實現之間的主要區別是Linux SAK(是的,與 SAS(安全注意序列)相比,這是Linux中的首字母縮寫在Windows中使用)是Linux SAK從未獲得國家計算機安全中心(NCSC) C2安全等級。 Windows NT具有:
當NT獲得C2安全等級時,NCSC也將NT視為滿足B級安全的兩個要求:受信任路徑功能和受信任設施管理功能。可信路徑功能可防止特洛伊木馬程序在用戶登錄時截獲用戶的名稱和密碼。 NT的“可信路徑”功能以其Ctrl + Alt + Del登錄注意序列的形式存在。此擊鍵序列(安全注意序列(SAS))將導致NT登錄對話框彈出,該對話框將初始化一個有助於NT識別可能的特洛伊木馬的進程。當用戶輸入註意順序時,NT會繞過任何顯示偽造登錄對話框的特洛伊木馬。
NT通過支持獨立的帳戶角色來滿足管理功能,從而滿足了受信任的設施管理要求。例如,NT為管理(用戶),用戶提供了單獨的帳戶 負責備份計算機的帳戶(備份操作員)和標準用戶(用戶)。據報導,微軟正在開發NT的B級版本,但該公司尚未就何時發布該版本發表公開聲明。
但這仍然不能真正解釋為什麼 SAK
!=
SAS
。好,讓我們再深入一點。通過安德魯·莫頓(Andrew Morton)處理的 Linux 2.4.2安全注意密鑰(SAK),我們得到以下信息:
在PC鍵盤上,Linux具有兩種相似但不同的方式提供SAK。一個是 Alt kbd> + SysRq kbd> + K kbd>序列。您不應該使用此順序。僅當內核在
sysrq
支持下編譯時,該選項才可用。生成SAK的正確方法是使用
loadkeys'定義鍵序列。不論是否將sysrq支持都編譯到內核中,這都將起作用。
當鍵盤處於原始模式時,SAK可以正常工作。這意味著,一旦定義,SAK將殺死正在運行的
X服務器
。如果系統處於運行級別5 ,則X服務器
將重新啟動。這就是您想要發生的事情。您應該使用什麼鍵序列?好吧, Ctrl kbd> + Alt kbd> + Del kbd>用於重新引導計算機。 Ctrl kbd> + Alt kbd> + Backspace kbd>對於
X服務器
是 magical 。
它繼續說明如何創建自定義的 SAK處理程序,但主要要點在於,該實現與Windows中 SAS,並且可能無法在內核級別實現它們,具體取決於是否為構建啟用了 sysrq
支持。
這是否解釋了Windows和Windows的區別? Linux對 SAS / SAK的處理?我會說是的。 LWN.net的用戶 tialaramex 對其進行了巧妙的解釋:
Linux對此功能提供了一些基本的底層支持,但它似乎從未因任何後果而提升為最終用戶功能。沒有任何應用程序可以捕獲SAK組合,因為在運行允許用戶空間應用程序按一下按鍵的任何代碼之前,內核已經註意到SAK已被按下並短路到僅能處理這種特殊情況的路徑。
其中:
在Windows中,當您按下SAK時,它會強制調用一個單獨的桌面,您可以將其視為一個單獨的X服務器進程。該桌面由系統用戶“擁有”,大致相當於Unix根,因此任何有權篡改該桌面的人都可以替換整個OS內核或他們想要的任何東西。
它解釋了為什麼選擇了不同的鍵盤順序?我不確定。它顯示了為什麼Linux中不止一個這樣的鍵盤序列,以及它們之間的區別是什麼(請參閱 Andrew Morton的解釋),但是我找不到關於為什麼選擇了一個這樣的鍵盤的明確答案。另一個原因以及為什麼不同的內核版本可能使用不同的 SAK組合。我只能懷疑這歸結為他們受人尊敬的作者的個人偏愛。
這個想法是一個受信任的Windows進程,稱為Winlogon,只有Winlogon可以讀取 Ctrl kbd> + Alt kbd> + Del kbd>鍵序列。該密鑰序列稱為安全注意序列(SAS)。通過輸入此鍵序列,您基本上可以“證明”是Windows接受您的輸入。通過創建假的用戶名和密碼表格,可以防止惡意程序攔截您的登錄憑據。當然,這假定Winlogon不會受到損害,並且Winlogon可能已被篡改,因此可以繞過此措施。
如果在不要求您輸入登錄提示的情況下,在配置為執行此操作的系統上按 Ctrl kbd> + Alt kbd> + Del kbd>,請勿輸入您的登錄憑據,因為這意味著程序已經劫持了登錄提示。如果您擁有計算機,則將其重新啟動到安全模式並清理其中的所有惡意軟件。如果您的公司是計算機的所有者,請與系統管理員聯繫。 >,適用於沒有物理鍵盤的平板電腦(浮現在表面上)。
Ctrl + Alt + Del在Windows登錄之前就已經存在了,最初它只是在系統上進行了軟重置。在其他系統/ OS上也有相同的組合(想到Atari ST)。
如果問題是“為什麼Windows(現在)使用它”,那麼我不知道,也許是因為用戶選擇了它。您將需要問這個決定的人,我相當確定實際按下的鍵是任意的(但是現在我認為這可能是低級的硬件中斷)。
考慮選擇組合鍵時還會找到另一原因-AFAIK:很難用一隻手同時按下Ctrl,Alt和Del的全部;而且也不太可能同時敲擊鍵盤或敲打鍵盤等同時按下所有三個鍵。 David Bradley選擇此組合觸發軟重啟(維基百科),重要的是不要被錯誤觸發。這引起了諸如顯示用戶登錄提示之類的事情;這樣做的目的是通過明確地決定按“困難”的組合鍵(例如,在登錄之前)來表明您的意圖。 + Alt + Del。