개발기술/보안 (8) 썸네일형 리스트형 JWT Refresh Token Strategy Authentication Strategies Comparison Authentication Strategy DescriptionUse CaseSession-Based AuthenticationStores user session in the server (stateful)Monolithic apps, Spring Security with sessionsJWT-Based Authentication (Without Refresh Token)Uses a single JWT for authentication, but requires re-login when expiredSimple stateless APIsJWT + Refresh Token(This Strategy)Uses a short-lived access.. 브라우저 보안정책 CORS (Cross-Origin Resource Sharing)CORS는 원래 브라우저가 서버의 데이터를 보호하기 위해 존재하는 정책입니다. 브라우저는 기본적으로 출처(Origin)가 다른 요청을 차단하여, 악의적인 웹사이트가 임의로 API를 호출하는 것을 막음.Same-Origin Policy (SOP, 동일 출처 정책) : 브라우저는 현재 열려 있는 HTML 파일이 실행된 **출처(origin)**와 다른 출처에서 파일을 직접 가져오는 것을 제한합니다.출처(Origin)는 프로토콜 + 도메인 + 포트번호로 구성됩니다.보안 위협 예시: CORS가 없다면?1. 사용자가 https://bank.com에 로그인 (쿠키가 자동 포함됨)2. 사용자가 악성 사이트(https://hacker.com)를 방문3... 네트워크 접근제어(NAC) ; NAT, 방화벽 네트워크 보안 전체분류네트워크 보안 (Network Security) ├── 네트워크 접근 제어 (NAC) ← 네트워크에 "누가" 접근 가능한지 결정 │ ├── 방화벽 (Firewall) ← 특정 IP/포트 접근 허용/차단 │ ├── 보안 그룹 (Security Group) ← 클라우드 환경의 접근 제어 │ ├── ACL (Access Control List) ← 네트워크 장비에서 접근 제한 │ ├── VLAN 보안 ← 네트워크 내부 트래픽 분리 │ ├── MAC 필터링 ← 특정 MAC 주소만 허용 │ ├── 802.1X 인증 ← 사용자 인증을 통한 네트워크 접근 제어 ├── 침입 탐지 및 차단 (IDS/IPS) ← 네트워크 공격 탐지 및 차단 ├── VPN (Virt.. 보안의 개념과 기술 보안의 개념 (CIA Triad) 보안은 데이터를 보호하고, 시스템 및 사용자에 대한 신뢰성을 확보하며, 위협으로부터 자산을 안전하게 관리하는 것입니다. 이는 기밀성(Confidentiality), 무결성(Integrity), **가용성(Availability)**이라는 세 가지 주요 개념(CIA Triad)을 중심으로 이루어집니다. 기밀성 (Confidentiality) :데이터나 자원에 대한 비인가된 접근을 방지.적용기술 :암호화(Encryption) : 데이터를 비인가된 사용자가 읽을 수 없도록 변환데이터가 허가된 사용자나 시스템만 접근 가능하도록 보장.적용기술 :접근 제어(Access Control) : 인가된 사용자만 암호화된 데이터에 접근하거나 복호화할 수 있도록 권한 관리무결성 (Integ.. HTTPS 의 TLS 동작과정 1단계: 클라이언트 헬로 (Client Hello)클라이언트(예: 브라우저)가 서버에 요청을 보냅니다:지원하는 암호화 방식 목록(Cipher Suite).난수(Random Data) 1개.사용할 TLS 버전.2단계: 서버 헬로 (Server Hello)서버는 클라이언트의 요청에 응답하며 다음 정보를 보냅니다:선택한 암호화 방식(예: AES-256-GCM).난수(Random Data) 1개.서버의 디지털 인증서(SSL/TLS 인증서):서버의 공개 키 포함.신뢰할 수 있는 인증 기관(CA)에 의해 서명됨.3단계: 인증서 검증클라이언트는 서버가 보낸 디지털 인증서를 검증합니다:인증서가 신뢰할 수 있는 CA(인증 기관)에 의해 서명되었는지 확인.인증서에 포함된 도메인 이름과 접속한 도메인이 일치하는지 확인.인증.. Security JWT,세션, 쿠키방식 스프링 Security 동작방식 사용자 인증은 시스템이나 애플리케이션에 접근하려는 사용자가 실제로 그 사용자가 맞는지 확인하는 과정이다. 사용자 경험과 확장성도 고려해야 한다. 이미 사용자 인증을 마친 회원이 페이지를 이동할 때마다 사용자 인증을 하게 된다면 사용자에게는 굉장히 불편한 서비스가 될 것이며, 서비스가 성장함에 따라 확장에 유연하지 못하다면, 확장 비용을 무시할 수 없게 된다. 따라서, 사용자 인증 방식들을 보안성, 사용자 경험, 확장성을 중심으로 비교해 보고 선택하는 것이 중요하다. Security 관리방식은 크게 두가지 방식으로 나뉜다. Stateless이냐 혹은 Session-Based이냐. Stateless는 서버가 클라이언트의 이전 상태를 기억하지 않는 방식으로, 매 요청마.. Spring Security 전체개념 보안의 필요성 공격자는 여러 방법으로 Wi-Fi 네트워크나 라우터에 접근하여 그 안을 흐르는 데이터를 제어하거나 모니터링할 수 있습니다. 인터셉션이 발생하는 방법 공격자가 사용자와 서버 사이의 데이터를 몰래 엿보거나 수정하는 행위입니다.중간자(MitM) 공격 : 공격자가 사용자와 서버 사이에서 트래픽을 조작하거나 가로챔패킷 스니핑 : 네트워크를 통해 오가는 데이터 패킷을 몰래 가로채 분석 스푸핑(위장) 공격 방법스푸핑은 속임수를 통해 신뢰받는 사용자나 시스템으로 가장하여 불법적인 접근이나 데이터를 탈취하려는 공격입니다a. IP 스푸핑: 공격자가 자신이 보내는 패킷의 IP 주소를 위조하여 요청이 신뢰할 수 있는 IP 주소에서 온 것처럼 보이게 합니다.b. 세션 하이재킹: 공격자가 유효한 세션 ID(예: 세.. Spring Security - JWT 인증방식 구현 스프링 Security - Jwt Authentication 구현 흐름User Sign-Up:사용자는 사용자 이름(username), 비밀번호(password) 등의 정보를 제공.비밀번호는 안전하게 해시(예: BCrypt) 처리된 후 데이터베이스에 저장.사용자 정보는 UserDetails 객체(또는 엔티티) 형태로 데이터베이스에 저장.User Sign-In (Authentication):사용자가 로그인 요청(예: /login)을 보내면 UsernamePasswordAuthenticationFilter가 요청을 가로챕니다. 그리고 필터는추출된 username과 password를 기반으로 인증 전 상태의 UsernamePasswordAuthenticationToken 객체 (Authentication 객체).. 이전 1 다음