CS/네트워크
JWT (Json Web Token)
개념Json 객체 인증에 필요한 정보들을 담은 후 비밀키로 서명한 토큰으로, 인터넷 표준 인증 방식이다. 공식적으로 인증(Authentication) & 권한허가(Authorization) 방식으로 사용된다. 프로세스 사용자가 아이디와 비밀번호 혹은 소셜 로그인을 이용하여 서버에 로그인 요청을 보낸다.서버는 비밀키를 사용해 json 객체를 암호화한 JWT 토큰을 발급한다.JWT를 헤더에 담아 클라이언트에 보낸다.여기까지가 JWT를 발급받기까지의 (로그인 전)과정이다. 로그인 이후에는 다음과 같은 과정이 이루어진다.클라이언트는 JWT를 로컬에 저장해놓는다.API 호출을 할 때마다 header에 JWT를 실어 보낸다.서버는 헤더를 매번 확인하여 사용자가 신뢰할만한지 체크하고, 인증이 되면 API에 대한 응답..
0Auth란?
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹 사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준이다. 이 매커니즘은 여러 기업들에 의해 사용되는데 이를테면 아마존, 구글, 페이스북, 마이크로소프트, 트위터가 있으며 사용자들이 타사 애플리케이션이나 웹 사이트의 계정에 관한 정보를 공유할 수 있게 허용한다 (로그인 API)OAuth가 쓰이기 전에는 인증방식의 표준이 없었기 때문에 기존의 기본 인증인 아이디, 비밀번호를 썼는데 이는 보안상 취약한 구조다. 기본 인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인했다. OAuth는 이렇게 제각각인 인증방식을 표준화한..
MAC 주소 개념 정리 / 스위치
스위치란?중요한 네트워크 장비로써 라우터와 쌍벽을 이루는 것이 바로 스위치다. 스위치의 역할은 주로 두 가지다PC나 서버 등을 네트워크에 연결시킨다.같은 네트워크 내부의 LAN 포트 사이에서 데이터 전송을 수행한다.스위치에는 LAN 포트가 여러 개 달려있다. 가정용 스위치에는 대개 8개 정도 달려 있지만, 기업용 스위치 중에는 몇백 개나 되는 LAN 포트를 갖춘 제품도 있다.컴퓨터를 네트워크에 연결하기 위해선 컴퓨터와 스위치의 LAN 포트를 서로 연결하면 된다. 이 때 스위치가 여러 대의 컴퓨터로부터 LAN 케이블을 모으는 것처럼 보이기 때문에 집선 장치라고 불리기도 한다.스위치에 연결된 컴퓨터들은 기본적으로 같은 네트워크에 연결되고 스위치를 여러 대 사용하는 경우에도 같은 네트워크로 취급된다.스위치는 ..
스위치 라우터의 차이
스위치목적지로 출발한 데이터를 중간에 적합한 경로로 스위칭해주는 역할을 하는것이 스위치이고 스위치는 데이터링크 계층에 속한다. 스위치는 데이터링크 계층에 속해 있으므로 MAC주소 기반으로 동작한다. 라우터라우터 또한 목적지로 가는 적합한 경로를 찾아주는 라우팅 기능을 한다. 라우터는 IP주소를 기반으로 작동하여 네트워크 계층에 속해있다. 둘의 차이가장 대표적인 차이는 계층의 차이이다. 라우터는 네트워크계층에서 IP주소를 기반으로 동작하며 스위치는 MAC주소를 기반으로 데이터링크 계층에서 동작한다.스위치는 브로드캐스트 도메인을 구분할 수 없는 반면 라우터는 브로드캐스트 도메인을 구분하여 서로 다른 네트워크 대역을 구분한다.스위치는 불명확한 목적지를 가진 데이터를 처리할 때 모든 포트로 데이터를 퍼뜨리는 브..
IPsec의 개념
Secure Protocolstcp/ip 5계층에서 보안 관련된 프로토콜은 많이 존재한다. 대표적인 예를 들어보면 다음과 같다. 1) Application Layer - HTTPS, SSH, PGP, S/MIME2) Transport Layer - SSL/TLS3) Network Layer - IPsec, VPN4) Data Link Layer - L2TPIPsec이란?IPsec는 Internet Protocol Security의 약자이다.Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜들의 모음이다.IPSec가 제공하는 보안 서비스의 범위는 호스트나 보안게이트웨이 사이이다.VPN을 구현하는데 사용되는 프로토콜..
SDN (Software Defined Network) 이란?
SDN이란?SDN(Software Defined Network)이란 소프트웨어를 통해 네트워크 리소스를 가상화하고 추상화하는 네트워크 인프라에 대한 접근 방식을 의미한다. 조금 더 쉽게 설명하자면, 소프트웨어 애플리케이션과 API를 이용하여 네트워크를 프로그래밍하고, 중앙에서 전체 네트워크를 제어하고 관리하는 것이다.작동 방식SDN에서 가장 핵심은 네트워크 장비의 Control Plane(제어부)와 Data Plane(전송부)의 분리이다.Control Plane은 네트워크 장비를 제어하는 뇌에 해당하고, Data Plane은 데이터를 전송하는 역할을 하는 것이다. 기존의 라우터(Router)라는 네트워크 장비에는 제어부와 전송부가 같이 존재한다. 제어부에서 최적의 경로를 계산하고 전송부가 데이터를 전송하..
[네트워크] 호스트 (host), 클라이언트 (Client), 서버 (Server)
클라이언트클라이언트는 서버에서 사용할 수 있는 서비스에 엑세스하는 컴퓨터 하드웨어 장치 또는 소프트웨어다. 서버는 종종 실제 별도의 컴퓨터에 위치한다.서버서버는 다른 컴퓨터의 요구 사항을 충족하기 위해 서비스를 실행하는 물리적인 전용 컴퓨터다. 실행 중인 서비스에 따라 파일 서버, 데이터베이스 서버, 홈 미디어 서버, 인쇄 서버 또는 웹 서버일 수 있다.호스트호스트는 네트워크를 통해 데이터 또는 서비스를 제공하는 다른 컴퓨터에 연결된 컴퓨터다. 이론적으로 네트워크에 연결된 모든 컴퓨터는 네트워크의 다른 피어에 호스트 역할을 한다. 본질적으로 호스트는 네트워크에 있는 둘 이상의 컴퓨터의 논리적 관계를 반영한다. 컴퓨터가 다른 컴퓨터의 호스트일 수 있다. 마찬가지로 라우터는 다른 라우터의 호스트일 수 있다...
[네트워크] 접근 통제 정책 (MAC, DAC, RBAC)
- 접근 통제 정책어떤 상황에서 행위를 허용하거나 거부할 것인지에 대한 내용을 나타낸다. 접근 통제 정책은 크게 세가지가 있다. - MAC (Mandatory Access Control) : 강제적 접근 통제주체, 객체 등급기반 접근권한 부여자원의 보안 레벨과 사용자의 보안 취급 인가를 비교하여 접근 제어를 한다.어떤 주체가 어떤 객체에 접근하려 할 때 양자의 보안 레벨(보안등급)을 비교하여 높은 보안을 요하는 정보가 낮은 레벨의 주체에게 노출되지 않도록 접근을 제한하는 방법 이다. - DAC (Discretionary Access Control) : 임의적 접근 통제접근 주체 신분기반 접근권한 부여접근 주체가 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법 이다.자원의 소유자가 접..
맵 방식 설정 심리스(Seamless), 존(Zone), 룸(Room)
심리스 (Seamless) 방식 큰 맵을 하나 만들어 맵 이동 시에 새 지역을 로딩없이 자유롭게 이동할 수 있도록 만드는 방식. 유저 캐릭터가 특정 방향으로 움직일 때마다 그만큼 새지역을 로딩하는 구역로딩을 한다. 이 때문에 심리스 방식은 로딩이 없는 것처럼 유저가 느끼게 만든다. 장점) 미리 로딩이 되어있기 때문에 자유롭게 이동이 가능 단점) 미리 로딩을 하는 방식이기에 초반 로딩이 다소 긴 편 존(Zone) 방식 맵을 작은 단위로 나눈 후에 맵에 설정된 입구를 통해 서로 연결한 후 그 위치를 통해 각 맵을 이동하는 방식 입구, 즉 포탈을 통해 맵을 이동하기 때문에 포탈맵 방식이라고도 한다. 장점) 그때마다 필요한 부분만 로딩을 하여 퍼포먼스 및 렉 최적화 단점) 맵을 이동할 때마다 로딩을 해야하는 번..
Stateful (동기) / Stateless (비동기) 서버
Stateful (실시간 온라인 게임) 게임서버 Stateless (비실시간 비동기 온라인 게임) 게임서버 이 두 가지의 서버기술은 완전히 다른 방식의 기술을 사용한다. 먼저 게임의 종류에 대해 알아보자. 게임은 크게 '실시간 온라인 게임'과 '비실시간 비동기 온라인 게임'으로 나뉜다. 실시간/비실시간 게임 실시간 온라인 게임 리니지 LOL 오버워치 크레이지아케이드 이런 실시간 온라인 게임들은 다수의 유저들과 실시간 액션 플레이를 해야한다. 그렇기 때문에 모든 클라이언트는 서버에 접속하여 연결을 유지한 상태로 플레이를 진행한다. 또한 게임의 로직과 전투의 판정 등, 모든 데이터와 결정은 게임서버가 주도적으로 진행해야만 한다. 우리는 이런 게임을 ‘실시간 온라인 게임’ 이라고 부르며 이런 목적의 게임 서버..