1.1 암호화의 원리 (치환방식)
- 최초의 암호화 방식 : 치환(Caesar가 사용)
- 암호화 키 : shift+2, 복호화키 : shift-2 → 알파벳을 오른쪽으로 두 칸씩 이동
→ 암호화키와 복호화키가 서로 대칭을 이룸 → 대칭키(Symmetric Key)
1) 대칭키 방식 : 치환과 순열 → 현재 SPN 방식 사용(S:치환, P:순열, N:네트워크 → 치환과 순열의 반복)
- 치환(Substitution) : 문자를 다른 문자로 바꾸는 것
사례) ROT13 : 알파벳 26자를 반으로 나눠서 각각 대응하는 알파벳으로 치환
ex) HELLO → URYYB
- ROT13 방식의 단점 : 영어만 암호화 가능 → 해결 : ROT47
* ROT47
- 대/소문자, 숫자, 특수문자 94를 반으로 나누어서 섞어서 치환
- 순열 : 알파벳 순서를 바꾸는 것
ex) 암호화 키 : 12345 → 41523 : 알파벳을 5개씩 잘라서 암호화 키에 따라 순서를 변경
복호화 키 : 41523 → 12345
- 암호화키를 알면 복호화 키를 알 수 있음 → 단일키(Single Key)
- 대칭키는 다른 사람이 알면 안됨 → 비밀키(Secret Key)
- 한 번의 세션에서만 사용 → 세션키(Session Key)
2) Matrix 방식
- 암호화 : 가로로 쓰고 세로로 읽음
- 복호화 : 세로로 쓰고 가로로 읽음
* 용어 정리
- 평문 : 누구나 읽을 수 있음
- 암호문 : 아무도 읽을 수 없음
- 암호화 : 평문을 암호문으로 만드는 것
- 복호화 : 암호문을 평문으로 만드는 것
- 암호화키 : 평문을 암호문으로 만드는 규칙
- 복호화키 : 암호문을 평문으로 만드는 규칙
1.2 암호화의 역사
1) 스키테일
2) 시저사이퍼 - 치환방식
3) 현대암호화(1800)
4) 전신기 활용(1854) - 신호를 멀리 보냄
5) 기계를 이용한 암호화(1918) - ex) 모스부호
6) 패스워드의 도입(1960s)
7) IBM 컴퓨터 암호화(1970s) - 금융권에서 사용
8) 정보보호법(1990s) - 오남용시 처벌
9) 미공군기지 해킹(1997)
10) DES → AES(2001)
2.1 대칭키
- 암호화키와 복호화키가 대칭을 이룸
- 평문 --대칭키--> 암호문 --대칭키--> 평문
- 문제점 : 대칭키를 비밀리에 상대방에게 전달할 방법이 없음(키 전달 문제)
- 대칭키 = 비밀키 = 단일키 = 세션키
- 종류 : DES, 3DES, AES(현재 가장 많이 사용), SEED, HIGHT, LEA, ARIA, RC6, Blowfish 등
- 장점 : 암/복호화 속도가 빠름 → 데이터 암호화에 사용 ex) 로그인시 ID/PW 암호화
- 단점 : 키 전달 문제 - 안전학게 전달이 어려움, 키 개수 문제(키는 n(n-1)/2 개 필요) - 너무 많은 키가 필요
2.2 대칭키 종류
1) DES
- 최초의 표준 대칭키, NIST(미국표준기관)에서 표준으로 지정
- 2000년, 크래킹됨 → 표준에서 제외
- 블록 암호화 방식 : 데이터를 64bit(블록)씩 잘라서 암호화, 키의 길이도 64bit
- 실제 암호화키는 56bit, 나머지 8bit는 검증키(패리티 비트)
2) 3DES
- DES를 3번 반복 연산
3) AES
- 현재 표준 대칭키
- 벨기에의 Rijndael(리인델)이 AES로 채택 - 안정성 및 속도(DES 표준 제외 후 3DES를 임시 표준으로 사용하면서 새로운 대칭키 표준 공모)
- SPN 방식 사용(치환과 순열의 반복)
- 128bit, 192bit, 256bit 중 선택(128bit, 192bit는 최근 사용x)
* 대칭키(AES) 활용 사례
- ID/PW로 로그인하는 대부분의 경우
- Wi-Fi로 이용하는 데이터(트래픽) 암호화
4) SEED
- 금융중앙망에서 사용(우리나라에서 만든 대칭키)
- http://seed.kisa.or.kr/ - 소스코드 공개(백도어가 없음을 보여줌)
5) HIGHT/ARIA/LEA : 경량 대칭키(우리나라에서 만듦)
* 대칭키는 만드는 방식이 어렵지 않음 - SPN 방식, Feistel 방식(DES)등을 사용
6) RC 시리즈
- RC4 : 무선 공유기에서 많이 사용, 키를 크래킹하는 방식이 알려져서 최근에는 사용X
- RC6 : RC4 개량, AES 최종라운드에서 탈락
7) Fish 시리즈
- Bruce Schneier(브루스 슈나이어)라는 유명 암호학자가 만듦
- TwoFish : AES 최종라운드에서 탈락
- BlowFish : 안전하기로 유명(해커들이 악성코드 사용에 선호)
3.1 공개키
- Diffie-Hellman : 이산대수의 어려움을 이용해서 공개키 방식을 인류 최초로 만듦
- 누구나 개인키과 공개키 쌍을 가짐(개인키로 공개키 생성)
- 개인키(Private Key) : 본인만 안전하게 보관하고 사용
- 공개키(Public Key) : 거래 상대에게 제공(누구나 알 수 있음)
3.2 공개키 실습 - ubuntu
- (ssh 설치) sudo apt update후, sudo apt install ssh
- /etc/ssh 폴더 내용 확인
- ssh_host_ecdsa_key : 개인키
- ssh_host_ecdsa_key.pub : 공개키
* 개인키는 혼자만 보는 것(600), 공개키는 상대방에게 제공하기 위한 것(644)
*개인키, 공개키의 특징
- 공개키를 상대방에게 제공(누구든지 볼 수 있음)
- 자신의 개인키와 상대방의 공개키를 연산해서 생성된 키는 양쪽이 일치 → 대칭키로 사용(교환 필요 x)
→ 대칭키 키 교환의 문제 해결
- ID/PW를 모두 대칭키로 암호화해서 상대방에게 제공, 상대는 같은 대칭키로 복호화
3.3 RSA
- 소인수분해의 어려움에 근거하여 등장
- 양방향 암호화 가능 : 개인키로 암호화하면 공개키로 복호화, 공개키로 암호화하면 개인키로 복호화
- 특허 만료로 무료 사용 가능
- 기밀성 : 송신자가 수신자의 공개키로 암호화해서 전송 → 수신자는 자신의 개인키로 복호화(다른 사람은 복호화 불가)
- 인증 : 송신자가 자신의 개인키로 암호화해서 전송 → 수신자는 송신자의 공개키로 복호화(보낸 사람 인증 가능)
3.4 SSL/TLS
- 웹 브라우저와 웹 서버간 암호화를 하기 위한 프로토콜
- Netscape에서 SSL(Secure Socket Layer)을 만듦 → 웹 암호화
- SSL의 취약점이 계속 발견되어 이를 해결하기 위해 SSL3.0을 업그레이드하여 표준화 → TLS(Transport Layter Security)
- 지금은 SSL대신 TLS를 사용하지만 관용적으로 SSL이라고 표기
- 최근 TLS는 1.3버전 사용
4. Hash 함수
- 원문을 해시함수에 넣으면 해쉬값이 출력
* 해시함수의 특징
1) 고정길이 출력 : 원문의 길이와 관계없이 출력되는 해시값의 길이는 고정
2) 일방향 함수 : 해시함수와 해시값을 알아도 원문을 알아내는것은 불가능
3) 충돌방지 : 원문은 다른데 해시값이 같을 확률은 0에 수렴함
- 원문이 조금이라도 달라지면 해시값이 달라짐 → 원문 변조 여부 확인 가능(무결성 검증)
→ Digital Sign(디지털 서명) : 1bit라도 달라지면 전혀 다른 해시값이 나오므로 공개키의 주인 검증 가능
4.1 전자서명
- 원문의 해시값에 송신자의 개인키로 서명하고 원문과 함께 전송
- 검증 : 서명된 해시값을 송신자의 공개키로 복호화하고 원문의 해시값과 비교
→ 일치하면 무결성(내용이 변조되지 않음) 검증, 인증(송신자에 대한 검증), 부인봉쇄 확인
4.2 인증서(Certificate)
- 형식 : X.509v3
- 인증서의 주요 내용 : 서명 알고리즘, 유효기간, 발급자, 주체, 주체의 공개키, 서명된 해시값 등
- 공개키가 올바른지 확인(주체의 공개키인지 검증)
- 생성 : 원문(공개키)의 해시값을 구해서 송신자(CA)의 개인키로 서명
- 검증 : CA의 공개키로 서명된 해시값을 복호화 후 원문의 해시값과 비교
→ 전자서명과 방법은 비슷함
* PKI 기관
- RA(Registration Authority, 등록기관) : 인증서 신청 업체를 검증하고 등록을 대행
- CA(Cartificate Authority, 인증기관) : 인증서를 발행
- RootCA(최상위 인증기관) : 인증기관을 검증
- Repository : 인증서(공개키)를 모아놓은 데이터베이스
* 우리나라 공인인증 체계
1) NPKI(National Public Key Infrastructure)
- PAA(정책기관) : 미래부
- Root CA : KISA
- CA(인증기관) : 금융결제원, 정보인증, 전자인증, Koscom, 무역정보협회
- RA(등록기관) : 은행, 증권회사, 대행업체 등
2) GPKI : 행자부
3) MPKI : 국방부
4) EPKI : 교육부
중요 키워드 : 대칭키, 공개키, 해시함수, 전자서명, 인증서, SSL/TLS
'SK 쉴더스 루키즈' 카테고리의 다른 글
[SK 쉴더스] 네트워크 보안 5일차 -- 추가예정 (0) | 2022.09.26 |
---|---|
[SK 쉴더스] 네트워크 보안 4일차 - 암호화, 취약점 분석 -- 추가예정 (1) | 2022.09.26 |
[SK 쉴더스] 네트워크보안 2일차 -- 추가예정 (0) | 2022.09.26 |
[SK 쉴더스] 네트워크보안 1일차 -- 추가예정 (1) | 2022.09.26 |
[SK 쉴더스] 애플리케이션 보안 7일차 (0) | 2022.09.26 |