圖標

BluePass

BluePass extracts 2FA tokens from SMS and forwards them via Bluetooth
新版本 0.3.0
- Add a button to send the last code again to the companion app
- Add a test button to allow to trigger sending a code to the companion app
- Fix the format of the summary
Description

BluePass extracts two factor authentication codes (2FA) from SMS and sends them to a paired device via Bluetooth RFCOMM. A Qt based companion app bluepass-server will receive the 2FA codes and provide them via the system clipboard.


Use Case

The company I work for is relying on third party services that require to authenticate using 2FA. The second factor is an SMS to your mobile phone. This app was built for convenience, to avoid having to unlock your phone, find the message and then type the received code on the PC.

It is not about the time saved, it's about getting rid of robot tasks.


Setup

You have to configure parameters to match the sender of the SMS and parse the code from the messages sent to you. Currently, regular expressions are used for this task. However, a very basic setup will be provided below.

Regular expression for sender has to be set to a regular expression that matches all the senders of SMS (as they appear in your chat application). Multiple numbers and names can be provided:

  • To match CompanyA, you might simply putCompanyA into the box

  • To match CompanyA and 12345678, write (CompanyA|12345678)



Regular expression to filter the content has to be set to a regular expression that matches the messages you want to catch. Additionally, it has to define one group to extract the actual code that has to be sent to the PC.

  • To match any number, you can use [^\d]*(\d+).*

  • To match a code only with 6 digits, use: .*(\d{6}).*



... as the process of defining a proper regular expression is not that easy, there is another text box Test message. You can paste here the content of the SMS thatyou want to match and adjust the regular expression until it gets parsed correctly.

The last step of the configuration is to pair with the bluetooth adapter of your PC and configure the adapter to be used.


Operation


  • Whenever your mobile phone receives an SMS (and the settings above are configured), this app will try to match the sender and content. If one of the two doesn't match, the message will not be processed any further.

  • If the 2FA code could be extracted, a foreground service will be started (status bar) and the app tries to connect to the configured Bluetooth adapter and sends the code. It retries for some amount of time and reports the status in the status bar. Note: The notification in the status bar doesn't automatically disappear. However, this doesn't consume any resources and can be removed using the Stop button.

  • If the code is required on the mobile phone, it can be copied using the Copy last button.




Protocol

The communication is based on very simple primitives using an RFCOMM channel. The UUID for the service is e4d56fb3-b86d-4572-9b0d-44d483eb1eee. Extracted codes are sent as text (over a secure Bluetooth connection) terminated with a new line character. Therefore, codes may not contain any new line characters.


Future


  • The protocol will be changed to something more sophisticated and extensible

  • Configuration of the sender should be done through contact providers and not use regular expressions

  • Allow to use this app to share text / files with the PC


版本

雖然在下方可選擇下載 APK 檔案,但要留意這樣的安裝方式將不會收到更新通知,是一種較不安全的下載方法。建議您先安裝 F-Droid 用戶端使用。

下載 F-Droid
  • 版本 0.3.0 (5) 建議 於 2021 年 12 月 2 日新增

    此版本需要 Android 10 或更高的版本。

    此套件包由 F-Droid 構建和簽署,並保證與此原始碼 Tarball 保持一致。

    權限
    • 僅可在前景中取得概略位置
      只有在你使用時,這個應用程式才能透過定位服務取得你的概略位置。你必須在裝置上開啟定位服務,這個應用程式才能取得位置資訊。
    • 僅可在前景中取得精確位置
      只有在你使用時,這個應用程式才能透過定位服務取得你的精確位置。你必須在裝置上開啟定位服務,這個應用程式才能取得位置資訊。這麼做可能會增加電池用量。
    • 與藍牙裝置配對
      允許應用程式查看手機的藍牙設定,以及建立和接受與其他配對裝置的連線。
    • 存取藍牙設定
      允許應用程式設定本機藍牙手機,以及搜尋遠端裝置並配對連線。
    • 與已配對的藍牙裝置連線
      允許應用程式與已配對的藍牙裝置連線
    • 探索鄰近藍牙裝置並進行配對
      允許應用程式探索鄰近藍牙裝置並進行配對
    • 執行前景服務
      允許應用程式使用前景服務。
    • 接收簡訊(SMS)
      允許應用程式接收和處理簡訊。這項設定可讓應用程式監控傳送至你裝置的訊息,或在你閱讀訊息前擅自刪除訊息。
    • 防止手機休眠
      允許應用程式防止手機進入休眠狀態。

    下載 APK 14 MiB PGP 簽章 | 構建日誌

  • 版本 0.2.1 (4) - 於 2021 年 11 月 2 日新增

    此版本需要 Android 10 或更高的版本。

    此套件包由 F-Droid 構建和簽署,並保證與此原始碼 Tarball 保持一致。

    權限
    • 僅可在前景中取得概略位置
      只有在你使用時,這個應用程式才能透過定位服務取得你的概略位置。你必須在裝置上開啟定位服務,這個應用程式才能取得位置資訊。
    • 僅可在前景中取得精確位置
      只有在你使用時,這個應用程式才能透過定位服務取得你的精確位置。你必須在裝置上開啟定位服務,這個應用程式才能取得位置資訊。這麼做可能會增加電池用量。
    • 與藍牙裝置配對
      允許應用程式查看手機的藍牙設定,以及建立和接受與其他配對裝置的連線。
    • 存取藍牙設定
      允許應用程式設定本機藍牙手機,以及搜尋遠端裝置並配對連線。
    • 與已配對的藍牙裝置連線
      允許應用程式與已配對的藍牙裝置連線
    • 探索鄰近藍牙裝置並進行配對
      允許應用程式探索鄰近藍牙裝置並進行配對
    • 執行前景服務
      允許應用程式使用前景服務。
    • 接收簡訊(SMS)
      允許應用程式接收和處理簡訊。這項設定可讓應用程式監控傳送至你裝置的訊息,或在你閱讀訊息前擅自刪除訊息。
    • 防止手機休眠
      允許應用程式防止手機進入休眠狀態。

    下載 APK 14 MiB PGP 簽章 | 構建日誌