암호화
인가된 자만이 데이터를 열람함으로써 기밀성을 보장함
비대칭키 암호화 방식
- 인가자란 개인키를 보유한 자
공개키로 암호화하고 개인키로 복호화 => 기밀성
개인키로 암호화하고 공개키로 복호화 => 신뢰성(인증)
개인키로 암호화 => 전자서명
무결성이란 변조가 없음을 나타냄
- 송신측에서 원본과 백업본을 보냄
- 수신측에서는 원본과 백업본의 동일성을 점검한다.
암호화 알고리즘과 해시알고리즘 차이
- 암호화 알고리즘은 양방향성으로 원문에서 암호문으로, 암호문에서 원문으로 변환이 가능하다.
- 해시 알고리즘은 단방향성으로 원문에서 해시값으로만 가능
* 공백 또한 문자열로 보기 때문에 해시값이 달라진다.
전자서명
- 개인키로 암호화
- 무결성은 원본데이터로 검증하는게 아니라 Digest(해시값)로 검증한다.
- 원본의 해시값 + 개인키 암호 => 전자서명
* 무결성, 신뢰성 점검
SSL
- 대칭키 암호화 방식: 기밀성
- 비대칭키 암호화 방식: 신뢰성, 무결성
*보안> SSL, IPSec
HTTP가 SSL 추가가 되면 HTTPS
인증서
- 공개키 배포, 해시 알고리즘(전자서명)
인증기관의 인증서
- CA의 공개키
웹 서버
- CA에 인증요청서를 신청
- CA는 웹서버에 인증서 발급(CA 전자서명, 웹 서버의 공개키)
*CA 전자서명은 개인키로 암호화 됨
인증서의 유효성은 클라이언트가 검증한다.
자체 발급 인증서
- 발급자와 발급대상이 같음
인증서 문제 3가지
- 인증서 유효성 검증이 어려운 경우 => 유효기간, 자체발급 인증서, 자체 문제
SSL
- 클라이언트가 세션키(대칭키)를 생성
- 서버에 전달
대칭키와 비대칭키 사용
- 대칭키: 데이터 암호화
- 비대칭키: 대칭키를 암호화
PKI
- 공개키 기반 구조
- 효율 적인 공개 키 운용
HTTPS
- HTTP 서버 구성
프로그램 설치
인증서 모듈을 설치
- 인증서 생성
개인키, CSR 등등 생성
- 자체발급인증서여도 https 페이지 뜨게
HTTP client 설정
인증서 생성
- 키 생성
- 인증 요청서(csr)생성
- 인증서(crt)
생성된 인증서 + httpd conf mapping
HTTPS 구성
1, HTTP 설치
- rpm -qa | grep httpd
- cd /var/www/httpd
nano index.html
- 방화벽 설정(80개방) 후 활성화
- 웹 서비스 활성화
2. 인증서 생성
- 인증서 생성 위치
cd /etc/pki/tls/certs
키 생성: openssl genrsa -out www.open.net.key 2048
인증요청서: openssl req -new -key www.open.net.key
인증서생성
3. ssl.conf에 인증서와 키를 매핑
4, https 방화벽 활성화
- 443포트 열어야 됨
*서비스 개시하면 자체 발급 인증서를 생성하기 때문에 인증서 유효성 검사에서 문제 발생
- 자체 발급 인증서를 '신뢰할 수 있는 루트인증기관'에 import
* 인증서 시간 중요
TCP/IP프로토콜
캡슐화: 상위 계층에서 하위 계층으로 누적
TCP Header
- 데이터 완료 후에는 payload 누적되는 것이 없음
- Window size 0 => 저장할 수 있는 공간이 0
- Checksum : 오류 검출
- Urgent Pointer : 전송 우선순위
최적의 mss사이즈
- 3계층에서 단편화를 하지 않게 하기 위한 세그먼트 크기
- mss => 4계층
- mtu => 3계층
tcp header = 25byte
ip header = 25byte
최적의 MSS = 1500-25-25 ==> 1450
200 성공
300 리다이렉션
400 클라이언트 에러
500 서버 측 에러