Introduction
분산 시스템에서의 보안
- 단일 설계 결함으로 인해 보안이 무용지물 될 수 있음 - 취약점(Vulnerabilities)
Security threats, Policies, and mechanisms
Goals
- confidentiality(기밀성) : 보지못하게, 봐도 모르게 하는 것
- integrity(무결성) : 저장,전달 과정에서 위조변조하기 못하게하고, 변조된 것 차단함
- availability(가용성) : 서비스 요청 시 사용할 수 있게 함
보안의 목표 CIA라고도 함
Security Threats (보안 위협)
- interception : 가로채는 것
- interruption : 방해하는 것 (ex.디도스)
- modification : 변조
- fabrication : 날조 (없는 것을 만들어 냄)
Security Poicies
Security Mechanisms
- encryption (암호화) : 메시지를 암호화해서 봐도 모르게 함. 이후 복호화 과정이 필요함
- authentication (#인증) : 정말 맞는 지 확인
- authorization (인가) : 허가
- auditing (감사) : 정책에서 위험요인 없이 작동하는 지 리뷰, 제거
Cryptography
encryption C = Ek(P) : 평문 P → 암호 C
decrytion P = Dk(C) : 암호 C → 평문 P
알고리즘은 표준화
두사람만이 키를 공유함 (복호화키, 암호화키) → 기밀성, 무결성 유지
Symmetric & Asymmetric Cryptosystem
- Symmetric cryptosystem : 대칭키 암호화
- 공유 비밀키라고도 하는 암호화 방식
- 암호,복호 키 같음
- 빠르게 연산 가능
- 키 관리,분배 문제가 복잡함
- 기밀성 유지에 주로 사용
- Asymmetric cryptosystem : 비대칭키 암호화
- 공개키 암호화 방식이라고도 함
- 암호, 복호 키가 다름
- 공개키1, 개인키1를 짝으로 가지고 하나가 공개되어도 짝은 알 수 없음
- 많은 양을 암호화 할 시 좋지 않음
- 누가 보냈는지 확인(인증) 하는데 무결성 유지
- 계산이 복잡하지만 키 관리하기 좋음
- Hash Function : 해시 함수
- 연산을 통해 비트 스트림을 뽑아내는 방법
- 메시지 크기 상관없이 해시의 크기는 일반적으로 고정
암호학적 해시
- one-way function : 해시로부터 역으로 유추 하지 못함
- 해시 값 예측하기 힘들도록 충돌 저항성이 강해야 함(strong)
strong - 임의의 메시지들이 있을 때 그 중 2개으 해시 값이 같은 걸 발견해내는게 불가능한것
weak - y를 찾는 것 불가능
DES : Symmetric Cryptosystem
-
대칭 알고리즘의 종류
-
64비트 데이터 블록, 56마스터 키 → 48비트 키
-
16 Round로 돌림
-
Round에서 위치를 swapping 하는데 키 값을 일부 뽑아 연산해서 결과값을 치환 해 넣음
-
매 Round마다 다른 Key 조합을 뽑아냄
-
조합 규칙을 테이블로 정해서 공유
-
S-box 32bit keys
-
56 bit key에서 매 Round에서 Sub key를 만들어냄
-
지기ㅡㅁ computer가 성능이 좋아져서 3DES로 쓰다가 AES를 많이 쓰게 됨
RSA : Asymmetric Cryptosystem
- 공개키 알고리즘의 대표적인 예
- 오일러의 totient function
- n보다 작으면서 서로소 인 것의 수. (ex 10이면 2 or 5로 나눠지지않는 1,3,7,9)
- 예를들어 7은 1,2,3,4,5,6이 서로소이기 때문에 파이(7)=6이고
- 파이(pq) = (p-1)(q-1)개 이다.
- 파이(35)는 파이(5*7) = (5-1)(7-1) = 24
- C = M^e mod n
- M = C^d mod n = M^ed mod n
- public Key = {e,n} , private key = {d}
- ex) public key = {7,187}, private key = {23} 이면
- M = 105, C = 105^7 mod 187 = 96
- C = 96, M = 96^23 mod 187 = 105
Hash Function
- MD5 : message digest (메시지를 소화해 조그만 크기로 만듦), 128비트 고정 길이, padding하고 일정크기 블록을 쪼개 만듦. 규칙성을 찾기 어렵게하기위해 순환함수를 초기값으로 많이 이용
- SHA : 160~512비트 digest sizes. SHA-2를 많이 사용함
Secure Channels
1. Authentication (인증)
- 상대방이 맞는 지 인증하는 것
- challenge-response protocols
- 공유키 서로 알고있는 상황해서 A가 통보 (A)
- B에서 Random number로 암호화해서 A로 보냄 (RB)
- A→B로 보내며 맞는 지 확인함 KA,B(RB)
- A가 RA를 보냄 (RA)
- B→A로 KA,B(RA)
- 큰 메시지 = 대칭키 이용
- 공유 비밀키 KA,B 이용
2. Needham-Schroeder authenticatioon protocol
- KDC (Key Distribution Center) : 키 분배 센터를 두는 방법
- ticket : K B,KDC(K A,B)
- A가 KDC(믿을 수 있는 기관)가고 A와 KDC가 공유하는 암호를 A에게 보냄 (티케ㅔㅅ)
- A는 열어보지않고 그대로 B에게 전달
- -1을 해서 확인했다는 것을 A에게 보냄
- B가 보낸걸 확인했다는 뜻으로 -1을 빼서 B에게 보냄
3. Authentication using public-key cryptography
- 공개키 방식 이용
- A와 B가 서로 공개키를 가짐
- A가 B에게 K+B(A,RA)를 보냄. B의 공개키 (A라고 주장하지만 확신은 없음)
- B가 B가 만들어낸 키,RA(B가보낸걸 알수있음),RB 공개키를 A에게 보냄
- KA,B(RB)를 보내 B가 A인걸 알수있게됨