1. 인증과 인가
인증 (Authentication)
- 정의: 사용자가 주장하는 신원을 확인하는 절차이다.
- 목적: 사용자로부터 제공된 정보를 바탕으로, 실제로 해당 사용자인지 검증한다.
인가 (Authorization)
- 정의: 인증된 사용자가 특정 리소스에 접근할 권한이 있는지를 확인하는 절차이다.
- 목적: 인증을 마친 사용자에게 적절한 접근 권한을 부여하여 시스템 자원의 보안을 유지한다.
2. 암호화 방식 및 특징
대칭 키 암호화
- 원리: 암호화와 복호화에 동일한 키를 사용한다.
- 장점: 연산 속도가 빠르며 대용량 데이터 암호화에 효율적이다.
- 단점: 키의 분배와 관리가 취약하여, 키 노출 시 전체 보안에 심각한 영향을 미친다.
공개 키 암호화
- 원리: 서로 상보적인 공개 키와 개인 키를 사용하여 암호화와 복호화를 수행한다.
- 장점: 키 분배 문제를 효과적으로 해결할 수 있으며, 인증과 디지털 서명에도 활용된다.
- 단점: 대칭 키에 비해 연산량이 많아 처리 속도가 느리다.
- 용도: 보안 통신의 초기 키 교환, 인증 및 서명 과정에서 주로 사용된다.
3. XSS와 CSRF 공격 및 방어
XSS (Cross-Site Scripting)
- 정의: 공격자가 웹 페이지에 악성 스크립트를 삽입하여 사용자 브라우저에서 실행되도록 유도하는 공격이다.
- 위험성: 사용자 세션 탈취, 악성 코드 실행 등 다양한 보안 위협을 야기한다.
- 방어 방법:
- 사용자 입력값에 대한 철저한 검증과 인코딩을 수행한다.
- 콘텐츠 보안 정책(Content Security Policy, CSP)을 적용하여 스크립트 실행을 제한한다.
CSRF (Cross-Site Request Forgery)
- 정의: 인증된 사용자의 권한을 도용하여, 사용자가 의도하지 않은 요청을 실행하도록 만드는 공격이다.
- 위험성: 사용자의 권한을 이용한 악의적 행위가 발생할 수 있다.
- 방어 방법:
- CSRF 토큰을 활용해 요청의 정당성을 확인한다.
- Referer 헤더를 검증하여 요청 출처를 확인한다.
- SameSite 쿠키 속성을 설정해 타 도메인에서의 쿠키 전송을 제한한다.
4. OAuth 및 OpenID Connect
OAuth 2.0
- 개념: 외부 인가 서버를 통해 제한적인 접근 권한을 부여받기 위한 표준 프로토콜이다.
- 주요 구성 요소:
- Authorization Server: 인가를 담당하는 외부 서버이다. (예: 구글 인가 서버)
- Resource Server: 사용자가 접근하려는 자원이 존재하는 서버이다. (예: 구글 사용자 정보 서버)
- Resource Owner: 인가 정보를 보유한 최종 사용자이다.
- Resource Client: OAuth를 활용하는 클라이언트, 주로 백엔드 애플리케이션 서버이다.
- 동작 원리:
- 클라이언트는 인가 서버에 접근 권한 요청을 전송한다.
- 인가 서버는 사용자 인증 후, 리다이렉트 콜백을 통해 클라이언트에게 인가 코드를 전달한다.
- 이 인가 코드를 바탕으로 클라이언트는 액세스 토큰을 발급받아 자원 서버에 요청을 전송한다.
OpenID Connect와의 차이
- OAuth: 인가(Authorization)에 중점을 둔 프로토콜이다.
- OpenID Connect: OAuth 2.0 위에 인증(Authentication) 기능을 추가한 표준이다.
- 특징:
sub
라는 고유 식별자를 사용하여, 이메일 주소 변경과 무관하게 안정적인 사용자 식별을 가능하게 한다.
- 특징:
- 활용: OpenID Connect를 적용하면, 인가뿐 아니라 사용자 인증까지 통합적으로 관리할 수 있다.
'CS > 네트워크 - Top-down Approach + @' 카테고리의 다른 글
OSI 7 Layer, TCP/IP 4 Layer, 그리고 HTTP와 HTTPS (0) | 2025.03.09 |
---|---|
백엔드 개발자를 위한 HTTP 기본 지식 (0) | 2025.03.08 |
HTTP와 네트워크 (0) | 2025.01.15 |
[네트워크] 소켓 통신의 기본 (0) | 2024.11.13 |
쿠키, XSS, CSRF, SOP, CORS (0) | 2024.09.27 |