[레벨 0] HTTP와 HTTPS의 차이점, 그리고 iOS에서의 보안 통신 방법에 대해 설명해주세요.

2025. 1. 1. 19:04·면접

HTTP와 HTTPS의 차이점

  1. 보안: HTTPS는 SSL/TLS 암호화를 사용하여 데이터를 암호화하지만, HTTP는 평문으로 데이터를 전송합니다.
  2. 포트: HTTP는 80번 포트를, HTTPS는 443번 포트를 사용합니다.
  3. URL: HTTP는 "http://"로, HTTPS는 "https://"로 시작합니다.
  4. 데이터 무결성: HTTPS는 데이터 변조를 방지할 수 있지만, HTTP는 그렇지 않습니다.
  5. 검색 엔진 최적화: HTTPS는 검색 순위 향상에 도움됩니다.

iOS에서의 보안 통신 방법

  1. HTTPS 사용: 모든 네트워크 통신에 HTTPS를 사용합니다.
  2. 인증서 고정(Certificate Pinning): 신뢰할 수 있는 인증서만 허용하도록 구현합니다.
  3. ATS(App Transport Security) 활용: iOS의 ATS를 사용하여 보안 연결을 강제합니다.
  4. 데이터 암호화: 민감한 데이터는 전송 전에 추가로 암호화합니다.
  5. JWT(JSON Web Token) 인증: API 요청의 인증 및 권한 부여에 JWT를 사용합니다.
  6. 네트워크 보안 구성: iOS의 Network Security Configuration 기능을 활용하여 앱의 네트워크 보안 설정을 구성합니다.

SSL/TLS

  • SSL/TLS는 클라이언트와 서버 간 통신을 암호화하는 프로토콜입니다.
  • 응용 계층과 전송 계층 사이에서 작동하여 데이터를 암호화합니다.
  • 대칭키와 비대칭키 암호화를 혼용하여 보안성과 성능을 최적화합니다.

동작 단계

  1. 핸드셰이크 프로토콜
    • 클라이언트와 서버가 암호화 방식을 협상합니다.
    • 서버 인증 및 필요시 클라이언트 인증을 수행합니다.
    • 세션 키를 생성하기 위한 정보를 교환합니다.
  2. 레코드 프로토콜
    • 협상된 암호화 방식으로 실제 데이터를 암호화하여 전송합니다.
    • 메시지 무결성을 검증합니다.
  3. 알림 프로토콜
    • 오류나 경고 메시지를 전달합니다.

세부 동작 과정

  1. ClientHello: 클라이언트가 서버에 연결을 시도하며 지원 가능한 암호화 방식 등을 전달합니다.
  2. ServerHello: 서버가 암호화 방식을 선택하고 SSL 인증서를 전송합니다.
  3. 인증서 검증: 클라이언트가 서버의 인증서를 검증합니다.
  4. 키 교환: 대칭키 암호화에 사용할 세션 키를 안전하게 교환합니다.
  5. 암호화 통신: 협상된 세션 키를 사용하여 데이터를 암호화하여 통신합니다.
'면접' 카테고리의 다른 글
  • [레벨 0] 네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식에 대해 설명해주세요.
  • [레벨 0] iOS에서의 메모리 구조와 관리 방식에 대해 자세히 설명해주세요.
  • [레벨 0] iOS의 샌드박스(Sandbox) 개념과 역할, 그리고 앱 간 데이터 공유 방법에 대해 설명해주세요.
  • [레벨 0] 메모리 관리 기법 중 iOS에서 사용되는 방식과 그 특징에 대해 설명해주세요.
GwanSon
GwanSon
버그는 도전, 코드는 해결. 열정있는 개발을 하자.
  • GwanSon
    관슨의 개발일지
    GwanSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (3)
      • swift (15)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (8)
      • CS (8)
      • 면접 (11)
      • Flutter (4)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네이버 부스트캠프 후기
    부스트캠프 10기
    tuist
    백준
    토스
    2025 토스 Next
    챌린지
    Swift
    모듈화
    boj
    후기
    네이버 부스트캠프
    ios
    부스트캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
GwanSon
[레벨 0] HTTP와 HTTPS의 차이점, 그리고 iOS에서의 보안 통신 방법에 대해 설명해주세요.
상단으로

티스토리툴바