CS/보안

인증 & 접근 제어 & 키 분배프로토콜

길용쓰 2023. 1. 2. 04:26

 

 

정보 자원 접근을 위한 3단계

1)식별 인증을 받으려는 사람이 누구인가 -> ID

2)인증 인증을 받으려는 사람이 본인이 맞는가 -> password

3)인가 자원에 접근 가능한 사람인가 -> 쇼핑몰 운영자 / 고객               

 

 

개체 인증 = 주장자 + 검증자

 

 

인증 방식

1)인식 기반 알고 있는 것 패스워드, OTP, PIN, 보안 질문, 비밀키, 개인키

2)소유 기반 소유하고 있는 것 신분증, 스마트카드

3)신체 특징 기반 태생적으로 지닌 것 홍채, 지문

 

 

 

패스워드 관리 방법

1)고정된 패스워드  그대로 저장, 비교 = 탈취에 취약

2)해시된 패스워드 전수 조사 / 사전 공격에 취약

3)솔트 사용 패스워드 임의의 랜덤 값을 추가하여 해시

 

 

 

 

 

 

 

 

인가: 주체가 하고자 하는 작업이 해당 주체에게 허가된 작업인지 확인, 권한 부여, "접근 제어"

 

 

 

 

 

 

접근 제어 방식

 

1)DAC 임의 접근 제어

자원의 owert가 이에 대한 다른 사람들의 권한을 결정

 

ACM = 접근 제어 표

-> 희소 행렬 = 공간 낭비가 큼

-> 자원이나 사용자 하나를 기준으로 권한을 저장

 

 

ACL: 자원에 대해 사용자들의 권한 저장

CAP: 사용자에 대해 자원들의 권한 저장

*리눅스는 ACL 

 

+ Authorization table

주체, 객체, 접근권한 3개의 column을 사용하는 테이블.

필요 용량이 크나 검색에 용이 -> DBMS에서 사용

 

 

2)MAC 강제적 접근 제어

-주체와 객체에게 적절한 보안 등급(레이블)을 부여, 비교

BLP 규칙 : No read up & No write down (높은 보안 수준의 정보 전이 방지)

 

 

 

3)RBAC 역할 기반 접근 제어

 

-역할에 따른 권한 부여

 

 

 

 

 

 

접근 제어 요구 사항

 

1)separarion of duty

- 개인이 프로세스를 전복시키지 않도록 시스템 기능을 여럿이 나눠 담당하는

 

2)최소 권한 (need to know)

– NX bit, user & kernel mode,

 

3)open & close policies

- close = 선별된 일부 access 허용 = white listening = apple

 

4)접근 제어 policy 통합 충돌 방지

- DAC+MAC+RBAC = SELinux

 

5)dual control

하나의 task 여러 주체의 동의가 필요

 

6)fine & coarse grained

7)reliable input (인증을 통과한 주체가 행하는 입력)

8)행정 정책 (관리자만 규칙 변경 가능)

 

 

 

 

 

 

 

 

키 분배 프로토콜

 

1.대칭키 암호에 기반을 둔 키 설정 프로토콜

 

1)일방향성

1.Client가 서버 ID를 세션키 ks로 암호화 -> 세션키, 타임스탬프와 함께 대칭키로 재 암호화

2.Server는 이를 전송받아 사전에 공유한 대칭키 k로 복호화 -> timestamp 확인

3.세션 키로 암호화된 서버 ID를 복호화 -> 수신자가 자신이 맞는지 여부와 패킷의 목적 확인

 

2)난수 활용

r = 서버가 생성한 랜덤 값 -> key 갱신에 server의 의사 반영

 

3)사전에 공유된 키 생성 방식 사용

*공격자의 랜덤 값 전송 공격 가능

 

 

 

 

 

2.공개키 암호에 기반을 둔 키 설정 프로토콜

 

1)일방향성

서버의 공개 키로 암호화, 서버의 개인 키로 복호화

Client가 키 생성의 주체

 

2)난수를 활용한 양방향성

*마지막에 r2를 재전송하여 server가 보낸 값이 맞는지 확인

 

 

 

 

 

 

 

키 분배 센터 KDC

Client key 요청시 생성 -> 각각의 대칭 키로 동일한 세션 키를 암호화 후 전달

KDC의 통신 부하 감소

 

키 번역 센터 KTC

키 생성은 client, KTC는 전달만 담당