inblog logo
|
code-sudal
    tip

    인증 맛 보기

    윤주헌's avatar
    윤주헌
    Sep 02, 2024
    인증 맛 보기
    Contents
    4가지 인증 배울거임참고1. 가장 기본 인증프로토콜 인터페이스 차이다시 사진으로 넘어가서핸드폰과 브라우저와 서버와의 정보 전달 차이2 번째로 인증

    4가지 인증 배울거임

    • 지식 기반 인증
    💡
    고객이 알고 있는 정보 기반으로 인증
    비밀번호 등
    유추가 가능하고 유출의 우려가 있음
    • 소유 기반 인증
    💡
    고객이 소유하고 있는 것을 기반으로 인증
    공인인증서, 시크리트 카드, OTP, 문자인증 등
    지식 기반 인증과 함께 사용되면 강력함
    복제/분실의 우려 존재
    • 생체 기반 인증
    💡
    고객이 가지고 있는 고유한 생체적 특징을 기반으로 인증
    지문인증, 홍체인증 등
    분실이나 도난의 위험이 없고 복제가 어려움
    재발급이나 변경이 안되므로 복제가 될 경우 위험
    인증 실패(본인거부)의 가능성
    • 행위 기반 인증
    💡
    주체가 하는 행위 기반으로 인증
    걸음걸이, 서명, 음성 등

    참고

    1. 사용자 인증(Authentication)과 권한 부여(Authorization)에 대한 이해
    여러가지 알아야 할 것 들을 정리해보려 한다.. 1. 사용자 인증(Authentication)과 권한 부여(Authorization)에 대한 이해 1-1 인증과 권한 부여의 차이 이해 사용자 인증 - 컴퓨터 보안에서 말하는 인증이란 어떤 실체가 그 실체가 맞는지
    1. 사용자 인증(Authentication)과 권한 부여(Authorization)에 대한 이해
    https://velog.io/@m_jae/Here-we-go
    1. 사용자 인증(Authentication)과 권한 부여(Authorization)에 대한 이해

    1. 가장 기본 인증

    웹 기본은 stateless
    notion image
    notion image

    프로토콜 인터페이스 차이

    • 인터페이스
    💡
    갑이 하는 약속( 갑 마음대로 할 수 있다)
    예로 내 휴대폰이 11시 10~ 15분까지 아무나 사용할 수 있어요
    • 프로토콜
    💡
    협의하에 만들어진 것
    공유물 (갑 을 없이 동등한 관계) 에어컨을 10시 부터 10시 10분까지 쓰자 했는데 다른 사람들이 15분까지는 안돼요? 물어봤을 때 변경할 수 있다
     

    다시 사진으로 넘어가서

    로그아웃 방법 2가지

    1. 쿠키를 지운다(key를 지운다) → 로그아웃(락카에는 정보가 있지만 요청할 때 쿠기에 키를 안 들고 가니까)
    1. 쿠키는 키를 가지고 있지만 락카(session)에서 정보를 지우는것(sessioninvelidate)(시간 정할 수 있다.)
    서버 입장에서는 락카(session) 내용 지우는 것만 가능 쿠키를 못 지우니까
     
    세션.getAttribute해서 꺼냄 락카안에 타입 설정한다면
    제내릭은 new할 때 타입 정한다 하지만 session은 이미 타입이 있음
     

    session은 무슨 타입으로 해야할까?

    → session은 여러 가지 정보들이 있어서 특정지을 수 없기에 Object타입으로 할 수 밖에 없고
    꺼내 쓸때는 반드시 다운케스팅 해야 한다!!
     

    다운 케스팅이 불편해서 그냥 user 타입으로 바꾸면 안 돼요?

    → user타입으로 통일했을 때 정보를 넣으려면 무조건 extend 해서 적어야 하는 번거롭다!

    핸드폰과 브라우저와 서버와의 정보 전달 차이

    C라는 프로그램을 만들었는데 휴대폰 App이라면
    휴대폰이 락카에 인증요청을 해
    기본인증!
    1. 인증 → 락카가 ok라고 하고 2번 자리에 어떤 정보를 담고 키를 준다(setCookie에 담아서 request한다) 브라우저니까 저장해주는거지 휴대폰 APP은 저장하지 않는다. → 다음 요청 때 2번 key를 안 들고 간다 → 인증 안됨 그래서 휴대폰 app을 Http프로토콜에 맞춰서 만들어야 함 response해더를 열어서 핸드폰저장소에 직접 코드로 저장해야 한다 그럼 될까? 안된다 → 직접 요청 때에도 request해더에 key값을 넣어줘야 한다!
     

    2 번째로 인증

    request 객체는 동시 접속할 때 한번에 몇 명까지 가능한지
    notion image
     
    서버에 request가 50개 있는데 51번째 request객체 들어오면 wait됨
    하지만 100명이 들어온다면 서버 터짐 즉 서버를 늘려야 한다(기계를 바꾸는 것 보다 똑같은 서버를 한번 더 만든다 이게 좋다 복제함(레이드))
     
    항상 연결되는게 아니니까 서버 아래로 간다면 인증 안됨

    용어 정리

    • 스케일 아웃
    💡
    스케일 아웃은 접속된 서버의 대수를 늘려 처리 능력을 향상하는 것이다
     
    • 스케일 업
    💡
    스케일 업은 서버 자체의 성능을 높여 처리 능력을 향상하는 것으로 프로세서 자체를 고성능 모델로 옮겨 놓는 것을 가리킨다. → 컴퓨터 자체의 성능을 늘린다(비싸고 시간 오래걸림)
     
    • 레이드(RAID)
    💡
    저장 장치의 배열 및 관리에 관한 기술로, 하드 드라이브의 데이터 보호 및 성능 향상을 목적 → 서버 복제한다
     
    • 오토 스케일링
    💡
    일반적으로 컴퓨팅 리소스 측면에서 시스템이 자동으로 규모를 조절(scale)하는 기능 ex) request객체가 50개인 서버에서 30개까지 찼다면 자동으로 서버를 알아서 늘리는 것
     
    • 프로비저닝
    💡
    사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것을 말한다.
     
    • 로드 밸런서
    💡
    클라이언트, 서버풀 사이에 위치해서 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해주는 장치 또는 기술
     
    • 스티키 세션
    💡
    특정 세션의 요청을 처음 처리한 서버로만 전송하는 것을 의미합니다.
     
     
    서버 뻗기전 서버 늘리는게 좋다 → 미리 준비하기(프로비저닝) (전날 저녁에 미리 컴퓨터 만들어두고 시작하면 미리 붙인다 ) 이거를 내가 하면 귀찮잖아(새벽에 만들어 두고 아침에 붙이는게) → 자동으로 컴퓨터 팍 늘어남(30명쯤 되면 알아서 는다) (이거를 오토 스케일링이라 한다)
     

    다시 사진으로 돌아가서

    만약 새로 만들어진 서버에 요청하면 인증이 안 된다 1번 서버에 정보가 있기 때문이다
    →
    단일 진입점을 만든다(로드 밸런서 → 스티키 세션)
    방법 3가지
    1. 한번 접속하면 로드 밸런서가 서버가 바빠도 로그인 된 서버로 보내줌
    1. 한번 접속했어? 하면 새로 만들어진 서버 세션에 동기화 시켜줌(위험한게 동기화 중에 다른 곳으로 접속한다면 다른 서버에서는 로그아웃(정보가 없어)되어 있어서 로그인(정보 다시 기입)을 해야한다 )
    notion image
     
    1. 외부에 세션을 하나 따로 둔다(세션 관리하는 DB가 필요하다) → 서버 붙어있는 세션 지운다 문제가 세션은 메모리에 띄워 속도가 빠른 건데 DB는 디스크에 넣는 거라 느리다 그래서 이 DB는 메모리DB를 사용해야 IO(속도 느려짐)안됨 대표적인 DB이름이 redis, memcached다
    notion image
     
    Share article
    Contents
    4가지 인증 배울거임참고1. 가장 기본 인증프로토콜 인터페이스 차이다시 사진으로 넘어가서핸드폰과 브라우저와 서버와의 정보 전달 차이2 번째로 인증

    code-sudal

    RSS·Powered by Inblog