SSL_CTX_set_mode(3) - wariua/manpages-ko GitHub Wiki

NAME

SSL_CTX_set_mode, SSL_set_mode, SSL_CTX_get_mode, SSL_get_mode - SSL ์—”์ง„ ๋ชจ๋“œ ์กฐ์ž‘ํ•˜๊ธฐ

SYNOPSIS

#include <openssl/ssl.h>

long SSL_CTX_set_mode(SSL_CTX *ctx, long mode);
long SSL_set_mode(SSL *ssl, long mode);

long SSL_CTX_get_mode(SSL_CTX *ctx);
long SSL_get_mode(SSL *ssl);

DESCRIPTION

SSL_CTX_set_mode()๋Š” mode์˜ ๋น„ํŠธ๋งˆ์Šคํฌ์— ์„ค์ •ํ•œ ๋ชจ๋“œ๋ฅผ ctx์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด๋ฏธ ์„ค์ •ํ•œ ์˜ต์…˜๋“ค์€ ํ•ด์ œ๋˜์ง€ ์•Š๋Š”๋‹ค.

SSL_set_mode()๋Š” mode์˜ ๋น„ํŠธ๋งˆ์Šคํฌ์— ์„ค์ •ํ•œ ๋ชจ๋“œ๋ฅผ ssl์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด๋ฏธ ์„ค์ •ํ•œ ์˜ต์…˜๋“ค์€ ํ•ด์ œ๋˜์ง€ ์•Š๋Š”๋‹ค.

SSL_CTX_get_mode()๋Š” ctx์— ์„ค์ •๋œ ๋ชจ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

SSL_get_mode()๋Š” ssl์— ์„ค์ •๋œ ๋ชจ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

NOTES

๋‹ค์Œ ๋ชจ๋“œ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

SSL_MODE_ENABLE_PARTIAL_WRITE
SSL_write_ex(..., n, &r)๊ฐ€ 0 < r < n์ธ r์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ (์ฆ‰ ํ•œ ๋ฐ”์ดํŠธ๋งŒ ์ผ์„ ๋•Œ์—๋„ ์„ฑ๊ณต์„ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์„) ํ—ˆ์šฉํ•œ๋‹ค. SSL_write()์—๋„ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค. ์„ค์ •๋ผ ์žˆ์ง€ ์•Š์œผ๋ฉด (๊ธฐ๋ณธ ๋™์ž‘) SSL_write_ex() ๋‚ด์ง€ SSL_write()๊ฐ€ ๋ฉ์–ด๋ฆฌ ์ „์ฒด๋ฅผ ์“ด ๋‹ค์Œ์—๋งŒ ์„ฑ๊ณต์„ ๋ณด๊ณ ํ•œ๋‹ค. SSL_write_ex() ๋‚ด์ง€ SSL_write()๊ฐ€ ์„ฑ๊ณต์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‚˜๋ฉด r ๋ฐ”์ดํŠธ๋งŒ ์จ์ง„ ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค์Œ SSL_write_ex() ๋‚ด์ง€ SSL_write() ํ˜ธ์ถœ์—์„œ๋Š” ๋‚จ์•„ ์žˆ๋Š” n-r ๋ฐ”์ดํŠธ๋งŒ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. ์ฆ‰ write()์™€ ๋น„์Šทํ•˜๋‹ค.
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER
๋ฐ”๋€ ๋ฒ„ํผ ์œ„์น˜๋กœ SSL_write_ex() ๋‚ด์ง€ SSL_write()๋ฅผ ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค. (๋ฒ„ํผ ๋‚ด์šฉ๋ฌผ์€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ผ์•ผ ํ•œ๋‹ค.) ์ด ๋™์ž‘ ๋ฐฉ์‹์ด ๊ธฐ๋ณธ์ด ์•„๋‹Œ ๊ฑด ๋…ผ๋ธ”๋กœํ‚น SSL_write()๊ฐ€ ๋…ผ๋ธ”๋กœํ‚น write()์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค๋Š” ์˜ค์ธ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
SSL_MODE_AUTO_RETRY
์ „์†ก์—์„œ ๋ธ”๋ก ๋˜๋Š” ๊ฒฝ์šฐ์— ์‘์šฉ์—์„œ ๊ท€์ฐฎ๊ฒŒ ์žฌ์‹œ๋„ํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ํ•ด ์ค€๋‹ค. ์ •์ƒ ๋™์ž‘ ์ค‘ ์žฌํ˜‘์ƒ์ด ์ผ์–ด๋‚˜๋ฉด SSL_read_ex(3), SSL_read(3), SSL_write_ex(3), SSL_write(3)๋Š” SSL_ERROR_WANT_READ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์žฌ์‹œ๋„ ํ•„์š”๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋…ผ๋ธ”๋กœํ‚น ํ™˜๊ฒฝ์—์„œ๋Š” ๋ถˆ์™„์ „ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋™์ž‘์„ ์‘์šฉ์—์„œ ์ฒ˜๋ฆฌํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ธ”๋กœํ‚น ํ™˜๊ฒฝ์—์„œ๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋™์ž‘์ด ์˜ค๋ฅ˜ ๋ณด๊ณ  ์—†์ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฑธ ์‘์šฉ์—์„œ ๋‹ค๋ฃฐ ์ค€๋น„๊ฐ€ ํ•ญ์ƒ ๋˜์–ด ์žˆ์ง€๊ฐ€ ์•Š๋‹ค. SSL_MODE_AUTO_RETRY ํ”Œ๋ž˜๊ทธ๋Š” ํ•ธ๋“œ์…ฐ์ดํฌ ๋ฐ ์„ฑ๊ณต ์™„๋ฃŒ ํ›„์—๋งŒ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๋™์ž‘์ด ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•œ๋‹ค.
SSL_MODE_RELEASE_BUFFERS
์–ด๋–ค SSL์— ๋Œ€ํ•ด ์ฝ๊ธฐ ๋ฒ„ํผ๋‚˜ ์“ฐ๊ธฐ ๋ฒ„ํผ๊ฐ€ ๋”๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฒ„ํผ์— ์‚ฌ์šฉ ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•œ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์“ฐ๋ฉด ์œ ํœด SSL ์—ฐ๊ฒฐ๋‹น 34k ์ •๋„๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” SSL v2 ์—ฐ๊ฒฐ์ด๋‚˜ DTLS ์—ฐ๊ฒฐ์—๋Š” ํšจ๊ณผ๊ฐ€ ์—†๋‹ค.
SSL_MODE_SEND_FALLBACK_SCSV

