HMAC•RSA 알고리즘을 사용한 JWT Signature
·
CS
참여하고 있는 스터디에서 위 주제로 간단한 세션 발표를 진행하게 되어, 관련하여 글을 준비하게 되었다.😵 글의 목표는 다음과 같다.JWT 서명(Signature)에 대해 간략히 리뷰한다.HMAC / RSA 알고리즘을 사용해 JWT 서명을 생성하고 검증하는 과정을 이해한다. 분산 환경에서 JWT를 어떻게 검증할 수 있을지 알아본다. 1. JWT SignatureJWT의 세 번째 구성 요소Base64 URL 인코딩 된 Header + Payload를 secret key로 암호화 한 값무결성: Payload의 위조 여부 확인신뢰성: 누가 보냈는지 인증 가능 2. JWT Signature 생성- HS256 1. 개념HS256은 HMAC 방식 + SHA-256 해시 함수를 사용한 알고리즘H..
대칭키와 비대칭키
·
CS
보안의 시작을 알리는 개념인 `대칭키`와 `비대칭키` 처음 이 개념들을 마주할 때는 그저 외우기에 급했지만, 동작 플로우를 이해하면 쉽게 이해할 수 있는 개념이라고 생각된다. 이번 글의 목표는 다음과 같다.대칭키와 비대칭키의 개념과 장단점을 정리한다.비대칭키를 활용한 암호화와 인증 과정을 흐름도를 통해 이해한다.대칭키를 안전하게 공유하는 방법을 알아보고, 공개키 위조 문제의 해결 방안을 간략히 살펴본다. 1. 대칭키: 암호화, 복호화에 사용하는 키가 동일한 암호화 방식이다. 장점알고리즘이 단순해 암호화/복호화 속도가 빠르다. 단점키 공유 문제송수신자 간의 동일한 키를 안전하게 공유하기 어렵다.확장성 문제사용자 수가 많아지면, 각 쌍마다 고유한 키가 필요해 키 관리가 복잡해진다.N명이 서로 통신하려면 n..
5주차. 네트워크 레이어
·
CS./네트워크
1. IP주소에 대해서 설명해주세요. 더보기 IP 주소는 네트워크에서 호스트와 라우터의 각 인터페이스마다 할당되어 있는 식별 번호 입니다. "IP 주소는 컴퓨터 네트워크에서 통신 장치를 식별하기 위해 사용되는 고유한 숫자입니다." 2. IPV4와 IPV6는 어떤 차이점이 있을까요? 더보기 IPv4에서는 주소를 4바이트로 표현하고, IPv6에서는 주소를 16바이트로 표현합니다. IPv4에서 제공되는 주소 개수의 한계 때문에 IPv6가 등장했습니다. IPv6는 보편화 단계에 있으며 IPv4와 혼용해서 사용하기 위해 터널링 기법을 사용합니다. "IPv4와 IPv6의 가장 큰 차이점은 주소 길이와 형식입니다. IPv4는 32비트 주소를 사용하고, IPv6는 128비트 주소를 사용합니다. 이로 인해 IPv6는 더..
4주차. UDP, TCP, 신뢰적 데이터 전송
·
CS./네트워크
[UDP] 1. UDP에 대해 설명해주세요. 더보기 TCP와 달리 UDP는 연결 지향형이 아니고, 신뢰적인 데이터 전송을 보장하지 않습니다. 단지 체크섬을 통해 수신된 패킷의 오류 여부 정도만을 알 수 있습니다. UDP는 TCP에 비해 기능이 별로 없기 때문에 적은 오버헤드로 빠른 전송이 가능 합니다. 따라서 일정 전송 요구량이 있고, 조금의 데이터 손실을 허용하는 스트링 애플리케이션에 어울립니다. "UDP는 User Datagram Protocol의 약자로, TCP와 함께 네트워크 통신에 사용되는 프로토콜 중 하나입니다. TCP와 달리 연결 설정이 없어 빠른 데이터 전송이 가능하지만, 데이터 손실이나 중복 전송에 대한 보장이 없습니다. 주로 음성 및 영상 스트리밍, 온라인 게임, DNS와 같은 실시간 ..
3주차. 애플리케이션 레이어
·
CS./네트워크
1. 쿠키와 세션에 대해서 설명해주세요. 더보기 쿠키는 HTTP 서버가 클라이언트를 식별할 수 있도록 하기 위해서 사용되는 것 입니다. 클라이언트가 웹 서버에 처음 접속하면, 서버는 쿠키를 생성에서 클라이언트에게 줍니다. 이후 클라이언트는 서버에 요청을 보낼때 자신의 정보가 들어있는 쿠키를 같이 보냅니다. 그러면 서버는 쿠키를 통해 클라이언트를 식별할 수 있습니다. 쿠키는 클라이언트 단에 저장되기 때문에 쿠키에 들어있는 사용자 정보가 유출될 수 있는 단점이 있습니다. "쿠키는 클라이언트에 저장되는 작은 데이터로, 서버와 클라이언트 간의 상태를 유지하는 데 사용됩니다. 서버가 클라이언트에게 응답할 때, Set-Cookie 헤더를 사용하여 쿠키를 생성하고 클라이언트에게 전송합니다. 이후 클라이언트가 서버에 ..
2주차. 애플리케이션 레이어 HTTP, HTTPS, DNS
·
CS./네트워크
[HTTP] 1. HTTP 프로토콜에 대해서 설명해주세요. 더보기 HTTP는 웹에서 정보를 주고 받게 해주는 프로토콜입니다. HTTP는 클라이언트와 서버로 구현됩니다. 클라이언트가 HTTP 메서드로 서버에게 요청을 보내면, 서버는 HTTP 상태코드로 응답하는 방식으로 동작합니다. "HTTP(Hypertext Transfer Protocol)는 웹 프로토콜 중 하나로, 클라이언트와 서버 간 통신을 가능하게 합니다." 기본적으로 Request-Response 형태로 동작을 하는데 클라이언트가 서버에게 특정 리소스에 대한 Request를 보내면, 서버는 해당 요청에 대한 Response를 클라이언트에게 전송합니다. 2. HTTP의 요청/응답 모델에 대해 설명해주세요. 더보기 클라이언트가 서버에게 요청하고 응답..