인증

홍인열·2021년 11월 22일
0

https의 필요성과 원리

특징
기밀성

  • 아무도 메세지를 가로챌 수 없다.
  • 메시지는 읽을 수 없다.
  • 암호화 되어있다.
    무결성
  • 메시지가 목적지로 가는 도중에 조작되지 않는다.
  • 원본그대로 잘 도착했다.

둘모두 암호화가 필요하다
https에서 암호화 방법 2가지 CA 인증?

  • 비대칭 암호화 쌍으로암호화, 어떤것으로 암호화 할지 선택가능.
    공개키 (열쇠 구멍) 선택시 데이터 보안에 중점 (cret.pem)
    비공개키 (열쇠) 선택시 인증과정에 중점 (key.pem)

  • 대칭키 암호화X

    인증서는 무엇을 보장할까?
    -브라우저에서 접속한 서버가 "의도한" 서버임을 보장

  • 브라우저와 서버가 통신할 때 암호화할 수 있도록 서버의 공개키 제공

    만화로보는 howhttps.works/ko/why-do-we-need-https/

    let's encrypt 무료 인증기관
    스프린트 인증은 임의 인증 내컴퓨터가 인증기관역할.. 실제사용하면 안되고
    연습시만.

    해싱이란
    -입력받은 데이터를 고정된 길이의 데이터 (인풋이 길든짧든 아웃풋은 동일한 길이)로 변환할 때 이전의 데이터를 알아볼 수 없게 만드는 것
    -해싱알고리즘 sha1/ sha256 /sha512 /base64

  • input -> output 늘 동일한 순수 함수

  • 해싱된 값은 복호화가 불가능 (슈퍼컴으로 오래돌리면 가능할수도있다..불가능하다고보면됨)
    솔트란

  • 암호화해향하는 원본 값에 어떤 별도의 값을 추가해셔 결과를 변형하는 것.

  • 솔트는 사용자와 비밀번호 별로 유일한 값을 가져야한다.

  • 절대 재사용하면 안됨.
    데이터베이스 사용자 테이블에 해싱된 패스워드값과 솔트값을 함께 저장.
    패스워드값에 솔트를 추가함으로써 보안이 더욱강화된다.

    해싱은 단방향 암호 함수 (emn178
    crackstation.net (예제) rainbowtable - 자주사용하는 비밀번호 해시를 정리해놈.
    해싱알고리즘은 공개되어있는데 안전한 이유는 쏱트는 서버 디비에만 저장되어있어
    해싱알고리즘은 암호화 알고리즘 비크립트등을 사용함 직접사용할일을 별로 없을것

데이터베이스에 저장시 해싱된값을 저장함.
서버에서 비밀번호를 확인하는 방법은 입력한 값의 해싱된값과비교해서 비밀번호를 확인.
비밀번호찾기시 새로운 비밀번호를 만드는 이유는 해싱을통해 저장된 값의 원본값을모르기 때문에

ngrok?
로컬에 구성한 개발 환경을 급하게 외부에 공개해야할 경우가 있다.
이때 별도의 개발서버로 옮기고 빌드하고 디플로이하는게 번거로울경우 개발용 로컬호스트를 터널링을해서 외부에서 접속할 수 있도록 도와주는 프로그램.

쿠키
-http의 stateless(무상태성) 특징을 보완해주는 도구.

  • 무상태성 상태기억을 못함, 상태가 유지되지않음?, 예를 들어 어떤사람이 로그인을했을때 마이페이지를 클릭했을때 로그인에대한 요청과 마이페이지에 대한 요청이 각각 다르기때문에 마이페이지에 대한요청은 이사람은 로그인인을 했는지 안했는지 모르기때문에 쿠키가 필요함. 장바구니도 마찬가지로 이사람이 로그인을 하지 않은상태에서도 장바구니에 저장되는 경우가 있는데, 이럴때 쿠키에 이사람의 정보를 저장해 놓았기 때문에 지금이 브라우저를 열어서 들어온 이사람은 장바구니에 저장해놓은게 바로이거다라고 바로 연결해준다. 각각의 요청은 독립적임에도 불구하고 이것들을 연결시켜줄수 있는방법을 쿠키를 통해 할수 있다.
    -작은 문자열을 저장
    -connect.sid=세션id
    -쿠키는 보안으로 사용할 순 없음. 클라이언트에서 모두 확인이 가능하기때문이다.
    사용헤더
    -cookie
    -set-cookie

    서버는 브라우저에 일방적으로 쿠키를 저장할 수 있다.(유럽은 쿠키허용 물음이 필수.. 해외에서 법적으로 쿠키허용여부를 확인하게 되어있으나... 서버는 기본적으로 일방적으로 쿠키를 저장할 수 있다.)
    어떻게 저장하는가

  • 서버에 응답을 보낼때 헤더를 이용

  • 200 OK (set-cookie: 키1=값1) 키값쌍을 주게되면 클라이언트에 쿠카가 자동으로 저장됨
    쿠키의쓰임

  • 로그인 안한 상태에서 장바구니 저장시

  • 7일간 보지않기등..

  • 타겟형 광고 데이터 저장

  • 로그인 유지

  • 인증 상태 저장

  • 쿠키 저장기간을 지정할 수 있다. (서버에서 지정가능, 네트워크탭(application, expires)에서 확인가능)

    세션..

profile
함께 일하고싶은 개발자

0개의 댓글