[암호화] 웹 보안은 SSL!

2025. 8. 19. 23:25·보안
728x90
반응형

1. SSL(Secure Socket Layer)이란?

인터넷 상에서 데이터 통신을 암호화하기 위한 보안 프로토콜입니다.

→ 현재는 SSL이 진화한 TLS(Transport Layer Security)가 사용되고 있지만, 실무에서는 여전히 SSL이란 표현을 널리 사용합니다.

2. SSL의 목적, 암호화!

제 3자가 내용을 볼 수 없도록 암호화하는 기밀성, 전송 중 데이터가 변조되지 않았는지 확인하는 무결성, 서버 또는 클라이언트의 신원을 확인하는 인증이 있습니다.

3. SSL 동작 방식 요약

2종류의 키를 사용 비대칭키와 대칭키를 혼합하여 사용합니다.

암호 방식 특징 사용 이유
비대칭키 암호화 느림, 공개키로 암호화 → 비밀키로 복호화 대칭키 전달 시 사용
대칭키 암호화 빠름, 같은 키로 암복호화 이후 데이터 통신에 사용

 

즉, 비대칭키는 클라이언트의 대칭키를 가져오기 위한 것이고 대칭키는 전달할 데이터를 암호화 하기 위한 것입니다.

4. 일반적인 SSL 핸드쉐이크 과정( HTTPS 시 사용)

2종류의 키를 사용해서 대칭키를 서버로 전달하는 과정이 SSL 핸드쉐이크 입니다.

 

 

→ 이 과정을 SSL Handshake라고 하며, 이 후에는 빠른 대칭키 기반 암호화로 HTTPS 통신이 진행됩니다.

5. 클라이언트가 웹페이지를 읽을 수 있는 이유는?

클라이언트가 서버로부터 받는 HTML, CSS, JS 등의 응답은 대칭키로 암호화되어 전송됩니다. 클라리언트는 자신이 생성한 대칭키를 서버의 공개키로 암호화해서 전달했기 때문에 클라이언트 역시 대칭키를 알고 있습니다. 따라서 같은 대칭키로 응답을 복호화해서 웹페이지를 표시할 수 있습니다.

클라이언트의 대칭키는 어떻게?

사용자가 브라우저를 통해 따로 키를 만들지 않았는데 어떻게 대칭키를 만들어서 서버에 전달할 수 있지?라고 생각을 하셨을 겁니다.

브라우저는 내부에서 자동으로 대칭키를 생성하고 기능(SSL/TLS 스택을 내장)을 탑재하고 있습니다. 그래서 자동으로 이루어지는 보안 동작으로 사용자는 개입하지 않으면서 https를 사용할 수 있게 됩니다.

”브라우저가 안전한 난수 생성기(CSPRNG)를 통해 대칭키를 생성합니다.”

내장된 SSL 스택의 기능

  • 공개키 인증서 검증
  • 대칭키 생성
  • 키 교환 및 암호화
  • 세션 암호화

 

결론

많은 웹들은 HTTPS를 사용되어지면 우리도 모르게 자동으로 SSL Handshake를 통해 보안을 유지하고 있다는 것입니다.
SSL Handshake는 다양한 암호화 알고리즘으로 다를 수 있지만 여기서는 흔히 사용되는 방식으로 설명하였습니다.
더 깊이 있는 인증 과정을 공부하시려면 DH/ECDHE나 Perfect Forward Secrecy(PFS)를 참고하시면 좋을거 같습니다.

728x90
반응형
저작자표시 비영리 (새창열림)

'보안' 카테고리의 다른 글

[암호화] 대칭키란?  (0) 2025.08.19
UUID(Universally Unique Identifier) 버전과 사용법  (6) 2025.08.10
단방향 암호화(해시 알고리즘)  (1) 2025.07.12
암호화(Encryption)에 대해서  (1) 2025.07.12
JCE 암호화 트러블 슈팅  (1) 2025.04.29
'보안' 카테고리의 다른 글
  • [암호화] 대칭키란?
  • UUID(Universally Unique Identifier) 버전과 사용법
  • 단방향 암호화(해시 알고리즘)
  • 암호화(Encryption)에 대해서
크크크크
크크크크
공뷰를 합시다.
    반응형
  • 크크크크
    Tom's Note
    크크크크
  • 전체
    오늘
    어제
    • 분류 전체보기 (128)
      • IT 지식 (4)
      • CS (66)
        • 알고리즘 & 자료구조 (19)
        • 운영체제 (41)
        • 네트워크 (1)
        • 데이터베이스 (5)
      • 보안 (6)
      • SW 공학 & 프로그래밍 언어 (5)
        • Java (28)
        • 디자인 패턴 (1)
        • 형상관리 (2)
        • 톰캣(WAS) (2)
        • SW 방법론 (3)
        • 스프링부트 (5)
      • 시스템 설계 (4)
        • Docker (2)
      • 자격증 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      스프링부트
      passwd
      java
      ADsP
      암호설정
      문제해결
      /etc/passwd
      cifs
      불변
      분석기법
      비트연산
      2차
      apropos
      단반향
      su
      1급
      whereis
      리눅스
      which
      Chage
      man
      chmod
      DTO
      whatis
      usermod
      REST API
      docker
      알고리즘
      DI
      자바
    • 최근 댓글

    • 최근 글

    • 250x250
    • hELLO· Designed By정상우.v4.10.3
    크크크크
    [암호화] 웹 보안은 SSL!
    상단으로

    티스토리툴바