1주차(2) - 2022/02/08 암호학
샤논(Shannon)
- Confusion(혼돈) / Diffusion(확산) => 쓸수록 확률적으로 완전 비밀(Perfect Secrecy)에 가까움을 증명함
- 정보통신모델
- 메시지 =(부호화, 인코딩)=> 010101010111 - 평문(Plain Text)
비밀키 암호 -> 수학 ↓(연산이 적음), 속도가 빠름
- 블록암호
- DES - 미국암호 표준 : 3번 깨져서 Breakout됨. 하지만 triple-DES는 씀
- 비밀키 : 56bit (하지만 통신에러 점검을 위해 7bit 뒤에 1bit씩 1이 짝수가 되도록 even(짝) parity check bit를 넣음. parity bit는 암호화에는 사용되지 않음)
- 블록크기 : 64bit
- NIST가 비밀키 128bit, 블록크기 128, 192, 256bit AES(Advanced Encryption Standard) 공모
- 리즌들 : 2001년 채택. AES 암호 표준. 유한체이론
- DES - 미국암호 표준 : 3번 깨져서 Breakout됨. 하지만 triple-DES는 씀
- 스트림암호
- 배타적(Exclusive) or => XOR 논리적연산 사용
- 외교, 국방에 사용 ex) OTP
비밀키 공유문제(Sharing) => 디피-헬만 등장 => 공개키 암호
기존에는 비밀키 공유 문제 해결하기 위해 신뢰기관을 뒀으나 전적으로 신뢰해야 하는 문제가 있어 찝찝했음
송신자와 수신자 모두 각각의 공개키(Public Key)와 개인키(Private Key)를 가지고 있음
송신자가 수신자의 공개키로 메시지를 암호화 해서 보내면 송신자가 본인의 개인키로 복호화
※ 그러나 이 방법은 MITM(Man-in-the-middle) 공격에 취약함
=> 공개키에 대한 인증이 필요해짐 => 공인인증서
송신자가 공개된 해쉬함수 알고리즘으로 돌린 뒤 그 값을 본인의 개인키로 암호화 해서 암호문과 함께 보냄
수신자는 해당 전자 서명을 송신자의 공개키로 복호화 한 뒤 해독한 메시지를 공개된 해쉬함수 알고리즘을 돌려 두 해쉬값을 비교함 => 해당 메시지가 변조되었는지 확인 가능
해쉬함수
- MDC(Modification Detection Code) - 변조감지코드
- SHA-2, SHA-3 ...
- MAC - 메시지 인증코드
- 비밀키 암호 사용함
취약점(Vulnerabilities) : 하나 이상의 위협으로 자산 또는 그룹의 약점이 악용될 수 있는 것
취약성 : 원초적으로 갖고 있는 취약한 성질
위협(Threat) : 손실이나 손상의 원인이 될 가능성을 이용하는 환경
위험(Risk) = Vulnerability(취약성) + Asset(자산) + Threat(위협)
잔여 위험(Residual Risk)
- 정보보호대책을 구현한 후 남아있는 위험 <허용 수준>
- 기업에서 받아들일 수 있는 만큼의 수준으로 위험 감소시키기 위한 보안 대책이나 대응수단을 구현하고 난 후 남은 위험
권한 부여(인가)
ID와 PW 입력하면 winlogon.exe가 실행됨 => lsass.exe (인증관련)으로 sanfile과 검증해 확인해서 권한(Access token)을 부여함
- 사실상 lsasrv.dll이 메모리에 올라감. 이 dll이 실질적 취약점임 >> sasser 웜
- MS의 Hash Function 중 LM 해쉬함수는 취약해서 사용하지 않고 NTLM V2 해쉬함수를 이용해 나온 해쉬값을 sam file에 저장함.
- sam file의 저장 위치는 C:\Windows\System32\config 폴더
- 권한 획득시 보안 식별자(Security IDentifier)가 부여됨
< SID : Security IDentifier > - 보안식별자
- 윈도우가 각 사용자나 그룹을 구분하기 위해 부여하는 번호
- SAM 파일에 SID 정보가 저장되어있다.
- 로그인을 시도하면 접근 토큰이 생성되며, 해당 토큰에는 사용자와 모든 작업 그룹들에 관한 SID 정보가 담겨있다
- 사용자에 의해 시작된 모든 프로세스에게 접근 토큰의 사본이 할당된다.
< 구조 >
S-1 - 5-21 - "해당 시스템만의 고유 식별자" - "사용자 식별자"
S-1 : 윈도우 시스템을 의미
5-21 : 해당 시스템이 도메인 컨트롤러 이거나 단독 시스템임을 의미
"해당 시스템만의 고유 식별자" : 동일한 컴퓨터에 다시 윈도우를 설치해도 동일한 값을 가지지 않는다.
"사용자 식별자"
- 500 : 관리자 식별자
- 501 : 게스트 식별자
- 1000 이상 : 일반 사용자 식별자
*cmd.exe > wmic > useraccount list brief 로 SID를 볼 수 있다.
접근 통제(Access Control)
- 역할(직무) 기반
- 강제적
- 임의적