이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Windows Phone의 웹 서비스 보안

2013-12-05

적용 대상: Windows Phone 8 | Windows Phone OS 7.1

 

Windows Phone 앱에는 전 세계의 컴퓨터와 데이터를 교환할 수 있는 기능이 있습니다. 하지만 데이터가 중요할수록(예: 금융 데이터나 개인 정보인 경우) 앱이 데이터 가치를 반영하는 보안 절차를 사용하여 데이터를 요청하고 받도록 하는 것이 중요해집니다. 이 항목에서는 웹 서비스에 전화할 때 Windows Phone 앱을 보호하는 데 도움이 되는 몇 가지 방법에 대해 설명합니다.

설명되는 세 가지 주요 영역은 다음과 같습니다.

  • 인증

  • 통신 암호화

  • 사용자 이름 및 비밀번호 확인

앱에 데이터를 서비스하는 목적으로만 인터넷에 상주하는 앱을 웹 서비스라고 합니다. 이러한 앱은 인터넷을 통해 웹 페이지, Windows Phone 과 같은 모바일 단말기, 데스크톱 컴퓨터, 비교적 낮은 수준의 기본 인터넷 통신 프로토콜을 지원할 수 있는 기타 장치 등 여러 다른 플랫폼의 다양한 요청 응용프로그램에 응답하도록 설계되었기 때문입니다. 공개 데이터 요청은 대부분 매우 단순하며 HTTP 요청만으로 Windows Phone 에서 사용할 데이터를 가져올 수 있습니다. 예를 들어 대부분의 정부는 일기 예보, 버스 일정, 널리 사용 가능한 기타 공개 데이터를 요청하는 앱에 제공하는 웹 서비스를 게시합니다.

하지만 대부분은 아니라 해도 많은 웹 서비스가 중요한 가치를 가진 정보를 웹 서비스, Windows Phone 앱 또는 앱 사용자에게 전달합니다. 이 경우 교환해야 하는 데이터를 보호하는 데 필요한 만큼 안전하게 웹 서비스 호출 클라이언트를 빌드할 수 있도록 정보의 가치에 따라 다음과 같은 보안 문제를 이해하고 결정하는 것이 좋습니다.

ID 설정

인증은 사용자 ID를 다른 앱에 프로그램 또는 프로그램 사용자로 어설션하는 프로세스입니다. 인증은 반대 방향으로도 적용됩니다. 예를 들어 쇼핑 웹 사이트를 요청할 수는 있지만 HTTPS 프로토콜에서는 웹 사이트가 주장되는 실제 사이트라는 증거(자격 증명 또는 클레임이라고 함)를 웹 브라우저에 제공해야 합니다.

앱이 가져와야 하는 데이터에 중요한 가치가 있는 경우 데이터를 제공하는 웹 서비스에서 데이터 액세스 권한이 있어야 하는지 여부를 확인하기 위해 인증(즉, 클라이언트로 “로그인”)하도록 요청합니다.

기본 인증을 사용하여 Windows Phone 에서 ID를 설정하는 경우 암호화되지 않은 데이터에 유의해야 합니다. 기본 인증은 사용자 이름과 비밀번호(HTTP에서 지원되지 않는 문자를 사용할 수 있도록 base64 인코딩됨)가 웹 사이트나 서비스로 전송되어야 하는 단순 프로토콜입니다. 하지만 기본 인증에서는 보안을 위해 사용자 이름과 비밀번호가 암호화되지 않으므로 다음 사항이 매우 중요합니다.

중요중요:

기본 인증은 사용자 이름과 비밀번호 데이터를 암호화하지 않으므로 데이터나 스트림을 직접 암호화하지 않는 경우 HTTP 요청의 인터셉터가 사용자 이름과 비밀번호를 해독할 수 있으며, 의도하지 않게 앱 계정 또는 사용자 계정이 손상에 노출될 수 있습니다. 따라서 데이터 보호를 위해 통신을 암호화하는 HTTPS 프로토콜과 함께 기본 인증을 사용하는 것이 좋습니다. HTTPS에 대한 자세한 내용은 통신 보호와 관련된 다음 단원을 참조하세요.

다른 인증 프로토콜을 사용하여 HTTP(및 HTTPS)에서 앱 또는 앱 사용자의 ID를 어설션할 수도 있습니다. 예를 들어 일부 웹 서비스에는 OAuth 1.0이 필요한데 이 인증 프로토콜은 암호화된 연결이 필요하지 않기 때문에 이전 경고가 그대로 적용됩니다. 암호화되지 않은 인증 프로토콜에는 HTTPS와 같은 암호화된 연결을 사용하는 것이 좋습니다. 자세한 내용은 OAuth 홈 페이지OAuth 1.0 Protocol을 참조하세요.

