상세 컨텐츠

본문 제목

[38] Linux & Windows SSL

IT/Linux & Windows Server

by o_zeew 2022. 4. 4. 19:56

본문

(1) SSL

(2) 개인키, 공개키 생성

(3) Linux SSL 실습

(4) Windows SSL 실습


1. SSL

  - 전송하는 데이터 암호화

  -  종단간 신뢰성 확보 (공인인증서만 가능, 사설인증서는 보증해줄 제 3자가 없기 때문에 불가능)

  -  3자 공인인증기관 (KISA  6개의 중간인증기관)

 

<대칭키 암호화>

  - 암호화 키와 복호화 키가 동일

  - 문서를 암호화 키로 암호화 시키면 복호화 키로 암호화 된 문서를 해제해서 사용

  - 그러나 스니핑, 스푸핑 등의 문제 발생 (키 유출 시에 해커가 원본을 훔쳐보고 위조 할 수 있음)

  - 암호화 키와 복호화 키가 동일할 시에는 키 관리의 문제 발생

  - 키의 사용자가 많을 경우에도 관리 문제와 전송의 문제 발생

스니핑, 스푸핑 문제 발생
원본 위조 문제 발생

 


<공개키 암호화 RSA>

  - 암호화 키와 복호화 키가 다름

  - 공개한 공개키로 사용자가 암호화를 한 문서를 보내면 개인키를 가지고 풀어서 읽음

  - 소인수분해를 사용하여 암호화

  - 공개키로 암호화 한 문서를 개인키로 풀 수 있지만 반대의 상황은 불가

 

 


 

<전자 서명>

  - 해쉬값으로 데이터 생성

  - 개인키로 해쉬값을 암호화

  - 암호화 된 키로 데이터를 암호화

  - 암호화 된 데이터를 공개키로 풀기는 불가능, 해쉬값 같은지만 비교

전자 서명

  * md5sum : 해쉬값을 통해 원본과 복호화된 문서가 동일한 문서인지 확인하는 명령어

원본의 마지막 한 글자만 수정한 파일 > 해쉬값이 다름

 

공인 인증 체계, SSL 전달 방식


2. 개인키, 공개키 생성

  - 실제 PC에서 공개키와 개인키 생성

ssh-keygen 명령어 사용 / -m : 포맷 설정, -f : 파일 이름 지정, -b : 비트 수 지정, -N : 암호 문구 지정
개인키와 공개키

 

  - 생성키 확인

메모장으로 개인키 열기
메모장으로 공개키 열기

  * 공개키의 제일 끝에 있는 컴퓨터 이름을 불필요(삭제)

컴퓨터 이름 삭제한 모습

 

  - .ssh/ 디렉토리 생성 (키를 업로드할 디렉토리)

 

  - CentOS7-1에게 공개키와 개인키 업로드

공개키 : authorized_keys, 개인키 : id_rsa 이름으로 업로드

 

  - 설정 파일 편집

vi 편집기로 /etc/ssh/sshd_config 파일 열기
root 계정의 로그인 허용
패스워드 로그인 불가능

 

  - 시스템 재시작

설정 변경이 적용되도록 시스템 재시작

 

  - 설정 적용 확인

실제 PC에서 개인키 없이 접속 불가
실제 PC에서 개인키로 로그인 가능

 

  - 개인키의 권한 수정 (권한 오류 방지)

id_rsa 에게 600 권한 부여

   * 개인키를 생성할 때 기본값이id_rsa이기 때문에 다른 IP에 접속할 때 -i 옵션 필요 X

 

 

  - CentOS7-1에 업데이트 한 공개키를 CentOS7-2, 7-3에게 복사

CentOS7-2에게 공개키 복사
CentOS7-3에게 공개키 복사

 

  - 설정 파일 편집

CentOS7-2의 /etc/ssh/sshd_config 파일 편집
root 접속 허용
패스워드 로그인 차단
CentOS7-3의 /etc/ssh/sshd_config 파일 편집
root 접속 허용
패스워드 로그인 차단

 

  - 설정 적용 확인

CentOS7-1에서 개인키로 접속 가능
CenOS7-1에서 개인키로 접속 가능
실제 PC에서 개인키로 접속 가능

 


 

3. Linux SSL 실습

<SSL 인증서 생성>

  1. openssl 설치

 

  2. 개인키 생성

ca.key 이름으로 2048 비트로 생성

 

  3. 개인키로 인증요청서 생성

ca.csr의 이름으로 인증요청서 생성 및 인증요청서 정보 작성

 

  4. 개인키와 인증요청서로 인증서 생성

x509 : 인증서의 표준 방식, ca.crt 이름으로 인증서 생성

 

  5. 개인키와 인증서 위치 이동

개인키는 /etc/pki/tls/private, 인증서는 /etc/pki/tls/certs로 이동
CentOS7-2, CentOS7-3으로 복사

 


 

