2023. 4. 11. 14:49ㆍCS/Backend-RoadMap
Web Security
비지니스에 영향을 줄 수 있는 위협으로부터 웹 응용 프로그램을 보호하기 위해 개발자가 취하는 보호 조치
MD 5
128 비트 암호화 해시 함수
단방향 암호화
문제점
- 해시 충돌 발생
- brute force attack에 취약함
SHA
암호화 해시 함수
- SHA-0: 1993년에 발표된 이 알고리즘은 제품군의 첫 번째 알고리즘입니다. 출시 직후 공개되지 않은 중대한 결함으로 인해 중단되었습니다.
- SHA-1: SHA-0을 대체하기 위해 만들어졌으며 MD5와 유사한 이 알고리즘은 2010년부터 안전하지 않은 것으로 간주되었습니다.
- SHA-2: 이것은 알고리즘이 아니라 SHA-256 및 SHA-512가 가장 많이 사용되는 일련의 알고리즘입니다. SHA-2는 여전히 안전하고 널리 사용됩니다.
- SHA-3: 경쟁에서 태어난 이 가족의 최신 구성원입니다. SHA-3는 매우 안전하며 동급 제품과 동일한 설계 결함이 없습니다.
Scrypt
키 파생 기능 (KDF) 함수
오프라인 brute force 공격에 강력하지만, 많은 메모리와 CPU 사용
하드웨어 구현을 하는데 크기와 비용이 훨씬 더 비싸기 때문에, 주어진 자원에서 공격자가 사용할 수 있는 병렬처리의 양이 한정적
Bcrypt
blowfish 암호 기반의 암호화 해시 함수
- 패스워드 저장을 목적으로 설계
Salting과 Key stretching으로 Rainbow table attack, brute-force 공격에 대비할 수 있다.
bcrypt는 입력 값으로 72 bytes character를 사용해야 하는 제약
blowfish 암호
- 키(key) 방식의 대칭형 블록 암호
- 일반 목적으로 사용가능한 비특허 알고리즘
- 처리 시간과 자원 소비가 최적화되어 각종 온라인 게임의 패킷 암호화, 패킷 복호화에 주로 사용된다.
- 빠른 속도 덕분에 스마트폰 플랫폼에도 적합하다. 키가 자주 변경되지 않을때 최적의 성능을 보여준다.
- 스마트폰 메모리에서 서브키를 훔치면 취약할 수 있다.
HTTPS (Hyper Text Transfer Protocol Secure)
HTTP의 보안이 강화된 버전
소켓 통신에서 일반 텍스트를 이용하는 대신 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화 하여 데이터의 적절한 보호 보장
OWASP (Open Web Application Security Project)
웹 애플리케이션 보안 분야에서 자유롭게 사용할 수 있는 기사, 방법론, 문서, 도구 및 기술을 생산하는 온라인 커뮤니티
OWASP는 가장 큰 오픈소스 웹 애플리케이션 보안 프로젝트로 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(OWASP TOP 10)을 발표
CORS (Cross-Origin Resource Sharing)
Origin
- protocol과 host, port 까지 모두 합친 URL
동일 출처 정책 (Same-Origin Policy)
SOP 정책 : 동일한 출처에서만 리소스를 공유할 수 있다.
Protocol, host, port 3가지가 동일한 경우 동일 출처로 판단
CORS
다른 출처의 리소스 공유에 대한 허용/비허용 정책
SSL/TLS
SSL (Secure Sockets Layer)
웹 사이트와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술
TLS (Transport Layer Security)
SSL의 향상된, 안전한 버전
CSP
콘텐츠 보안 정책은 신뢰할 수 있는 웹 페이지 컨텍스트에서 악성 콘텐츠 실행으로 인한 사이트 간 스크립팅, 클릭재킹 및 기타 코드 삽입 공격을 방지하기 위해 도입된 컴퓨터 보안 표준
Server Security
- 방화벽 사용: 서버를 보호하는 가장 효과적인 방법 중 하나는 방화벽을 사용하여 불필요한 모든 수신 트래픽을 차단하는 것입니다. 이를 위해 Linux 시스템 또는 하드웨어 방화벽에서 iptables를 사용할 수 있습니다.
- 불필요한 포트 닫기: 서버가 제대로 작동하는 데 필요하지 않은 포트는 모두 닫아야 합니다. 이렇게 하면 서버의 공격 표면이 줄어들고 공격자가 액세스하기가 더 어려워집니다.
- 강력한 암호 사용: 모든 계정에 길고 복잡한 암호를 사용하고 암호 관리자를 사용하여 안전하게 저장하는 것이 좋습니다.
- 시스템을 최신 상태로 유지: 최신 보안 패치를 사용하여 운영 체제와 소프트웨어를 최신 상태로 유지하십시오. 이는 공격자가 취약성을 악용하는 것을 방지하는 데 도움이 됩니다.
- 통신에 SSL/TLS 사용: SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)를 사용하여 서버와 클라이언트 장치 간의 통신을 암호화합니다. 이는 중간자 공격 및 기타 유형의 사이버 위협으로부터 보호하는 데 도움이 됩니다.
- 침입 탐지 시스템(IDS) 사용: IDS는 네트워크 트래픽을 모니터링하고 의심스러운 활동에 대해 경고하므로 적시에 잠재적인 위협을 식별하고 대응하는 데 도움이 될 수 있습니다.
- 2단계 인증 활성화: 2단계 인증은 비밀번호 외에 휴대전화로 전송되는 코드와 같은 두 번째 인증 형식을 요구하여 계정에 추가 보안 계층을 추가합니다.
참고자료
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=thescream&logNo=162559105
https://velog.io/@palza4dev/패스워드-암호화-PBKDF2-scrypt-bcrypt-argon2
https://ko.wikipedia.org/wiki/HTTPS
'CS > Backend-RoadMap' 카테고리의 다른 글
Backend-RoadMap_Testing (0) | 2023.04.11 |
---|---|
Backend-RoadMap_APIs (0) | 2023.03.27 |
Backend-RoadMap_Scaling Databases (0) | 2023.03.23 |
Backend-RoadMap_About Database (0) | 2023.03.23 |
Backend_Roadmap_OS(+파일시스템) (0) | 2023.03.22 |