🔎 보안 목적
✔︎ C.I.A.
➡️ Confidentiality 기밀성
: 정보의 무단 공개 회피
👉 기밀성 방법
- Encryption 암호화: 키를 사용하여 암호화. 오직 복호화 키를 사용하여 메세지 해독 가능
- Access control 권한 설정: 권한 부여를 시행할 때 사용되는 규칙
1️⃣ 역할 정의
2️⃣ 역할별로 권한 설정
- Authentication 인증: ex) 학생증, 비밀번호, 생체 인증
- Authorization 권한 부여(인가): 누가 무엇을 할 수 있는지 결정하는 규칙
- Physical security 물리적 보안: 접근을 제한하는 물리적 장치 설치
➡️ Integrity 무결성
: 정보가 변경되지 않음
👉 무결성 방법
- Backups: 데이터 주기적으로 보관
- checksums: 중복 검사의 한 형태. 깨진 비트 수 알 수 있음
- Data correcting codes: 알고리즘으로 데이터 깨진 곳 복구
➡️ Availability 가용성
: 정보에 접근/수정 가능
👉 가용성 방법
- Physical protections: 물리적으로 문제가 발생한 경우에도 정보를 계속 이용할 수 있도록
- Computational redundancies: 장애 발생시 대비책 역할을 하는 컴퓨터 및 저장 장치
✔︎ A.A.A.
➡️ Assurance 보증
➡️ Authenticity 진실성
👉 진실성 방법
- digital signatures 전자서명: 부인 봉쇄
➡️ Anonymity 익명성
🔎 잠재적 공격과 적극적 공격
→ Threats: 잠재적 공격 (Eve: 소극적 공격자)
→ Attacks: 적극적 공격 (Mallory: 적극적 공격자)
- Eavesdropping 엿듣기
- Alteration 값 변조
ex) man-in-the-middle attack: 중간 지점에서 엿듣거나 변조
- Denial-of-service 서비스 거부
- Masquerading 위장
- Repudiation 부인
- Correlation and traceback 연관분석과 추적
🔎 보안 규칙
- Economy of mechanism: 경제적 합당성
- Fail-safe defaults: 보안이 실패했을 때 서비스를 아예 막을 것인지
- Separation of privilege & Least privilege: 권한을 최대한 나누어서 상호 견제
- Open design: 시스템의 아키텍처와 설계는 공개적으로 이용 가능해야함
🔎 Caesar Cipher 시저 암호
: 치환암호의 일종. 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환
🔎 Symmetric Cryptosystems 대칭키 암시스템
: 송신자-수신자 사이 비밀 키 공유. 암호화와 복호화 시 동일한 키 사용
🔑 통신하는 각 쌍에 대해 키 필요
🔎 Public-Key Cryptography 공개키 암호화 (= Asymmetric Cryptography)
: 개인마다 공개키-개인키 쌍을 가짐. 암호화 복호화시 서로 다른 키 사용
🔑 각 통신하는 사람에 대해 키 하나만 필요
🔎 Digital Signatures 전자 서명
: 본인의 개인키로 암호화 하여 부인 봉쇄
수신자는 송신자의 공개키로 복호화하여 송신자가 서명했음을 확인할 수 있음
🔎 Message Authentication Codes(MAC) 메시지 인증 코드
: 데이터가 변조(수정, 삭제, 삽입)되었는지 검증할 수 있도록 데이터에 덧붙이는 코드. 무결성 목적
→ 원래의 데이터로만 생성할 수 있는 값을 데이터에 덧붙여서 확인하는 작업 필요 h(m||key)
📤 송신자는 키와 메시지를 해시 계산하고 이 해시와 메세지를 수신자에게 전송
🔎 Digital Certificates
: Certificate authority(CA): 키 소유자임을 증명하는 기관
🔎 Passwords
: 서버에 password 그 자체로 저장x. 'salt'와 password를 함께 hash function 적용하여 저장
→ password 뿐만 아니라 salt에 대한 값도 추측해야해서 보안상 더 안전