네트워크 보안 개요 2
지난 포스트에 이어 네트워크 보안에 대한 개요를 마무리하겠다.
Password
은행 서버에 한 계정이 접근을 했다고 가정하자. 이 때, 이 계정에 로그인한 유저가 은행의 고객이라는 보장이 있어야 한다. 이를 위해 모든 계정에는 비밀번호를 설정하고, 비밀번호를 통해 유저가 계정의 주인인지를 검증한다. 그렇다면 비밀번호의 Security Concern에는 무엇이 있을까?
-
모든 site의 비밀번호는 다 달라야 한다.
-
나와 관련된 문자열이어서 타인이 쉽게 유추할 수 있으면 안 된다.
Protocols
은행에서 거래 정보를 전송, 처리할 때는 네트워크 보안이 특히 중요할 것이다. 이 데이터의 보안을 위해 사용하는 것이 프로토콜, 통신규약이다.
Cryptography
암호학. 프로토콜을 통한 통신 시, 보안을 위해 데이터를 암호화한다.
Access Control
유저가 무사히 로그인을 했다고 일이 끝난 게 아니다. 은행은 각 계정이 어떤 데이터 혹은 어떤 권한에 접근할 수 있는지에 대해 제어해야한다. 예를 들어,
-
유저는 타 유저 계좌 정보에 접근할 수 없다.
-
유저는 새로운 프로그램을 설치할 수 없다.
가 있을 수 있다. 접근제어는 권한부여와 인증 두 가지를 포함한다.
Authorization
인가, 권한부여. 특정 리소스에 접근할 수 있는 권한을 부여하는 것.
Authentication
인증. 사용자의 신원을 증명하는 것.
Software
앞서 설명한 Cryptography, Protocols, Access Control을 Software를 통해 구현한다. 하지만 software도 완벽하지는 않다. 예를 들어 다음과 같은 문제점들이 있을 수 잇다.
-
실제 software를 개발하면 버그가 발생한다.
-
software의 취약점은 곧 보안 취약점으로 이어진다.
-
악성코드 등이 있을 수 있다.
People problem
아무리 software를 완벽에 가깝게 만들어도, 결국 사람에 의해, 악의든, 실수든, 보안은 뚫릴 수 있다.