Status: Fixed I have now implemented a password protection control. You can now only view passwords when you enter them. After this, you may reset the passwords, by entering a new one, but you cannot read the existing passwords. To protect against people reading the database, which contains the passwords in clear text, the database is now encrypted by using the standard SQLite encryption method. This is different than what I proposed, but is a much stronger protection than merely scrambling the passwords, and also protects all information (servername, etc). It works by setting an environment variable called DUPLICATI_DB_KEY. When no password is set, Duplicati will use the key "Duplicati_Key_42", ensuring that all databases are encrypted by default. Using a pre-defined publicly known key is obviously not a strong protection, but it protects from casual users attempting to browse the database, and it also protects from string scanners that scan a harddisk for possible passwords. On the first startup, Duplicati will encrypt the database, using the mentioned key. You may want to delete any backup databases that are placed in the same folder as the database. Should you wish to decrypt the database, you can start Duplicati.exe with the commandline option "--unencrypted-database". This will use the current key to decrypt the database, and save it without encryption. Should you wish to change the database password, simply decrypt the database, then change the password via the environment variable, and start Duplicati.exe as normal. The SQLite documentation for the feature is here: http://www.hwaci.com/sw/sqlite/see.html Unfortunately, it does not seem as if any of the free SQLite tools supports this. The SQLite library found on Ubuntu does not support encryption, so I have disabled this feature by default on Linux. If a user has a special compiled version of SQLite, they may use the environment variables as mentioned above. I will write this information into a wiki page as soon asap. git-svn-id: https://duplicati.googlecode.com/svn/trunk@498 59da171f-624f-0410-aa54-27559c288bec
124 lines
5.0 KiB
XML
124 lines
5.0 KiB
XML
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProductVersion>9.0.30729</ProductVersion>
|
|
<SchemaVersion>2.0</SchemaVersion>
|
|
<ProjectGuid>{FC9B7611-836F-4127-8B44-A7C31F506807}</ProjectGuid>
|
|
<OutputType>Library</OutputType>
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<RootNamespace>Duplicati.Library.Backend</RootNamespace>
|
|
<AssemblyName>Duplicati.Library.Backend.File</AssemblyName>
|
|
<SignAssembly>true</SignAssembly>
|
|
<AssemblyOriginatorKeyFile>Duplicati.snk</AssemblyOriginatorKeyFile>
|
|
<FileUpgradeFlags>
|
|
</FileUpgradeFlags>
|
|
<OldToolsVersion>2.0</OldToolsVersion>
|
|
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
|
<UpgradeBackupLocation>
|
|
</UpgradeBackupLocation>
|
|
<TargetFrameworkSubset>
|
|
</TargetFrameworkSubset>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<Optimize>false</Optimize>
|
|
<OutputPath>bin\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
<DebugType>pdbonly</DebugType>
|
|
<Optimize>true</Optimize>
|
|
<OutputPath>bin\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<OutputPath>bin\x86\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<DebugType>full</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
|
<OutputPath>bin\x86\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<Optimize>true</Optimize>
|
|
<DebugType>pdbonly</DebugType>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Drawing" />
|
|
<Reference Include="System.Windows.Forms" />
|
|
<Reference Include="System.Xml" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="FileBackend.cs" />
|
|
<Compile Include="FileUI.cs">
|
|
<SubType>UserControl</SubType>
|
|
</Compile>
|
|
<Compile Include="FileUI.designer.cs">
|
|
<DependentUpon>FileUI.cs</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="Strings\FileBackend.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DesignTime>True</DesignTime>
|
|
<DependentUpon>FileBackend.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Strings\FileUI.Designer.cs">
|
|
<AutoGen>True</AutoGen>
|
|
<DesignTime>True</DesignTime>
|
|
<DependentUpon>FileUI.resx</DependentUpon>
|
|
</Compile>
|
|
<Compile Include="Win32.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\..\Winforms\Controls\Duplicati.Winforms.Controls.csproj">
|
|
<Project>{7886BA79-A38A-4288-8B8A-9F29D0E15AC0}</Project>
|
|
<Name>Duplicati.Winforms.Controls</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\..\Core\Duplicati.Library.Core.csproj">
|
|
<Project>{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}</Project>
|
|
<Name>Duplicati.Library.Core</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\..\Interface\Duplicati.Library.Interface.csproj">
|
|
<Project>{C5899F45-B0FF-483C-9D38-24A9FCAAB237}</Project>
|
|
<Name>Duplicati.Library.Interface</Name>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="app.config" />
|
|
<None Include="Duplicati.snk" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="FileUI.resx">
|
|
<DependentUpon>FileUI.cs</DependentUpon>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Strings\FileBackend.resx">
|
|
<SubType>Designer</SubType>
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>FileBackend.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
<EmbeddedResource Include="Strings\FileUI.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>FileUI.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
|
Other similar extension points exist, see Microsoft.Common.targets.
|
|
<Target Name="BeforeBuild">
|
|
</Target>
|
|
<Target Name="AfterBuild">
|
|
</Target>
|
|
-->
|
|
</Project> |