Skip to content

Latest commit

 

History

History
287 lines (163 loc) · 10.6 KB

File metadata and controls

287 lines (163 loc) · 10.6 KB

12장 🐙 기본 인증

12.1   인증  secho

1번.

HTTP의 네 가지 인증단계입니다 빈칸을 적절하게 채워주세요.

보기 : Post, 301-Redirection, Authorization, GET, 200-OK

image

2번.

HTTP가 리소스마다 다른 접근 조건을 다루기 위해서 ______지시자를 기술한다.




다푸셨으면 OAuth에 대해 잠깐 알아볼까요

OAuth은 다양한 애플리케이션에서 사용하는 최신 인증 프로토콜

OAuth 2.0은 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜


예시

대표적으로 소셜로그인이 있음
만약 세초블로그에서 소셜로그인기능을 추가했다고 한다.
세초블로그에 댓글을 달기 위해서 네이버로 로그인한다.
사용자는 ID,PW를 입력해서 세초에게 전달하고
세초는 해당 값으로 네이버로 로그인해서 네이버 회원인지 확인한다.

=>세초에게 네이버 ID, PW를 주는 것이 잘못됨.
사용자가 네이버 ID, PW를 알려주지 않아도 
네이버측의 사용자 정보를 세초블로그에서 안전하게 사용하기 위한 방법.


세초블로그 -> 네이버 로그인페이지 -> ID, PW입력 -> 네이버의 Access Token 발급 -> 세초블로그에서 회원 정보 사용
다른 서비스의 회원 정보를 안전하게 사용하기 위한 방법 => OAuth

📄 답지
  • 1번.

    HTTP의 네 가지 인증단계입니다 빈칸을 적절하게 채워주세요.

    보기 : Post, 301-Redirection, Authorization, GET, 200-OK image

    정답 : 위에서부터 , GET , Authorization, 200 OK

    2번.

    HTTP가 리소스마다 다른 접근 조건을 다루기 위해서 ______지시자를 기술한다.

    realm지시자



12.2   기본 인증  jehong

  1. 아래 그림을 보고 문제 a~e에 답하세요.

a. 머머리toothless 클라이언트는 세초월드 서버에 a요청으로 potato.jpg 감자 사진을 요청했다. ( O / X )

b. 세초월드는 b에서 어떤 응답을 반환하는지 빈칸을 채우세요.

c. 세초월드 서버의 응답을 받고 c의 사용자 이름과 비밀번호를 요구하는 대화상자를 누가 띄울까요?

d. d의 Basic뒤의 항목은 무엇일까요?

e. 세초월드의 응답은 Authentication-Info 헤더를 사용하지 않았으므로 틀렸다. ( O / X )


  1. 아래와 같은 사용자 이름과 비밀번호를 입력받았을 때 기본 인증에서 base-64 인코딩 하기 위한 문자열을 만들어주세요.

    username: Shake

    password: It!


  1. Base-64 인코딩에 관한 설명 중 틀린 것을 고르세요.

    a. Base-64는 국제 문자나 HTTP 헤더에 사용할 수 없는 큰따옴표, 콜론 등을 포함한 사용자 이름이나 비밀번호를 보낼 때도 사용될 수 있다.

    b. Base-64 인코딩된 문자열은 전송 중에 문자열이 변질될 걱정 없이 원격에서 디코딩할 수 있다.

    c. Base-64 인코딩은 8비트 바이트로 이루어져 있는 시퀀스를 16비트 덩어리의 시퀀스로 변환한다.

    d. Base-64는 사용자 이름과 비밀번호 문자를 섞을 수 있다.

    e. Base-64로 인코딩은 사용자 이름과 비밀번호가 유출되는 것을 방지할 수 있다.


  1. 다음은 문제 2번의 비밀번호 It!을 Base-64로 인코딩하는 과정입니다.

    • I, t, ! 는 각각 십진법으로 변환되었습니다.
    • 변환된 숫자들은 각각 이진법으로 변환되어 8비트짜리 값으로 나열되었습니다.
      • 01001001, 01110100, 00100001

    아래 나와있는 부록 E의 Base-64표를 참고해서 인코딩을 마저 완성해보세요.

    왜인지 8의 배수는 안 적혀있지만 그냥 대응되는 알파벳을 사용하시면 됩니다. 예시) 숫자 8에 해당되는 알파벳은 H의 다음인 I입니다.


  1. 프락시 인증과 웹 서버 인증은 헤더와 상태 코드만 다르고 절차는 같습니다. 빈칸을 채우세요.


📄 답지
  1. 아래 그림을 보고 문제 a~e에 답하세요. p.324, 326

a. 머머리toothless 클라이언트는 세초월드 서버에 a요청으로 potato.jpg 감자 사진을 요청했다. ( O / X )

O

b. 세초월드는 b에서 어떤 응답을 반환하는지 빈칸을 채우세요.

401 Authorization Required

c. 세초월드 서버의 응답을 받고 c의 사용자 이름과 비밀번호를 요구하는 대화상자를 누가 띄울까요?

브라우저

d. d의 Basic뒤의 항목은 무엇일까요?

Base-64로 인코딩된 사용자 이름과 비밀번호

