📌 SSL (Secure Sockets Layer)

  • 데이터 암호화와 보안 통신을 위한 프로토콜
  • 웹 서버와 브라우저 간에 전송되는 데이터를 암호화하여 도청, 변조를 방지
  • 암호화, 서버 인증, 데이터 무결성

 

📌 TLS (Transport Layer Security)

  • SSL의 후속 프로토콜, SSL의 보안 취약점 개선
  • 네트워크 통신을 암호화하고 보안을 강화

 

📌 SSL 인증서 (SSL Certificate)

  • SSL 암호화 통신을 사용하기 위한 디지털 인증서
  • 웹 사이트의 신뢰성을 보장하고 서버와 브라우저 간의 안전한 통신을 지원
  • 도메인 이름, 서버 공개키, 인증기관 정보 포함

 

📌 HTTPS ( Hypertext Transfer Protocol Secure)

  • HTTP의 보안 버전
  • SSL/TLS 프로토콜을 이용하여 HTTP 프로토콜로 주고받는 데이터를 암호화
  • HTTP + SSL/TLS(인증서) = HTTPS

 

📌 SSL/TLS 통신 과정

  • 서버와 클라이언트가 안전하게 통신할 수 있도록 여러 단계를 거쳐 통신을 암호화하고 보호하는 과정을 진행

1. SSL/TLS 핸드셰이크 (Handshaking)

  • 서버와 클라이언트가 서로 안전한 연결을 맺기 위해 소통하는 과정
  • 서버 인증과 암호화 키 교환이 이루어짐

 

1.1)  클라이언트가 서버에 요청을 보냄

클라이언트 ------------------------> ClientHello 메시지 전송  ------------------------> 서버
                            (SSL/TLS 버전, 암호화 알고리즘, 압축 방법 등 포함)

 

 

1.2) 서버가 클라이언트의 요청 수락

클라이언트 <------------------------ ServerHello 메시지 전송 <------------------------ 서버
                                   (서버의 SSL/TLS 버전, 암호화 알고리즘 포함)

 

 

1.3) 서버 인증서 전송

클라이언트 <----------------------------- SSL 인증서 전송 <----------------------------- 서버
                           (서버의 도메인명, 공개 키, 인증기관(CA) 정보 등 포함)

 

 

1.4) 클라이언트가 서버 인증서 확인

(신뢰할 수 있는 인증기관에서 발급된 것인지 확인 후 유효하면)
클라이언트 --------> 서버의 공개 키로 예비 마스터 암호를 암호화해 전송 --------> 서버
                                                     (무작위 바이트 문자열)

 

 

1.5) 서버가 예비 마스터 암호 복호화

  • 서버의 비공개 키로 클라이언트가 보낸 암호화된 예비 마스터 암호를 복호화

 

1.6) 세션 키 생성 및 교환

  • 클라이언트와 서버가 모두 클라이언트 무작위, 서버 무작위, 예비 마스터 암호를 이용해 세션 키 생성
  • 클라이언트와 서버가 세션키로 암호화된 완료 메시지를 주고 받음

 

1.7) 핸드셰이크 완료, 암호화 통신 시작

  • 대칭키 암호화(세션 키)를 사용해 클라이언트와 서버가 암호화된 데이터를 안전하게 주고받게 됨

 

2. 데이터 암호화 및 무결성

  • 암호화: 데이터는 세션 키를 사용하여 대칭키 암호화 방식으로 암호화되며 외부에서 데이터 내용을 확인할 수 없음
  • 무결성: SSL/TLS는 메시지 인증 코드(MAC)를 사용하여 데이터가 전송 도중 변경되지 않았는지 확인

 

 

📌 SSL/TLS 인증 방식

  • 서버 인증, 클라이언트 인증 두 가지 방식 존재

 

1. 서버 인증 (Server Authentication)

  • 서버는 자신의 SSL 인증서를 클라이언트에게 전송하여 자기 자신이 신뢰할 수 있는 도메인인지 증명
  • 클라이언트는 인증서가 인증기관(CA)에 의해 서명된 것인지 확인, 유효하면 통신 시작
  • 웹사이트의 HTTPS 연결에서 확인

 

2. 클라이언트 인증 (Client Authentication)

  • 서버가 클라이언트의 신원을 확인하고 싶을 때 사용
  • 클라이언트는 자신의 인증서를 서버에 보내어 신뢰할 수 있는 사용자인지 인증 받을 수 있음
  • 보안이 중요한 은행 서비스, 기업 내부 시스템 등에서 사용

 

 

📌 SSL/TLS 인증서 종류

  • DV 인증서 (Domain Validation): 도메인만 인증, 발급이 빠르고 간단함
  • OV 인증서 (Organization Validation): 조직의 신뢰성까지 인증, DV보다 보안 수준이 높음
  • EV 인증서 (Extended Validation): 가장 높은 수준의 보안 제공. 주소창에 녹색 자물쇠로 표시 됨

 

 

 

참고

 

SSL/TLS Handshake: Ensuring Secure Online Interactions - SSL.com

SSL/TLS handshake establishes encrypted link between client-server to enable secure data transmission. It authenticates parties, agrees on encryption, and creates session keys through digital certificates, asymmetric encryption, cipher suites.

www.ssl.com

 

'기타' 카테고리의 다른 글

[기타] 폰트가 고민 될 때 - codingfont 폰트 토너먼트  (0) 2025.02.06
# setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'https://test.zendesk.com',
      changeOrigin: true
    }),
  );
};​
import logo from './logo.svg';
import './App.css';
import axios from 'axios';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <button
          onClick={() => {
            // Zendesk API 인증 정보 설정
            const encodedString = "/";
            console.log(encodedString)
            var config = {
              method: 'GET',
              url: '/api/v2/tickets',
              headers: {
                'Content-Type': 'application/json',
                'Authorization': `Basic ${encodedString}`, // Base64 encoded "username:password"
                // 'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"
              },
              // params: {
              //   'external_id': '',
              // },
            };
 
            axios(config).then(function (response) {
              console.log(response.data);
            }).catch(function (error) {
              console.log(error);
            }); 
          }}
        >zendesk</button>
      </header>
    </div>
  );
}

export default App;

 

 

 

 


 

프로젝트

 

 

 

 

 

 

 

 

https://projectlombok.org/download

 

Download

 

projectlombok.org

java -jar .\lombok.jar

 

 

 

 

 

 

 

 

 

 

 

 

'개발도구' 카테고리의 다른 글

[Maven] Maven 설치 및 환경변수 설정  (0) 2023.07.03
[STS4] 자바 버전 변경  (0) 2023.05.26
[Eclipse] 테마 변경하기  (0) 2023.01.16
[VSCode] 마우스 휠 확대/축소 설정하기  (0) 2022.02.05
[Eclipse] 단축키  (0) 2021.03.09

https://mariadb.org/download/?t=mariadb&p=mariadb&r=10.6.13&os=windows&cpu=x86_64&pkg=msi&m=blendbyte

 

Download MariaDB Server - MariaDB.org

REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"

mariadb.org

 

설정 기본으로 하고 비밀번호 세팅. 포트는 일반적으로 3306

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'데이터베이스 > MariaDB' 카테고리의 다른 글

[MariaDB] 시간 및 날짜 관련 함수  (0) 2023.09.19

+ Recent posts