상표(컴퓨터 보안)
Trademark (computer security)컴퓨터 보안의 상표는 개체의 보안 속성을 확인하는 코드와 개체가 특정 보안 속성을 가져야 하는 코드 사이의 계약이다.이와 같이 안전한 정보 흐름을 보장하는 데 유용하다.객체지향 언어에서 상표권은 데이터의 서명과 유사하지만 종종 암호화 없이 구현될 수 있다.
운영
상표는 다음의 두 가지 작업을 가진다.
ApplyTradmarket!(개체)
이 작업은 디지털 서명 프로세스에서 개인 키와 유사하므로 신뢰할 수 없는 코드에 노출되지 않아야 한다.불변의 개체에만 적용해야 하며, VerifyTradmarkets를 확인하십시오.진실로 되돌아오는 것과 같은 값으로 호출된다.
VerifyTradmarket?(개체)
이 작업은 디지털 서명 프로세스에서 공용 키와 유사하므로 신뢰할 수 없는 코드에 노출될 수 있다.지정된 개체와 함께 ApplyTradmarket!이 호출된 경우 true를 반환한다.
도색 확인과의 관계
트레이드마킹은 색칠 확인의 역행이다.taint checking은 특정 객체를 신뢰해서는 안 된다는 블랙 리스트 방식인 반면, 상표권은 특정 객체를 특정 보안 속성을 가진 것으로 표시하는 화이트리스트 방식이다.
메모화에 대한 관계
적용 상표는 검증 과정을 메모하는 것으로 생각할 수 있다.
계약확인과의 관계
가치에 특정 보안 속성이 있다는 사실은 정적으로 검증될 수 있기 때문에 검증 프로세스를 수행할 필요가 없는 경우도 있다.이 경우 적용 속성은 특정 보안 속성으로만 출력물을 생산하기 위해 공식적으로 확인된 코드에 의해 물체가 생성되었다고 주장하기 위해 사용되고 있다.
예
Java에서 상표를 적용하는 한 가지 방법:
공중의 계급 상표 { /* 약한 ID 해시 집합 사용 대신 a.csv(b) &&check(a)가 있으면 체크(b)를 의미하지 않는다.*/ 사유의 최종의 약한해시셋<?> 상표가 붙은 = ...; 공중의 동기화된 공허하게 하다 신청하다(오브젝트 o) { 상표가 붙은.덧셈을(o); } 공중의 동기화된 부울 수표(오브젝트 o) { 돌아오다 상표가 붙은.포함하다(o); } } 공중의 계급 htmlSanitizer { // 적용 작업은 비밀로 한다. 사유의 정태의 최종의 상표 TM = 새로운 상표(); 공중의 끈 소독하다html(끈 RawHtml) { // 안전 태그를 제외한 모든 태그 제거 끈 safeHtml = ...; // java.properties.끈은 불변성이므로 상표가 가능하다. TM.신청하다(safeHtml); 돌아오다 safeHtml; } 공중의 부울 이소니티드(끈 html) { 돌아오다 TM.수표(html); } }
외부 링크
- 제임스 모리스 주니어의 "프로그래밍 언어에서의 보호"