티스토리 뷰
[UAC] Windows Vista의 사용자 계정 컨트롤(User Account Control : UAC) – 누구를 위한 기능인가? 그리고 왜?
jhbaek 2010. 10. 11. 09:38이 글은 아래 링크의 내용을 발췌한 글 입니다.
(http://technet.microsoft.com/ko-kr/library/cc700775.aspx)
.
.
.
UAC의 기본적인 형태는 간단합니다. 명시적인 Administrator 계정을 제외하고, 로그온 사용자를 일단 표준 사용자 권한(Users)으로 보는 것입니다. 기술적 표현으로는 Split Access Token(분리된 접근 토큰)이라고 합니다. Split Access Token은 모든 권한을 가진 보안 토큰을 생성한 후, 관리자 권한과 그룹을 뺀 다른 UAC 접근 토큰을 생성합니다. 이를 Linked Token이라고 합니다. Linked Token을 사용하던 사용자가 모든 권한이 필요한 경우, 이를 확인하는 절차를 밟은 후, 권한을 부여받게 됩니다.
내장 Administrators내 포함된 사용자에 대해서 Windows XP는 관리자와 동일한 권한을 주었었습니다. 이에 어떠한 제약도 없이 Windows의 모든 작업을 다 할 수 있었습니다. 그렇지만 Windows Vista에서는 틀립니다.
이유는 바로 보안때문입니다. 시스템의 안정성과 신뢰성을 해치는 것 - 악성 프로그램(Malware), 바이러스(Virus), 스파이웨어(Spyware) 들이 설치되는 형태를 분석한 결과, 이들이 모두 관리자 권한에서 실행되었기 때문에, 아무런 확인없이 설치가 된다는 것입니다. Windows XP, Windows 2000, 2003 시절, 많은 Microsoft의 세미나를 참가해 보면 ‘최소의 권한을 사용하십시오(LUA – Least-Privileged User Account’ 라는 권장을 들어보신 적이 있으실 것입니다. 그렇지만, 데스크톱의 경우 자신의 환경을 모두 제어하기 위해서는 Administrator의 권한이 필요하였고, 모든 계정을 자신의 데스크톱에 대해서는 Administrators 그룹에 넣어서 사용하였습니다. 결국 이러한 형태가 악성 프로그램들의 설치를 손쉽게 하는데 일조했습니다. (표준 사용자 권한을 가지고 작업을 해보신 분들은 아시겠지만, 일상적인 이용외 프로그램의 설치 및 시스템 변경은 불가능합니다.)
UAC의 첫번째 형태는 바로 Administrator 권한 사용시에 대한 확인입니다. 두가지 형태로 구분됩니다. Administrators내 사용자는 Administrator 권한을 사용하고자 할 경우(Administrators 그룹에 권한을 준 경우에도 포함됩니다.), 확인 창을 띄우는 것입니다. Users 그룹내 사용자는 관리자 계정에 대한 암호 확인을 통하게 됩니다.
그럼 관리자 권한이 필요한 경우는 대표적으로 다음과 같습니다. 1. %Systemdrive% 대한 핸들링 2. %Systemroot%(Windows), Program Files 폴더에 대한 쓰기 작업 3. 레지스트리 중 HKEY_LOCAL_MACHINE에 대한 쓰기 작업 4. Internet Explorer에 대한 각종 설정 변경등 5. Windows 시스템의 각종 설정들 (정확하게 Administrators에게 권한이 부여된 모든 작업)
.
.
.
UAC 환경을 이용하게 된다면, 보안은 획기적으로 상승하게 됩니다. 이를 이용하는 Windows 사용자는 더 나은 보안이라는 강점을 가지게 됩니다.
“UAC환경에서 일반 사용자 권한으로 프로그램이 동작한다면, 응용 프로그램 대부분이 동작하지 않지 않나요?”
Windows XP에서 일반 사용자 권한으로 Program files나 HKEY_LOCAL_MACHINE 레지스트리키를 쓰려고하면 접근 거부가 되었습니다. 해당 응용 프로그램을 Windows Vista에서 사용할 경우, 호환성 이슈가 발생할 수 있습니다.
이러한 호환성 이슈를 처리하고자 Windows Vista에는 Virtualization(가상화)기술이 적용되었습니다. 일반 사용자가 실행하는 레가시 응용 프로그램들이 권한을 가지지 않은 곳에 문서 파일이라던가, 어떠한 설정 파일을 저장하려고 할 경우, 이를 사용자별로 리디렉션하여, 가상화시킵니다.
Virtualization되는 폴더들의 목록은 다음과 같습니다. 1. %Windir% 2. %Windir%\System32 3. HKLM\Software. 4. %ProgramFiles%
이러한 폴더에 파일 저장을 요청하였을 경우 Windows Vista의 경우, 이를 사용자의 프로파일 내에 가상화 폴더(%UserProfile%\Appdata\Low\VirtualStore\)를 생성하여 저장하게 됩니다. 사용자의 응용 프로그램은 해당 가상화 폴더를 실제 폴더라고 인지하고 동작하게 됩니다.
http://technet.microsoft.com/ko-kr/library/cc700775.aspx 펌
'Development > Windows' 카테고리의 다른 글
[MFC] SendMessage와 PostMessage (0) | 2010.11.29 |
---|---|
[Visual Studio] DLL을 만들기. DLL 사용하기. (0) | 2010.11.26 |
버튼을 생성했더니 다이얼로그 프로그램 종료가 되지 않았다. (0) | 2010.10.22 |
[MFC] Class 에서 static 멤버 변수 사용하기 (0) | 2010.10.20 |
MFC에서 Draw 사용시 주의할 점들 (0) | 2010.08.24 |
MFC 다이얼로그 상속 받기 (0) | 2010.08.18 |
MFC Dialog Base 프로그램에서 엔터치면 꺼지는 문제 해결 (1) | 2010.07.19 |
MFC Button위에 Bitmap 입히기 (6) | 2010.07.15 |
- Total
- Today
- Yesterday
- kering
- MFC
- driver
- database
- Quiz
- Visual C++
- Python
- Cloud
- 안드로이드
- gcc
- db
- source
- Troubleshooting
- C
- 드라이버
- API
- algorithm
- jni
- winapi
- 프로그래밍
- C++
- 음악
- NDK
- 리눅스
- android
- it
- linux
- jni강좌
- java
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |