Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보보안에서 웹서비스란? 개념부터 핵심 구성 요소까지

정보보안에서 웹서비스란?

웹서비스(Web Service)는 WWW(World Wide Web) 환경에서 사용자와 서버 애플리케이션 간의 통신을 가능하게 하는 표준화된 채널입니다. 특정 작업 집합을 수행하도록 설계된 소프트웨어 구조로, 인터넷 프로토콜 기반 위에서 XML, SOAP, WSDL, UDDI와 같은 개방형 표준을 활용해 웹 기반 애플리케이션을 통합하는 표준화된 방법을 의미합니다.

웹서비스의 4대 핵심 구성 요소

  • XML: 데이터에 태그(tag)를 지정하여 구조화합니다.
  • SOAP: 데이터를 전송하는 역할을 담당합니다.
  • WSDL: 이용 가능한 서비스를 정의합니다.
  • UDDI: 접근 가능한 서비스를 목록화합니다.

관리 코드 단위로서의 웹서비스

웹서비스는 클라이언트 애플리케이션이나 최종 사용자에게 일종의 서비스를 제공하는 관리 코드(managed code)의 단위입니다. 이러한 기능은 HTTP 프로토콜을 통해 구현되며, HTTP가 인터넷상에서 동작하기 때문에 웹서비스 역시 인터넷을 통해 제공될 수 있습니다.

운영체제와 언어에 종속되지 않는 상호 운용성

웹서비스의 가장 큰 장점은 서로 다른 출처의 애플리케이션들이 별도의 맞춤형 프로그래밍 없이도 상호 통신할 수 있다는 점입니다. 모든 통신이 XML로 이루어지기 때문에 특정 운영체제나 프로그래밍 언어에 종속되지 않습니다. 예를 들어 Java로 작성된 시스템은 Perl과, Windows 애플리케이션은 UNIX 애플리케이션과 자유롭게 통신할 수 있습니다.

서비스 제공자와 서비스 요청자

웹서비스는 서비스 제공자(service provider)서비스 요청자(service requester, 클라이언트)로 구성됩니다. 웹서비스는 언어 투명성(language transparency)을 특징으로 하기 때문에, 서비스를 지원하는 기반 시스템이 Java로 작성되었더라도 요청자가 Perl, Python 또는 Ruby로 작성되었는지는 전혀 문제가 되지 않습니다.

예를 들어 웹서비스를 통해 Windows 서버가 Linux 서버와 통신하거나, WWW를 통해 데스크톱 PC, 노트북, 스마트폰 등 다양한 모바일 기기에 애플리케이션을 제공할 수 있습니다.

데이터 형식과 SOAP 프로토콜

웹서비스는 여러 가지 형식으로 데이터를 제공할 수 있으며, 그중 XML과 JSON이 가장 널리 사용됩니다. 이러한 표준 텍스트 기반 형식은 데이터를 수신하는 다른 프로그램이 손쉽게 식별하고 파싱(parsing)할 수 있다는 장점이 있습니다.

가장 일반적인 웹서비스 프로토콜인 SOAP(Simple Object Access Protocol)는 XML 메시지가 HTTP를 통해 전송되기 전에 각 메시지에 헤더(header)를 삽입하는 방식으로 동작합니다.

비즈니스 지향 웹서비스: UDDI와 WSDL

비즈니스 지향 웹서비스는 UDDI라는 표준을 활용할 수 있습니다. UDDI는 WSDL(Web Services Description Language)이라 불리는 특정 유형의 XML로 데이터를 포맷합니다. UDDI는 표준 XML 파일 대신 WSDL 파일을 전송하며, 정보 전송 시에는 SOAP 프로토콜을 사용할 수 있습니다.

API를 통한 정보 접근

대부분의 웹서비스는 정보에 접근할 수 있는 함수와 명령어의 집합인 API를 지원합니다. 대표적인 활용 사례는 다음과 같습니다.

  • Twitter: 개발자가 서비스에서 트윗에 접근하고 JSON 형식으로 정보를 받아볼 수 있는 API를 제공합니다.
  • 기업 정보 API: 프로그래머가 기업 관련 데이터에 접근하여 앱이나 웹사이트에 직접 표시할 수 있게 해줍니다.
  • Google Maps: Google Maps 데이터베이스에서 지리적 정보와 길찾기 정보를 받아올 수 있는 API를 지원합니다.

정보보안 관점에서 웹서비스가 중요한 이유

웹서비스는 외부에 개방된 표준화된 인터페이스이기 때문에 공격자에게 노출되는 주요 공격 표면(attack surface)이 됩니다. SOAP 메시지 변조, XML 외부 엔티티(XXE) 공격, 인증 우회 등 웹서비스 특유의 보안 위협을 이해하고, HTTPS 적용, 입력값 검증, API 키 관리 등의 보안 대책을 마련하는 것이 필수적입니다. 웹서비스의 구조와 동작 원리를 정확히 이해하는 것은 안전한 시스템 설계의 첫걸음입니다.