Top

OAuth 2.0 API 보안 2/e [엔터프라이즈 API를 보호하는 OAuth 2.0 해킹 & 방어]

  • 원서명Advanced API Security: OAuth 2.0 and Beyond 2nd Edition (ISBN 9781484220498)
  • 지은이프라바스 시리와데나(Prabath Siriwardena)
  • 옮긴이강병윤, 김한수
  • ISBN : 9791161755328
  • 40,000원
  • 2021년 06월 15일 펴냄
  • 페이퍼백 | 524쪽 | 188*235mm
  • 시리즈 : 해킹과 보안

책 소개

요약

엔터프라이즈 API는 비즈니스 기능을 외부에 노출하는 일반적인 방법이 됐다. 기능을 노출하는 것은 편리하지만, 물론 악용의 위험이 있다. 소프트웨어 시스템 설계의 경우와 마찬가지로, 사람들은 API 설계 단계에서 보안 요소를 무시하는 경향이 있다. 배포나 통합 시에만 보안을 걱정하기 시작한다. 보안은 사후에 고려해서는 안 된다. 보안은 모든 소프트웨어 시스템 설계의 필수 요소로 설계 초기부터 신중하게 고려해야 한다.
이 책은 중요한 비즈니스 자산을 보호하고 API를 보안하는 방법에 대한 내용으로, 보안의 필요성과 API 보안을 위해 사용할 수 있는 옵션에 대해 알려주는 것을 목표로 한다.

이 책에서 다루는 내용

■ 엔터프라이즈 API의 안전한 설계, 개발, 배포
■ 비즈니스 요구 사항에 맞는 보안 표준 및 프로토콜 선택
■ OAuth 2.0 위협 환경을 이해해 보안 악용 완화
■ 인증을 통합해 기업 방화벽을 넘어 비즈니스 API 확장
■ API를 보호를 통해 엣지에서 마이크로 서비스 보호
■ API에 안전하게 액세스하기 위한 네이티브 모바일 애플리케이션 개발
■ OAuth 2.0으로 보호되는 SaaS API와 애플리케이션 통합

저자/역자 소개

지은이의 말

이제 기업용 API는 비즈니스 기능을 외부에 노출하는 일반적인 방법이다. 기능을 노출하는 것은 편리하지만 악용의 위험이 있다. 이 책은 중요한 비즈니스 자산을 보호하는 방법과 API의 보안을 설명한다. 소프트웨어 시스템 설계의 경우와 마찬가지로, 사람들은 API 설계 단계에서 보안 요소를 무시하는 경향이 있다. 그리고 배포나 통합 시에만 보안을 걱정하기 시작한다. 보안은 사후에 고려해서는 안 된다. 보안은 모든 소프트웨어 시스템 설계의 필수 요소로 설계 초기부터 신중하게 고려해야 한다. 이 책을 통해 보안의 필요성과 API 보안을 위해 사용할 수 있는 옵션을 알려주는 것을 목표로 집필했다.
이 책에서는 프로세스를 안내하고 더 나은 보안을 위해 API를 설계하는 모범 사례를 공유한다. API 보안은 지난 몇 년 동안 많이 발전해 왔으며, API 보안 표준은 기하급수적으로 성장했다. OAuth 2.0은 가장 널리 채택된 표준이자, 그 위에 솔루션을 구축할 수 있는 프레임워크다. 기존의 HTTP Basic 인증에서 OAuth 2.0까지 API를 보호하는 방법과 OpenID Connect, 사용자 관리 액세스(UMA), User-Managed Access 등과 같은 OAuth를 기반으로 구축된 프로파일을 자세히 설명한다.
JSON은 API 통신에서 중요한 역할을 한다. 오늘날 개발된 대부분의 API는 XML이 아닌 JSON만 지원하므로 여기에서는 JSON 보안에 중점을 두고 설명한다. JSON 웹 암호화(JWE), JSON Web Encryption, JSON 웹 서명(JWS), JSON Web Signature은 JSON 메시지 보안을 위해 점점 더 널리 사용되는 두 가지 표준이다. 후반부에서는 JWE와 JWS를 자세히 다룬다.
또 다른 주요 목적은 개념과 이론을 제시하는 것뿐만 아니라 구체적인 예를 통해 개념과 이론을 설명하는 것이다. 이론을 실제로 적용하는 방법을 보여주는 포괄적인 예시를 제공한다. OAuth 2.0과 관련 프로파일을 사용해 웹 애플리케이션, 단일 페이지 애플리케이션, 네이티브 모바일 애플리케이션, 브라우저가 없는 애플리케이션으로 API에 안전하게 액세스하는 방법을 배울 것이다.
API 개발자에게 절실히 필요한 주제를 효과적으로 다루기를 바라며, 즐겁게 읽기를 바란다.

