Security6 [Security-OAuth2] Authorization Code Flow도 ID / Password를 입력하는데 Password Grant만 안전하지 않다고 하나요 ? 개요OAuth2의 인증 방식중 Password Credentials 라는 것이 있습니다. 이는 ID와 Password를 입력하여 Access Token을 얻어서 Resource Server에 접근할 수 있는 메커니즘을 가진 인증 방식입니다. 그런데 이 방식은 취약한 방법으로 더이상 OAuth2에서는 권장하지 않는 방식입니다. 그리고 일반적으로 많이 사용하는 Authorization Code Flow 방식이 있습니다. 이는 인증을 한 후 Code를 통해서 Resource Server에 접근할 수 있도록 하는 인증 방식입니다. 이 또한 처음에 ID / Password를 입력받아서 인증하게됩니다.두개의 Type 모두 동일하게 유저는 ID와 Password를 입력하는데 왜 Authorization Code Fl.. 2024. 10. 1. [security] OAuth 2.0의 인가 스펙과 OIDC(OpenID Connect)의 인증 스펙에 대해서 알아봅시다 개요안녕하세요. 오늘은 OIDC(OpenID Connect)에 대해서 자세히 알아보는 시간을 가져보도록 하겠습니다. 다들 OAuth2에 대해서는 아실것 같습니다. 잘 모르시는 분들은 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow를 통해서 먼저 보고 오시는것을 추천드립니다. OAuth2는 HTTP 기반에서의 권한 부여(Authorizaiton)를 위한 업계 표준 프로토콜입니다. OIDC는 OAuth2의 확장중 하나로써 인증(Authentication)에 대한 프로토콜입니다.오늘은 인증과 인가의 차이부터 OIDC까지 알아보도록 하겠습니다.요약인증과 인가의 차이인증(Authentication): 사용자의 신원을 확인하는 과정입니다. 로그인과 같은 방식으로 사용자가 누구.. 2024. 6. 19. [Security] OAuth 2 Extension, Proof Key of Code Exchange(PKCE)에 대해서 알아보자 개요안녕하세요. 이전 포스팅 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow을 통해서 OAuth2 개론을 알아보았습니다. OAuth2는 http 기반에서의 인증의 표준으로써 안전하게 토큰을 발급하고 이를 통해서 인증(Authentication)된 유저만 접근할 수 있도록 할 수 있습니다.하지만 기본 OAuth2는 네이티브 앱 또는 SPA 웹을 사용할 경우 authorization code interception attack을 당할 수 있습니다. 이 공격을 당하면 본인이 아닌 다른 유저가 token을 발급받을 수 있게됩니다. 따라서 이를 방지하기 위해서 OAuth 2.1의 업데이트의 하나로 Proof Key of Code Exchange(PKCE)가 있습니다.오늘은 .. 2024. 6. 9. [기타] 서비스의 일반적인 보안 취약성 - 2편 안녕하세요. 오늘 포스팅은 이전 포스팅에서 다루지 않았던 서비스의 일반적인 보안 취약성 4가지에 대해서 알아보는 시간을 가져보겠습니다. 리마인드 해보면 이전 시간에 다루지 않은 기본 취약성 4가지는 아래와 같습니다.주입 (Injection)기밀 데이터 노출메서드 접근 제어 부족알려진 취약성이 있는 종속성 이용주입 (Injection)Injection 공격은 여러 범위에서 사용할 수 있는 공격입니다. 이는 서비스의 시스템에 특정 데이터를 집어넣어 서비스에서 기본적으로 제공하지 않는 정보를 취득할 수 있는 공격입니다. 여러 유형이 있으며 앞어 확인했었던 XSS 역시 주입 공격의 일종이라고 할 수 있습니다. 대표적으로는 SQL Injection, OS Command Injection 등이 있습니다.주입 공격을.. 2022. 11. 12. [기타] 서비스의 일반적인 보안 취약성 - 1편 안녕하세요. 1달 정도만에 새로운 포스팅으로 찾아 뵙습니다. 오늘은 웹 어플리케이션의 일반적인 보안 취약성에 대해서 알아보는 시간을 가져보고자 합니다. 이렇게 보안 취약성을 알아 본 후 Spring Security의 사용으로 이를 방어하는 방법까지 알아보도록 하겠습니다.개요웹 어플리케이션을 개발함에 있어서 목표로 하는 비즈니스를 문제를 해결하는 기능을 개발하는 것은 중요합니다. 하지만 이러한 기능적인 부분 뿐만 아니라 비기능적인 개발또한 중요합니다. 비기능적인 부분이라는 것은 실제 기능에는 영향이 없지만 부수적으로 고려해야할 사항을 말합니다. 대표적으로 성능, 확장성, 가용성, 그리고 보안이 있는데요.이 중 오늘 이야기하고자하는 보안에 대해서 이야기해보자면 이를 중요하게 생각하지 않으면 어플리케이션의 수.. 2022. 11. 8. [REST API] REST API의 Security With JWT 안녕하세요. 오늘은 REST API에 대해서 아야기하는 마지막 시간입니다. 주제는 security입니다. security는 우리가 개발을 하면서 빼놓을 수 없는요소입니다. 하지만 귀찮아서, 기능 개발이 재밌어서, 시간이 없어서 등등 많은 이유로 많은 개발자들이 접근하지 않는분야기도 합니다.(예전의 저만 그렇게 생각했을 수도 있어요.. ㅎㅎ;) 오늘은 REST API에서의 security에 대해서 알아보도록 하겠습니다. 개요 REST API의 Security를 생각할 때 가장먼저 생각해야할 제약조건은 stateless입니다. stateless란 서버는 client의 로그인과 같은 application state를 기록하지 않는 다는 의미입니다. 우리가 일반적으로 알고 있는 basic, OAuth 등과 같은.. 2019. 11. 1. 이전 1 다음