e. 세초월드의 응답은 Authentication-Info 헤더를 사용하지 않았으므로 틀렸다. ( O / X )

X

p.323

어떤 인증 알고리즘은 선택적인 헤더인 Authentication-Info에 인증 세션에 관한 추가 정보를 기술해서 응답하기도 한다.



  1. 아래와 같은 사용자 이름과 비밀번호를 입력받았을 때 기본 인증에서 base-64 인코딩 하기 위한 문자열을 만들어주세요.

    답: Shake:It! p.327

    브라우저는 사용자 이름과 비밀번호를 콜론으로 이어 문자열을 만든 후 base-64로 인코딩한다.


  1. Base-64 인코딩에 관한 설명 중 틀린 것을 고르세요.

    a. Base-64는 국제 문자나 HTTP 헤더에 사용할 수 없는 큰따옴표, 콜론 등을 포함한 사용자 이름이나 비밀번호를 보낼 때도 사용될 수 있다.

    b. Base-64 인코딩된 문자열은 전송 중에 문자열이 변질될 걱정 없이 원격에서 디코딩할 수 있다.

    c. Base-64 인코딩은 8비트 바이트로 이루어져 있는 시퀀스를 16비트 덩어리의 시퀀스로 변환한다.

    d. Base-64는 사용자 이름과 비밀번호 문자를 섞을 수 있다.

    e. Base-64로 인코딩은 사용자 이름과 비밀번호가 유출되는 것을 방지할 수 있다.

    답: c

    p.326-327 8비트 바이트로 이루어져 있는 시퀀스를 6비트 덩어리의 시퀀스로 변환한다.


  1. 다음은 문제 2번의 비밀번호 It!을 Base-64로 인코딩하는 과정입니다.

    • I, t, ! 는 각각 십진법으로 변환되었습니다.
    • 변환된 숫자들은 각각 이진법으로 변환되어 8비트짜리 값으로 나열되었습니다.
      • 01001001, 01110100, 00100001

    아래 나와있는 부록 E의 Base-64표를 참고해서 인코딩을 마저 완성해보세요.

    왜인지 8의 배수는 안 적혀있지만 그냥 대응되는 알파벳을 사용하시면 됩니다. 예시) 숫자 8에 해당되는 알파벳은 H의 다음인 I입니다.

답: SXQh

p.662-663 (pdf 파일에서 "Ow!" 를 검색하면 쉽게 접근 가능)

  1. 8비트로 쪼개진 이진값들을 6비트들로 쪼개준다.

    010010, 010111, 010000, 100001

  2. 조각난 6비트짜리 값들을 각각 십진법으로 변환한다.

    18, 23, 16, 33

  3. 변환한 숫자들을 표 E-1 Base-64 알파벳 에서 대응되는 문자로 변환해준다.

    SXQh


  1. 프락시 인증과 웹 서버 인증은 헤더와 상태 코드만 다르고 절차는 같습니다. 빈칸을 채우세요.


12.3   기본 인증의 보안 결함  jehong

다음 중 기본 인증의 보안 결함을 악용한 경우가 아닌 사람을 고르세요. (중복 가능)

  1. mihykim은 Base-64로 인코딩된 hylee의 사용자 이름과 비밀번호를 디코딩하는데 성공했다.
  2. taelee는 hylee가 인증으로 보낸 인코딩된 비밀번호를 가로채 캡처해서 원 서버에 보내는 재전송 공격을 했고, 인증에 성공해 서버에 접근할 수 있었다.
  3. junslee는 무료 인터넷 이메일 사이트에서 hylee의 사용자이름과 비밀번호 문자열을 그대로 캡처해 동일한 사용자 이름과 비밀번호로 hylee의 은행 사이트에 접근했다.
  4. kukim은 hylee가 사용자 이름과 비밀번호를 입력하는 모습을 뒤에서 몰래 보고 외워 그대로 서버에 접속하는데 성공했다.
  5. yeosong은 가짜 서버를 만들고 hylee가 서버에 인증을 하도록 위장해 사용자 이름과 비밀번호를 취득했다.
📄 답지

다음 중 기본 인증의 보안 결함을 악용한 경우가 아닌 사람을 고르세요. (중복 가능)

  1. mihykim은 Base-64로 인코딩된 hylee의 사용자 이름과 비밀번호를 디코딩하는데 성공했다.
  2. taelee는 hylee가 인증으로 보낸 인코딩된 비밀번호를 가로채 캡처해서 원 서버에 보내는 재전송 공격을 했고, 인증에 성공해 서버에 접근할 수 있었다.
  3. junslee는 무료 인터넷 이메일 사이트에서 hylee의 사용자이름과 비밀번호 문자열을 그대로 캡처해 동일한 사용자 이름과 비밀번호로 hylee의 은행 사이트에 접근했다.
  4. kukim은 hylee가 사용자 이름과 비밀번호를 입력하는 모습을 뒤에서 몰래 보고 외워 그대로 서버에 접속하는데 성공했다.
  5. yeosong은 가짜 서버를 만들고 hylee가 인증을 하도록 위장해 사용자 이름과 비밀번호를 취득했다.

답: 4번 kukim

p.328-329