본문 바로가기
  • Floodnut's Home Directory

보안11

[OAuth 2.0 API 보안] JWE를 이용한 메시지 수준 보안 1. JWE Compact Serialization (JWE 콤팩트 직렬화) JWE 콤팩트 직렬화를 사용한 JWE 토큰은 5개의 구성 요소로 이루어진다. 각 요소는 마침표(.)로 구별되며 헤더, 암호화 키, 초기화 벡터, 암호문, 인증 태그로 구분된다. 1.1. JOSE 헤더 JWE 콤팩트 직렬화의 첫 번째 구성 요소다. 기존의 JWS에서 추가된 파라미터가 있다. enc : 콘텐츠 암호화 알고리즘 AEAD(Authenticated Encryption with Associated Data)가 포함된 대칭 인증 암호 알고리즘이 필요하다. JOSE 헤더의 필수 속성이며 포함되지 않으면 토큰 구문 분석 오류가 발생한다. zip : 압축 알고리즘기본 압축 알고리즘은 JWA 사양에 정의된 것을 사용한다. 압축이 필.. 2022. 6. 30.
[OAuth 2.0 API 보안] JWS를 이용한 메시지 수준 보안 0. JSON 웹 서명을 이용한 메시지 수준 보안 JSON : JavaScript Object Notation 1. JWT의 이해 JWT(JSON Web Token)은 데이터를 전송하기 위한 컨테이너를 정의한다. OIDC가 이 JWT를 사용해서 ID 토큰을 나타낸다. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c JWT는 세 가지 요소로 구성된다. 각 요소는 Base64url 방식으로 인코딩되고 마침표(.)로 구분된다. 서명 및 암호화(JOSE) 헤더 페이로드/클레임 서명 1.. 2022. 6. 23.
[OAuth 2.0 API 보안] OpenID 커넥트 (OIDC) 참고할 만한 자료 Microsoft ID 플랫폼 및 OpenID Connect 프로토콜 - Microsoft identity platform OpenID Connect 인증 프로토콜에 대한 Microsoft ID 플랫폼 구현을 사용하여 웹 애플리케이션을 빌드합니다. docs.microsoft.com OAuth 2.0 및 OIDC 정의 Final: OpenID Connect Core 1.0 incorporating errata set 1 openid.net OIDC 핵심 사양 OAuth 2.0 Playground Request Body Manual entry Enter the data that will be added to the body of the request: File You may choose t.. 2022. 6. 7.
[OAuth 2.0 API 보안] API 게이트웨이를 이용한 에지 보안 API 게이트웨이를 이용한 에지 보안 API 게이트웨이는 운영 환경의 배치에서 API를 보호하는 가장 일반적인 패턴이다. API 배치의 시작점이며 중앙에서 인증, 권한 부여, 제한 정책을 시한하는 정책 시행 지점(PEP)이다. 1. Zuul API 게이트웨이 설정넷플릭스 Zuul API 게이트웨이 배치 Zuul은 동적 라우팅, 모니터링, 복원력, 보안 등을 제공하는 API 게이트웨이이다. 넷플릭스 서버 인프라의 최전방에 존재하며 트래픽을 처리 요청 라우팅 개발자의 테스팅과 디버깅 지원 넷플릭스 전반적인 서비스의 상태 확인 및 보호 리전 문제 발생시 리전 이동API 서버 실행 1.1. Zuul API 게이트웨이 실행 org.springframework.cloud spring-cloud-starter-zuu.. 2022. 6. 2.
[OAuth 2.0 API 보안] - OAuth 2.0 OAuth 2.0에 대해 OAuth 2.0은 OAuth 1.0에 기반을 두었지만 OAuth WRAP(웹 리소스 인가 프로필)의 영향을 크게 받았다. OAuth 1.0은 위임에 대한 프로토콜이고 OAuth 2.0은 인가를 위한 프레임워크이다. 1. OAuth 2.0 💡 OAuth 2.0은 접근에 대한 위임 문제를 담당한다. 외부의 서드파티 애플리케이션이 서비스의 데이터에 접근하고자 한다면 OAuth Provider의 자격 증명을 서드파티 애플리케이션과 공유한다. 이를 통해 서드파티 애플리케이션이 접근 권한을 위임 받을 수 있다. 다만 이 접근 권한의 위임은 서드파티 애플리케이션의 접근을 인정하는 것이기에 큰 문제를 발생시킬 수 있다. 이에 OAuth 2.0은 이 자격증명을 서드파티 애플리케이션과 공유하지 .. 2022. 5. 19.
[OAuth 2.0 API 보안] TLS를 통한 API 보안 1. Order API 확인 스프링부트를 통한 예제 Order API를 이용하여 간단하게 알아보고자 한다. org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web 예제에서 위 종속성은 각각 다음을 제공한다. 다른 스프링 모듈의 통합을 위한 starter 톰캣과 스프링 MVC, REST 등의 환경과 구조를 제공하는 starter-web 애플리케이션 모니터링 및 관리를 위한 starter-actuater @RestController @RequestMapping(value = "/order") public class OrderProcessing { @RequestMapping(val.. 2022. 5. 19.
[OAuth 2.0 API 보안] API 보안 설계 OAuth 2.0 1. 데이터 유출의 3가지 원인 연결성 최근 기업체들에선 많은 API나 시스템을 연동한다. 여기에는 보안적 결함이 존재하는 레거시 시스템들도 포함된다. 확장성 최근의 시스템들은 확장의 용이성을 고려하여 설계, 제작된다. 새롭게 추가되는 소스코드들의 기능은 브라우저와 같은 곳에서 보안 요소의 우회를 발생시킬 수 있다. 복잡성 복잡성으로 인해 파악되지 못한 취약점이 다수 존재할 수 있다. 복잡성은 유지보수의 난이도 상승으로 연결되어 수정하기 힘든 취약점이 다수 존재할 수 있다. 2. API 설계에서 고려할 점 사용자 경험 강한 보안 요소를 적용시키기 위해 사용자의 편의성을 과도하게 침범하면 안 된다. 나쁜 사례 : 과도한 비밀번호 조건 좋은 사례 : FaceID 성능과 비용 접근 키가 필요.. 2022. 5. 9.
[내부 CTF] MISC:금고털이범 $ sudo docker pull floodnut/bankrobbery:safebox 위 명령어로 도커 이미지(문제)를 당겨오자. $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE floodnut/bankrobbery safebox a1e6d7190237 27 minutes ago 5.6MB 당겨온 이미지를 확인하면 위와 같은 이미지를 확인할 수 있다. 여기서 이미지 아이디가 위와 같은지 확인한다. $ sudo docker run -it floodnut/bankrobbery:safebox tttest $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bdc3fdd2cb4.. 2021. 8. 24.
[Webhacking.kr] old-02 old 2번 문제를 풀어보자. 문제 페이지에 접속하면 위와 같은 페이지가 나온다. 간단하게 먼저 확인해 볼 수 있는 페이지 소스를 보고 쿠키 값을 확인했다. Restricted areaHello stranger. Your IP is logging... 2번 문제의 html 소스코드를 확인하면 2개의 정보를 얻을 수 있다. 시간 정보가 하나 있고 admin.php 라는 페이지에 대한 정보가 있다. admin 페이지에서 플래그를 입력하면 된다. 쿠키값을 확인해보니 time에 정수값이 들어있었다. 이 값은 기준으로부터 현재까지의 시간을 초로 나타낸 EpochTime 이다. 쿠키 값에 10을 넣고 새로고침하니 시간이 바뀌었다. 초가 10으로 바뀐걸 주목하자. 해당 값이 쿠키값 입력에 따라 정해진다는 걸 알 수 .. 2021. 7. 28.
[Webhacking.kr] old-01 webhacking.kr old 1번 문제다. 문제 페이지에 접속하면 위와 같은 페이지를 볼 수 있다. view-source를 눌러보자. --------------------- 2021. 7. 28.