내보내기(0) 인쇄
모두 확장

Windows Phone의 보안

2012-02-09

Windows Phone 응용프로그램 플랫폼 은 정상적인 에코시스템에서 응용프로그램을 취득하여 사용자가 사용자 지정할 수 있는 강력한 사용자 환경을 제공하도록 설계되었습니다. 이 목표를 달성하려면 최종 사용자의 신뢰성 문제를 처리해야 합니다.

Windows Phone 응용프로그램 플랫폼 은 Windows Phone 에서 타사 응용프로그램을 다운로드하고 사용할 때 최종 사용자의 환경 품질을 유지할 수 있도록 도와주는 여러 기술을 통합합니다. 이러한 기술을 통해 처리되는 문제를 다음 세 가지 광범위한 카테고리로 나눌 수 있습니다.

  • 휴대폰 환경 품질. 최종 사용자는 취득하는 응용프로그램으로 인해 휴대폰의 응답 성능 저하, 다른 응용프로그램이나 휴대폰 자체에 영향을 주는 변경 작업 등의 부정적인 영향이 휴대폰 환경에서 발생하지 않기를 원합니다. 또한 최종 사용자가 어떤 이유로든 휴대폰에서 특정 응용프로그램이 더 이상 필요하지 않다고 결정할 경우 응용프로그램이 쉽게 제거되고 완전히 제거되어야 합니다.

  • 사용자 정보에 대한 액세스. 최종 사용자는 취득하는 응용프로그램이 사용자도 모르게 특정 정보에 액세스하지 않기를 원합니다. 여기에는 개인 데이터, 연락처, 지리적 위치, 사진 등의 정보가 포함됩니다.

  • 청구 가능 이벤트. 최종 사용자는 응용프로그램이 사용자 승인 없이 추가 비용을 발생시키는 작업을 수행하지 않기를 원합니다. 예를 들어 1-900 전화 번호로 전화를 거는 응용프로그램이 있습니다.

Windows Phone 응용프로그램 플랫폼 에는 이러한 문제를 처리하고 최종 사용자가 응용프로그램을 체험할 수 있는 정상적인 에코시스템을 조성하기 위한 여러 조치가 포함되어 있습니다.

Windows Phone 응용프로그램 플랫폼 의 목표 중 하나는 설계상 보안이 유지되고 기본적으로 보안이 유지되는 응용프로그램을 만들도록 하는 것입니다. 이 목표의 달성 과정에서 중요한 측면은 개발 환경과 수명 주기에 여러 보안 보호 기능을 통합하는 것입니다. 예를 들어 Windows Phone 마켓플레이스 에서 판매가 승인된 모든 응용프로그램에 대해 디지털 서명을 요구하고 자동화합니다.

최종 사용자를 위해 적용되는 보안 조치를 지원하기 위해 응용프로그램 개발자는 다음 단계를 수행해야 합니다.

  1. Windows Phone 개발자로 등록하고 ISV로 자신에 대한 정보를 제공한 다음(확인 과정이 적용됨) 관련 요금을 지불합니다.

  2. 권장되는 개발 환경을 취득합니다(무료 버전을 사용할 수 있음).

  3. .NET 관리 언어 개발 기술과 도구만 사용하고 Windows Phone 응용프로그램 개발에 대해 지정된 표준 관행에 따라 Windows Phone 응용프로그램을 개발합니다. 더 쉽게 테스트할 수 있도록 개발자는 하나 이상의 Windows Phone 을 개발 단말기로 등록하여 응용프로그램 전송 및 인증 프로세스에서 디지털 서명되기 전과 개발 중에 응용프로그램을 실행하도록 할 수 있습니다.

  4. Windows Phone 마켓플레이스 에 포함되도록 Windows Phone 응용프로그램을 전송합니다. 이 프로세스에서 공개적으로 문서화된 다양한 인증 테스트가 응용프로그램에 적용됩니다. 응용프로그램이 이러한 테스트를 모두 통과하면 개발자 대신 디지털 서명되며 Windows Phone 마켓플레이스 에서 판매될 수 있습니다.

이 구조적 개발 환경과 프로세스를 준수함으로써 개발자는 최종 사용자의 신뢰도를 높이는 Windows Phone 용 응용프로그램 에코시스템을 만드는 과정에 참여하게 됩니다.

