사이버 보안 세계에서는 "지속적인 변화 또는 진화만이 애플리케이션을 영원히 안전하게 유지하는 유일한 방법"이라는 관행을 오랫동안 지켜오고 있습니다.
과거에는 구성 요소 간 인증이 많은 애플리케이션에서 번거로웠습니다. 앱은 액세스 권한을 얻기 위해 클라우드 API의 다양한 미들웨어 및 백엔드 구성 요소에 대해 스스로를 검증해야 했습니다. 하지만 Web API에서 애플리케이션 인증은 필수 과정입니다.
유효성 검사를 위한 기존 메커니즘은 정적 응용 프로그램 로그인입니다. 그러나 이 방법에는 보안 문제가 있습니다. –
- 로그인 자격 증명은 수시로 업데이트됩니다.
- 응용 프로그램의 활동을 확인하고 기록하는 회사의 능력을 감소시킵니다.
참고: DevSecOps:그럴까요? 애플리케이션 및 소프트웨어 보안에 도움이 되셨나요?
TLS 상호 인증
그러나 클라우드 API 보안을 지원하는 가장 좋은 방법 중 하나는 구성 요소 또는 프로세스가 서로 통신할 때 TLS(전송 계층 보안) 상호 인증을 도입하는 것입니다.
RESTful API 구성 요소가 이미 TLS 상호 인증 기술을 사용하고 있다고 가정하겠습니다. 애플리케이션이 자체 유효성을 확인하기 위해 클라이언트 인증서를 제시하도록 요청합니다. 따라서 애플리케이션 보안 인프라 전략을 개선하는 데 도움이 될 수 있습니다.
전통적인 프로세스의 문제점
정규 프로세스의 활동은 백엔드 구성 요소에 따라 하나의 사용자 ID로 함께 분류됩니다. 이러한 분류는 애플리케이션과 관련된 전체 이벤트 정보를 통해 이벤트를 찾기 어렵게 만듭니다. 사이버 공격 중에 이벤트를 찾을 수 없으면 상황이 악화됩니다. 보안 전문가는 양성 응용 프로그램과 유해 응용 프로그램을 구분할 수 없습니다. 이 특정 문제는 10년 전부터 널리 퍼져 있지만 아직 해결되지 않았습니다.
RESTful API의 경우 여전히 서로를 검증해야 하며 인증을 수행하기 위해 HTTP 인식 메소드의 도움을 받기만 하면 됩니다. 예를 들어 숨겨진 값은 요청자의 유효성을 검사하기 위해 HTTP 요청 헤더와 통합됩니다. 이 프로세스를 HTTP 기본 인증이라고 합니다. 클라우드 애플리케이션이 클라우드에 있는지 온프레미스에 있는지 여부에 관계없이 적용됩니다. PaaS를 사용하든 IaaS를 사용하든 구성 요소 간 인증은 여전히 해결되지 않은 문제입니다.
TLS의 도움
기본적으로 구현하는 인증 메커니즘을 향상시키려면 TLS의 기능을 활용해야 합니다. TLS를 웹서핑에 활용하지 않을 경우, 서로 거래하고 있는 피어 간의 상호 검증을 지원합니다.
서버는 브라우저가 원격 웹사이트를 인증하는 것처럼 요청자를 인증합니다. HTTP 프로토콜은 클라우드 API의 전송으로 사용되지만 여전히 구성 요소 간의 상호 유효성 검사를 허용할 수 있습니다. TLS 상호 인증에서는 특히 허용되는 인증서 매개변수를 제한할 수 있습니다. 즉, 클라우드 애플리케이션은 특정 인증서나 일련 번호, 심지어 특정 인증 기관의 특정 인증서만 제시하면 됩니다. 또한 TLS 방법을 정적 숨겨진 값 또는 암호와 결합할 수 있습니다. 클라우드에서 TLS 상호 인증 접근 방식을 구현하는 데는 몇 가지 종속성이 있습니다. 기본적으로 TLS 상호 인증을 설정하려면 클라우드 API를 사용자 정의해야 합니다. 구성을 수정할 수 있도록 IaaS 환경이 있어야 한다는 의미입니다. 그렇지 않으면 이 기능을 켤 수 있는 PaaS 환경이어야 합니다. AWS 및 Microsoft Azure와 같은 클라우드 전문가를 예로 들 수 있습니다.
TLS 상호 인증의 장점
TLS 상호 인증을 사용하는 동안 누릴 수 있는 몇 가지 놀라운 이점이 있습니다. TLS 상호 인증의 가장 두드러진 이점 중 하나는 암호 또는 비밀 값을 유지 관리하는 데 덜 소란스럽다는 것입니다. 비밀번호 또는 정적 숨겨진 값을 사용 및 관리하는 것은 비밀번호를 주기적으로 수정하고, 사용을 확인하고, 복잡한 비밀번호를 생성하고, 보호를 보장하는 등의 프로세스를 포함하기 때문에 번거로운 작업입니다. 그러나 TLS 상호 인증은 비밀번호를 유지 관리하는 추가적인 번거로움을 줄여줍니다. 인증 방법을 활성화하는 동안 비밀번호는 몇 번 사용되지만 TLS는 장기적으로 비밀번호의 역할을 감소시킬 수 있습니다.
그 외에도 TLS 상호 인증은 암호보다 이식성이 낮은 인증 및 개인 키를 사용합니다. 따라서 다른 디지털 엔티티와 마찬가지로 인증 및 개인 키가 손상될 수 있지만 해커가 원격 API 호출자로 가장하기를 원하는 동안 최소한 물류 측면에서 해커의 어려움 수준을 증가시킵니다.
애플리케이션 모니터링과 관련하여 TLS는 API 요청을 보다 명확하게 만드는 구성 요소 또는 애플리케이션의 기록을 유지합니다. 비밀번호는 복잡한 과정입니다.
추가 읽기: 사이버 보안이 개선되고 있습니까, 아니면 악화되고 있습니까?
TLS 상호 인증의 단점
TLS 상호 인증을 구현하는 동안 몇 가지 단점이 있습니다. 그러나 그 어느 것도 기술을 구현하는 것을 방해해서는 안 됩니다.
방법을 향상시키기 위해 다음과 같은 단점을 고려해야 합니다. –
무엇보다도 인증서가 만료됩니다. 따라서 인증서가 만료되기 전에 인증서를 재발급하는 것을 항상 기억해야 합니다. 인증서 재발급을 잊어버린 경우 문제를 디버깅하기 어렵기 때문에 결과가 비참할 수 있습니다. 만료된 인증서를 사전에 교체하려면 인증서 만료 날짜를 항상 추적해야 합니다.
전체적으로 TLS 상호 인증은 클라우드 API의 보안을 향상시키는 건설적인 방법입니다. 최소한 TLS 상호 인증은 보안 전문가가 클라우드에서 애플리케이션 보안을 평가하는 데 도움이 될 수 있습니다.