<평문 전송 확인>

  1. 실습 전 FTP 접속 확인

w10-1 사용자 a 접속 가능
w11-1 사용자 b 접속 가능

 

 

  2. WinPcap (패킷 라이브러리 프로그램) 설치 (w10-1, w11-1)

Google에 winpcap 검색
windows용 설치

 

  3. Wireshark (패킷 분석 프로그램) 설치 (w10-1, w11-1)

google에 wireshark 검색
windows용 64 비트 설치
winpcap 설치를 했기 때문에 Npcap 설치 필요 X

 

 

  4. Wireshark 실행

Ethernet 카드로 실행하여 캡처 시작

  5. FileZilla에서 사진 업로드

Desktop에 미리 다운받은 1.png파일을 업로드

  - cmd창에서 확인

65092번 포트를 사용해 업로드

 

  6. Wireshark 정지 후 저장

빨간 상자를 눌러 캡처 정지
다른 이름으로 저장

  * 파일 형식을 -pcap으로 바꿔서 저장

바탕화면에 저장

  7. 패킷 확인

검색창에 ftp 입력 후 아무공간 우클릭 - Follow - TCP Stream

  * SSL이 적용되어 있지 않아 모든 활동을 확인할 수 있음 = 보안에 취약

파란색 : 서버, 빨강색 : 클라이언트

 

  8. Hexedit 설치 (원시코드를 16진수로 바꾸어 보여주는 프로그램)

최신 버전 다운로드 페이지
한글 버전 다운로드

 

  9. Hexedit 사용해보기

ftp-data 파일
원시데이터로 변환
바탕화면에 저장
헥스에디터 실행 후 바타화면에 저장한 원시데이터 드래그로 끌어오기
png 파일
바탕화면에 w10-1 이름으로 저장
원본과 동일한 파일이 생성됨

  ※ 평문 전송은 이렇게 모든 정보를 다 확인할 수 있기 때문에 보안에 취약함 

 


 

<FTP - SSL>

  1. 설정 파일 편집

vi 편집기로 설정 파일 열기
ssl 사용, 인증서 파일의 위치, 개인키의 위치, ssl의 버전

  2. 시스템 재시작

 

  3. SSL 적용 확인

  - 확인을 위해 wireshark 실행

  - FileZilla 재접속 시 알 수 없는 인증서 화면이 나옴

  * 그러나 사설인증서이기 때문에 회사 정보를 제외한 다른 정보들은 암호화 됨

데스크탑에 위치한 11.png 파일을 업로드

  - wireshark 캡처를 중지한 후 바탕화면에 저장

 

  - 저장한 wireshark 파일 실행 후 ftp 검색

 

  - 아무 파일 우클릭 - Follow - TCP Stream 

배너를 제외하고는 암호화 된 파일

 


 

<WEB - SSL>

  1. 관련 프로그램 설치 (mod_ssl)

CentOS7-1 설치
CentOS7-2 설치
CentOS7-3 설치

 

  2. 설정 파일 편집(모든 CentOS)

vi 편집기로 ssl 설정 파일 열기
설정 파일의 위치 주석 제거
인증서와 개인키 위치 설정

 

  3. 시스템 재시작

 

  4. 방화벽 열기

https의 443번 포트 열기

 

  5. SSL 적용 확인

  - 확인을 위해 wireshark 실행

 

  - https://도메인 이름

고급
www.jwoh.xyz (안전하지 않음) 클릭

 

  - wireshark 정지 후 바탕화면에 저장, 파일 실행

w10-1 서버와 연결된 10.0.0.13서버로 검색 - Follow - TCP Stream
ssl 적용 된 파일

 


 

4. Windows SSL 실습

  1. 서버 인증서 생성

IIS 관리자 - W2K19-AD1 - 서버 인증서

  * 리눅스와 윈도우 인증서는 확장자가 다르기 때문에 호환 불가 

자체 서명된 인증서 만들기
인증서 이름 지정
인증서 생성 완료

 

  2. 인증서 내보내기

생성된 인증서 - 내보내기
바탕화면에 내보내기
인증서 비밀번호 입력
바탕화면에 내보내진 인증서

 

  3. 인증서 가져오기

  * MAIN WEB 페이지가 있는 모든 Windows에서 진행

W2K19-MEM1의 IIS 관리자 - 서버 인증서
인증서 가져오기
바탕화면에 복사해놓은 인증서 가져오기
인증서 비밀번호 입력

 

  4. 인증서 적용

Main 사이트 - 바인딩
추가 - 종류 : https - 인증서 : 생성한 인증서
https 바인딩 추가 완료
Main 사이트 - SSL 설정
SSL 수락 - 적용

 

  5. 설정 적용 확인

SSL 적용된 사이트
웹 페이지는 접속 가능 - 인증서 보기
정상적인 인증서 확인 가능

 

관련글 더보기