이 구조적 개발 플랫폼과 실행 환경에는 개발자의 지적 재산을 보호하기 위한 보호 기능도 포함되어 있습니다. 응용프로그램이 Windows Phone 에서 실행되려면 Windows Phone 마켓플레이스 에서 발급된 유효한 라이선스가 휴대폰에 있어야 합니다. 즉, 기술이 뛰어난 최종 사용자가 Windows Phone 마켓플레이스 를 우회하고 다른 방식으로 응용프로그램을 휴대폰에 로드하는 방법을 찾았다 해도 라이선스를 사용할 수 없으면 Windows Phone 에서 응용프로그램 실행을 허용하지 않으므로 오랜 노력을 통한 개발자의 결과물을 보호할 수 있습니다.

Windows Phone 응용프로그램 플랫폼 은 불필요한 특정 동작을 하는 응용프로그램으로부터 Windows Phone 최종 사용자를 보호하기 위한 다양한 기술을 사용합니다.

  • 구조적 응용프로그램 전송 및 인증 프로세스에는 문제와 연결될 수 있는 특정 동작을 식별하고 이러한 응용프로그램이 Windows Phone 마켓플레이스 에서 제공되지 않도록 하는 인증 테스트 제품군이 포함되어 있습니다.

  • Windows Phone 마켓플레이스 는 응용프로그램 취득, 필수 코드 서명 및 응용프로그램 라이선스의 적법한 유일한 소스입니다. 이 방법은 Windows Phone 응용프로그램에 대해 일관성 있는 표준 집합을 유지하는 데 도움이 됩니다.

  • .NET 관리 코드만 사용하여 Windows Phone 응용프로그램을 개발해야 하는 요구 사항은 개발자 생산성과 응용프로그램 견고성 향상에 도움이 됩니다. 적절하게 사용할 경우 관리 코드의 강력한 형식화, 범위 검사 및 메모리 관리 기능은 의도하지 않은 과도한 리소스 사용뿐 아니라 해커의 응용프로그램 악용을 초래할 수 있는 일반 프로그래밍 오류를 제거하거나 최소화하는 데 유용합니다.

  • Windows Phone 응용프로그램은 샌드박스 프로세스에서 실행됩니다. 즉, 응용프로그램이 서로 격리되며 엄격하게 구조적 방식으로 휴대폰 기능과 상호 작용합니다. 응용프로그램이 데이터 또는 구성 정보를 저장해야 하는 경우 다른 응용프로그램의 액세스로부터 보호되는 격리된 저장소를 사용합니다. 응용프로그램은 제어된 메커니즘을 통해서만 서로 통신할 수 있습니다. 격리된 저장소에 대한 자세한 내용은 Windows Phone의 격리된 저장소 개요를 참조하십시오.

  • Windows Phone 응용프로그램은 실행 관리자의 감독 하에 실행됩니다. 실행 관리자는 응용프로그램이 정의된 특정 규칙에 따라 동작하는지 여부를 측정합니다. 예를 들어 실행 관리자는 포그라운드에 없는 응용프로그램의 리소스 사용을 모니터링하고 필요한 경우 포그라운드가 아닌 응용프로그램을 종료하여 포그라운드 응용프로그램이 보다 빨리 사용자에게 응답하도록 합니다.

  • 특정 응용프로그램이 실행되는 샌드박스 프로세스에는 사용자 지정 보안 기능 집합이 있습니다. Windows Phone 응용프로그램 플랫폼 은 실행하는 데 필요한 기능만 각 응용프로그램에 부여하여 공격을 받을 수 있는 응용프로그램 영역을 최소화하도록 설계되었습니다. 예를 들어 응용프로그램에서 미디어 라이브러리를 사용할 필요가 없는 경우 Windows Phone 응용프로그램 플랫폼 은 미디어 라이브러리에 대한 액세스 권한이 없는 샌드박스 프로세스에서 이 응용프로그램을 실행합니다.

    응용프로그램에 필요할 수 있는 특정 기능은 정보 액세스나 비용에 직접적인 영향을 줍니다. 이 경우 Windows Phone 마켓플레이스 는 응용프로그램을 구입하기 전에 이 정보를 최종 사용자에게 공개합니다. 미리 설치된 응용프로그램도 응용프로그램을 처음 사용할 때 이 정보를 최종 사용자에게 공개해야 합니다.

SDL은 소프트웨어 개발에 집중하는 보안 보장 프로세스입니다. 기존 소프트웨어 개발 수명 주기의 단계별로 그룹화된 필수 보안 활동의 컬렉션입니다. 독립 실행형 기반으로 구현될 경우 이러한 보안 활동은 대부분 어느 정도의 보안 이점이 있습니다. 하지만 Microsoft의 실제 경험에 따르면 반복 가능한 프로세스의 일부로 순차적으로 실행된 보안 활동이 임시 구현에 비해 보안상 이점이 더 클 수 있습니다. 전체적 방법과 실용적 방법을 결합함으로써 SDL은 최종 사용자 보호를 목표로 개발 프로세스의 모든 단계에 보안과 개인 정보 보호를 도입합니다. SDL에 대한 자세한 내용은 SDL Process Guidance를 참조하십시오.

