Security 관련 기초

TopOfTheHead·2025년 11월 17일

Spring Security

목록 보기
1/21
  • 인증 ( Authentication ) :
    。사용자의 신원을 증명하는 과정 ( ex. ID/PW 로그인 , JWT 등 )
    ▶ 사용자의 로그인 정보를 받아서 ID정보가 일치하는지 확인하는 과정.

    Multiple Authentication : 복수의 인증이 존재하는경우
    Google 같은 경우 ID/PW로 1차 인증 후 SMS로 2차 인증.

    인증 실패 시 401 반환

  • 인가 ( Authorization ) :
    。로그인을 통해 Authenticated사용자Server의 특정 ResourceAccess 가능한 권한이 있는지 확인하는 과정.
    ▶ 적절한 Access 권한을 지니고있는지 판단.

    인가 실패 시 403 반환

보안의 원칙

  • 기본 실패 ( Fail-Safe Defaults ) :
    System이 Fail하더라도 기본적으로 안전한 상태를 유지하도록 설정한다는 원칙.
    ▶ 권한이 명시적으로 허가되지않은 모든 자원에 대한 접근을 차단하는것을 기본으로 설정.

    ex) 방화벽에서 모든트래픽차단 후 허용할 트래픽만 부분적으로 추가하는 방식.

  • 최소권한 ( Least Privilege )
    。각 사용자 또는 Process에게 항상 작업수행에 필요한 수준의 최소한의 접근권한을 할당.
    ▶ 해당 원칙을 따르면 보안사고가 발생해도 피해최소화가 가능

    ex) 일반사용자 수준에는 관리자권한없이 실행되도록 설정 및 관리장계정이 필요한 작업이 있는경우에만 관리자권한을 부여.

  • 메카니즘의 효율성 ( Economy of Mechanism )
    보안 Architecture의 설계는 이해가 쉽도록 최대한 단순해야한다.
    ▶ 복잡한 보안시스템의 경우 Error가 발생할 가능성이 높고 유지보수가 어려우므로.

    ex) 인증시스템을 여러단계로 나누는 대신, 단순하면서도 강력한 단일 인증기법을 적용

  • 완벽한 조율 ( Complete Mediation )
    보안시스템에 대한 모든 접근요청은 항상 검증해야한다.
    ▶ 기존에 캐시된 인증정보를 사용하는 것이 아닌, 매번 새로운 인증절차를 거쳐야함.

    ex) 사용자가 로그인한 후에도, 중요한 작업(예: 계좌 이체)을 수행할 때마다 비밀번호를 다시 입력하게 하는 방식.

  • 개방 설계( Open Design )
    。보안은 비밀유지에 의존해서는 안된다.
    보안 시스템의 설계는 비밀유지가 아닌, 강력한 보안알고리즘과 보안정책에 기반해야하는 원칙.
    ▶ 보안알고리즘이 공개되더라도 안전하게 보안시스템이 유지되어야한다.

    ex) 오픈소스 암호화 알고리즘 (JWT 등)은 코드는 공개되어있더라도 여전히 안전하게 사용가능.

  • 권한분리 ( Separation of Privilege )
    。중요한 작업 수행 시 복수 이상의 독립적인 권한이 필요하도록 설계해야한다는 원칙.
    ▶ 하나의 권한이 노출되더라도 전체 시스템이 위험에 빠지지 않도록 보호하는 역할을 수행.

    ex) 금융 시스템에서 한 사람이 결제를 승인할 수 없고, 다른 사람이 별도로 확인해야 결제가 이루어지도록 설정.

    +
  • 최소 공통 Mechanism ( Least Common Mechanism )
    서로 다른 사용자 또는 프로세스가 공유되는 보안 Mechanism의 수와 사용은 최소화해야한다.
    ▶ 공유하는 보안Mechanism이 많을 경우 하나가 뚫릴 경우, 전체 시스템이 연쇄적으로 위험해질 수 있다.

    ex) 여러 사용자가 동일한 세션을 공유하지 않고, 각 사용자에게 개별 세션을 할당하는 방식.

  • 심리적 수용성( Psycological acceptability / Easy to use )
    사용자가 보안시스템을 사용하는 경우 편리하게 사용할 수 있어야한다는 원칙.
    ▶ 너무 복잡한 보안정책의 경우 사용자가 기피하거나 비밀번호를 다른곳에 저장하는 등 보안취약점을 생성할 수 있으므로.

    ex ) 너무 복잡한 비밀번호 정책 대신, 다중 인증(MFA)을 도입하여 보안성을 유지하면서도 사용자의 편의를 높이는 방식.
profile
공부기록 블로그

0개의 댓글