본문 바로가기

👨‍💻 프로그래밍/🔒 보안 4

API Key를 하드코딩 하면 안 될까? API Key를 하드코딩 하면 안 될까? 문제가 되는 부분과 일반적인 해결책일반적으로 API를 호출할 때는 API Key라는 거를 같이 넘겨야 합니다. 아무나 제한없이 API를 호출할 수 있으면 기업 입장에서는 여러 단점이 있기 때문입니다.호출제한을 할 수 없음디도스 (DDos) 공격의 대상이 될 수 있음수익화를 하기 어려움 당장 네이버의 API 문서만 봐도 호출제한이 있고, API를 호출하기 위해서는 회원가입을 한 후 API Key를 발급 받아야 합니다. 문제는 API Key를 어떻게 관리해야 할까입니다. 호출제한 정도만 있으면 API Key가 유출돼도 귀여운 정도에서 끝나지만, 만약에 쓴 만큼 과금되는 API거나 개인정보를 많이 담고 있는 API라면 API Key가 유출되는 거 자체가 너무 큰 위험입니다! 😨이를 위해 애플리케이션이 실행 .. 2024. 7. 27.
다양한 로그인 방법을 알아보자 (OAuth, Open ID, OIDC, SSO, SFA, 2FA, MFA, OTP, PassKey) 다양한 로그인 방법을 알아보자 (OAuth, Open ID, OIDC, SSO, SFA, 2FA, MFA, OTP, PassKey) 🐜 큰 그림 우선, 로그인이란 나만 아는 정보를 제공해서 모두가 접근할 수 없는 특정 정보를 접근하는 것을 말합니다. 당연히 보안이 좋기 위해서는 나만 알 수 있는 정보들을 최대한 많이 제공하는게 좋겠죠. 하지만 로그인 할 때 마다 아이디/비밀번호를 입력하고, 지문이나 얼굴 인증을 하고, OTP 코드를 입력한다면 너무 불편해서 거의 쓰지 않겠죠? 그래서 보안과 편의성 사이의 저울질이 중요합니다. 🐜 분류하기 SFA, 2FA, MFA = 1번만 인증을 하냐, 여러번 인증을 하냐? 로그인 할 때 아이디/비밀번호든, 생체인증 (얼굴, 지문 등)이든, 1개의 인증정보만 제공하면 SFA (Single Factor Authentication)입니다. 여기에 더해 추가로 흔하게는 OTP (One-Time Passwo.. 2024. 2. 8.
망분리 (Network Segregation), 왜 필요할까? 망분리 (Network Segregation), 왜 필요할까? 망분리는 말 그대로, 망(네트워크)를 분리한다는 것입니다. 보통 우리가 개인적으로 쓰는 컴퓨터는 아무 제한 없이 인터넷을 접속할 수 있습니다. 그렇기 때문에 바이러스에 감염될 수도 있고, 여러 공격의 대상이 될 수도 있습니다. 하지만 보안적으로 매우 중요한 곳에 이런 컴퓨터로 접근한다면 어떨까요? 나도 모르게 감염된 바이러스가 옮겨지거나, 내 컴퓨터를 통해 공격을 할 수 있을 지도 모릅니다. 그래서 망분리라는 개념이 나왔습니다. 망분리라고 인터넷이 안 되는건 아니다 망분리라고 무조건 인터넷이 안 되는건 아닙니다. 망분리의 핵심은 중요한 곳을 접속할 때 보안을 위해 불필요한 네트워크 접근을 차단하는 것이기 때문에, 꼭 필요할 경우 특정 사이트를 허용할 수는 있습니다. 망분리를 적용하는 여러가지 방법 보안이.. 2023. 9. 27.
스프링 서큐리티(Spring Security) 구조 이해하기 스프링 서큐리티(Spring Security) 구조 이해하기 스프링 서큐리티 (Spring Security)? 그거 어떻게 하는 건데? Spring Security는 말 그대로 Spring 기반 애플리케이션에 보안을 제공하는 프레임워크입니다. 제공하는 기능은 아래와 같습니다. 인증 / 인가 (아래서 설명) 일반적인 보안 위협 방어 (CSRF, XSS, SQL Injection) 세션(Session) 관리 다른 Spring의 프로젝트들과 연동 보안에 관한 기본적인 용어를 알아보자 리소스 Resource 보호하고자 하는 대상 접근 주체 Principal 접근하는 사람 (일반적으로 아이디) 자격 증명 Credential 접근하는 사람이 본인이라는 걸 증명할 수 있는 정보 (일반적으로 비밀번호) 역할 Roles Principal이 가지고 있는 권한 인증 Authentic.. 2023. 4. 11.
반응형