지은이 소개

프라바스 시리와데나(Prabath Siriwardena)

신원 전도사, 저자, 블로거, WSO2에서 신원 관리 및 보안 부사장이다. 이 선정한 100/500 기업을 포함해 글로벌 기업을 위한 중요한 신원 및 액세스 관리(IAM) 인프라를 설계하고 구축하는 데 12년 이상의 업계 경험이 있다. 기술 전도사로서 7권의 책을 썼다. 블록체인, PSD2, GDPR, IAM부터 마이크로서비스 보안에 이르기까지 다양한 주제로 블로그 글을 작성한다. 또한 유튜브(YouTube) 채널을 운영한다. RSA 콘퍼런스, KNOW Identity, Identiverse, European Identity Conference, Consumer Identity World USA, API World, API Strategy and Practice Conference, QCon, OSCON, WSO2Con을 비롯한 많은 콘퍼런스에서 발표했다. IAM 커뮤니티를 전파하려고 전 세계를 여행하며 워크숍과 밋업을 진행하고 있다. 샌프란시스코 베이 지역에서 가장 큰 IAM 밋업인 ‘Silicon Valley IAM User Group’의 창립자다.

옮긴이의 말

지금 시대에서 API는 선택이 아닌 필수다. 많은 기업이 앞 다투어 ‘API화’에 총력을 기울이고 있다. 그에 따라 중요한 자산들이 자연스럽게 노출되고 있으며, 설계 단계에서부터의 보안이 대두되고 있다.
이 책은 개념과 이론을 단순히 제시하는 것뿐만 아니라 구체적인 예시를 통해 API를 안전하게 관리하고 사용하는 방법을 설명한다. API 개발자에게 필수 서적이 될 것이다.
- 강병윤

요즘 앱을 포함한 거의 모든 사이트에 ‘구글’, ‘페이스북’, ‘카카오톡’ 등으로 로그인하는 기능이 있다. 또한 인터넷 시장이 커지면서 각 사이트끼리 정보를 교류하며 동작하는 애플리케이션이 많아졌다. 이 기능을 OAuth가 해결해 줄 수 있는데, 이를 잘못 이용하면 큰 취약점이 생기게 된다. 요즘 보안 사고가 발생해 해당 애플리케이션뿐 아니라 기업의 이미지가 심각하게 손상을 입는 경우를 쉽게 볼 수 있다. 이제 개발자에게 보안 코딩은 필수 역량이 됐다.
이 책은 OAuth에 대한 개념이 없는 사람도 이해할 수 있게 OAuth에 대한 설명부터 시작한다. 그리고 공격자가 어떻게 공격하는지, 공격을 어떻게 막을 수 있는지 설명했다. OAuth를 사용하려는 개발자에게 굉장히 훌륭한 지침서가 될 것이고, 정보 보안 일을 하고 있는 사람도 단순한 해킹 기술이 아닌 OAuth의 지식도 쌓을 수 있다. OAuth의 기초부터 해킹, 보안 코딩까지 OAuth 보안과 관련된 폭넓은 주제를 깊이 있게 다뤄 OAuth 보안과 관련 실무 담당자에게 훌륭한 안내서가 될 것이다.
-김한수

옮긴이 소개

강병윤

기술 지원 엔지니어, 보안 담당자를 거쳐 현재 모의해킹 컨설턴트로 활동 중이다. 해킹을 좀 더 쉽게 입문할 수 있도록 멘토링하고 있으며, 관련된 콘텐츠를 제작하고 있다.

김한수

정보보안 업계에서 모의해킹 전문가로 활동하고 있다. Normaltic Place라는 해킹 유튜브 채널을 운영 중이며, 해킹이라는 주제를 일반 대중에게 쉬운 언어로 풀어내 해킹 관련 콘텐츠를 만들고 있다. 또한 해킹이라는 주제를 포함해 비전공자들을 위한 강연을 하고 있다.

목차

