보안 지원 공급자인터페이스
Security Support Provider InterfaceSSPI(Security Support Provider Interface)는 인증 등의 보안 관련 작업을 수행하는 Windows API의 컴포넌트입니다.
SSPI는 여러 보안 지원 공급자(SSP)[1]에 대한 공통 인터페이스로 기능합니다.보안 지원 공급자는 하나 이상의 보안 패키지를 애플리케이션에서 사용할 수 있도록 하는 동적 링크 라이브러리(DLL)입니다.
프로바이더
Windows 에는, 다음의 SSP 가 포함되어 있습니다.
- NTLMSSP(msv1_0.dll)– Windows NT 3.51에서 도입되었습니다.Windows 2000 이전의 Windows 도메인 및 [2]도메인의 일부가 아닌 시스템에 NTLM 챌린지/응답 인증을 제공합니다.
- Kerberos (Kerberos.dll)– Windows 2000에서 도입되어 [3]AES를 지원하기 위해 Windows Vista에서 갱신되었습니다.Windows 2000 [4]이후의 Windows 도메인 인증을 실행합니다.
- Negotiate SSP (secur32.dll) : Windows 2000 에서 도입되었습니다.싱글 사인온 기능([5]특히 IIS 컨텍스트에서 통합 Windows 인증이라고도 함)을 제공합니다.Windows 7 이전 버전에서는 Kerberos를 시도하고 나서 NTLM으로 폴백합니다.Windows 7 이후에서는 NEGOExt가 도입되어 클라이언트와 서버에서 인증용으로 지원되는 설치된 커스텀SSP의 사용을 네고시에이트 합니다.
- 시큐어 채널(schannel.dll)– Windows 2000에서 도입되어 Windows Vista에서 갱신되어 보다 강력한 AES 암호화 및[6] ECC를 지원합니다.이 프로바이더는 SSL/TLS 레코드를 사용하여 데이터 페이로드를 암호화합니다.
- TLS/SSL – 인터넷을 [7]통해 클라이언트와 서버를 인증하기 위한 암호화와 안전한 통신을 제공하는 공개 키 암호화 SSP.TLS 1.2를 지원하도록 Windows 7에서 업데이트되었습니다.
- 다이제스트 SSP(wdigest.dll)– Windows XP에서 도입되었습니다.Kerberos를 사용할 [8]수 없는 Windows 시스템과 Windows 이외의 시스템 간에 질문/응답 기반의 HTTP 및 SASL 인증을 제공합니다.
- CredSSP(credssp.dll)– Windows Vista에서 도입되어 Windows XP SP3에서 이용할 수 있습니다.원격 데스크톱 [9]서비스에 대한 Single Sign-On 및 네트워크 수준 인증을 제공합니다.
- 분산 패스워드 인증(DPA, msapsspc.dll): Windows 2000에서 도입되었습니다.디지털 [10]증명서를 사용한 인터넷 인증을 제공합니다.
- 공개키 암호화 사용자 대 사용자 (PKU2U, pku2u.dll)– Windows 7에서 도입되었습니다.도메인의 일부가 아닌 시스템 간에 디지털 인증서를 사용하여 피어 투 피어 인증을 제공합니다.
비교
SSPI는 Generic Security Services Application Program Interface(GSSAPI; 총칭 보안 서비스 애플리케이션프로그램 인터페이스)의 독자 사양으로 확장 및 Windows 고유의 데이터 타입을 갖추고 있습니다.Windows NT 3.51 및 Windows 95에 NTLMSSP가 탑재되어 출하되었습니다.Windows 2000에서는 Kerberos 5의 실장이 추가되어 정식 프로토콜 표준 RFC 1964(The Kerberos 5 GSSAPI 메커니즘)에 준거한 토큰 형식을 사용하여 다른 벤더의 Kerberos 5 실장과의 회선 수준의 상호 운용성을 제공합니다.
SSPI에 의해 생성되어 받아들여지는 토큰은 대부분 GSS-API와 호환되므로 Windows 상의 SSPI 클라이언트는 특정 상황에 따라 Unix 상의 GSS-API 서버를 사용하여 인증할 수 있습니다.
SSPI의 중요한 단점 중 하나는 채널바인딩이 없기 때문에 GSSAPI의 상호 운용이 불가능하다는 것입니다.
IETF 정의 GSSAPI와 Microsoft SSPI의 또 다른 근본적인 차이점은 "위장"의 개념입니다.이 모델에서는 서버는 인증된 클라이언트의 모든 권한으로 동작할 수 있으므로 운영체제는 새로운 파일을 여는 등의 모든 접근컨트롤 체크를 수행합니다.이러한 권한이 원래 서비스 계정의 권한보다 적은지 더 많은지 여부는 전적으로 클라이언트에 따라 다릅니다.기존의 (GSSAPI) 모델에서는 서버가 서비스 계정에서 실행되면 권한을 상승시킬 수 없으며 클라이언트 고유 및 애플리케이션 고유 방식으로 접근컨트롤을 수행해야 합니다.Windows Vista 에서는, 선택한 서비스 [11]어카운트로 위장하는 것을 제한함으로써, 위장 개념의 명백한 시큐러티상의 악영향을 막을 수 있습니다.가장은 Unix/Linux 모델에 구현될 수 있습니다.seteuid
또는 관련 시스템콜.이는 권한이 없는 프로세스는 권한을 상승할 수 없음을 의미하지만 가장을 활용하려면 프로세스가 루트 사용자 계정의 컨텍스트에서 실행되어야 함을 의미하기도 합니다.
레퍼런스
- ^ Microsoft가 제공하는 SSP 패키지
- ^ 사용자 인증 - 보안(Windows 2000 자원 키트 매뉴얼): MSDN
- ^ Windows Vista에서의 Kerberos 확장 기능: MSDN
- ^ Windows 2000 Kerberos 인증
- ^ "Windows Authentication". Windows Server 2008 R2 and Windows Server 2008 Documentations. Microsoft. Retrieved 2020-08-05 – via Microsoft Docs.
- ^ Windows Vista에서의 TLS/SSL 암호화 기능 확장
- ^ 시큐어 채널: Microsoft가 제공하는 SSP 패키지
- ^ Microsoft 다이제스트 SSP: Microsoft가 제공하는 SSP 패키지
- ^ 터미널 서비스 로그인을 위한 자격 증명 보안 서비스 공급자 및 SSO
- ^ DCOM 기술 개요:인터넷상의 보안
- ^ Windows 서비스 강화:AskPerf 블로그