백엔드

[로드맵] Web Security

do_hyuk 2024. 12. 17. 10:27
728x90
반응형

웹 보안은 데이터 기밀성, 무결성 및 가용성을 보장하기 위해 웹 애플리케이션을 위협과 취약성으로부터 보호하는 것을 포함한다. 주요 관행에는 강력한 인증 및 권한 부여 매커니즘, 안전한 데이터 전송을 위한 암호화(예: SSL/TLS) 사용, SQL 주입 및 크로스 사이트 스크립팅(XSS)과 같은 공격을 방지하기 위한 사용자 입력 검증이 포함된다. 보안 코딩 관행, 효과적인 세션 관리, 정기적인 업데이트 및 패치는 보안을 유지하는데 필수적이다. 또한 침투 테스트 및 취약성 평가를 포함한 지속적인 보안 테스트는 잠재적인 약점을 식별하고 해결하여 애플리케이션을 보호하고 사용자 신뢰를 유지하는데 도움이 된다.

 

MD5

더보기

MD5(Message-Digest Algorithm 5)는 널리 사용되는 암호화 해시 함수로, 일반적으로 32자리 16진수로 표현되는 128비트 해시 값을 생성한다. 모든 입력에 대해 고정된 크기의 출력(해시)을 생성하여 데이터에 대한 고유 식별자를 제공하도록 설계되었다. MD5는 한때 데이터 무결성을 확인하고 비밀번호를 저장하는 데 인기가 있었지만, 현재는 충돌 공격(두 개의 다른 입력이 동일한 해시를 생성하는 경우)을 허용하는 취약성으로 인해 암호학적으로 깨지고 보안에 민감한 애플리케이션에 적합하지 않은 것으로 간주된다. 결과적으로 MD5는 대체로 SHA-256과 같은 보다 안전한 해시 함수로 대체되었다.

 

SHA

더보기

SHA(Secure Hash Algorithm)는 가변 크기의 입력 데이터에서 고정 크기의 해시 값을 생성하도록 설계된 암호화 해시 함수 패밀리로, 데이터 무결성과 보안을 보장한다. SHA 함수는 데이터 무결성 확인, 암호를 안전하게 저장, 디지털 서명 생성과 같은 작업에 사용된다. SHA 패밀리에는 SHA-1, SHA-2, SHA-3과 같은 여러 버전이 있다. SHA-1은 160비트 해시 값을 생성하지만 취약성으로 인해 현재는 약한 것으로 간주되는 반면, 해시 크기가 224, 256, 384, 512비트인 SHA-2는 더 강력한 보안을 제공한다. SHA-3는 최신 멤버로 추가 보안 기능과 유연성을 제공한다.

 

scrypt

더보기

scrypt는 GPU나 ASIC을 사용하는 것과 같은 무차별 대입 공격과 하드웨어 기반 공격에 저항하기 위해 계산 집약적이고 메모리가 부족한 핵심 파생 함수이다. 공격자가 대규모 공격을 수행하는 것을 어렵고 비용이 많이 들게 만들어 안전한 암호 해싱을 제공하기 위해 개발되었다. scrypt는 해시 함수와 대량의 메모리 사용 및 CPU 집약적 계산 프로세스를 결합하여 공격자가 많은 계산을 병렬로 수행할 수 있더라도 메모리 요구 사항으로 인해 이러한 공격이 비실용적이 되도록 한다. 안전한 암호 저장 및 암호화폐 채굴을 포함한 암호화 애플리케이션에서 일반적으로 사용된다.

 

bcrypt

더보기

Bcrypt는 데이터베이스에 저장하기 위해 비밀번호를 안전하게 해싱하도록 설계된 비밀번호 해싱 함수이다. Niels Provos와 David Mazières가 만든 이 함수는 Blowfish 암호를 기반으로 하며 레인보우 테이블 공격으로부터 보호하기 위해 솔트를 통합한다. Bcrypt의 주요 특징은 적응적 특성으로, 컴퓨팅 파워가 증가함에 따라 비용 요소를 조정하여 더 느리게 만들 수 있으므로 시간이 지남에 따라 무차별 대입 공격에 대한 저항력을 유지한다. 일반적으로 60자 길이의 고정 크기 해시 출력을 생성하며 여기에는 솔트와 비용 요소가 포함된다. Bcrypt는 보안 강도와 구현의 상대적 용이성으로 인해 많은 프로그래밍 언어와 프레임워크에서 널리 사용된다. 처리 속도가 의도적으로 느리기 때문에 속도가 우선이 아니지만 보안이 가장 중요한 비밀번호 저장에 특히 효과적이다.

728x90
반응형