HTTP 완벽가이드 14장

14장 보안 HTTP

목표: HTTP 트랜잭션을 안전하게 보호하는 더 복잡한 기술들을 알아본다.

1. HTTP를 안전하게 만들기

  • 사용자들이 온라인 쇼핑이나 인터넷뱅킹을 안심하고 사용하기 위해서는 강력한 보안이 필요하다.
  • HTTP의 보안 버전은 효율적이고, 이식성이 좋으며, 관리가 쉽고, 현실 세계의 변화에 대한 적응력이 좋아야 한다.

1.1 HTTPS

  • 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화 된다.
  • HTTP의 하부의 보안 계층에서 안전 소켓 계층(Secure Sockets Lyaer, SSL) 또는 전송 계층 보안(Transport Layer Security, TLS)에서 동작한다.
  • 어려운 인코딩 및 디코딩 작업은 SSL 라이브러리 안에서 동작하므로 클라이언트와 서버가 크게 변경할 필요는 없다.

2. 디지털 암호학

2.1 암호학 용어들

  • 암호: 테스트를 아무나
  • : 암호의 동작을 변경하는 숫자로 된 매개변수
  • 대칭키 암호 체계: 인코딩과 디코딩에 같은 키를 사용하는 알고리즘
  • 비대칭키 암호 체계: 인코딩과 디코딩에 다른 키를 사용하는 알고리즘
  • 공개키 암호법: 비밀 메시지를 전달하는 수백만 대의 컴퓨터를 쉽게 만들 수 있는 시스템
  • 디지털 서명: 메시지가 위조 혹은 변조되지 않았음을 인증하는 체크섬
  • 디지털 인증서: 신뢰할 만한 조직에 의해 서명되고 검증된 신원 확인 정보

2.2 암호(cipher)

  • 암호란 메시지를 인코딩하는 어떤 특정한 방법과 그 비밀 메시지를 디코딩하는 방법이다.
  • 암호가 적용되어 있는 메시지를 텍스트 혹은 평문이라고 한다.
  • 암호는 상대적으로 간단한 알고리즘으로 시작해 기술의 진보에 따라 복잡한 암호를 빠르고 정확하게 인코딩&디코딩 하는 기계를 만들었다.

2.3 키가 있는 암호

  • 디코딩 과정을 바르게 동작시키려면 올바른 키를 암호 기계에 입력할 필요가 있다.
  • 암호키는 하나의 암호 기계를 여러 가상 암호 기계의 집합처럼 만든다.
  • 서로 다른 키 값을 가지고 있으므로 제각기 다르게 동작한다.

2.4 디지털 암호

  • 속도 및 기능에 대한 기계 장치의 한계에서 벗어나, 복잡한 인코딩과 디코딩 알고리즘이 가능하다.
  • 단일 암호 알고리즘으로 키의 값마다 다른 수조 개의 가상 암호 알고리즘을 만들어낼 수 있다.

3. 대칭키 암호법

  • 디지털 알고리즘은 인코딩 할 때와 디코딩 할 때 똑같은 키를 사용하므로 대칭키 암호라 불린다.
  • 발송자와 수신자 모두 통신을 위해 비밀 키를 똑같이 공유 할 필요가 있다.
  • 발송자는 메시지를 암호화 하고 그 결과인 암호문을 수신자에게 발송하기 위해 비밀키를 사용한다.
  • 수신자는 암호문을 받은 뒤 공유키를 사용하여 원래대로 복원하기 위해 해독 함수를 적용한다.

4. 공개키 암호법

  • 두 개의 비대칭 키로 하나는 인코딩시에 다른 하나는 디코딩시에 사용한다.
  • 호스트만이 개인 디코딩 키를 알고 있다.

4.1 RSA

  • 공개키

  • 가로채서 얻은 암호문의 일부(네트워크 스누핑해서 획득)

  • 메시지와 그것을 암호화한 암호문

    → 공개키 비대칭 암호는 위 항목들을 알아도 계산할 수 없다는 것을 확신시켜 줘야한다.

  • 그 중 RSA는 공개키 암호 체계중 유명하며, 가장 상용화된 알고리즘이다.

4.2 혼성 암호 체계와 세션 키

  • 공개키 암호 방식의 알고리즘은 계산이 느린 경향이 있다.
  • 실제로는 대칭과 비대칭 방식을 섞은 것이 쓰인다.

5. 디지털 서명

  • 메시지가 위조되지 않았음을 증명하기 위해 메시지에 서명을 하도록 한다.
  • 보안 인증서에 중요하다.

5.1 서명은 암호 체크섬

  • 서명은 메시지를 작성한 저자가 누군지 알려준다.
  • 서명은 메시지 위조를 방지한다.
  • 디지털 서명은 보통 비대칭 공개키에 의해 생성된다.
  • 저자의 개인키는 지문처럼 사용된다.

6. 디지털 인증서

신뢰할 수 있는 기관으로부터 보증 받은 사용자나 회사에 대한 정보를 담는다.

6.1 인증서의 내부

  • 대상의 이름, 유효기간, 인증서 발급자, 디지털 서명과 같이 기본적인 것들을 담고 있다.
  • 누구나 디지털 인증서를 만들 수 있지만, 인증서의 정보를 보증하고 인증서를 개인 키로 서명할 수 있는 널리 인정받는 서명 권한을 얻을 수 있는 것은 아니다.

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×