RESTful 자바 웹 서비스 보안 [레스트풀 자바 애플리케이션의 보안 취약점과 방어 기술]
- 원서명RESTful Java Web Services Security(ISBN 9781783980109)
- 지은이르네 엔리케(René Enríquez), 안드레 살라자르(Andrés Salazar C.)
- 옮긴이이일웅
- ISBN : 9788960777194
- 18,000원
- 2015년 05월 29일 펴냄
- 페이퍼백 | 176쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 웹 프로페셔널
책 소개
요약
이 책은 자바 개발자가 RESTful 웹 서비스를 구축할 때 간과하기 쉬운 보안 취약점에 대해 보안 관리의 기초적인 내용부터 차근차근 소개하면서, 매우 상세하고 실전적인 예제 코드를 통해 HTTPS, 인증서, OAuth 등의 기술을 이해할 수 있도록 안내한다. 작은 분량의 책에 디지털 서명과 메시지 암호화에 대한 내용까지 아주 컴팩트하게 담아냈다.
이 책에서 다루는 내용
■ 개발 및 테스트 환경 구축과 필요에 따른 사용자 정의
■ RESTful 애플리케이션 보안 관리에 필요한 개념과 중요성 이해
■ 다양한 기법으로 수행하는 RESTful 웹 서비스 구현과 테스트, 결과 분석
■ 보안 프로토콜 설정과 적용 방법
■ RESTful 애플리케이션에 OAuth나 SSO 등의 기술 구현과 통합
■ JEE 애플리케이션과 컨테이너에서의 보안 개념 이해
■ 예제 코드에 디지털 서명과 메시지 암호화 기술 적용
이 책의 대상 독자
RESTful 기반의 웹 서비스 관련 업무에 종사하고 있는 웹 애플리케이션 개발자를 위한 책이다. 필수는 아니지만 RESTful 아키텍처에 대해 잘 알고 있으면 책을 읽는 데 도움이 된다.
이 책의 구성
1장, ‘개발 환경 세팅’에서 다루는 내용은 기본적으로 Hello World 같은 기초적인 예제이지만 실제 상황과 유사한 몇몇 기능이 추가되었다. 이후 사용할 도구를 길들이는 게 1장의 목표다.
2장, ‘웹 서비스 보안의 중요성’에서는 자바 플랫폼에서 제공하는 인증 모델을 알아보고 각각의 작동 원리를 단계별로 차근차근 뜯어볼 것이다. 와이어샤크(Wireshark)라는 트래픽 분석기로, 노출된 정보를 타인이 가로챌 수 있는 상황을 다룬다.
3장, ‘RESTEasy 보안 관리’에서는 RESTEasy 보안 메커니즘을 기본 모델(대단위coarse-grained)과 정교한 모델(소단위fine-grained)로 나누어 설명한다. 그리고 설정 파일 뿐 아니라 직접 코딩하여 보안을 적용하는 방법을 살펴본다.
4장, ‘RESTEasy 스켈레톤 키’에서는 토큰 소지자(token bearer), 싱글 사인 온(Single Sign-On), OAuth 인증을 다룬다. 세 가지 모두 자원 공유의 경로를 제한하기 위해 사용하는데, 곧바로 실무에 적용할 만한 실전적인 예제 코드를 살펴본다. 이러한 기법들을 동원하여 애플리케이션 간 자원/정보 공유를 하면, 토큰 소지자 말고 외부인 접근을 효과적으로 차단하는 동시에 유저가 자신의 크리덴셜(credential)로 처음 한 번만 인증하면 다른 서비스도 함께 이용할 수 있다. 안전하면서도 유연한 애플리케이션을 만들기 위해 이 세 기술을 어떻게 적용하는지 알아본다.
5장, ‘디지털 서명과 메시지 암호화’에서는 디지털 서명의 유용함을 이해하고, 간단한 예제를 통해 메시지 수신자가 송신자의 신원을 어떻게 검증하는지 배운다. 데이터를 송수신하는 과정에서 만약 누군가가 데이터를 변조했을 때 디지털 서명으로 이를 감지하여 잘못된 데이터를 전달받는 일이 없도록 모의 실험을 할 것이다.
끝으로, 서버 요청 및 응답 전체를 암호화하는 것과 S/MIME으로 메시지 본문만을 암호화하는 것, 두 가지를 비교해 살펴보며 마무리할 것이다
목차
목차
- 1장 개발 환경 세팅
- 툴 내려받기
- 다운로드 링크
- 베이스 프로젝트 만들기
- 첫 번째 기능 예제
- 예제 웹 서비스 테스팅
- 정리
- 툴 내려받기
- 2장 웹 서비스 보안의 중요성
- 보안의 중요성
- 보안 관리 옵션
- 인증과 인가
- 인증
- 인가
- 접근 통제
- 전송 계층 보안
- 유저 크리덴셜에 의한 기본 인증
- 다이제스트 인증
- An example with explanation
- 인증서 인증
- 인증과 인가
- API 키
- 정리
- 3장 RESTEasy 보안 관리
- 대단위/소단위 보안
- HTTP 메소드 보안
- HTTP 메소드: POST
- HTTP 메소드: GET
- 애노테이션을 이용한 소단위 보안 구현
- @RolesAllowed 애노테이션
- @DenyAll 애노테이션
- @PermitAll 애노테이션
- 프로그래밍으로 구현하는 소단위 보안
- HTTP 메소드 보안
- 정리
- 대단위/소단위 보안
- 4장 RESTEasy 스켈레톤 키
- OAuth 프로토콜
- OAuth와 RESTEasy 스켈레톤 키
- RESTEasy 스켈레톤 키란
- OAuth 2.0 인증 프레임워크
- 주요 기능
- OAuth 2 구현
- JBoss에서 RESTEasy 모듈 업데이트
- JBoss 설정 파일 셋업
- OAuth 클라이언트 구현
- 보안 관리를 위한 SSO 설정
- 기본 인증 방식의 OAuth 토큰
- 애플리케이션 실행
- 커스텀 필터
- 서버 측 필터
- 클라이언트 측 필터
- 필터의 사용 예
- 정리
- 5장 디지털 서명과 메시지 암호화
- 디지털 서명
- RESTEasy JAR 파일 업데이트
- 디지털 서명 적용
- 기능 테스트
- 애노테이션을 이용한 디지털 서명 검증
- 메시지 본문 암호화
- 기능 테스트
- HTTPS 적용
- 기능 테스트
- 정리
- 디지털 서명