Web - JWT 사전 지식

Seongjin Jo·2023년 1월 13일
0

Web

목록 보기
2/3

💥 서버 인증 방식


JWT 사전지식

1.세션이란?

무엇인지

  • 쿠키에 중요한 정보를 보관하는 방법은 여러가지 보안 이슈가 있다. 이러한 문제를 해결하기 위해서 서버에 중요한 정보를 보관하고 연결을 유지하는 방법을 세션이라 한다.

왜 사용되는지

  • 세션은 쿠키를 기반으로 하지만 클라이언트에 저장하는 쿠키와는 다르게 서버에 저장하여 관리한다. 그렇기 때문에 보안이 좋다.

단점은 무엇인지, 해결 방법은?

  • 서버가 동시접속자수를 감당해내지 못해서 서버를 확장하게 되면, 서버를 분할해야하는 문제(세션 클러스터링)가 생긴다. 이러한 문제를 해결하기 위해서는 다음과 같은 방법을 사용해야 한다.

    1.스티키서버를 사용(요청 서버를 고정하는 방식)
    2.세션 서버를 다 복제
    3.공유메모리 사용 (Redis)

    하지만 이러한 방식들도 전부 단점이다.

2.TCP 통신이란?

TCP 통신이란 웹 OSI 7계층의 전송계층에 해당한다.전송계층에는 UDP,TCP 두 가지 전송 방식이 있다.우선 TCP 통신 방식은 전송 측에서 신호를 보내면 응답 측에서 ack라는 응답신호를 보내는 방식이다. 정보를 그냥 바로바로 보내는 UDP보다는 속도가 느리다.
udp-> 사람이 하는 것(전화,동영상)은 상관없음, 정보가 유실 될수도있다.
tcp-> ip,pw같은 정보가 유실되지않아야하는 것들을 전송하는 방식,신뢰성 높음.

3.CIA란?

기밀성(Confidentiality) : 송신하고자 하는 정보의 내용이 다른 사람이 알아보지 못하도록 하기 위한 기능
무결성(Integrity) : 정보의 변경이 있는지 없는지를 확인하는 기능
가용성(Availability) : 서비스가 인가된 대상에게 제공되어지고, 인가된 사용자가 정보를 사용할 수 있도록 하는 것

CIA를 지키면서 정보를 전달하기 위해서는 2가지를 생각해야한다.

1.전달의 문제

ex) A,B,C 나라에서 A->B로 문서전송 할때 C나라가 그 문서를 낚아채서 변경시켜서 B나라로 전송하는 것 -> CIA가 다 깨진것
--> CIA를 지켜서 문서를 전송해야 보안을 유지할 수 있다.
그래서 금고라는 시스템을 도입했을 때, 열쇠를 또 B쪽에서 갖고있어야한다.
그럼, A->B로 열쇠를 또 전달해야 하는데, 그 열쇠도 털릴 수 있다.

2.정보가 누구로부터 왔는지 (인증 문제)

ex) 청군1(100) 홍군(150) 청군2(100)
청군1이 청군2한테 홍군을 치자고 문서를 보내면 ack를 받아야한다. 근데 청군2가 치는날에 나타나지 않을 수도 있다.
이유는?-> 홍군이 가로챌 수 있다.

이 두가지 문제를 해결하면 웹 보안문제를 해결할 수 있다 --> RSA

4.RSA란?

암호화방식이다. 두 가지 키를 가진다.
public key : 공개 키
private key : 개인 키

ex 1)
A->B로 문자를 보낸다고 가정할때, A와B는 각각 공개 키와, 개인 키를 가진다.
A는 보내는 문자의 키를 B의 공개 키로 보낸다. 그러면 그 문자를 해커가 가로채도 읽을 수 없다.
그 이유는 그 문자는 B가 가진 B의 개인 키로만 열수 있다.
-->전달의 문제 해결

ex 2)
A->B 에게 'A가C에게 1억을 송금했다'는 문자를 보내려한다. 그러고 A의 개인 키로 암호화한다.
B는 A가 보낸 문자를 볼수 있다. 그 이유는 A의 공개키로 열었기 때문. 그렇기 떄문에 B는 A가 보냈다는 것을 알수있다.
--> 즉, A의 공개키로 열었기 때문에 A가 개인키로 잠궜고 A가 쓴 문자가 맞다는 것을 알수있다.

공개 키 -> 개인 키 (암호화) --> 전달문제해결가능
개인 키 -> 공개 키 (전자서명) --> 인증문제해결가능

5.RFC문서란? 알아야 할 것

http는 벨연구소라는 곳에서 개발 되었다. --> www (world wide map)
http 프로토콜 이라한다.

벨연구소 내부망, A대학의 내부망 끼리 통신하려면 약속된 규칙이 필요하다.
주소를 입력하고 ?name=xx 이런식으로 파라미터를 넘기는 약속된 방식을 RFC 1번문서. 최초의 문서 ---> '프로토콜'이라한다.

점점 다른 네트워크(대학)들과 통신하려고한다고 가정하자 --> RFC문서가 계속 생기게된다. --> 점점 약속이 많아진다.---> www 이라고한다.
이제 k대학이 비대해진 RFC된 네트워크에 끼려고하면, K대학과 네트워크 간에 규칙을 모든 네트워크가 동의해줘야한다. 동의하지 않으면 RFC가 만들어지지 않는다.

이러한 RFC 문서 7519번 째에 만들어진 약속이 JWT이다. JSON WEB TOKEN.

0개의 댓글