다음을 통해 공유


SignedObject 클래스

정의

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

[Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)]
public sealed class SignedObject : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)>]
type SignedObject = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
SignedObject
특성
구현

설명

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

보다 구체적으로, SignedObject에는 다른 Serializable 개체, 서명된 개체 및 해당 서명이 포함됩니다.

서명된 개체는 원래 개체의 "딥 카피"(직렬화된 형식)입니다. 복사본이 만들어지면 원본 개체를 추가로 조작해도 복사본에 부작용이 없습니다.

기본 서명 알고리즘은 생성자와 verify 메서드에 전달된 Signature 개체에 의해 지정됩니다. 서명에 대한 일반적인 사용법은 다음과 같습니다.

{@code
            Signature signingEngine = Signature.getInstance(algorithm,
                                                            provider);
            SignedObject so = new SignedObject(myobject, signingKey,
                                               signingEngine);
            }

확인에 대한 일반적인 사용법은 다음과 같습니다(SignedObject so를 받은 경우).

{@code
            Signature verificationEngine =
                Signature.getInstance(algorithm, provider);
            if (so.verify(publickey, verificationEngine))
                try {
                    Object myobj = so.getObject();
                } catch (java.lang.ClassNotFoundException e) {};
            }

몇 가지 점은 주목할 가치가 있습니다. 먼저 생성자와 verify 메서드 내에서 다시 초기화되므로 서명 또는 확인 엔진을 초기화할 필요가 없습니다. 둘째, 확인이 성공하려면 지정된 공개 키가 SignedObject를 생성하는 데 사용되는 프라이빗 키에 해당하는 공개 키여야 합니다.

더 중요한 것은 유연성상의 이유로 생성자와 verify 메서드는 암호화 공급자의 일부로 공식적으로 설치되지 않은 서명 알고리즘을 구현할 수 있는 사용자 지정된 서명 엔진을 허용합니다. 그러나 검증 도구 코드를 작성하는 프로그래머가 서명을 확인하기 위해 메서드의 verify 자체 구현이 호출되므로 어떤 엔진이 사용되고 있는지 Signature 알고 있어야 합니다. 즉, 악의적인 Signature 사용자가 보안 검사를 우회하기 위해 확인 시 항상 true를 반환하도록 선택할 수 있습니다.

서명 알고리즘은 DSA 및 SHA-256을 사용하는 NIST 표준 DSA일 수 있습니다. 알고리즘은 서명과 동일한 규칙을 사용하여 지정됩니다. SHA-256 메시지 다이제스트 알고리즘을 사용하는 DSA 알고리즘을 "SHA256withDSA"와 같이 지정할 수 있습니다. RSA의 경우 서명 알고리즘을 "SHA256withRSA"와 같이 지정할 수 있습니다. 기본값이 없으므로 알고리즘 이름을 지정해야 합니다.

암호화 패키지 공급자의 이름은 생성자 및 verify 메서드에 대한 Signature 매개 변수로도 지정됩니다. 공급자를 지정하지 않으면 기본 공급자가 사용됩니다. 각 설치는 특정 공급자를 기본값으로 사용하도록 구성할 수 있습니다.

SignedObject의 잠재적 애플리케이션에는 다음이 포함됩니다. <ul><li> 모든 Java 런타임에 내부적으로 잊을 수 없는 권한 부여 토큰으로 사용할 수 있습니다. 토큰이 검색되지 않고 악의적으로 수정될 수 있다는 두려움 없이 전달될 수 있습니다. <li> Java 런타임 외부의 스토리지에 대한 데이터/개체에 서명하고 직렬화하는 데 사용할 수 있습니다(예: 디스크에 중요한 액세스 제어 데이터 저장). <li> Nested SignedObjects는 권한 부여 및 위임 체인과 유사한 서명의 논리적 시퀀스를 생성하는 데 사용할 수 있습니다. </ul>

1.2에 추가되었습니다.

에 대한 java.security.SignedObjectJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

SignedObject(ISerializable, IPrivateKey, Signature)

Serializable 개체에서 SignedObject를 생성합니다.

속성

Algorithm

서명 알고리즘의 이름을 검색합니다.

Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
JniPeerMembers

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

Object

캡슐화된 개체를 검색합니다.

PeerReference

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)

메서드

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Dispose()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
GetSignature()

바이트 배열 형식으로 서명된 개체의 서명을 검색합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
Verify(IPublicKey, Signature)

이 SignedObject의 서명이 지정된 확인 엔진을 사용하여 지정된 확인 키를 사용하여 내부에 저장된 개체에 대한 유효한 서명인지 확인합니다.

Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

GetJniTypeName(IJavaPeerable)

SignedObject는 무결성을 검색하지 않고는 손상될 수 없는 본격적인 런타임 개체를 만들기 위한 클래스입니다.

적용 대상