Download presentation
Presentation is loading. Please wait.
1
LINUX SECURITY - 보안 웹 프로토콜 -
네트워크 실험실 김 윤 수 #
2
목 차 문제점 넷스케이프 커뮤티케이터사의 SSL Apache-SSL설치 다른 보안 프로토콜 IPSEC 요약 2018-12-06
목 차 문제점 넷스케이프 커뮤티케이터사의 SSL Apache-SSL설치 다른 보안 프로토콜 IPSEC 요약 #
3
Web 기반 통신방법의 문제점 HTTP는 암호화 되지 않고, 누군가가 클라이언트와 서버 사이에 데이터를 도청할 수 있으므로 사용자 세션은 어떠한 사생활 보호 장치를 제공하지 않는다. HTTP는 stateless프로토콜이다. 사용자 정보를 저장하지 않기 때문에 사용자 신원을 파악할 수 없다 현재 진행중인 세션을 인증할 수 있는 방법이 없다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
4
SSL(1) SSL (Secure Soket Layer)
미국 넷스케이스프사가 개발한 웹 브라워저와 웹 서버간에 데이터를 안전하게 주고 받기 위한 암호화 전송 프로토콜. RSA, DES 인증방법과 MD5무결성 검사기능을 제공한다 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
5
SSL(2) RSA.DES.MD5를 통한 웹 기반 세가지 문제점 DATA의 암호화
연결시 클라이언트와 서버는 전송중인 데이터를 암호화 하기 위한 비밀키를 정의하고 교환하여 도청 되더라도 암호화 되어 쉽게 밝혀낼수 없다 사용자 인증 공개키 암호화를 지원하기 때문에 RSA나 전자 서명 표준방법(DSS : Digital Signature Standard)같은 방법을 사용 사용자 인증. 세션 무결성 검사 MD5나 SHA같은 메시지 다이제스트 알고리즘을 통해서 현재 세션에 대한 무결성을 검사할 수 있기 때문에 가로채기를 방지 할 수 있다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
6
SSL(3) Secure Socket Layer Socket의 암호화 확장판
443(https), 465(ssmtp), 563(snntp) 등을 사용 TCP/IP SSL HTTP Telnet NNTP FTP SMTP SHTTP Etc... 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
7
SSL(4) Client Server SSL Handshake randomC, CipherSuites ClientHello
ServerHello randomC, CipherSuites randomS, ciphersuite, session id server public key encrypted pre-master secret hashed mesage and secret Finished ServerKeyExchange ClientKeyExchange ChangeCipherSpec ChangeCipherSpec SSL Handshake #
8
SSL(5) SSL은 두계층과 두 단계를 거쳐 데이터를 보호한다. Handshake
클라이언트와 서버는 핸드쉐이크(TCP핸드쉐이크와 유사)동안 키들을 교환하고 컨넥션을 유지하며 암호화 상태를 동기화한다. Encript 애플리케이션에서 가져온 데이터를 암호화한다. SSL Protocol Internet Draft SSL은 계층화된 프로토콜이다. 각 계층에서 메시지들은 길이 설명 내용을 위한 필드를 가질 수 있다. SSL은 전송될 메시지를 처리할 수 있는 블록을 나누며 부가적으로 데이를 압축하며 MAC(Message Authentication Code)을 적용시키고 그 결과를 전송한다. 수신된 데이터는 해독, 검증, 압축해제하며 재조립되어 상위계층 클라이언트에 전달된다. 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #
9
SSL’S security History
1995년 9월 Ian Goldberg와 David Wagner netscape 난수생성기 원리를 찾아냄 1997년 프린스턴 대학의 Edward felten팀과 Frank O’Dwyer의 연구원들은 SSL이 가능한 브라우저들이 하이퍼링크 스푸핑과 man-in-the-middle공격을 당하기 쉽다는 것을 밝혀냄 1998년 6월 RSA 연구소의 공용키 암호화 표준 #1(PKCS#1)의 취약점:SSL로 암호화된 세션으로 부터 공격자들이 정보를 복구할수 있도록 한다. #
10
Apache-SSL 설치 준비사항 Apache 1.2.6이상과 소스(apache1.3.12.tar.gz)
OpenSSL(openssl-0.9.5a.tar) Apache-SSL patch(apache_ SSl_1.41.tar.gz) ftp://ftp.ox.ac.uk/pub/crypto/SSL/Apache-SSL/ #
11
Apache-SSL 설치(1) STEP 1 OpenSSL, Apache DownLoad받아 임의의 디렉토리에 암축을 푼다.
Apache_ SSl_1.41은 apache_1.3.12디렉토리에 copy 하여 압축을 푼다. #
12
Apache-SSL 설치(2) STEP2 Apache_1.3.12디렉토리에서 apache_ ssl_1.41.tar의 압축을 풀면서 생긴 FixPatch를 실행하여 OpenSSL에 필요한 patch를 수행하도록한다. openSSL의 디렉토리로 이동하여 다음의 명령을 차례대로 수행한다 ./config make make rehash make test Make install #
13
Apache-SSL 설치(3) STEP 3 Apache_1.3.12디렉토리에서 다시한번 FixPatch를 실행하여 “Openssl EGD patch” 질문에 n을 입력한후 “fixed-up Apache-SSL patch” 질문에 y를 입력한다 FixPatch를 통해 만들어진 ApacheSSL Configuration 파일들을 다시 아파치의 ./configure 명령을 수행한다 ./configure --prefix=/usr/local/apache Make와 make install명령을 이용하여 ApacheSSL의 설치를 마친다. make make install 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
14
Apache-SSL 설치(4) STEP 4 Binary파일이 생성을 확인한다. [root@gaya bin]# ls
ab* dbmmanage* htdigest* httpsd* logresolve* apxs* gcache* htpasswd* httpsdctl* rotatelogs* bin]# pwd /usr/local/apache/bin bin]# #
15
Apache-SSL 설치(5) STEP 5 초기의 apache_1.3.12/src 디렉토리로 이동하여 인증서를 만든다.
make certificate make certificate에 의해 만들어진apache_1.3.12/SSLconf/conf/httpsd.pem 파일을 apache가 설치된 장소(/usr/local/apache/conf/)로 복사한다. Cp httpsd.pem /usr/local/apache/conf #
16
Apache-SSL 설치(6) STEP 6 OpenSSL및 참조하여 ApacheSSL에 필요한 각종 암호키 파일들을 만든후 httpsd.conf를 적합하게 수정한다. #
17
Apache-SSL 설치(7) OpenSSL설치시 옵션 DES_PTR : DES에서 배열검사를 허용하는 대신 포인터 연산 수행
-DNO_BF : Blowfish를 지원하지 않음 -DNO_IDEA : IDEA를 지원하지 않음 -DNO_MD2 : MD2를 지원하지 않음 -DNO_RC2 : RC2를 지원하지 않음 -DNO_RCA : RC4를 지원하지 않음 -DRSAref : RSAref를 사용하지 않음 #
18
Apache-SSL 설치(8) /usr/local/apache/conf/httpd.conf Listen 443 Port 80
User nobody Group nobody ServerAdmin SSLCACertificatePath /usr/local/apache/conf SSLCACertificateFile /usr/local/apache/conf/httpsd.pem SSLCertificateFile /usr/local/apache/conf/httpsd.pem SSLCacheServerPort 8080 SSLCacheServerPath /usr/local/ssl SSLSessionCacheTimeout 1000 #
19
Apache-SSL 설치(9) 인증서 만들기 #
20
Apache-SSL 설치(10) Apache-SSL구동 #
21
Apache-SSL 설치(11) Apache-SSL구동 #
22
Apache-SSL 설치(12) apache_1.3.12+SSl_1.41.tar.gz Ben.pgp.key.asc
EXTRAS.SSL LICENCE.SSL Md5sums README.SSL SECURITY Scr/apache_ssl.c SSLpath #
23
설정시 주의사항(1) Apache-SSL환경변수 변 수 명 기 능 HTTPS 서버가 HTTPS를 사용할 것인지를 명시
기 능 HTTPS 서버가 HTTPS를 사용할 것인지를 명시 HTTPS_CIPHER Cipher가 사용되고 있는지를 명시 SSL_PROTOCOL_VERSION 사용되고 있는 SSL 버전 SSL_CLIENT_CERT 클라이언트 인증서를 Base64로 부호화 할것인지를 명시 SSL_CLIENT_I_DN 클라이언트의 인증서 발행자의 DN 명시 SSL_SERVER_DN 서버의 인증서안에 있는 DN 명시 SSL_SERVER_I_DN 서버의 인증서 발행자 DN명시 SSL_SSLEAY_VERSION 사용하고 있는 SSLeay버전명시 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #
24
설정시 주의사항(2) Apache-SSL 설정 지시문 변 수 명 기 능 HTTPS 서버가 HTTPS를 사용할 것인지를 명시
기 능 HTTPS 서버가 HTTPS를 사용할 것인지를 명시 HTTPS_CIPHER Cipher가 사용되고 있는지를 명시 HTTPS_KEYSIZE 세션키 사이즈를 명시 SSLBanCipher 서버가 거부할 cipher의 목록 SSLCACertificateFile 여러 개의 인증서를 포함하고 있는 파일명시 SSLCACertificatePath 어느 인증기관으로 부터 클라이언트 인증서를 받았는가 SSLCacheServerPath 캐시서버명시 SSLCertificateFile 하나의 인증서 파일의 위치 명시 #
25
인증서와 인증기관 리눅스를 전자상거래로 사용할 계획을 가지고 있다면 승인된 인증기관으로 부터 인승서를 받아야 한다.
Entrust Technologies – EuroSign – VerSign – Xcert International – GTE – #
26
다른 보안 프로토콜 : IPSEC 기업환경에서의 네트워크와 네트워크간의 데이터 보호
패킷마다 암호화와 인증을 수행할 수 있기때문에 플랫폼과 애플리케이션 독립적 #
Similar presentations