액세스 토큰
Access token컴퓨터 시스템에서 액세스 토큰은 로그인 세션의 보안 자격 증명을 포함하고 사용자, 사용자 그룹, 사용자 권한 및 경우에 따라 특정 애플리케이션을 [1]식별합니다.경우에 따라서는 통상적인 패스워드가 아닌 액세스토큰(예를 들어 랜덤 문자 40자)을 입력하도록 요구될 수 있습니다(따라서 패스워드와 마찬가지로 비밀에 부쳐야 합니다).
개요
액세스 토큰은 프로세스 또는 [2]스레드의 보안 ID를 캡슐화한 개체입니다.토큰은 보안 결정을 내리고 일부 시스템 엔티티에 대한 변조 방지 정보를 저장하기 위해 사용됩니다.일반적으로 토큰은 보안 정보만을 나타내기 위해 사용되지만 토큰을 생성하는 동안 부가할 수 있는 추가 자유 형식 데이터를 유지할 수 있습니다.토큰은 특별한 권한 없이 복제할 수 있습니다.예를 들어 부팅된 응용 프로그램의 액세스를 제한하는 낮은 수준의 액세스 권한을 가진 새 토큰을 만드는 것입니다.액세스 토큰은 프로세스 또는 스레드가 보안 기술자(보안 가능한 개체)[2]를 가진 개체와 상호 작용하려고 할 때 Windows에서 사용됩니다.Windows에서 액세스 토큰은 유형의 시스템 객체로 표시됩니다.Token
.
액세스 토큰은 사용자가 시스템에 로그온하고 사용자가 제공한 credential이 인증 데이터베이스에 대해 인증될 때 로그온 서비스에 의해 생성됩니다.인증 데이터베이스에는 사용자 ID, 프라이머리 그룹 ID, 소속된 다른 모든 그룹 및 기타 정보 등 로그온 세션의 초기 토큰을 구축하기 위해 필요한 자격 정보가 포함됩니다.토큰은 사용자 세션에서 생성된 초기 프로세스에 연결되며 초기 [2]프로세스에 의해 생성된 후속 프로세스에 상속됩니다.이러한 프로세스에서 액세스 제어가 활성화된 리소스에 대한 핸들을 열 때마다 윈도우즈는 대상 개체의 보안 설명자에 있는 데이터를 현재 유효한 액세스 [3]토큰의 내용과 조정합니다.이 액세스 체크 평가의 결과는, 액세스가 허가되어 있는지 어떤지, 허가되어 있는 경우는, 발신측 애플리케이션이 실행할 수 있는 조작(읽기, 기입/변경 등)을 나타냅니다.
토큰의 종류
사용 가능한 토큰에는 다음 두 가지 유형이 있습니다.
- 프라이머리 토큰
- 기본 토큰은 프로세스에만 연결할 수 있으며 프로세스의 보안 제목을 나타냅니다.프라이머리 토큰의 작성과 프로세스와의 관련성은 둘 다 특권 조작으로 권한 분리라는 이름으로2개의 다른 권한이 필요합니다.일반적인 시나리오에서는 인증 서비스가 토큰을 생성하고 로그온 서비스가 토큰을 사용자의 운영체제셸에 관련짓습니다.프로세스는 처음에 상위 프로세스의 기본 토큰 복사본을 상속합니다.
- 가장 토큰
- 가장은 Windows NT에서 구현된 보안 개념으로, 서버 응용 프로그램이 보안 개체에 대한 액세스 측면에서 일시적으로 클라이언트를 "가져" 줄 수 있습니다.위장에는 4가지 레벨이 있습니다.익명, 익명/미확인 사용자에 대한 서버 액세스 권한 부여, 식별 정보, 클라이언트의 ID를 서버가 검사하도록 허용하지만 해당 ID를 사용하여 오브젝트에 액세스하지 못하도록 허용, 가장, 클라이언트 대신 서버가 동작하도록 허용, 위임을 통해 원격으로 확장됩니다.(자격 정보 보존을 통해) 서버가 접속하는 시스템.클라이언트는 서버에서 사용 가능한 최대 가장 수준(있는 경우)을 연결 매개 변수로 선택할 수 있습니다.위임과 가장은 특권 조작입니다(처음에는 특권 조작이 없었습니다만, 클라이언트 API의 실장에 있어서의 과거의 부주의로, 디폴트 레벨을 「식별」로 제한하지 않고, 권한 없는 서버가, 요구되고 있는 권한 있는 클라이언트를 가장하게 됩니다).가장 토큰은 스레드에만 연결할 수 있으며 클라이언트 프로세스의 보안 제목을 나타냅니다.위장 토큰은 보통 DCE RPC, DDE 및 이름 있는 파이프 등의 IPC 메커니즘에 의해 암묵적으로 생성되어 현재 스레드에 관련지어집니다.
토큰의 내용
토큰은 다음과 같은 다양한 필드로 구성됩니다.
- 식별자
- 연관된 로그온 세션의 ID.세션은 인증 서비스에 의해 유지되며 사용자가 로그인 시 제공한 모든 정보(credential)의 컬렉션이 인증 패키지에 의해 채워집니다.관련된 모든 시스템이 인증국(Kerberos 티켓 서버 등)을 공유하고 있는 경우 자격 정보를 사용하여 사용자가 재인증(싱글 사인온)할 필요가 없습니다.
- 사용자 ID를 지정합니다.이 필드는 가장 중요하며 읽기 전용입니다.
- 사용자가 속한 그룹(또는 보다 정확하게는 제목)의 식별자입니다.그룹 식별자는 삭제할 수 없지만 비활성화하거나 "거부 전용"으로 설정할 수 있습니다.그룹 중 적어도 하나는 세션 ID로 지정되며, 세션에 관련된 휘발성 오브젝트(표시 등)에 대한 접근을 허용하는 로그온 세션을 나타내는 휘발성 그룹입니다.
- 제한 그룹 식별자(옵션)이 추가 그룹 집합은 추가 액세스를 허용하지 않지만 개체로의 액세스는 이러한 그룹 중 하나에도 허용된 경우에만 허용됩니다.제한 그룹은 삭제하거나 비활성화할 수 없습니다.제한 그룹은 최근에 추가된 기능으로 샌드박스 구현에 사용됩니다.
- 권한, 즉 사용자가 가진 특수 기능.대부분의 특권은 보안을 의식하지 않는 프로그램에 의한 손상을 방지하기 위해 기본적으로 비활성화되어 있습니다.Windows XP Service Pack 2 및 Windows Server 2003부터는 다음 호출을 통해 토큰에서 영구적으로 삭제할 수 있습니다.
AdjustTokenPrivileges()
와 함께SE_PRIVILEGE_REMOVED
기여하다. - 토큰에 관련된 서브젝트에 의해 작성된 토큰의 기본 소유자, 프라이머리 그룹 및 ACL.
「 」를 참조해 주세요.
레퍼런스
- ^ "Access Token: Definition, Architecture, Usage & More". Okta. Retrieved 2022-06-08.
- ^ a b c "Access Tokens". MSDN. Retrieved 2007-10-08.
- ^ "AccessCheck". MSDN. Retrieved 2014-02-13.
- ^ "How Access Tokens Work". MSDN. Retrieved 2014-02-13.