Microsoft는 개발자가 응용프로그램에서 사용할 수 있는 많은 SDL 도구를 제공합니다. Windows Phone 개발자에게 유용한 여러 도구가 있습니다.

SDL 도구

정보

Microsoft SDL Threat Modeling Tool

SDL Threat Modeling Tool을 사용하면 비보안 주제 전문가가 시스템의 보안 설계에 대해 통신하고, 입증된 방법론을 사용하여 이러한 설계의 잠재적 보안 문제를 분석하고, 보안 문제의 완화 방법을 제안 및 관리하여 위협 모델을 만들고 분석할 수 있습니다.

FxCop

FxCop은 정적 분석기입니다. 관리 코드 어셈블리를 분석하고 가능한 설계, 지역화, 성능 및 보안 향상 기능과 같은 어셈블리 정보를 보고합니다.

BinScope

BinScope Binary Analyzer는 이진 파일을 분석하여 SDL 요구 사항 및 권장 사항에 따라 작성되었는지 확인하는 확인 도구입니다. BinScope는 SDL에 필요한 컴파일러/링커 플래그가 설정되고 있는지, 강력한 이름의 어셈블리가 사용되고 있는지, 최신 빌드 도구가 구현되었는지, 양호한 최신 ATL 헤더가 사용되고 있는지 확인합니다. 또한 BinScope는 SDL에서 금지된 위험한 구문을 보고합니다.

MiniFuzz

MiniFuzz File Fuzzer는 파일 처리 코드에서 보안 취약점을 노출할 수 있는 문제 검색을 도와주는 기본 테스트 도구입니다. 이 도구는 응용프로그램에서 파일을 구문 분석하는 Windows Phone 개발자에게 유용할 수 있습니다.

Banned.h

banned.h 헤더 파일은 코드에서 금지된 함수를 제거하기 위한 SDL 요구 사항을 지원하는 삭제 리소스입니다. 이 파일은 금지된 API를 모두 표시하고 개발자가 코드에서 해당 API를 찾을 수 있게 합니다. 이 도구는 웹 서비스를 빌드 중인 개발자에게 유용할 수 있습니다.

서버 SSL 인증서가 대상 웹 사이트에 유효하고 신뢰할 수 있는 인증 기관에서 발급된 경우 SSL 연결을 사용하여 웹 서비스에 연결할 수 있습니다. 응용프로그램에서 SSL 연결을 테스트하기 전에 Windows Phone Internet Explorer를 사용하여 웹 사이트를 탐색할 수 있습니다. 브라우저를 사용하는 동안 인증서에서 경고 또는 오류가 발생하면 응용프로그램에서도 연결이 실패할 가능성이 큽니다.

Windows Phone 에 포함된 SSL 루트 인증서의 전체 목록을 보려면 Windows Phone용 SSL 루트 인증서를 참조하십시오.

신뢰할 수 있는 인증 기관 목록에 인증 기관을 추가할 수 있지만 클라이언트 SSL 인증서는 추가할 수 없습니다.

ProtectedData 클래스를 사용하면 DPAPI(데이터 보호 API)를 통해 데이터를 쉽게 암호화하고 해독할 수 있습니다. 자세한 내용은 방법: Windows Phone 응용프로그램에서 데이터 암호화를 참조하십시오.

웹 서비스 보안 처리 방법에 대한 자세한 내용은 Windows Phone의 웹 서비스 보안을 참조하십시오.

응용프로그램이 다음 항목과 연결된 API를 사용해야 하는 경우 앱 허브에 대한 응용프로그램 전송 및 인증 프로세스에서 해당 API를 사용할 수 있는 기능이 자동으로 부여됩니다. 이러한 기능은 최종 사용자가 Windows Phone 마켓플레이스 에서 구입할 응용프로그램을 볼 때 표시됩니다. 위치 서비스와 같은 특정 기능은 눈에 띄게 표시됩니다.

전체 기능 목록을 보려면 Windows Phone의 응용프로그램 매니페스트 파일을 참조하십시오.

Windows Phone 에서는 다음 암호화 알고리즘을 지원합니다.

  • AES

  • HMACSHA1

  • HMACSHA256

  • Rfc2898DeriveBytes

  • RSA

  • SHA1

  • SHA256

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft