study/보안

s2n-tls 설치 및 예제

lucykorea414 2024. 5. 30. 20:18
728x90

S2N-TLS 공식 문서 참고 (https://aws.github.io/s2n-tls/usage-guide/)

1. S2N-TLS 설치

먼저, S2N-TLS 라이브러리를 설치해야 합니다. S2N-TLS는 C로 작성된 라이브러리이며, GitHub 저장소에서 소스를 다운로드할 수 있습니다.

bash코드 복사
git clone <https://github.com/aws/s2n-tls.git>
cd s2n-tls

2. 종속성 설치

S2N-TLS는 몇 가지 종속성 라이브러리가 필요합니다. 다음 명령어를 사용하여 종속성을 설치할 수 있습니다:

bash코드 복사
sudo apt-get update
sudo apt-get install -y gcc cmake libssl-dev

3. 빌드 및 설치

S2N-TLS를 빌드하고 설치합니다.

bash코드 복사
mkdir build
cd build
cmake ..
make
sudo make install

4. S2N-TLS 초기화

프로그램 내에서 S2N-TLS를 초기화합니다.

c코드 복사
#include "s2n.h"int main(int argc, char *argv[])
{
    if (s2n_init() != S2N_SUCCESS) {
        fprintf(stderr, "Error: %s\\n", s2n_strerror(s2n_errno, "EN"));
        exit(1);
    }

    // TLS 설정 및 연결 코드 작성

    s2n_cleanup();
    return 0;
}

5. TLS 연결 설정

클라이언트와 서버 간의 TLS 연결을 설정하고 데이터를 송수신합니다. S2N-TLS API를 사용하여 설정할 수 있습니다.

클라이언트 예제

c코드 복사
struct s2n_connection *conn = s2n_connection_new(S2N_CLIENT);
s2n_connection_set_fd(conn, socket_fd);
s2n_negotiate(conn);

char buffer[1024];
s2n_send(conn, "Hello, World!", strlen("Hello, World!"), &bytes_sent);
s2n_recv(conn, buffer, sizeof(buffer), &bytes_received);

s2n_shutdown(conn, &blocked);
s2n_connection_free(conn);

서버 예제

c코드 복사
struct s2n_connection *conn = s2n_connection_new(S2N_SERVER);
s2n_connection_set_fd(conn, client_socket_fd);
s2n_negotiate(conn);

char buffer[1024];
s2n_recv(conn, buffer, sizeof(buffer), &bytes_received);
s2n_send(conn, "Hello, Client!", strlen("Hello, Client!"), &bytes_sent);

s2n_shutdown(conn, &blocked);
s2n_connection_free(conn);
728x90

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

s2n-tls  (0) 2024.05.30
TLS 공부  (0) 2024.05.25
문서형 악성코드 분석 개요  (0) 2024.05.14
랜섬웨어란?  (0) 2024.03.23
[안티디버깅] INT3 (CC 패치)  (0) 2024.02.23