260 likes | 477 Views
Windows Vista 호환성 이슈와 ISV 를 위한 가이드. 이승희 책임 마이크로소프트 프리미어 기술지원부 2006 년 12 월 18 일. 목차. 윈도우즈 비스타와 패러다임의 전환 호환성 이슈 어플리케이션 개발 가이드 어플리케이션 호환성 점검 도구 참고 자료 마이크로소프트로부터 얻을 수 있는 지원. 윈도우즈 비스타와 패러다임 전환. 윈도우즈 비스타 (Windows Vista) 새로운 지평 , 혹은 패러다임의 전환 안전하고 믿을만한 컴퓨팅 환경을 위한 시도
E N D
Windows Vista 호환성 이슈와 ISV를 위한 가이드 이승희 책임 마이크로소프트 프리미어 기술지원부 2006년 12월 18일
목차 • 윈도우즈 비스타와 패러다임의 전환 • 호환성 이슈 • 어플리케이션 개발 가이드 • 어플리케이션 호환성 점검 도구 • 참고 자료 • 마이크로소프트로부터 얻을 수 있는 지원
윈도우즈 비스타와 패러다임 전환 • 윈도우즈 비스타 (Windows Vista) • 새로운 지평, 혹은 패러다임의 전환 • 안전하고 믿을만한 컴퓨팅 환경을 위한 시도 • 악의적인 위협으로부터 공동체를 방어 • 예측/관리 가능한 컴퓨팅 환경을 제공 • 마이크로소프트 • 새로운 선택과 과감한 포기, 기존 아키텍쳐의 개선 • 개발 단계부터 호환성을 고려한 다양한 기제 포함 (Program Compatibility Assistant, User Profile Namespace …) • 호환성 테스트를 지원하기 위한 문서와 도구들 (ACT, SUA…) • 개발자/IT 운영자를 위한 훈련과 이슈 지원 센터 운영
윈도우즈 비스타와 패러다임 전환 • 기업과 파트너 • 무엇이 바뀌었나, 왜 바뀌었나 (인지와 공감) • 아키텍쳐 상의 변화와 그 이유 • 새로운/ 변화된/ 없어진 기능들의 파악 • 영향은 무엇인지 (비용) • 기존 어플리케이션의 영향도 평가 • 버릴 것과 바꿀 것 - 다양한 방안 모색 (16비트, 일부 커널 드라이버등) • 기회는 무엇인지(목표) • RFP에 포함될 사항들, 보안, 총소유 비용, UX • 신기술에 대한 발빠른 접근으로 입지와 수익의 창출 • 무엇을 지원받나(자원) • 자본, 기술, 인력 그리고 마이크로소프트 • 전략과 전술의 수립
호환성 이슈 - 사용자 계정 콘트롤 • 신뢰도 등급 (Mandatory Integrity Level, MIC) 설정 • 프로그램이 동작할 때, 가지게 되는 신뢰도 등급을 미리 지정 • 사용자와 무관하게, 디폴트는 중간 등급 – 표준 사용자 권한 • 관리 가능한 환경의 기초 • 위험을 가져올 수 있는 프로그램은 특별히 보호모드로 실행 • 디폴트로 낮은 등급으로 실행 (인터넷 익스플로러 7.0)
호환성 이슈 - 사용자 계정 콘트롤 • 사용자 계정 콘트롤 (User Account Control, UAC) • 관리자 권한이 필요할 때만 프로세스의 신뢰도 등급을 높힘 • 표준 사용자 (Standard User)로 실행됨 • 가트너 그룹의 자료에서 관리된 환경의 PC는 TCO가 40% 이상 절감 • 낮은 등급을 가진 인터페이스에서 높은 등급으로 메시지 전달 금지 • 권한 상승 기제 (Elevation) 제공 • 하나의 프로세스가 서로 다른 신뢰도 등급의 토큰을 할당 받고, • 필요할 때, 동의창 혹은 자격인증창을 통해 권한 상승 • 프로그램을 통한 자동 권한 상승은 가능하지 않음 (반드시 사용자 개입) • 악의적인 공격 후에도 시스템을 방어할 수 있도록 • UAC가 적용되지 않는 예외 • 로컬 관리자로 로그인 – 그러나 디폴트로 비활성화된 계정 • 사용자 계정 콘트롤을 끈 경우
호환성 이슈 - 사용자 계정 콘트롤 • 영향 : 어플리케이션 실행 실패 • 어플리케이션의 설치, 제거, 업그레이드 시 관리자 권한 전제 • 대부분의 어플리케이션이 로컬 관리자일 것을 가정하고 실행 • HKLM 레지스트리 쓰기실패 • %SystemDrive%, %Programfiles%, %WinDir% 등에 쓰기 실패 • 낮은 신뢰도 등급으로 기동하는 프로그램에서 더 높은 신뢰도 등급으로 기동하는 것으로 윈도우즈 메세지를 전달할 수 없음 • 마이크로소프트가 제공한 대안 • “관리자 권한으로 실행”으로 프로그램 실행 • 호환성 탭에서 “이 프로그램을 관리자 권한으로 실행” 선택 • “install”, “update”, “uninstall” 등의 이름을 가진 프로그램은 일단 설치 프로그램으로 간주하고 권한 상승 시도 (Installation Detection)
호환성 이슈 - 사용자 계정 콘트롤 • 마이크로소프트가 제공한 대안 – 가상화 (Virtualization) • 기존 어플리케이션과의 호환성 위해 • 관리자 권한 상승이 필요한 리소스에 쓰기를 시도하면, • 표준 사용자가 쓰기 가능한 곳 아래로 바꾸어 기록 (Redirect) • 기존 어플리케이션은 이를 인식하지 못하고 일단 성공 • 파일: %userprofile%\AppData\local\virtualstore • 레지스트리: HKCU\software\classes\virtualstore • 그러나, 단기적인 미봉책에 불과, 향후 이 기능은 지원하지 않음 • 단기적 대안 • Manifest 파일을 이용하여 관리자 권한으로 실행하도록 마킹
데모 - 사용자 계정 콘트롤 • 표준 사용자와 신뢰도 등급 • 권한 상승 • 메니페스 파일을 이용한 관리자 권한 마킹 • 파일 및 레지스트리 가상화
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0 • 인터넷 익스플로러7.0의 보호 모드 (Protected Mode) • 표준 사용자보다 더 낮은 신뢰도 등급으로 프로그램 실행 • 신뢰도 등급과 사용자 계정 콘트롤의 원칙이 그대로 적용 • IE7.0 프로세스에서 동작하는 플러그인, 액티브X가 모두 영향받음 • 단, 임시 인터넷 파일(TIF) 폴더는 호환성을 위해 예외
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0 • 권한상승이 가능하도록 2개의 감찰 프로세스를 제공 • 사용자 권한 브로커(IEUser.exe): 표준 사용자 권한으로 쓰기 가능한 리소스 접근을 위한 프로세스 • 관리자 권한 브로커(IEInstal.exe):관리자 권한이 필요한, 액티브X 콘트롤 설치와 같은 작업 수행을 위한 프로세스
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0 • 영향 • 아래와 같은 폴더 외에는 쓰기 실패 • * 임시 인터넷 파일 • * 히스토리 • * 쿠키 • * 즐겨찾기 • * 윈도우즈 임시 폴더 • 여타 어플리케이션에 윈도우즈 메시지 전달 실패 • 기타 인터넷 익스플로러 7.0 자체의 변화로 인한 기능 문제 • * 교차 도메인(XSS) 소스에 접근하는 액티브X 콘트롤 차단 • * 코드 서명이 되지 않은 액티브X 콘트롤 • * 스크립팅하기에 안전(Safe-for-Scripting)하지 않은 액티브X 콘트롤
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0 • 마이크로소프트가 제공한 대안 • UAC 하의 어플리케이션과 마찬가지로 가상화 제공, 그러나 미봉책 • 파일: %userprofile%\AppData\local\virtualstore • 레지스트리: HKCU\software\classes\virtualstore • 사이트를 “신뢰할 수 있는 영역”에 포함
호환성 이슈 - 보호모드 상의 인터넷 익스플로러 7.0 • 단기적 대안 • IEGetWriteableHKCU(), SHGetKnownFolderPath() 이용하여 쓰기 가능한 레지스티리와 폴더를 검색 • 관리자 권한이 반드시 필요한 액티브X 콘트롤의 경우에는, 매니페스트 파일이나 CoCreateInstanceAsAdmin() 이용 Manifest 파일 Shellexecute() 실행파일(.EXE) ActiveX 컨트롤 CoCreateInstanceAsAdmin() ActiveX 컨트롤 ActiveX 컨트롤 사용자 권한 관리자 권한
데모 - 보호모드 상의 인터넷 익스플로러 7.0 • 관리자 권한이 필요한 액티브X 콘트롤의 개발
호환성 이슈 - 리소스 보호 기능 • 리소스 보호 기능(Windows Resource Protection, WRP) • 운영체제의 폴더, 레지스트리, 파일을 믿을 수 있는 상태로 유지 • 어플리케이션에 의한 원하지 않는 상태 변화를 통제 • 영향 • WRP에 포함된 파일/레지스트리를 배포하거나 변경하려는 어플리케이션은 모두 실패 • 대안: 소스 변경 불가피 • SfcIsFileProctected(), ScfIsKeyProtected() 함수로 미리 파악 • MSI 3.x, 4.x 등의 Trusted Installer를 이용한 설치/업그레이드/제거
호환성 이슈 - 세션 0 고립화 • 서비스의 세션 고립화(Session 0 Isolation) • 기존에는 모든 서비스가 첫번째 로그인한 사용자와 세션을 공유 • 이제는 서비스가 사용자 세션에 의해 영향 받지 않도록 고립시킴 • 고립화란, • 사용자 인터페이스 허용 안함 • 시스템 프로세스와 서비스만이 세션 0일 수 있음 • 영향 • 사용자 인터페이스를 가진 서비스의 작동 이상 • 글로벌 네임 스페이스를 사용하는 어플리케이션의 작동 이상 • 빠른 사용자 전환 (Fast User Switch, FUS) 상의 이상 동작 • 단기적인 대안 • 사용자 인터페이스를 가진 서비스를 위해 일단 전달된 메시지를 보여주는 기능을 윈도우즈 비스타가 제공 • 글로벌 네임 스페이스를 사용할 경우, “윈도우즈 XP” 호환 모드로
데모 • 윈도우즈 리소스 보호 기능 데모
호환성 이슈 - 기타 • 64비트 윈도우즈 비스타 상의 호환성 • 32비트 드라이버 지원 안함 • 서명된 커널 드라이버만 설치 가능 • 32비트 윈도우즈 비스타에서의 업그레이드 미지원 • 16비트를 더이상 지원하지 않음 • 콤포넌트, 인스톨러, 어플리케이션 모두 • 64비트 윈도우즈 비스타는 가상화 지원하지 않음 • 네트워킹 • IPv6 디폴트로 활성화, 가능하면, IPv6로 통신 • 로컬 루프백 주소와 다른 주소 간의 통신 불가 • 윈도우즈 방화벽을 끄는 함수 지원하지 않음 • INetFwProfile.put_FirewallEnabled(VARIANT_FALSE) • 방화벽 기능을 후킹하는 함수나 드라이버 지원 않함
호환성 이슈 - 기타 • MS GINA • Microsoft Graphical Identification and Authentication • 그래픽 부분과 인증 처리 부분이 하나로 묶임 • 새로운 Credential Provider API 제공 • 영향 • 생체 인식 장치 • XP용 사용자 VPN 솔루션 • 스마트 카드 리더 • 버전 체크 • GetVersion() 함수를 확인하는 어플리케이션이 정상 수행되지 않음 • 어플리케이션마다 드러나는 양상이 다를 수 있음 (설치 프로그램 중단, 어플리케이션 크래쉬, 업데이트 불가 등) • 임시로, “윈도우즈 XP” 호환 모드로 동작 가능
호환성 이슈 - 더 이상 지원되지 않은 기능 • DHTMLEd.OCX • MSHTML.DLL로 대체 • 혹은 HTC를 이용한 대체 콘트롤 개발 • 윈도우즈 XP에서도 Kill-Bit 될 것으로 보임 • 커널 모드 프린터 드라이버 • FrontPage Server Extension • Service for Macintosh • D3DRM – 대신 DirectX 사용 • Web Publishing Wizard • NetDDE – 보통의 DDE는 여전히 지원 • IsBadReadPtr(), IsBadWritePtr()
어플리케이션 개발 가이드 • 가능한 표준 사용자 권한으로 기동할 수 있도록 디자인 • 프로그램 설치는 MSI 등의 Trusted Installer 사용 • HKCU, %userprofile% 아래 쓰기 작업 수행 • 인터넷의 액티브X 콘트롤의 경우, 허용된 폴더에 쓰기 작업 • 관리자 권한이 필요한 부분과 필요하지 않은 부분은 가능한 나누어 모듈화 • 업데이트 기능과 일반 기능 수행이 하나의 모듈에 들어가지 않도록 디자인 • 관리자 권한이 반드시 필요할 경우, 관리자 권한 마킹 • 액티브X 콘트롤은 CoCreateInstanceAsAdmin() 혹은 Manifest • 액티브X 콘트롤 대신 AJAX, DHTML, CSS로 기능 수행
어플리케이션 호환성 점검 도구 • Application Compatibility Toolkit 5.0 RC1 • Standard User Analyzer • Application Verifer 다운로드 • 표준 사용자 환경에서의 어플리케이션 테스트 수행 • Setup Analysis Tool • 설치 프로그램의 수행 시 호환성 점검 • Internet Explorer Compatibility Test Tool • 인터넷 익스플로러 기능 변화에 따른 호환성 이슈 점검 • Application Compatibility Manager • MSSQL 2005(or Express Edition)을 이용
참고 자료 • Windows Vista IE7의 새로운 보안하에서 ActiveX 컨트롤 개발 (이동석) • ISV Windows Vista Compatibility Cookbook (MSDN) • DevReadiness 사이트 (http://devreadiness.org) • 시스템 리소스 보호 목록(Windows Resource Protection – WRP) • UAC 둘러보기(개관, 알려진 이슈와 해결책에 대한 개괄적 설명) • 버츄얼 랩(호환성 탭, 관리자 계정으로 실행, 권한상승 창, 보안정책 설정, 가상화 등) • PDC 2005 자료(Vista, WPF, IIS7, Office12 등) • 표준 사용자 환경에서 개발 가이드 • Standard User Analyzer (SUA) 내려받기(포함된 매뉴얼 필독) • 업데이트 가이드라인(패치와 업그레이드) • Understanding and Working in Protected Mode Internet Explorer (Windows ... • Developer Best Practices and Guidelines for Applications in a Least Privileged Environment • 인터넷 익스플로러 7.0의 호환성 이슈 (이승희) • 인터넷 익스프로러 7.0 호환성 백서 (정성태) –DHTMLED.Ocx 관련 샘플 소스
마이크로소프트로부터 얻을 수 있는 지원 • 정식 출시 일자 • Volume License 계약자용 제품 출시; 2006년 11월 30일 • Volume License 계약자 이외 제품 출시; 2007년 1월 31일 • IE7 및 Windows Vista 호환성 지원 • www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx • 온라인 교육 : www.microsoft.com/korea/eseminar/ • 오프라인교육 • 교육 신청: http://www.eiti.co.kr/event/Vista_dev.htm • 1월 말까지 매일 5시간(오후 1시~6시)의 무상 교육 과정 • 호환성 지원 센터 • 호환성 지원센터 페이지 (질의 입력 가능): http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx • 전자우편을 통한 문의: support@neoplus.co.kr (050-5912-1000) • 프리미어 계약 고객은 담당 Technical Account Manager를 통해