Windows Phone 은 HTTP 이외에 다른 통신 옵션을 지원합니다. 자세한 내용은 Windows Phone의 소켓를 참조하세요. 하지만, 보통 권한 부여 메커니즘은 HttpWebRequestWebClient 클래스나 다른 라이브러리가 제공하는 특수 클래스(대부분이 해당 클래스를 사용하여 빌드되지 않은 경우 많음)를 사용하여 구현해야 합니다. 예를 들어 Windows Phone 의 OData 클라이언트 라이브러리는 이러한 클래스를 직접 사용하지 않고 HTTP를 사용하여 OData 서비스에서 데이터를 가져올 수 있도록 도와줍니다. 이 라이브러리 사용에 대한 예제는 Windows Phone의 OData 서비스를 사용하는 방법을 참조하세요.

HttpWebRequestWebClient 클래스는 일부 HTTP 헤더에 대한 액세스를 제한합니다. 자세한 내용은 WebHeaderCollection의 설명 단원을 참조하세요.

통신 보호(암호화)

암호화는 데이터 요청과 데이터 응답을 가능한 한 가로채고 이해하기 어렵게 만드는 프로세스입니다. 앱 사용자(또는 사용자를 대신하는 앱)로 인증하기 위해 사용자 이름과 비밀번호를 웹 서비스로 보내는 경우 대체로 이 요청은 여러 라우터를 통해 웹 서비스로 전달됩니다. ID 자격 증명과 잠재적으로 중요한 모든 데이터가 노출되지 않게 하려면 앱과 웹 서비스가 협력하여 앱과 웹 서비스를 제외한 누구도 데이터를 읽을 수 없게 해야 합니다. 이러한 용도의 표준 메커니즘은 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 연결을 통한 HTTP 연결의 일종인 HTTPS 연결을 사용하여 연결하는 것입니다.

https:// 프로토콜 체계로 시작되는 주소를 사용하는 경우를 제외하고 대체로 Windows Phone 앱에 이 연결을 사용하는 데 필요한 특별한 조치는 없습니다. Windows Phone 이 웹 서비스에서 반환된 인증서를 검사하고 인증서가 Windows Phone OS 7.1용 SSL 루트 인증서에 나열된 신뢰할 수 있는 인증 기관 중 하나에서 제공된 경우 Windows Phone 앱 플랫폼이 이 인증서를 웹 서비스와 함께 사용하여 위에서 설명한 인증 자격 증명의 교환을 비롯한 모든 추가 통신을 암호화합니다.

현재 릴리스에서는 Windows Phone 에 신뢰할 수 있는 인증서를 설치할 수 있지만 Windows Phone 앱 플랫폼이 이러한 인증서 값을 앱에 노출하지 않습니다. 그 결과, 현재 릴리스에서는 클라이언트가 루트 저장소에 설치된 인증서를 사용하여 고유한 인증서를 웹 서비스로 보내고 받는 시나리오인 상호 인증 시나리오를 구현할 수 없습니다.

중요한 사용자 정보 확인

사용자를 웹 서비스나 웹 사이트에 인증할 자격 증명으로 사용되는 사용자 이름과 비밀번호를 제공하도록 사용자에게 요청하는 앱이 많지만 앱을 실행할 때마다 요청하면 사용자가 불편할 수 있습니다.

앱에서 사용자의 사용자 이름 및 비밀번호가 필요할 때마다 요청하는 메시지를 표시하도록 하는 것이 가장 좋습니다. 휴대폰에 자격 증명을 저장하려고 하면 Windows Phone 이 손실되거나 분실되는 경우처럼 이러한 자격 증명이 노출될 위험이 있습니다. ProtectedData 클래스 및 관련된 암호화 클래스를 사용하여 앱에서 중요한 정보를 암호화하고 저장할 수 있습니다. 자세한 내용은 Windows Phone 앱에서 데이터를 암호화하는 방법를 참조하세요.

Microsoft 푸시 알림 서비스에 푸시 알림을 보내기 위해 웹 서비스를 만들 계획인 경우 인증된 웹 서비스를 설정하는 것이 좋습니다. 더 강력한 보안을 위해 HTTPS 인터페이스를 통해 통신이 이루어지기 때문입니다. 인증된 웹 서비스는 하루에 보낼 수 있는 푸시 알림의 수를 제한하지 않습니다. 반면 인증되지 않은 웹 서비스는 하루에 구독당 푸시 알림 500개의 비율로 그 수를 제한됩니다. 자세한 내용은 Windows Phone의 푸시 알림을 보내도록 인증된 웹 서비스 설정을 참조하세요.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft. All rights reserved.