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

    code-sudal

    RSS·Powered by Inblog