ClientHello์— TLS_FALLBACK_SCSV๋ฅผ ๋ณด๋‚ธ๋‹ค. ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ ๋‚ด๋ ค์„œ ์žฌ์—ฐ๊ฒฐํ•˜๋Š” ์‘์šฉ์—์„œ๋งŒ ์„ค์ •ํ•˜๊ฒŒ ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ draft-ietf-tls-downgrade-scsv-00์„ ๋ณด๋ผ.

์‘์šฉ์—์„œ ์ผ๋ฐ˜์ ์ธ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ ˆ๋Œ€ ์ด ํ”Œ๋ž˜ํฌ๋ฅผ ์ผœ์ง€ ๋งˆ๋ผ. ๋ช…ํ™•ํ•˜๊ฒŒ ํ›„ํ‡ด ์žฌ์‹œ๋„๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ draft-ietf-tls-downgrade-scsv-00์˜ ์ง€์นจ์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

SSL_MODE_ASYNC
๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์ผ ๋‹ค. ์ด ๋ชจ๋“œ๊ฐ€ ์„ค์ •๋ผ ์žˆ์œผ๋ฉด ์•”ํ˜ธ ์—ฐ์‚ฐ ์ˆ˜ํ–‰์— ๋น„๋™๊ธฐ ์ง€์› ์—”์ง„์„ ์“ฐ๋Š” ๊ฒฝ์šฐ TLS I/O ๋™์ž‘์ด SSL_ERROR_WANT_ASYNC๋กœ ์žฌ์‹œ๋„ ํ•„์š”๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. SSL_get_error(3) ์ฐธ๊ณ .

RETURN VALUES

SSL_CTX_set_mode()์™€ SSL_set_mode()๋Š” mode ์ถ”๊ฐ€ ํ›„์˜ ์ƒˆ ๋ชจ๋“œ ๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

SSL_CTX_get_mode()์™€ SSL_get_mode()๋Š” ํ˜„์žฌ ๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

SEE ALSO

ssl(7), SSL_read_ex(3), SSL_read(3), SSL_write_ex(3), SSL_write(3), SSL_get_error(3)

HISTORY

OpenSSL 1.1.0์—์„œ SSL_MODE_ASYNC๊ฐ€ ์ฒ˜์Œ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

COPYRIGHT

Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


2017-12-31

โš ๏ธ **GitHub.com Fallback** โš ๏ธ