Windows Vista User Account Control (UAC) 全新安全模組“使用者帳戶控制”

來源:互聯網
上載者:User
 

微軟將在幾天后發布全新的Vista作業系統,我們在過去的幾個月裡面也見到了很多有關Vista中強大功能的示範,又玄又酷的介面,方便快捷的搜尋;但是一切的玄酷都將歸於平淡,使用者最關心的還是系統的安全性,可用性等最實際的內容。

使用者帳戶控制UAC就是微軟為Vista作業系統全新設計的安全保護模組,它的主要目的是要保護使用者在互動狀態下不受惡意軟體和代碼的攻擊。

如果我問大家,有多少人正在使用系統管理員帳戶登陸電腦,我想80%以上的人會回答是;特別是對正在螢幕前的你來說(我估計看著篇文章的多數會是開發人員)。至少我的程式員們都在使用系統管理員層級的使用者名稱,而且他們擁有網路上的最高許可權。其實這也很正常,對於開發人員來說,我們需要隨時訪問很多的系統資源,才能跟快捷的解決問題。但是程式員的電腦的從裝率可能也是最高的,起碼我在過去的3個月中間從新安裝了至少4次。究其原因,就是因為我們的工作環境太不安全了,如果我在工作中使用了惡意軟體,它將獲得我系統上的最高許可權,並且為所欲為;管你什麼系統檔案,註冊表,統統變成了案上之肉。

針對這種情況,微軟提出了這個UAC的系統,它可以保證任何人在登陸到電腦的時候都運行在標準使用者權限之下,就算你是管理員。其原理其實很簡單,當任何使用者登入電腦的時候,UAC會把使用者的進階許可權剝離,只留下標準許可權,並啟動登陸進程;這樣使用者只能用這些標準的許可權來啟動電腦,進一步的說,使用者所啟動的程式也就只能擁有這些標準的(安全的)許可權。

那麼,如果我需要做更高許可權怎麼辦?Vista在這裡也提供了一個簡單的方式以臨時提升用的許可權:

 

 

在Vista中,我們會經常遇到這個對話方塊,而且會比較反感;但是任何的安全性都是有代價的。 另外一種對話方塊可能大家見的不多,就是當你以一個普通使用者身份登陸的時候,將遇到下面的對話方塊,要求一個管理員來進行授權:


註:這裡使用的介面和RTM中的有細微差別,RTM版本中的對話方塊不會顯示系統上的使用者名稱,而需要使用者輸入。這樣可以進一步的保護管理員的資訊。如果你的系統支援smart card,那麼呢這個對話方塊中還會出現劃卡的選項。

這其實和我們經常在超市裡遇到的情況相似,收銀員需要退款的時候往往都需要當班經理的授權;我們管這種情況叫做現場授權,Vista在這裡就借鑒了這種方式,從而免除了管理員需要從新登陸,或者使用Run As來進行高許可權的操作。

Vista還會使用不同的對話方塊和不同的顏色來標識不同安全層級的操作,對於Vista可以識別的應用程式,會使用比較平和的顏色,如:藍色(系統操作),灰色(可識別的應用程式),橙色(無法識別的應用程式)。


橙色:無法識別的應用程式需要許可權提升


灰色:可識別的應用程式需要許可權提升

在Vista系統上啟動並執行應用程式都應該使用數位簽章,Vista系統也會使用數位簽章來對應用程式進行識別並使用不同的安全警告層級。

在Vista中,所有需要提升許可權的地方都會出現一個小盾牌的標誌,以提醒使用者下面的操作需要更高的許可權,比如:修改系統時間的操作:


注意中被加亮的部分。

Vista中的所有需要許可權提升的部分都必須使用這個標誌,而且這個標誌不會因為你進行了一次提升就消失掉,也就以為這許可權提升都是臨時的,沒有解鎖狀態。

從系統的架構上,Vista使用獨立進程來運行更高許可權的操作,比如中的按鈕如果別點擊的話,那麼Vista會啟動一個全新的進程來運行所開啟的對話方塊;這樣從根本上保證了高許可權進程的獨立性;並且,在進程管理上,Vista中的普通進程是不能和高許可權進程通訊的,進一步保證了這些進程的安全。


兩個視窗,兩個進程。

對於普通的應用程式來說,如果不對UAC進行相應的處理,那麼也就無法獲得管理員權限,意味著你所編寫的應用程式永遠只能運行在普通使用者的低許可權環境之下。針對這種情況,有兩種辦法可以解決:

1) 使用”Run As Administrator”

對於現有的應用程式,如果因為許可權問題無法在Vista上正常啟動並執行話,可以使用這個方法來臨時獲得管理員權限。

你可以用右鍵點擊,選擇”Run Administrator”來臨時啟動高許可權進程。

或者還可以對檔案進行標識,告訴系統每次都這樣啟動:


註:這裡還有其他的選項,可以針對程式作出更多的相容性配置

 

2) 使用manifest來標識運行層級(建議方式)

這是微軟推薦使用的方式,當前的Vista對於沒有標識的應用程式還是支援的,但是微軟計劃在後面的版本中取消這些支援,那時候如果要在Vista上使用你的應用程式,那必須有以下的標識才可以:

<requestedPrivileges>

<requestedExecutionLevel level="requireAdministrator"/>

</requestedPrivileges>

除了requireAdministrator以外,我們還可以使用asInvoker,highestAvailable兩個選項進行標識。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.