목차
  • 1장. API 규칙
    • API 경제
      • 아마존
      • 세일즈포스
      • 우버
      • 페이스북
      • 넷플릭스
      • 월그린스
      • 정부
      • IBM 왓슨
      • 오픈 뱅킹
      • 헬스케어
      • 웨어러블
      • 사업 모델
    • API의 변화
    • API 관리
    • 마이크로서비스에서 API의 역할
    • 요약

  • 2장. API 보안 설계
    • 문제의 삼위일체
    • 설계 도전 과제
      • 사용자 경험
      • 성능
      • 가장 취약한 연결고리
      • 심층 방어
      • 내부자 공격
      • 감추는 것을 통한 보안
    • 설계 원칙
      • 최소 권한
      • 고장 안전 디폴트
      • 메커니즘의 경제성
      • 완전한 중재
      • 개방형 설계
      • 권한 분리
      • 최소 공통 메커니즘
      • 심리적 수용
    • 보안 3 요소
      • 기밀성
      • 무결성
      • 가용성
    • 보안 제어
      • 인증
      • 인가
      • 부인 방지
      • 감사
    • 요약

  • 3장. 전송 계층 보안을 이용한 API 보안
    • 환경 설정
    • Order API의 배포
    • 전송 계층 보안을 이용한 Order API 보안
    • TLS 상호 인증을 이용한 Order API 보호
    • 도커에서 OpenSSL 실행
    • 요약

  • 4장. OAuth 2.0 기초
    • OAuth 2.0 이해
    • OAuth 2.0 구성 요소
    • 승인 방식
      • 인가 코드 승인 방식
      • 암시적 승인 유형
      • 자원 소유자 패스워드 자격증명 승인 유형
      • 클라이언트 자격증명 승인 유형
      • 갱신 승인 유형
      • 적절한 승인 유형을 선택하는 방법
    • OAuth 2.0 토큰 유형
      • OAuth 2.0 베어러 토큰 프로필
    • OAuth 2.0 클라이언트 유형
    • JWT 보안 인가 요청(JAR)
    • 푸시된 인가 요청
    • 요약

  • 5장. API 게이트웨이를 이용한 에지 보안
    • Zuul API 게이트웨이 설정
      • Order API 실행
      • Zuul API 게이트웨이 실행
      • 배후에서 벌어지는 일
    • Zuul API 게이트웨이에서 TLS 활성화
    • Zuul API 게이트웨이에서 OAuth 2.0 토큰 유효성 검사 시행
      • OAuth 2.0 보안 토큰 서비스 설정
      • OAuth 2.0 보안 토큰 서비스 테스트
      • OAuth 2.0 토큰 유효성 검사를 위한 Zuul API 게이트웨이 설정
    • Zuul API 게이트웨이와 주문 서비스 사이에서 상호 TLS 활성화
    • 독립형 액세스 토큰을 이용한 Order API 보안
      • JWT를 발행하기 위한 인가 서버 설정
      • JWT를 이용한 Zuul API 게이트웨이 보호
    • 웹 애플리케이션 방화벽의 역할
    • 요약

  • 6장. OpenID 커넥트(OIDC)
    • OpenID부터 OIDC까지
    • 아마존은 여전히 OpenID 2.0을 사용한다
    • OpenID 커넥트 이해
    • ID 토큰 분석
    • OpenID 커넥트 요청
    • 사용자 속성 요청
    • OpenID 커넥트 흐름
    • 사용자 정의 사용자 속성 요청
    • OpenID 커넥트 디스커버리
    • OpenID 커넥트 ID 공급자 메타데이터
    • 동적 클라이언트 등록
    • 보안 API를 위한 OpenID 커넥트
    • 요약

  • 7장. JSON 웹 서명을 이용한 메시지 수준 보안
    • JSON 웹 토큰의 이해
      • JOSE 헤더
      • JWT 클레임 세트
      • JWT 서명
    • JSON 웹 서명(JWS)
      • JWS 콤팩트 직렬화
      • 콤팩트 직렬화의 서명 절차
      • JWS JSON 직렬화
      • JSON 직렬화의 서명 절차
    • 요약

  • 8장. JSON 웹 암호화를 이용한 메시지 수준 보안
    • JWE 콤팩트 직렬화
      • JOSE 헤더
      • JWE 암호화 키
      • JWE 초기화 벡터
      • JWE 암호문
      • JWE 인증 태그
      • 암호화 절차(콤팩트 직렬화)
    • JSON 직렬화
      • JWE Protected 헤더
      • JWE Shared Unprotected 헤더
      • JWE Per-Recipient Unprotected 헤더
      • JWE 초기화 벡터
      • JWE 암호문
      • JWE 인증 태그
    • 암호화 절차(JSON 직렬화)
    • Nested JWTs
    • 요약

  • 9장. OAuth 2.0 프로파일
    • 토큰 내부 검사
    • 체인 승인 방식
    • 토큰 교환
    • 동적 클라이언트 등록 프로파일
    • 토큰 폐지 프로파일
    • 요약

  • 10장. 네이티브 모바일 앱을 통한 API 접근
    • 모바일 싱글 사인온(SSO)
      • 자격증명을 직접 이용한 로그인
      • WebView를 이용한 로그인
      • 시스템 브라우저를 이용한 로그인
    • 네이티브 모바일 앱에서 OAuth 2.0 사용
      • 앱 간 통신
      • PKCE
    • 브라우저리스(Browser-less) 앱
      • OAuth 2.0 디바이스 인가 승인
    • 요약

  • 11장. OAuth 2.0 토큰 바인딩
    • 토큰 바인딩의 이해
      • 토큰 바인딩 협상
    • 토큰 바인딩 프로토콜 협상을 위한 TLS 확장
    • 키 생성
    • 소유 증명
    • OAuth 2.0 리프레시 토큰을 위한 토큰 바인딩
    • OAuth 2.0 인가 코드/액세스 토큰을 위한 토큰 바인딩
    • TLS 종료
    • 요약

  • 12장. API 접근 페더레이팅
    • 페더레이션 활성화
    • 브로커 인증
    • 보안 어써션 마크업 언어(SAML)
    • SAML 2.0 클라이언트 인증
    • OAuth 2.0을 위한 SAML 승인 유형
    • OAuth 2.0을 위한 JWT 승인 유형
    • JWT 승인 유형 애플리케이션
    • JWT 클라이언트 인증
    • JWT 클라이언트 인증 애플리케이션
    • JWT 파싱과 검증
    • 요약

  • 13장. 사용자 관리 액세스
    • 사용 예
    • UMA 2.0 역할
    • UMA 프로토콜
    • 대화형 클레임 수집
    • 요약

  • 14장. OAuth 2.0 보안
    • ID 제공자 혼합
    • 사이트 간 요청 위조(CSRF)
    • 토큰 재사용
    • 토큰 노출/export
    • 오픈 리다이렉트
    • 코드 차단 공격
    • 암시적 승인 유형에서의 보안 결함
    • 구글 문서 피싱 공격
    • 요약

  • 15장. 패턴과 연습
    • 신뢰할 수 있는 서브시스템을 통한 직접 인증
    • 위임된 접근 통제를 통한 단일 사용자 인증
    • 위임된 윈도우 인증을 통한 단일 사용자 인증
    • 위임된 접근 통제를 통한 자격증명 프록시
    • 위임된 접근 통제를 통한 JSON 웹 토큰
    • JSON 웹 서명을 통한 부인 방지
    • 사슬로 연결된 접근 위임
    • 신뢰할 수 있는 마스터 접근 위임
    • 위임된 접근 통제를 통한 자원 보안 토큰 서비스
    • 유선으로 인증 정보를 전달하지 않는 위임된 접근 권한
    • 요약

  • 부록A. 인증 위임의 진화
    • 직접 위임과 중개 위임
    • 진화
      • Google ClientLogin
      • Google AuthSub
      • 플리커 인증 API
      • 야후! 브라우저 기반 인증(BBAuth)
      • OAuth

  • 부록B. OAuth 1.0
    • 토큰 댄스
      • 임시 인증 정보 요청 단계
      • 자원 소유자 권한 부여 단계
      • 토큰 인증 정보 요청 단계
      • OAuth 1.0을 사용하는 보호된 비즈니스 API 호출
    • oauth_signature 이해
      • 임시 인증 정보 요청 단계에서 기본 문자열 생성
      • 토큰 인증 정보 요청 단계에서 기본 문자열 생성
      • 서명 생성
      • API 호출에서 기본 문자열 생성
    • 삼각 OAuth와 이각 OAuth
    • OAuth WRAP
      • 클라이언트 계정과 패스워드 프로파일
      • 증명 프로파일
      • 사용자 이름과 패스워드 프로파일
      • 웹 앱 프로파일
      • 리치 앱 프로파일
      • WRAP로 보호된 API 접근
      • OAuth 2.0에 WRAP

  • 부록C. TLS의 동작 방식
    • TLS의 변화
    • 전송 제어 프로토콜
    • TLS는 어떻게 동작하는가
      • TLS 핸드셰이크
      • 애플리케이션 데이터 전송

  • 부록D. UMA의 발전
    • 서비스 제공 보호 규약
      • UMA와 OAuth
    • UMA 1.0 구조
    • UMA 1.0의 진행 단계
      • UMA 1단계: 자원 보호
      • UMA 2단계: 인증 획득
      • UMA 3단계: 보호된 자원 접근
    • UMA API
      • Protection API
      • Authorization API

  • 부록E. Base64 URL 인코딩

  • 부록F. 기본/다이제스트 인증
    • HTTP 기본 인증
    • HTTP 다이제스트 인증

  • 부록G. OAuth 2.0 MAC 토큰 프로필
    • 베어러 토큰과 MAC 토큰
    • MAC 토큰 획득
    • OAuth 2.0 MAC 토큰 프로필로 보호된 API 호출
    • MAC 계산
    • 자원 서버에 의한 MAC 유효성 검사
    • OAuth 승인 유형과 MAC 토큰 프로필
    • OAuth 1.0과 OAuth 2.0 MAC 토큰 프로필

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안