답변:
이들은 속, 종 및 개인이 계층적인 방식으로 계층 적입니다.
주제 / 객체는 문법에서 사용 된 것과 동일한 용어를 상속합니다. 문장에서 주제는 배우이고 대상은 행동하는 것입니다. 이런 의미에서 컴퓨터가 발명되기 전부터 사용되었습니다. 보안 컨텍스트에서 주제는 요청을 할 수있는 모든 것입니다. 위에서 언급했듯이 이는 IT 보안에만 국한 될 필요가 없으며 매우 광범위한 분류입니다. 흥미로운 것은 주제가 대상을 암시한다는 것입니다. 물체가 없으면 주제가 없습니다.
교장은 주제를 해결합니다. 신용 카드를 제시 할 때 당신은 주제이며 계좌 번호는 교장입니다. 다른 상황에서는 사용자 ID 또는 주에서 발행 한 신원이 본인의 주체입니다. 그러나 교장은 사람이 아닌 많은 유형의 주제와 관련 될 수 있습니다. 응용 프로그램이 시스템 레벨 기능에 대한 요청을하는 경우, 프린시 펄은 서명 된 실행 가능 코드 모듈의 서명자 일 수 있지만이 경우에도 요청을 수행하는 사용자는 여전히 주제입니다.
사용자는 일반적으로 대화식 운영자를 참조한다는 점에서 주제 또는 보안 주체보다 더 구체적입니다. 그렇기 때문에 그래픽 사용자 인터페이스가 아닌 그래픽 사용자 인터페이스가 있습니다. 사용자는의 인스턴스 대상 A와 해결합니다 교장 . 단일 사용자는 여러 보안 주체로 해결할 수 있지만 모든 사용자는 단일 사용자로 해결할 것으로 예상됩니다 (사람들이 ID를 공유하지 않아야한다는 요구 사항을 준수한다고 가정). 위의 예에서, 실행 코드 모듈의 서명자는 확실히 없는 사용자, 그러나 그것은 이다 유효한 주요. 모듈을로드하려고하는 대화식 연산자는 사용자입니다.
의견에서 언급했듯이 권위있는 출처 조차도이 용어에 동의하지 않습니다. 이 응답을 준비하는 동안 NIST, SANS, IEEE, MITER 및 보안 시험 가이드와 같은 몇 가지 "지정 인증"소스를 검색했습니다. 적어도 준 권위적 인 것으로 밝혀진 단일 소스는 세 용어를 모두 다루었으며 사용법에서 크게 달랐습니다. 이것은 용어를 어떻게 사용 해야하는지 에 대한 나의 견해 이지만, 한밤중에 매뉴얼을 숙독 할 때 실제적인 관점에서 볼 때 정의는 공급 업체 또는 작가가 말한대로하는 경향이 있습니다. 여기서 응답이 물을 탐색하고 이러한 용어를 사용하여 보안 문서를 구문 분석하는 데 충분한 통찰력을 제공하기를 바랍니다.
John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER
John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
이 용어는 JAAS 에서 가져온 것 같습니다 .
애플리케이션이 JAAS 인증을 사용하여 사용자 (또는 서비스와 같은 다른 엔티티)를 인증하면 주제가 결과로 작성됩니다. 주체의 목적은 인증 된 사용자를 나타내는 것입니다. 주제는 Principals 세트로 구성되며 , 각 Principal은 해당 사용자의 ID를 나타냅니다. 예를 들어, 주체는 교장 ( "Susan Smith")과 사회 보장 번호 교장 ( "987-65-4321")을 가질 수 있으므로이 주체를 다른 주체와 구별 할 수 있습니다.
Subject 는 서비스를 요청하는 엔티티입니다. 사용자 또는 프로세스 일 수 있습니다. 아마도 이것이 사용자 대신 Subject라는 이름이 선택된 이유 일 것입니다.
주체가 서비스에 액세스하려고 할 때 먼저 주체를 인증해야합니다. 성공적인 인증 은 해당 주제에 대한 보안 사용자 를로드하는 것으로 끝납니다 . 예를 들어, 역할 기반 액세스 제어 시스템에서 인증 된 (로그인 된) 사용자는 일반적으로 userId 및 roleId의 두 프린시 펄을 갖습니다. 이러한 시스템에서 권한 (즉, 무엇에 액세스 할 수있는 사람)이 역할과 사용자 모두에 대해 지정됩니다. 인증 중에 (즉, 요청 된 서비스의 허용 여부 확인) 보안 시스템은 두 보안 사용자에 대한 액세스 가능성을 확인합니다.
따라서 권한 부여 관점에서 보안 주체는 액세스가 허용되거나 허용되지 않는 실제 엔터티입니다. 주제는 일부 주체를 보유한 사용자 / 스레드 / 프로세스입니다.
T.Rob이 설명했듯이 Subject는 객체에 대한 액세스를 요청하는 엔티티입니다. 그 시점부터 나는 매우 유용하고 이해하기 쉬운 javax.security.auth.Subject 코드에 대한 의견을 찾았습니다.
"주체는 잠재적으로 다수의 신원을 가질 수 있습니다. 각 신원은 주제 내에서 교장으로 표시됩니다. 교장은 단순히 이름을 주제에 바인드합니다. 예를 들어 사람이되는 주제 인 Alice는 두 명의 교장을 가질 수 있습니다. 하나는" 운전 면허증의 이름 인 Alice Bar "와 학생 식별 카드의 번호"999-99-9999 "를 피험자에 바인딩하는 또 다른 이름입니다. 두 교장은 각각 동일한 주제를 나타냅니다. 이름이 다릅니다. "
도움이 되길 바랍니다.
이것은 Oracle JAVA SE Documentation의 아래 설명에 대한 링크 입니다.
주제, 프린시 펄, 인증 및 신임 정보 자원에 대한 액세스 권한을 부여하려면 애플리케이션이 먼저 요청 소스를 인증해야합니다. JAAS 프레임 워크는 요청 소스를 나타내는 주제 라는 용어를 정의합니다 . 피험자는 사람이나 서비스와 같은 모든 개체 일 수 있습니다. 주제는 javax.security.auth.Subject 클래스로 표시됩니다 .
인증 은 주체의 신원이 확인되는 과정을 나타내며 안전한 방식으로 수행되어야합니다. 그렇지 않으면 가해자가 다른 사람을 사칭하여 시스템에 액세스 할 수 있습니다. 인증은 일반적으로 신원을 증명하기 위해 어떤 형태의 증거를 보여주는 주체와 관련됩니다. 이러한 증거는 피험자 만 알고 있거나 가질 수있는 정보 (예 : 암호 또는 지문)이거나 피험자 만 생성 할 수있는 정보 (예 : 개인 키를 사용하여 서명 된 데이터) 일 수 있습니다.
인증되면 주제는 연관된 ID 또는 프린시 펄 ( java.security.Principal 유형 ) 로 채워집니다 . 피험자는 많은 교장을 가질 수 있습니다. 예를 들어, 사람은 이름 (Principal) ( "John Doe")과 SSN Principal ( "123-45-6789")을 가질 수 있으며, 이는 다른 주제와 구별됩니다.
연관된 프린시 펄 외에, 주제는 보안 관련 속성을 소유 할 수 있으며이를 신임 정보 라고합니다 . 자격 증명에는 새로운 서비스에 대한 주제를 인증하는 데 사용되는 정보가 포함될 수 있습니다. 이러한 자격 증명에는 암호, Kerberos 티켓 및 공개 키 인증서가 포함됩니다. 자격 증명에는 주체가 특정 활동을 수행 할 수있는 데이터가 포함될 수도 있습니다. 예를 들어, 암호화 키는 주체가 데이터에 서명하거나 암호화 할 수있는 자격 증명을 나타냅니다. 공개 및 개인 자격 증명 클래스는 핵심 J2SE API의 일부가 아닙니다. 따라서 모든 클래스는 자격 증명을 나타낼 수 있습니다.