JP2011523481A5 - - Google Patents

Download PDF

Info

Publication number
JP2011523481A5
JP2011523481A5 JP2011510489A JP2011510489A JP2011523481A5 JP 2011523481 A5 JP2011523481 A5 JP 2011523481A5 JP 2011510489 A JP2011510489 A JP 2011510489A JP 2011510489 A JP2011510489 A JP 2011510489A JP 2011523481 A5 JP2011523481 A5 JP 2011523481A5
Authority
JP
Japan
Prior art keywords
software entity
host device
code set
processors
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011510489A
Other languages
Japanese (ja)
Other versions
JP2011523481A (en
Filing date
Publication date
Priority claimed from US12/124,450 external-priority patent/US20090293117A1/en
Priority claimed from US12/124,456 external-priority patent/US8621601B2/en
Application filed filed Critical
Priority claimed from PCT/US2009/002637 external-priority patent/WO2009142689A1/en
Publication of JP2011523481A publication Critical patent/JP2011523481A/en
Publication of JP2011523481A5 publication Critical patent/JP2011523481A5/ja
Pending legal-status Critical Current

Links

Claims (32)

周辺装置と通信するように構成されているホスト装置であって、A host device configured to communicate with a peripheral device,
第1のソフトウェアエンティティと、A first software entity;
前記周辺装置と通信する前記ホスト装置用に構成されている複数のコードセットであって、複数のコードセットのうちの1コードセットが前記第1のソフトウェアエンティティにカスタマイズされている、複数のコードセットと、A plurality of code sets configured for the host device communicating with the peripheral device, wherein one code set of the plurality of code sets is customized to the first software entity When,
1つ以上のプロセッサであって、One or more processors,
前記周辺装置と通信する前記第1のソフトウェアエンティティによる要求に応じて、前記第1のソフトウェアエンティティ用の資格証明を有効なものとしてベリファイするか否かを判断し、かつDetermining whether to validate the credentials for the first software entity as valid in response to a request by the first software entity communicating with the peripheral; and
前記資格証明が有効である場合には、前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせ、前記1コードセットの少なくとも一部が前記第1のソフトウェアエンティティに前記周辺装置と通信し、前記周辺装置に対して自身をベリファイすることを許可するように使用されるように適合される、1つ以上のプロセッサと、If the credentials are valid, allow the first software entity to use at least a portion of the one code set, wherein at least a portion of the one code set is the first software entity One or more processors adapted to be used to communicate with the peripheral device and allow the peripheral device to verify itself;
を備えるホスト装置。A host device comprising:
請求項1記載のホスト装置において、The host device according to claim 1,
前記要求には、前記第1のソフトウェアエンティティからのタスク要求が含まれ、The request includes a task request from the first software entity,
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記1コードセットの少なくとも一部がプログラムされる場合には、前記タスク要求を実行することによって前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせるように構成されているホスト装置。The one or more processors may execute the task request on the first software entity when the one or more processors are programmed with at least a portion of the one code set. A host device configured to allow use of at least a portion thereof.
請求項1記載のホスト装置において、The host device according to claim 1,
前記1つ以上のプロセッサは、The one or more processors are:
前記第1のソフトウェアエンティティに1つ以上の認証オプションを提供し、Providing one or more authentication options to the first software entity;
前記1つ以上の認証オプションのいずれか1つを指示する応答を前記第1のソフトウェアエンティティから受信し、かつReceiving a response from the first software entity indicating any one of the one or more authentication options; and
前記応答に基づいて前記資格証明をベリファイすることによって、前記第1のソフトウェアエンティティからの資格証明を有効なものとしてベリファイするか否かを判断するように構成されているホスト装置。A host device configured to determine whether to verify the credentials from the first software entity as valid by verifying the credentials based on the response.
請求項1記載のホスト装置において、The host device according to claim 1,
前記1つ以上のプロセッサは、前記資格証明が有効でない場合には、前記第1のソフトウェアエンティティにエラーを返すようにさらに構成されているホスト装置。The host device, wherein the one or more processors are further configured to return an error to the first software entity if the credentials are not valid.
請求項1記載のホスト装置において、The host device according to claim 1,
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、暗号関数にて前記第1のソフトウェアエンティティに係る識別子を使用して前記1コードセットへのアクセスを提供するソフトウェアエンティティハンドラを生成することによって、前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせるように構成されているホスト装置。The one or more processors include a software entity handler that provides access to the one code set using an identifier associated with the first software entity in a cryptographic function if the credentials are valid. A host device configured to allow the first software entity to use at least a portion of the one code set by generating.
請求項5記載のホスト装置において、The host device according to claim 5, wherein
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティへ前記ソフトウェアエンティティハンドラを送信することによって、前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせるようにさらに構成されているホスト装置。The one or more processors may allow the first software entity to use at least a portion of the one code set by sending the software entity handler to the first software entity. Further configured host device.
請求項5記載のホスト装置において、The host device according to claim 5, wherein
前記1つ以上のプロセッサは、The one or more processors are:
前記資格証明が有効である場合には、認証済みソフトウェアエンティティの表に前記第1のソフトウェアエンティティを登録し、かつIf the credentials are valid, register the first software entity in a table of authorized software entities; and
前記資格証明が有効である場合には、前記表に前記ソフトウェアエンティティハンドラを登録するようにさらに構成され、If the credentials are valid, further configured to register the software entity handler in the table;
前記1つ以上のプロセッサは、前記認証済みソフトウェアエンティティの表を再検討することによって、前記第1のソフトウェアエンティティからの資格証明を有効なものとしてベリファイするか否かを判断するように構成されているホスト装置。The one or more processors are configured to determine whether to validate credentials from the first software entity as valid by reviewing the table of authorized software entities. Host device.
請求項7記載のホスト装置において、The host device according to claim 7, wherein
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティが首尾よく登録されている場合には、前記第1のソフトウェアエンティティへ前記1コードセットが提示されることを指示する標識を送信するように構成されているホスト装置。The one or more processors are configured to send an indication indicating that the first code set is presented to the first software entity if the first software entity is successfully registered. Configured host device.
請求項7記載のホスト装置において、The host device according to claim 7, wherein
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記1コードセットの少なくとも一部がプログラムされる場合には、前記第1のソフトウェアエンティティが前記表に登録されている間は、前記ソフトウェアエンティティハンドラを使用して前記周辺装置に係るタスクを実行することを前記第1のソフトウェアエンティティに許可するように構成されているホスト装置。If the one or more processors are programmed with at least a part of the one code set, the one or more processors may receive the software while the first software entity is registered in the table. A host device configured to allow the first software entity to perform a task related to the peripheral device using an entity handler.
請求項7記載のホスト装置において、The host device according to claim 7, wherein
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティに係るパーミッションを前記表に登録するように構成され、前記パーミッションは、前記第1のソフトウェアエンティティがアクセスできる前記1コードセットを指示するホスト装置。The one or more processors are configured to register a permission related to the first software entity in the table, wherein the permission indicates the one code set accessible by the first software entity. .
請求項7記載のホスト装置において、The host device according to claim 7, wherein
前記1つ以上のプロセッサは、前記表にて指示される所定の期間にわたって前記第1のソフトウェアエンティティが前記表に登録されている場合には、前記第1のソフトウェアエンティティを登録解除するように構成されているホスト装置。The one or more processors are configured to deregister the first software entity if the first software entity has been registered in the table for a predetermined period indicated in the table. Host device being used.
請求項7記載のホスト装置において、The host device according to claim 7, wherein
前記1つ以上のプロセッサは、The one or more processors are:
前記第1のソフトウェアエンティティからタスク要求を受信し、Receiving a task request from the first software entity;
前記1つ以上のプロセッサに前記1コードセットの少なくとも一部がプログラムされる場合には、前記タスク要求を実行し、かつIf at least part of the code set is programmed into the one or more processors, the task request is executed; and
前記タスク要求が実行された後で、前記表から前記第1のソフトウェアエンティティを登録解除するように構成されているホスト装置。A host device configured to deregister the first software entity from the table after the task request is executed.
請求1記載のホスト装置において、The host device according to claim 1,
前記周辺装置は、フラッシュメモリ装置であるホスト装置。The peripheral device is a host device which is a flash memory device.
請求1記載のホスト装置において
前記1つ以上のプロセッサは、
前記周辺装置の1グループにてコンテンツを格納する要求を受信し、前記要求が前記第1のソフトウェアエンティティから受信され、かつ
前記資格証明が有効である場合には、前記グループに係る暗号鍵にアクセスすることによって、前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせるように構成されているホスト装置。
The host device according to claim 1 ,
The one or more processors are:
Receiving a request to store content at a group of the peripheral devices, wherein the request is received from the first software entity; and
If the credentials are valid, configured to allow the first software entity to use at least part of the one code set by accessing an encryption key associated with the group. Host device.
請求1記載のホスト装置において、The host device according to claim 1,
前記要求には、前記周辺装置の1グループにてコンテンツにアクセスする要求が含まれ、前記要求が前記第1のソフトウェアエンティティから受信され、The request includes a request to access content at a group of the peripheral devices, the request is received from the first software entity,
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、前記グループに係る暗号鍵にアクセスすることによって、前記第1のソフトウェアエンティティに前記1コードセットの少なくとも一部を使用することを可能にさせるように構成されているホスト装置。The one or more processors use at least a portion of the one code set for the first software entity by accessing an encryption key associated with the group if the credentials are valid; A host device that is configured to allow
周辺装置へのアクセスを提供する方法であって、A method for providing access to a peripheral device, comprising:
前記周辺装置と通信するように使用されている複数のコードセットを有するホスト装置にて、In a host device having a plurality of code sets being used to communicate with the peripheral device,
第1のソフトウェアエンティティが前記周辺装置と通信することを求めているか否かを判断するステップと、Determining whether a first software entity seeks to communicate with the peripheral device;
前記第1のソフトウェアエンティティが前記周辺装置と通信することを求めていると判断したことに応答して、前記ホスト装置上で前記第1のソフトウェアエンティティを認証するか否かを判断するステップと、In response to determining that the first software entity seeks to communicate with the peripheral device, determining whether to authenticate the first software entity on the host device;
前記第1のソフトウェアエンティティを認証するか否かを判断したことに応答して、前記ホスト装置上で前記周辺装置と通信するように使用されている複数のコードセットのうちの、前記第1のソフトウェアエンティティにカスタマイズされ、かつ前記周辺装置と通信し、前記周辺装置に対して自身をベリファイすることを許可するように使用されている1コードセットにアクセスすることを前記第1のソフトウェアエンティティに許可するステップと、In response to determining whether to authenticate the first software entity, the first of a plurality of code sets used to communicate with the peripheral device on the host device Allows the first software entity to access a code set that is customized to a software entity and is used to communicate with the peripheral device and allow the peripheral device to verify itself And steps to
を実行するステップを含む方法。A method comprising the steps of:
請求項16記載の方法において、The method of claim 16, wherein
前記1コードセットは、前記周辺装置と通信する前記第1のソフトウェアエンティティに専用であり、The one code set is dedicated to the first software entity communicating with the peripheral device;
前記1コードセットにアクセスすることを前記第1のソフトウェアエンティティに許可するステップは、装置ドライバコードおよびアプリケーションプログラミングインターフェイスコードにアクセスすることを許可することを含む方法。The method of allowing the first software entity to access the one code set comprises allowing access to device driver code and application programming interface code.
請求項16記載の方法において、The method of claim 16, wherein
前記第1のソフトウェアエンティティからタスク要求を前記1コードセットで受信するステップと、Receiving a task request from the first software entity in the one code set;
前記1コードセットの少なくとも一部を使用して前記タスク要求を実行するステップと、Performing the task request using at least a portion of the one code set;
をさらに含む方法。A method further comprising:
請求項16記載の方法において、The method of claim 16, wherein
前記第1のソフトウェアエンティティを認証するか否かを判断するステップは、Determining whether to authenticate the first software entity comprises:
前記第1のソフトウェアエンティティから資格証明を受信することと、Receiving credentials from the first software entity;
前記1コードセットによって実行される、前記資格証明をベリファイすることと、Verifying the credentials performed by the one code set;
を含む方法。Including methods.
請求項19記載の方法において、The method of claim 19, wherein
前記1コードセットによって実行される、前記第1のソフトウェアエンティティに対して1つ以上の認証オプションを提供するステップと、Providing one or more authentication options for the first software entity performed by the one code set;
前記1つ以上の認証オプションのいずれか1つを指示する応答を前記第1のソフトウェアエンティティから受信するステップと、をさらに含み、Receiving from the first software entity a response indicating any one of the one or more authentication options;
前記ベリファイすることは、前記応答に基づいて前記資格証明をベリファイすることを含む方法。The verifying includes verifying the credentials based on the response.
請求項16記載の方法において、The method of claim 16, wherein
前記第1のソフトウェアエンティティが首尾よく認証されなかった場合には、前記第1のソフトウェアエンティティにエラーを返すステップをさらに含む方法。A method further comprising returning an error to the first software entity if the first software entity is not successfully authenticated.
請求項16記載の方法において、The method of claim 16, wherein
前記第1のソフトウェアエンティティを認証すると判断した場合には、暗号関数にて前記第1のソフトウェアエンティティに係る識別子を使用して前記1コードセットへのアクセスを提供するソフトウェアエンティティハンドラを生成するステップをさらに含む方法。If it is determined to authenticate the first software entity, generating a software entity handler that provides access to the one code set using an identifier associated with the first software entity in a cryptographic function Further comprising a method.
請求項22記載の方法において、The method of claim 22, wherein
前記1コードセットの少なくとも一部にアクセスを提供するように構成されている前記ソフトウェアエンティティハンドラを前記第1のソフトウェアエンティティへ送信するステップをさらに含む方法。Transmitting the software entity handler configured to provide access to at least a portion of the one code set to the first software entity.
請求項22記載の方法において、The method of claim 22, wherein
前記第1のソフトウェアエンティティを首尾よく認証している場合には、前記1コードセットを使用して前記第1のソフトウェアエンティティを登録するステップをさらに含み、前記登録するステップが、認証済みソフトウェアエンティティの表に前記ソフトウェアエンティティハンドラを登録することを含む方法。If the first software entity has been successfully authenticated, the method further comprises registering the first software entity using the one code set, the registering step comprising: Registering the software entity handler in a table.
請求項24記載の方法において、25. The method of claim 24, wherein
前記1コードセットが提示される標識を送信するステップをさらに含み、前記送信するステップが、前記第1のソフトウェアエンティティが首尾よく登録されている場合には、前記第1のソフトウェアエンティティに前記標識を送信することを含む方法。Further comprising transmitting an indication to which the one code set is presented, wherein the transmitting step includes providing the indication to the first software entity if the first software entity has been successfully registered. A method comprising sending.
請求項25記載の方法において、26. The method of claim 25, wherein
前記第1のソフトウェアエンティティが登録されている間は、前記周辺装置に係るタスクを実行することを前記第1のソフトウェアエンティティに許可するステップをさらに含み、前記許可するステップが、前記1コードセットとともに前記ソフトウェアエンティティハンドラを使用して前記タスクを実行することを前記第1のソフトウェアエンティティに許可することを含む方法。While the first software entity is registered, the method further includes permitting the first software entity to perform a task related to the peripheral device, and the permitting step is performed together with the one code set. Allowing the first software entity to perform the task using the software entity handler.
請求項24記載の方法において、25. The method of claim 24, wherein
前記登録するステップは、前記第1のソフトウェアエンティティに係るパーミッションを登録することを含み、前記パーミッションは、前記第1のソフトウェアエンティティがアクセスできる前記1コードセットの1つ以上の部分を指示する方法。The registering step includes registering a permission associated with the first software entity, wherein the permission indicates one or more portions of the one code set accessible by the first software entity.
請求項24記載の方法において、25. The method of claim 24, wherein
前記表にて指示される所定の期間にわたって前記第1のソフトウェアエンティティが前記表に登録されている場合には、前記第1のソフトウェアエンティティを登録解除するステップをさらに含む方法。A method further comprising deregistering the first software entity if the first software entity has been registered in the table for a predetermined period indicated in the table.
請求項24記載の方法において、25. The method of claim 24, wherein
前記第1のソフトウェアエンティティからタスク要求を受信するステップと、Receiving a task request from the first software entity;
前記1コードセットの少なくとも一部を使用して前記タスク要求を実行するステップと、Performing the task request using at least a portion of the one code set;
前記タスク要求が実行された後で、前記1コードセットを使用して前記表から前記第1のソフトウェアエンティティを登録解除するステップと、Deregistering the first software entity from the table using the one code set after the task request is executed;
をさらに含む方法。A method further comprising:
請求項16記載の方法において、The method of claim 16, wherein
前記周辺装置は、フラッシュメモリ装置である方法。The method wherein the peripheral device is a flash memory device.
請求項16記載の方法において、The method of claim 16, wherein
前記周辺装置の1グループにてコンテンツを格納する要求を前記第1のソフトウェアエンティティから受信するステップをさらに含み、Receiving from the first software entity a request to store content in a group of the peripheral devices;
前記第1のソフトウェアエンティティが前記周辺装置と通信することを求めているか否かを判断するステップは、前記要求に基づき、The step of determining whether the first software entity is seeking to communicate with the peripheral device is based on the request,
前記ホスト装置上で前記第1のソフトウェアエンティティを認証するか否かを判断するステップは、前記第1のソフトウェアエンティティを認証するか否かを判断するために、以前の認証済みソフトウェアエンティティの表にアクセスすることを含み、The step of determining whether to authenticate the first software entity on the host device is performed in a table of previous authenticated software entities to determine whether to authenticate the first software entity. Including access,
前記第1のソフトウェアエンティティが首尾よく認証されている場合には、前記グループに係る暗号鍵にアクセスするステップと、Accessing the encryption key associated with the group if the first software entity has been successfully authenticated;
前記暗号鍵を使用して前記コンテンツを暗号化するステップと、をさらに含む方法。Encrypting the content using the encryption key.
請求項16記載の方法において、The method of claim 16, wherein
前記1コードセットは、セキュア周辺装置用APIを含み、The one code set includes an API for a secure peripheral device,
前記周辺装置と通信することを前記第1のソフトウェアエンティティに許可するために、前記第1のソフトウェアエンティティによって前記1コードセットの少なくとも一部を使用することは、前記周辺装置上の保護されたコンテンツと係るパーミッションにアクセスするために、前記第1のソフトウェアエンティティが前記周辺装置と通信するように前記セキュア周辺装置用APIを使用する方法。Using at least a portion of the one code set by the first software entity to allow the first software entity to communicate with the peripheral device is protected content on the peripheral device. And using the secure peripheral device API so that the first software entity communicates with the peripheral device.
JP2011510489A 2008-05-21 2009-04-30 Access authentication for software development kit for peripheral devices Pending JP2011523481A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/124,450 US20090293117A1 (en) 2008-05-21 2008-05-21 Authentication for access to software development kit for a peripheral device
US12/124,450 2008-05-21
US12/124,456 US8621601B2 (en) 2008-05-21 2008-05-21 Systems for authentication for access to software development kit for a peripheral device
US12/124,456 2008-05-21
PCT/US2009/002637 WO2009142689A1 (en) 2008-05-21 2009-04-30 Authentication for access to software development kit for a peripheral device

Publications (2)

Publication Number Publication Date
JP2011523481A JP2011523481A (en) 2011-08-11
JP2011523481A5 true JP2011523481A5 (en) 2012-06-14

Family

ID=40844807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011510489A Pending JP2011523481A (en) 2008-05-21 2009-04-30 Access authentication for software development kit for peripheral devices

Country Status (6)

Country Link
EP (1) EP2294528A1 (en)
JP (1) JP2011523481A (en)
KR (1) KR20110033112A (en)
CN (1) CN102089765A (en)
TW (1) TW201003457A (en)
WO (1) WO2009142689A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032535B2 (en) 2009-12-31 2015-05-12 Sandisk Technologies Inc. Storage device and method for providing a scalable content protection system
US9372785B2 (en) 2013-03-07 2016-06-21 Microsoft Technology Licensing, Llc Identifying implicit assumptions associated with a software product
US9270674B2 (en) * 2013-03-29 2016-02-23 Citrix Systems, Inc. Validating the identity of a mobile application for mobile application management
US9547607B2 (en) * 2013-06-27 2017-01-17 Microsoft Technology Licensing, Llc Brokering application access for peripheral devices
EP2899667B1 (en) * 2014-01-23 2020-03-11 Alcatel Lucent System for controlling access to peripheral devices
CN103812871B (en) * 2014-02-24 2017-03-22 北京明朝万达科技股份有限公司 Development method and system based on mobile terminal application program security application
JP2021005217A (en) * 2019-06-26 2021-01-14 株式会社デンソー Vehicle control system and electronic control device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3698851B2 (en) * 1997-02-20 2005-09-21 株式会社日立製作所 Database security management method and system
EP0964573A1 (en) * 1998-06-11 1999-12-15 THOMSON multimedia Method and apparatus for enlarging DVB-CI functionality by enabling a direct access to the Conditional Access Module
JP2002041170A (en) * 2000-07-27 2002-02-08 Matsushita Electric Ind Co Ltd Program performance controller
US7373656B2 (en) * 2000-10-27 2008-05-13 Sandisk Il Ltd. Automatic configuration for portable devices
JP4023654B2 (en) * 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 Application monitoring method and program
US7802294B2 (en) * 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
JP4636607B2 (en) * 2005-06-29 2011-02-23 株式会社日立ソリューションズ How to protect sensitive files in security application
US20070033144A1 (en) * 2005-08-03 2007-02-08 Microsoft Corporation Binding components
JP4361894B2 (en) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ External memory management device and external memory management method
JP2007172508A (en) * 2005-12-26 2007-07-05 Sony Corp Detachable storage device and authentication method

Similar Documents

Publication Publication Date Title
EP3070632B1 (en) Binding to a user device
US20140282992A1 (en) Systems and methods for securing the boot process of a device using credentials stored on an authentication token
EP3275159B1 (en) Technologies for secure server access using a trusted license agent
US10390222B2 (en) Technologies for touch-free multi-factor authentication
WO2015196659A1 (en) Method and device for authenticating connection between desktop cloud client and serving end
JP2011523481A5 (en)
US20190138698A1 (en) System and method for controlled access to application programming interfaces
US20120321087A1 (en) Controlling access to protected objects
RU2015117644A (en) SAFE DATA PROCESSING BY VIRTUAL MACHINE
JP2014500997A5 (en)
JP2017107343A5 (en)
JP2018516026A5 (en)
JP2013516685A5 (en)
JP2016500491A5 (en)
JP2013508854A5 (en)
JP2012074011A5 (en)
JP2011522327A5 (en)
JP2011510387A5 (en)
EP2628133B1 (en) Authenticate a fingerprint image
JP2012506594A5 (en)
JP2008517390A5 (en)
JP2006246015A5 (en)
US20100250949A1 (en) Generation, requesting, and/or reception, at least in part, of token
EA201491905A1 (en) METHOD AND SYSTEM FOR ABSTRACT AND RANDOMIZED DISPOSABLE PASSWORDS FOR TRANSACTION AUTHENTICATION
ES2898625T3 (en) Secure electronic lock