User devices, such as laptops and tablets, comprise devices to capture images, videos, and audio inputs. For example, a built-in camera of a computing system, such as webcam of a laptop, enables users to capture pictures or videos. In another example, a built-in microphone of the computing system allows users to record audio inputs.
Other than a user directly accessing the camera or microphone of the computing system, applications running on the computing system may also access the camera or microphone. For example, an application that provides video conferencing functionality to the user, when initiated, may activate the camera of the computing system. Simultaneously, the application also accesses the microphone of the computing device, which is generally used in conjunction with the camera, to capture audio inputs.
The following detailed description references the drawings, wherein:
Computing devices, such as desktops, laptops, and tablets, generally include a camera and a microphone. An application running on a computing device may access the camera or microphone of the computing system to provide various functionalities. For instance, a voice over internet protocol (VOIP) application running on the computing device may access the microphone to allow a user to make a VOIP call; a social media application may access the camera for a user to capture and upload an image; and a video calling application may access the camera as well as the microphone for the user to participate in a video call. When such an application is launched by the user, the application initiates access to the camera, the microphone, or both to start capturing images, videos, or audio, as the case may be.
Generally, a computing device also connects to the internet, making it vulnerable to malware applications that may be installed on the computing device by malicious users who may then access the camera or microphone through the malware applications. Such an unauthorized access, without a user's knowledge, puts his privacy at stake.
In some cases, the computing device may comprise an LED indicator that indicates to the user that the camera is in use. However, generally, the malicious user may also interfere with the operating system (OS) of the computing device to control the LED indicator, such that the LED indicator does not indicate switching ON of the camera, even when the camera is switched ON.
Thus, generally, once the OS of the computing device is compromised, the camera and the microphone may be vulnerable to unauthorized accesses.
According to an example implementation of the present subject matter, techniques for authorizing access to a microphone or camera, referred to as a capturing device, of a computing device are described. The example methods and systems for authorizing the access provide for prevention of an access attempted without the knowledge of the user.
In an example implementation, when an application executing on the computing device requests access to the capturing device, the Basic Input and Output device (BIOS) of the computing device is notified. The BIOS then obtains an authentication parameter from a user to authorize the request to access the capturing device. The application is allowed to access the capturing device once the BIOS has verified the authentication parameter.
In an example, the authentication parameter, such as a fingerprint of the user or a password received from the user, is compared with an authorized authentication parameter stored in a secure memory component accessible to the BIOS to verify the authentication parameter. Verification of the authentication parameter by the BIOS to authorize the access to the capturing device prevents a malware application or a compromised OS from accessing the capturing device.
The above techniques are further described with reference to
One example of the capturing device 102 may be a camera 102-2 that is inbuilt or integrated into the computing device 100, such as a webcam. A webcam may be a complementary metal-oxide semiconductor (CMOS) camera in an example. Although not shown, in an example, the capturing device 102 also includes any external camera coupled to the computing device 100, such as an external webcam coupled to the computing device 100 through a universal serial bus (USB). Examples of the capturing device also include various internal or external microphones operable in conjunction with the computing device 100.
The computing device 100, among other things, includes processor(s) 104. The processor(s) 104 may be implemented as microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) 104 is configured to fetch and execute computer-readable instructions stored in memory (not shown in
A processor 104 hosts an operating system (OS) 106 of the computing device 100. The OS 106 is a set of instructions that manages the hardware and software of the computing device 100 to enable the computing device 100 to provide various services to the users. In an example, the OS 106 executes application(s) 108 to provide various services to the user. An application 108 may be understood as a set of instructions to enable a functionality in the computing device 100. The application 108 may be either native to the OS 106 or may be a third-party application 108 installed on the OS 106. Examples of the application 108 include, but are not limited to, a VOIP application, video conferencing application, or a voice recorder application which can be executed by the OS 106 to provide functionalities, such as internet protocol (IP) based calling, video conferencing, and voice recording, respectively. The application 108, as mentioned above, may access the capturing device 102 to provide the corresponding functionalities.
The computing device 100 also includes a basic input and output system (BIOS) 110. The BIOS 110 performs hardware initialization to prepare the computing device 100 for use when the computing device 100 is booted up. The BIOS 110 also provides an interface between the input/output devices, storage drives, etc. (not shown) of the computing device 100 and the OS 106 during the boot up process. However, once the OS 106 is initialized, the OS 106 can communicate with the input/output devices directly. Examples of input/output devices include, but are not limited to, a mouse, keyboard, display, and the capturing device 102. To interface the input/output devices to the OS 106, an accessibility of each of the input/output devices may be defined in the BIOS 110. If an input/output device is defined to be disabled in the BIOS 110, the input/output device is not visible to the OS 106 and hence is not operable by the OS 106. In other words, an input/output device is accessible for the OS 106 upon being enabled by the BIOS 110.
In accordance with an example implementation of the present subject matter, by default, the BIOS 110 disables access of the capturing device 102 to the OS 106. In operation, when an application 108 requests access to the capturing device 102, an authentication module 112 of the BIOS 110 initiates a process to authorize the access. To authorize the access to the capturing device 102, the authentication module 112 obtains an authentication parameter and enables the application 108 to access the capturing device based on a verification of the authentication parameter.
Failing authorization of the access by the BIOS 110, the access to the capturing device 102 by the application 108 continues to remain disabled. Authorization of the access to the capturing device 102 by the BIOS 110 provides for enhanced security in the computing device 100. Accordingly, unauthorized accesses by malware applications are prevented. Details relating to the process of authorizing the access implemented by the BIOS 110 are explained with reference to description of
As described earlier, the computing device 100 comprises the processor 104 to execute the OS 106, and as explained above, the processor 104 also executes the BIOS 110 to initialize OS 106.
The functions of the various elements shown in the Figures, including any functional blocks labelled as “processor(s)”, may be provided through the use of dedicated hardware as well as hardware capable of executing software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), non-volatile storage. Other hardware, conventional and/or custom, may also be included.
In the example implementation depicted in
After a reset, the processor 104 performs a boot-up process for the OS 106 using the BIOS 110 as explained above. Once initialized, the OS 106 takes control of the various input/output devices of the computing device 100. Accordingly, the computing device 100 may also comprise an I/O interface 206 which enables the OS 106 to interface with the input/output devices. The I/O interface 206 may include a variety of software and hardware interfaces that allow the OS 106 to interact with the I/O devices. The I/O interface 206 also allows the OS 106 to interface with the capturing device 102.
In an example implementation of the present subject matter, the BIOS 110 authorizes the OS's 106 access to the capturing device 102 for preventing unauthorized capture of audio or visual inputs, for example, due to the OS 106 being compromised.
In an example, by default, the BIOS 110 disables access of the capturing device 102 by the OS. Accordingly, when the OS 106 is initialized after a reset, the control of the capturing device 102 is not assumed by the OS 106, and thus, no application 108 can directly access the capturing device 102. In an example, while maintaining the accessibility of the capturing device 102 by the OS 106 as ‘disabled’, the BIOS 110 may indicate the capturing device 102 to be available to the OS 106. In an example, the BIOS 110 may emulate the capturing device 102 that has been disabled to the OS 106. Accordingly, the OS 106 may not be able to communicate with the capturing device 102 that has been disabled but may detect the capturing device 102 to be present.
When an application 108, such as a video call application 108, which is to access the capturing device 102 for its operation, is launched, the application 108 requests the OS 106 provide access, for example, by way of a function call that the application 108 may make to the OS 106.
In accordance with an example implementation of the present subject matter, an access detection module 208 is implemented in the OS 106 to detect the request of the application 108 to access the capturing device 102. In an example, the access detection module 208 may register the function call to the OS 106 made by the application 108. Upon detecting the request to access the capturing device 102, the access detection module 208 notifies the BIOS 110 of the computing device 100.
Once the BIOS 110 is notified of the request of the application 108, in an example, a notification module 210 of the BIOS 110 generates a notification to notify a user of the request to access the capturing device 102. Such a notification allows the user to be aware of the capturing device 102 recording the audio or visual inputs. The notification may be displayed on a display 212 of the computing device 100. For the purpose, the notification module 210 of the BIOS 110 may communicate with the display 212 through the I/O interface 206.
Also, once the BIOS 110 is notified of the request of the application 108, in an example, the authentication module 112 is triggered to obtain the authentication parameter. In an example implementation, the authentication module 112 verifies the obtained authentication parameter based on an authorized authentication parameter stored in a secure memory component 214 of the computing device 100 accessible to the BIOS 110. Based on the obtained authentication parameter being verified, the application 108 is enabled to access the capturing device 102. Although not depicted in the example implementation illustrated in
In an example implementation, the authentication parameter may be a fingerprint of the user. Accordingly, the computing device 100 may include a fingerprint unit 216 coupled to the BIOS 110. For example, based on the notification regarding the request to access the capturing device 102 being displayed on the display 212, the user may provide his fingerprint input to the fingerprint unit 216. The authentication module 112 obtains the fingerprint input and verifies the same based on the process explained below in conjunction with
Accordingly, in one example, the authentication module 112 causes the notification module 210 to generate a prompt for the user to input the authentication parameter. The prompt may indicate to a user, an authentication parameter that the user may provide. For instance, the prompt may suggest that the user input a password or provide his fingerprint. In an example, the prompt may be displayed on the display 212 of the computing device 100. In another example, another output device, such as a speaker of the computing device 100, may provide the prompt. Accordingly, the notification module 210 may cause output of a preconfigured message, such as ‘enter password’ or ‘enter fingerprint’ on an output device (not shown) of the computing device 100.
The authentication parameter, provided by the user in response to the prompt, is received by a capturing module 302 of the BIOS 110. The capturing module 302 may include various types of capturing modules 302 corresponding to the different types of authentication parameters that may be used for authorizing access to the capturing device 102. In an example, as mentioned above, a fingerprint of the user may be an authentication parameter. Accordingly, a fingerprint capturing module 304 may be implemented within the capturing module 102. In another example in which the authentication parameter is a password, the capturing modules 302 may include a keyboard input capturing module 306. As will be understood, either the fingerprint capturing module 304, the keyboard input capturing module 306 or both may be implemented in the BIOS 110 depending on the authentication parameters that may be acceptable by the computing device 100 for authorizing access to the capturing device 102.
Thus, in an example, if a fingerprint is provided by the user as an authentication parameter, the fingerprint capturing module 304 receives the fingerprint of the user. In another example scenario where the computing device 100 is to authorize access to the capturing device 102 based on authentication parameters that are passwords, a password entered by the user is captured by the keyboard input capturing module 306. Thereafter, the authentication parameter, i.e., the fingerprint or the password captured by the fingerprint capturing module 304 or the keyboard input capturing module 306, or both, as the case may be, is provided to the authentication module 112 that verifies the authentication parameter provided by the user.
In an example, the authentication module 112 verifies the authentication parameter based on an authorized authentication parameter. The authorized authentication parameter may be stored in the BIOS memory 204 or the secure memory component 214 accessible to the BIOS 110, for instance. The authentication module 112 may compare the authentication parameter to the authorised authentication parameter stored in the secure memory component 214 for the verification.
Accordingly, in various example implementations of the present subject matter, the BIOS 110 may perform a registration process to register an authorised authentication parameter corresponding to a user of the computing device 100. For registering the authorised authentication parameter, the BIOS 110 may receive a user input corresponding to the authorised authentication parameter from the user and store the same in the secure memory component 214.
In an example, a user can register a password with the BIOS 110. For registering a password, the user provides the password, for example, via the keyboard (not shown), which is received and saved by the BIOS 110 as the authorised authentication parameter for use during authorization process. For instance, the authorised authentication parameter may be saved in the secure memory component 214.
Similarly, a fingerprint may also be registered with the BIOS 110 as the authorised authentication parameter. Registration of the fingerprint may involve the use of the previously mentioned fingerprint unit 216 coupled to the BIOS 110. During registration, the user may provide his fingerprint input to the fingerprint unit 216, for example, through a fingerprint scanner (not shown) of the fingerprint unit 216. The fingerprint input, thus registered, may be saved, for example, in the secure memory component 214. During authorization process, the BIOS 110 uses this saved fingerprint input to verify the fingerprint provided by the user. In an example, fingerprint inputs of more than one finger may be registered.
In yet another example implementation of the present subject matter, one of the types of authentication parameters that may be used by the computing device 100 for authorizing access to the capturing device 102 may be BIOS-generated authentication parameters. In such example implementations, when an application 108 requests access to the capturing device 102, the BIOS 110 may generate an authentication parameter that may be used for authorizing the access to the capturing device 102. Accordingly, in an example, the BIOS 110 comprises an authentication parameter generator 308 that generates the authentication parameter. In an example, the authentication parameter generator 308 incorporated in the BIOS 110, may be a random sequence generator that generates a sequence of characters, digits, or symbols.
The authentication parameter, i.e., the random sequence of characters, digits, or symbols, generated by the BIOS 110 may be displayed on the display 212. For the purpose, the authentication parameter generator 308 may cause the notification module 210 to interface with the display 110. Consequently, in example implementations where the BIOS-generated authentication parameters may be used by the computing device 100 for authorizing access to the capturing device 102, the prompt may also comprise the authentication parameter generated by the BIOS 110. The user may input the displayed authentication parameter, for example, by typing the same on a keyboard of the computing device 100. Further, in example implementations where the BIOS-generated authentication parameters may be used, the various types of capturing modules 302 explained above may include a BIOS-generated parameter capturing module 310.
Accordingly, in operation, in an example implementation when the prompt comprising a BIOS-generated authentication parameter is generated and displayed by the BIOS 110, the user may provide the same as an authentication parameter. Thereupon, the authentication parameter entered by the user is captured by the BIOS-generated parameter capturing module 310 and is provided to the authentication module 112 for verification.
The authentication module 112 verifies if the authentication parameter entered by the user is same as that generated by the authentication parameter generator. If the authentication parameter entered by the user matches the BIOS-generated authentication parameter, the authorization process is successful and the authentication module 112 allows the application to access the capturing device 102 of the computing device 100.
Similarly, in another example implementation where the BIOS-generated authentication parameters may be used for authorizing access to the capturing device 102, the authentication parameter may comprise a list of characters, symbols, images and so on. The BIOS 110 may generate and display the list of characters, symbols, or images. The user may be prompted to select, for example, using a mouse or a joystick of the computing device 100, one of the displayed characters, symbols, or images having a certain feature and upon successful selection by the user, the access to the capturing device may be enabled. To illustrate with an example, the BIOS-generated authentication parameter may be an image comprising several circles of various colours. For the authentication, the user may be prompted to hover a mouse of the computing device 100 over a ‘blue’ coloured circle from amongst the several circles displayed.
In an example implementation of the present subject matter, when an application 108 terminates an ongoing session of access to the capturing device 102, the application 108 indicates the same to the OS 106. The access detection module 208 of the OS 106 detects the termination of access and notifies the BIOS 110. The BIOS 110 thereafter disables the access of the OS 106 to the capturing device 102.
As apparent from the foregoing description of the present subject matter, applications 108 residing on the OS 106 of the computing device 100 are disallowed to access the capturing device 102 without the BIOS 110 authorizing the access. For example, when a malware application residing in the OS 106 of the computing device 102 requests access to the capturing device 102, the BIOS 110 notifies the user of the request while continuing to maintain the accessibility of the capturing device 102 by the OS 106 as ‘disabled’, by default. When the user knows that the request is not raised further to an action taken by him, the user may not provide the authentication parameter, and thus, the request to access is not authorized, thus denying the malware application the access to the capturing device 102.
The order in which the methods 400 and 500 are described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the methods 400 and 500, or an alternative method. Furthermore, the methods 400 and 500 may be implemented by processor(s) or computing device(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof.
It may be understood that blocks of the methods 400 and 500 may be performed by programmed computing devices. The blocks of the methods 400 and 500 may be executed based on instructions stored in a non-transitory computer readable medium, as will be readily understood. The non-transitory computer readable medium may include, for example, digital memories, magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
Referring to
At block 404, based on the request generated at block 402, an authentication parameter to authorize the request to access the capturing device 102 is obtained by the BIOS 110 of the computing device 100. As explained above, the authorization parameter may be a password, fingerprint, and random sequence of digits/characters.
At block 406, the obtained authentication parameter is verified by the BIOS 110. Based on a successful verification of the authentication parameter, the capturing device 102 is enabled by the BIOS. Upon enabling the capturing device, the application 108 may access the capturing device 102.
In an example, after the application 108 is allowed a session of access to the capturing device 102, for a duration that the session is ongoing, the BIOS 110 may continue to indicate to the user that the capturing device 102 is enabled. For instance, the indication may be a message displayed on the display 212 for the duration that the session is ongoing. In an example, the message may be displayed intermittently during the ongoing session. In an example, the indication may be an audio notification, such a ‘beep’ sound that may be generated by the BIOS 110 periodically during the ongoing session.
In an example, the BIOS 110 may also provide an option to disable the capturing device 102 during an ongoing session. In an example, the BIOS 110 may allow a capturing device 102 that was enabled at the start of the session to be disabled while the session may continue. For instance, a user may disable the camera 102-1 during a video call session and may continue the session as a voice call with the microphone 102-1 alone being enabled.
In an example implementation, the indication generated by the BIOS 110 to indicate that the capturing device 102 is enabled during a session, may present the user with the option to disable the capturing device 102. Accordingly, in an example implementation, the indication, when displayed as a message on the display 212, may provide a button that the user may activate, for example, using a mouse or a keyboard of the computing device 100 to disable the capturing device 102.
With the BIOS 110 providing an indication of a capturing device 102 being enabled during a session that had been authorized, situations where another session may be initiated by a malware application upon the user disabling the capturing device 102 during the session may be prevented. In an eventuality that the user disables the capturing device 102 during the session, yet the BIOS 110 continues to indicate that capturing device 102 is enabled, the user may be made aware of the capturing device 102 being used.
Referring to
In an example, the BIOS 110 may disallow the OS 106 to access the capturing device 102, however, may indicate the capturing device 102 to be available to the OS 106, for example, by emulating the capturing device 102 that has been disabled to the OS 106.
At block 504, the application 108 running on the OS 106 of the computing device 100 may request access to the capturing device 102. The request is registered by the access detection module 208 of the OS 106 at block 506. In an example, the access detection module 208 may register a function call that the application 108 may make to the OS 106 to request access to the capturing device 102.
In an example implementation, as mentioned previously, the BIOS 110 may disable access of the capturing device 102 to the OS 106 and the capturing device 102 may not be visible to the OS 106. In such cases, in response the request to access to the capturing device 102, the OS 106 may generate a message indicative of the same. Accordingly, a message, such as ‘camera not found’ or ‘microphone disabled’ may be displayed on the display 212 of the computing device 100. In an example, such messages may not be displayed due to BIOS 110 emulating the capturing device 102 to the OS 106.
At block 508, the access detection module 208 notifies the BIOS 110 of the request to access to the capturing device 102. Based on the notification from the access detection module 208, at block 510, the BIOS 110 in turn notifies the user of the request. Example techniques of notifying the user include, but are not restricted to, generating an audio alert or a visual alert by the BIOS 110. Thus, the user is notified at every instance an application 108 requests access to the capturing device 102.
Referring now to
The authentication parameter is received by the BIOS 110 in response to the prompt, at block 514. Thereafter, at 516, the BIOS 110 verifies if the authentication parameter matches with an authorised authentication parameter. The authorised authentication parameter may be stored in the BIOS memory 204 and may not be readable by the OS 106. In an example, the authorised authentication parameter may be stored in the secure memory component 214.
If the determination made at block 516 is affirmative, the method 500 shifts to block 518, where the BIOS 110 enables the capturing device 102 such that the application 108 can access the capturing device 102. In an example, upon successful verification of the authentication parameter, the BIOS 110 may discontinue emulating the disabled capturing device 102 and allow the the OS 106 to communicate with capturing device 102 to enable the application 108 to access the capturing device 102.
Upon enabling the capturing device 102, the BIOS notifies the user, at block 520, that the access to the capturing device 102 has been allowed. The application 108 may initiate use of the capturing device 102 to capture image, video, or audio inputs once the capturing device 102 is enabled. After a session of use of the capturing device 102, the application 108 may end the session and terminate the access to the capturing device 102. For example, for a video conferencing application, the end of a video call may be the end of a session terminating the access of the camera 102-1 by the video conferencing application.
At block 522, the access detection module 208, registers the termination of the access to the capturing device 102 by the application 108. At block 524, the access detection module 208 notifies the BIOS 110 of the termination of the session. In an example, based on the notification by the access detection module 208, the BIOS 110 detects the termination of access to the capturing device 102 and accordingly, at block 526, generates a termination notification to notify the user of the termination of access. Thereafter, the method 500 again shifts to block 502, where the OS's 106 access to the capturing device 102 is disabled by the BIOS 110.
Detection of termination of access to the capturing device 102 by the application 108 triggers the BIOS 110 to disable the capturing device 102 upon the end of the session. This provides for avoiding situations where another session of access to the capturing device 102 may be initiated by a malware application at the end of the session by the application 108 that had authorized access to the capturing device 102.
Referring to block 516, if the determination made at block 516 is not affirmative, the method 500 shifts to block 528 where the BIOS 110 denies the request to access the capturing device 102 to the application 108. The BIOS 110, at block 530, may also notify the user that the request to access the capturing device 102 has been denied.
The non-transitory computer-readable medium 602 can be, for example, an internal memory device or an external memory device. In an example implementation, the communication link 606 may be a direct communication link, such as any memory read/write interface. In another example implementation, the communication link 606 may be an indirect communication link, such as a network interface. In such a case, the processing resource 604 can access the non-transitory computer-readable medium 602 through a network 608. The network 608 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
The processing resource 604 and the non-transitory computer-readable medium 602 may also be communicatively coupled to data sources 610. The data source(s) 610 may be used to store a BIOS of the computing device in an example. In an example implementation, the non-transitory computer-readable medium 602 includes a set of computer-readable instructions for authorizing the access to the capturing device of the computing device. The set of computer-readable instructions can be accessed by the processing resource 604 through the communication link 606 and subsequently executed to authorize the access to the capturing device.
In an example, the non-transitory computer-readable medium 602 may include a set of instructions implementing a capturing module 612 and an authentication module 614. The instructions implementing the capturing module 612 may, in one example, be a code executable to obtain an authentication parameter associated with a user of the computing device in response to a request to access the capturing device of the computing device from an application executing on the computing device. The instructions implementing the authentication module 614 may, in one example, be a code executable by the processing resource 604, to verify the authentication parameter based on an authorized authentication parameter stored in a secure memory component accessible to the BIOS of the computing device. Further, the code may be executable to enable the application to access the capturing device based on the verification.
In an example, the non-transitory computer-readable medium 602 may include a set of instructions that may, in one example, be executable by the by the processing resource 604 to generate a prompt to request the user to input the authentication parameter. Also, as mentioned before, in an example, the instructions cause the authentication parameter, received in response to the prompt, to be verified and cause the capturing device to be accessible by the application.
In an example, the non-transitory computer-readable medium 602 may also include a set of instructions implementing an authentication parameter generator (not shown). The instructions implementing the authentication parameter generator may, in one example, be executable code to generate the authentication parameter. The instructions may further be executable to display the authentication parameter on a display device of the computing device. The instructions may also be executable to receive and verify the authentication parameter and to enable the capturing device based on the verification.
Thus, the methods and systems of the present subject matter provide for authorizing access to a capturing device of a computing device. Although implementations of performing the authorization process have been described in a language specific to structural features and/or methods, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations for communicating the system events.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/066414 | 12/14/2017 | WO | 00 |